diff --git a/DEPS b/DEPS
index 159d0aa..1a2a4542 100644
--- a/DEPS
+++ b/DEPS
@@ -175,11 +175,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': '2e307968fd54a22783cec8d5e58b8313c7506cbd',
+  'skia_revision': '78dac6dcb222b38234d20b3deab68af1bff6b6e3',
   # 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': 'c98aec6a776cebf4ab20b562c7a950fe29227cb6',
+  'v8_revision': '1003942d85ac1ace40dac7aecf518c4f108d4273',
   # 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.
@@ -238,7 +238,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling catapult
   # and whatever else without interference from each other.
-  'catapult_revision': '9e5db26faa43a62a3795c66928bc6879779eb3af',
+  'catapult_revision': '4bdcfb7b6e69d52559f73c7ff811d213eb0f9a8e',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -246,7 +246,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling devtools-frontend
   # and whatever else without interference from each other.
-  'devtools_frontend_revision': 'eaadca132fce10a1cd0b4c97cebdd6958fd15d5c',
+  'devtools_frontend_revision': '7cdf69dbbf43a6fa66c7d1286584963bd2213790',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libprotobuf-mutator
   # and whatever else without interference from each other.
@@ -306,7 +306,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'quiche_revision': 'a66f68433ddd57305e5c116101d4cd59091bed37',
+  'quiche_revision': 'ee0079aeee37c6f2df155b62679a572fda9b2c50',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ios_webkit
   # and whatever else without interference from each other.
@@ -874,7 +874,7 @@
 
   # Build tools for Chrome OS. Note: This depends on third_party/pyelftools.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'c598caf81aa39e80a8327fdc4d8881efbae9e325',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '8cf4a76817cbc62ad4e47a230978355a79840009',
       'condition': 'checkout_linux',
   },
 
@@ -899,7 +899,7 @@
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '0c4a3c2503a65c6c4ddb46b3358a1b83cf42a797',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '8aa9d62e8ecce56cd1054bd8c2dd72ba02c7bb04',
 
   'src/third_party/devtools-frontend/src':
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
@@ -1454,7 +1454,7 @@
     Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + 'ec18cc3262922e7dcdbe70243c6f40606f979144',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'b2678cfefeddc9291863f560f417b64949eac8ac',
+    Var('webrtc_git') + '/src.git' + '@' + 'dd14a955967b69bf1611ce2985a5457934b1fb1d',
 
   'src/third_party/libgifcodec':
      Var('skia_git') + '/libgifcodec' + '@'+  Var('libgifcodec_revision'),
@@ -1529,7 +1529,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@e1f6408da19a12fb2a9adac9f9a05923d69f34a8',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@aee432d7489e46c7f23ef3ed9fdc4fc2873e5046',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/WATCHLISTS b/WATCHLISTS
index f50a32a..555e5b2 100644
--- a/WATCHLISTS
+++ b/WATCHLISTS
@@ -2511,12 +2511,10 @@
                           'marcinjb+p4watch@google.com'],
     'language': ['language-reviews@chromium.org'],
     'libaom': ['fgalligan@chromium.org',
-               'johannkoenig@chromium.org',
                'jzern@chromium.org',
                'tomfinegan@chromium.org'],
     'libvpx': ['fgalligan@chromium.org',
                'jianj@chromium.org',
-               'johannkoenig@chromium.org',
                'jzern@chromium.org',
                'marpan@chromium.org',
                'tomfinegan@chromium.org'],
diff --git a/android_webview/browser/gfx/hardware_renderer_viz.cc b/android_webview/browser/gfx/hardware_renderer_viz.cc
index 59fe9d7..5701b30 100644
--- a/android_webview/browser/gfx/hardware_renderer_viz.cc
+++ b/android_webview/browser/gfx/hardware_renderer_viz.cc
@@ -59,7 +59,6 @@
   void DrawAndSwapOnViz(const gfx::Size& viewport,
                         const gfx::Rect& clip,
                         const gfx::Transform& transform,
-                        const gfx::Size& frame_size,
                         const viz::SurfaceId& child_id,
                         float device_scale_factor,
                         const gfx::ColorSpace& color_space,
@@ -136,7 +135,6 @@
     const gfx::Size& viewport,
     const gfx::Rect& clip,
     const gfx::Transform& transform,
-    const gfx::Size& frame_size,
     const viz::SurfaceId& child_id,
     float device_scale_factor,
     const gfx::ColorSpace& color_space,
@@ -152,6 +150,8 @@
     without_gpu_->SubmitChildCompositorFrame(child_frame);
   }
 
+  gfx::Size frame_size = without_gpu_->GetChildFrameSize();
+
   if (!child_frame->copy_requests.empty()) {
     viz::FrameSinkManagerImpl* manager = GetFrameSinkManager();
     CopyOutputRequestQueue requests;
@@ -344,8 +344,8 @@
   VizCompositorThreadRunnerWebView::GetInstance()->ScheduleOnVizAndBlock(
       base::BindOnce(&HardwareRendererViz::OnViz::DrawAndSwapOnViz,
                      base::Unretained(on_viz_.get()), viewport, clip, transform,
-                     viewport, surface_id_, device_scale_factor_,
-                     params->color_space, child_frame_.get()));
+                     surface_id_, device_scale_factor_, params->color_space,
+                     child_frame_.get()));
 
   output_surface_provider_.gl_surface()->MaybeDidPresent(
       gfx::PresentationFeedback(base::TimeTicks::Now(), base::TimeDelta(),
diff --git a/android_webview/browser/gfx/hardware_renderer_viz.h b/android_webview/browser/gfx/hardware_renderer_viz.h
index 56de42d..ed772501 100644
--- a/android_webview/browser/gfx/hardware_renderer_viz.h
+++ b/android_webview/browser/gfx/hardware_renderer_viz.h
@@ -33,7 +33,6 @@
   bool IsUsingVulkan() const;
 
   // Information about last delegated frame.
-  gfx::Size surface_size_;
   float device_scale_factor_ = 0;
 
   viz::SurfaceId surface_id_;
diff --git a/android_webview/browser/gfx/root_frame_sink.cc b/android_webview/browser/gfx/root_frame_sink.cc
index e406ee4..12fbe1b 100644
--- a/android_webview/browser/gfx/root_frame_sink.cc
+++ b/android_webview/browser/gfx/root_frame_sink.cc
@@ -59,12 +59,23 @@
   uint32_t layer_tree_frame_sink_id() { return layer_tree_frame_sink_id_; }
 
   viz::CompositorFrameSinkSupport* support() { return support_.get(); }
+  gfx::Size size() { return size_; }
+
+  void SubmitCompositorFrame(
+      const viz::LocalSurfaceId& local_surface_id,
+      viz::CompositorFrame frame,
+      base::Optional<viz::HitTestRegionList> hit_test_region_list) {
+    size_ = frame.size_in_pixels();
+    support()->SubmitCompositorFrame(local_surface_id, std::move(frame),
+                                     std::move(hit_test_region_list));
+  }
 
  private:
   RootFrameSink* const owner_;
   const uint32_t layer_tree_frame_sink_id_;
   const viz::FrameSinkId frame_sink_id_;
   std::unique_ptr<viz::CompositorFrameSinkSupport> support_;
+  gfx::Size size_;
 };
 
 RootFrameSink::RootFrameSink(RootFrameSinkClient* client)
@@ -197,7 +208,7 @@
         child_frame->frame_sink_id);
   }
 
-  child_sink_support_->support()->SubmitCompositorFrame(
+  child_sink_support_->SubmitCompositorFrame(
       child_frame->local_surface_id, std::move(*child_frame->frame),
       std::move(child_frame->hit_test_region_list));
   child_frame->frame.reset();
@@ -209,4 +220,12 @@
   return viz::FrameTimingDetailsMap();
 }
 
+gfx::Size RootFrameSink::GetChildFrameSize() {
+  // TODO(vasilyt): This is not going to work with VizFrameSubmissionForWebView.
+  if (child_sink_support_) {
+    return child_sink_support_->size();
+  }
+  return gfx::Size();
+}
+
 }  // namespace android_webview
diff --git a/android_webview/browser/gfx/root_frame_sink.h b/android_webview/browser/gfx/root_frame_sink.h
index 3f8f118e..c607602 100644
--- a/android_webview/browser/gfx/root_frame_sink.h
+++ b/android_webview/browser/gfx/root_frame_sink.h
@@ -60,6 +60,7 @@
 
   void SubmitChildCompositorFrame(ChildFrame* child_frame);
   viz::FrameTimingDetailsMap TakeChildFrameTimingDetailsMap();
+  gfx::Size GetChildFrameSize();
 
   // viz::mojom::CompositorFrameSinkClient implementation.
   void DidReceiveCompositorFrameAck(
diff --git a/android_webview/browser/js_java_interaction/js_to_java_messaging.cc b/android_webview/browser/js_java_interaction/js_to_java_messaging.cc
index 70b0d21..3daa417 100644
--- a/android_webview/browser/js_java_interaction/js_to_java_messaging.cc
+++ b/android_webview/browser/js_java_interaction/js_to_java_messaging.cc
@@ -14,6 +14,7 @@
 #include "content/public/browser/web_contents.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
 #include "url/origin.h"
+#include "url/url_util.h"
 
 namespace android_webview {
 
@@ -54,10 +55,22 @@
     int_ports[i] = ports[i].release().value();
   }
 
+  // We want to pass a string "null" for local file schemes, to make it
+  // consistent to the Blink side SecurityOrigin serialization. When both
+  // setAllow{File,Universal}AccessFromFileURLs are false, Blink::SecurityOrigin
+  // will be serialized as string "null" for local file schemes, but when
+  // setAllowFileAccessFromFileURLs is true, Blink::SecurityOrigin will be
+  // serialized as the scheme, which will be inconsistentt to this place. In
+  // this case we want to let developer to know that local files are not safe,
+  // so we still pass "null".
+  std::string origin_string =
+      base::Contains(url::GetLocalSchemes(), source_origin.scheme())
+          ? "null"
+          : source_origin.Serialize();
   JNIEnv* env = base::android::AttachCurrentThread();
   Java_WebMessageListenerHolder_onPostMessage(
       env, listener_ref_, base::android::ConvertUTF16ToJavaString(env, message),
-      base::android::ConvertUTF8ToJavaString(env, source_origin.Serialize()),
+      base::android::ConvertUTF8ToJavaString(env, origin_string),
       web_contents->GetMainFrame() == render_frame_host_,
       base::android::ToJavaIntArray(env, int_ports.data(), int_ports.size()),
       reply_proxy_->GetJavaPeer());
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/JsJavaInteractionTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/JsJavaInteractionTest.java
index 64df77b..bbb268ef 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/JsJavaInteractionTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/JsJavaInteractionTest.java
@@ -45,6 +45,7 @@
             RESOURCE_PATH + "/post_message_repeat.html";
     private static final String POST_MESSAGE_REPLY_HTML =
             RESOURCE_PATH + "/post_message_receives_reply.html";
+    private static final String FILE_URI = "file:///android_asset/asset_file.html";
 
     private static final String HELLO = "Hello";
     private static final String NEW_TITLE = "new_title";
@@ -856,6 +857,87 @@
         Assert.assertTrue(mListener.hasNoMoreOnPostMessage());
     }
 
+    private void verifyOnPostMessageOriginIsNull() throws Throwable {
+        mActivityTestRule.executeJavaScriptAndWaitForResult(
+                mAwContents, mContentsClient, JS_OBJECT_NAME + ".postMessage('Hello');");
+
+        TestWebMessageListener.Data data = mListener.waitForOnPostMessage();
+
+        Assert.assertEquals("null", data.mSourceOrigin.toString());
+
+        Assert.assertEquals(HELLO, data.mMessage);
+        Assert.assertTrue(data.mIsMainFrame);
+        Assert.assertEquals(0, data.mPorts.length);
+
+        Assert.assertTrue(mListener.hasNoMoreOnPostMessage());
+    }
+
+    @Test
+    @MediumTest
+    @Feature({"AndroidWebView", "JsJavaInteraction"})
+    public void testFileSchemeUrl_setAllowFileAccessFromFile_true() throws Throwable {
+        mAwContents.getSettings().setAllowFileAccessFromFileURLs(true);
+        addWebMessageListenerOnUiThread(mAwContents, JS_OBJECT_NAME, new String[] {"*"}, mListener);
+        mActivityTestRule.loadUrlSync(
+                mAwContents, mContentsClient.getOnPageFinishedHelper(), FILE_URI);
+        Assert.assertEquals("\"file://\"",
+                mActivityTestRule.executeJavaScriptAndWaitForResult(
+                        mAwContents, mContentsClient, "window.origin"));
+
+        verifyOnPostMessageOriginIsNull();
+    }
+
+    @Test
+    @MediumTest
+    @Feature({"AndroidWebView", "JsJavaInteraction"})
+    public void testFileSchemeUrl_setAllowFileAccessFromFile_false() throws Throwable {
+        // The default value is false on JELLY_BEAN and above, but we explicitly set this to
+        // false to readability.
+        mAwContents.getSettings().setAllowFileAccessFromFileURLs(false);
+        addWebMessageListenerOnUiThread(mAwContents, JS_OBJECT_NAME, new String[] {"*"}, mListener);
+        mActivityTestRule.loadUrlSync(
+                mAwContents, mContentsClient.getOnPageFinishedHelper(), FILE_URI);
+        Assert.assertEquals("\"null\"",
+                mActivityTestRule.executeJavaScriptAndWaitForResult(
+                        mAwContents, mContentsClient, "window.origin"));
+
+        verifyOnPostMessageOriginIsNull();
+    }
+
+    @Test
+    @MediumTest
+    @Feature({"AndroidWebView", "JsJavaInteraction"})
+    public void testContentSchemeUrl_setAllowFileAccessFromFileURLs_true() throws Throwable {
+        mAwContents.getSettings().setAllowContentAccess(true);
+        mAwContents.getSettings().setAllowFileAccessFromFileURLs(true);
+        addWebMessageListenerOnUiThread(mAwContents, JS_OBJECT_NAME, new String[] {"*"}, mListener);
+        mActivityTestRule.loadUrlSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
+                TestContentProvider.createContentUrl("content_access"));
+        Assert.assertEquals("\"content://\"",
+                mActivityTestRule.executeJavaScriptAndWaitForResult(
+                        mAwContents, mContentsClient, "window.origin"));
+
+        verifyOnPostMessageOriginIsNull();
+    }
+
+    @Test
+    @MediumTest
+    @Feature({"AndroidWebView", "JsJavaInteraction"})
+    public void testContentSchemeUrl_setAllowFileAccessFromFileURLs_false() throws Throwable {
+        mAwContents.getSettings().setAllowContentAccess(true);
+        // The default value is false on JELLY_BEAN and above, but we explicitly set this to
+        // false to readability.
+        mAwContents.getSettings().setAllowFileAccessFromFileURLs(false);
+        addWebMessageListenerOnUiThread(mAwContents, JS_OBJECT_NAME, new String[] {"*"}, mListener);
+        mActivityTestRule.loadUrlSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
+                TestContentProvider.createContentUrl("content_access"));
+        Assert.assertEquals("\"null\"",
+                mActivityTestRule.executeJavaScriptAndWaitForResult(
+                        mAwContents, mContentsClient, "window.origin"));
+
+        verifyOnPostMessageOriginIsNull();
+    }
+
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "JsJavaInteraction"})
diff --git a/android_webview/nonembedded/README.md b/android_webview/nonembedded/README.md
index cf62080..bd9fa56 100644
--- a/android_webview/nonembedded/README.md
+++ b/android_webview/nonembedded/README.md
@@ -58,4 +58,5 @@
   declare either process depending on what it needs.
 - Activities also need an explicit `android:taskAffinity`, otherwise using the
   WebView Activity will replace the current Chrome session from the task stack
-  (or vice versa).
+  (or vice versa). The taskAffinity should include the WebView package name,
+  otherwise Activities from different WebView channels will trample each other.
diff --git a/android_webview/nonembedded/java/AndroidManifest.xml b/android_webview/nonembedded/java/AndroidManifest.xml
index e42283d2..bd69d86 100644
--- a/android_webview/nonembedded/java/AndroidManifest.xml
+++ b/android_webview/nonembedded/java/AndroidManifest.xml
@@ -39,7 +39,7 @@
                       android:icon="@drawable/icon_webview"
                       android:theme="@style/Theme.DevUi.DayNight"
                       android:launchMode="singleTask"
-                      android:taskAffinity="org.chromium.android_webview.devui" {# Explicit taskAffinity to distinguish from monochrome browser task. #}
+                      android:taskAffinity="{{ manifest_package }}.org.chromium.android_webview.devui" {# Explicit taskAffinity to distinguish from monochrome browser task. #}
                       android:process=":webview_apk">  {# Explicit process required for monochrome compatibility. #}
                 <intent-filter>
                     <action android:name="com.android.webview.SHOW_DEV_UI" />
@@ -55,14 +55,14 @@
                       android:label="WebView Crashes"
                       android:theme="@style/Theme.DevUi.DayNight"
                       android:launchMode="singleTop"
-                      android:taskAffinity="org.chromium.android_webview.devui" {# Explicit taskAffinity to distinguish from monochrome browser task. #}
+                      android:taskAffinity="{{ manifest_package }}.org.chromium.android_webview.devui" {# Explicit taskAffinity to distinguish from monochrome browser task. #}
                       android:process=":webview_apk">  {# Explicit process required for monochrome compatibility. #}
             </activity>
             <activity android:name="org.chromium.android_webview.devui.FlagsActivity"
                       android:label="WebView Flags"
                       android:theme="@style/Theme.DevUi.DayNight"
                       android:launchMode="singleTop"
-                      android:taskAffinity="org.chromium.android_webview.devui" {# Explicit taskAffinity to distinguish from monochrome browser task. #}
+                      android:taskAffinity="{{ manifest_package }}.org.chromium.android_webview.devui" {# Explicit taskAffinity to distinguish from monochrome browser task. #}
                       android:process=":webview_apk">  {# Explicit process required for monochrome compatibility. #}
             </activity>
             <!-- End of WebView Developer UI Activities -->
diff --git a/ash/app_list/views/search_result_page_view.cc b/ash/app_list/views/search_result_page_view.cc
index bb89382..a3ab03b0 100644
--- a/ash/app_list/views/search_result_page_view.cc
+++ b/ash/app_list/views/search_result_page_view.cc
@@ -23,6 +23,7 @@
 #include "ash/public/cpp/view_shadow.h"
 #include "base/bind.h"
 #include "base/memory/ptr_util.h"
+#include "base/optional.h"
 #include "base/strings/string_number_conversions.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/chromeos/search_box/search_box_constants.h"
@@ -199,7 +200,7 @@
   scroller->ClipHeightTo(0, 0);
   scroller->SetVerticalScrollBar(
       std::make_unique<ZeroWidthVerticalScrollBar>());
-  scroller->SetBackgroundColor(SK_ColorTRANSPARENT);
+  scroller->SetBackgroundColor(base::nullopt);
   AddChildView(std::move(scroller));
 
   SetLayoutManager(std::make_unique<views::FillLayout>());
diff --git a/ash/assistant/ui/base/assistant_scroll_view.cc b/ash/assistant/ui/base/assistant_scroll_view.cc
index d6b3a6b..023a717c 100644
--- a/ash/assistant/ui/base/assistant_scroll_view.cc
+++ b/ash/assistant/ui/base/assistant_scroll_view.cc
@@ -7,6 +7,7 @@
 #include <memory>
 #include <utility>
 
+#include "base/optional.h"
 #include "ui/views/controls/scrollbar/overlay_scroll_bar.h"
 
 namespace ash {
@@ -96,7 +97,7 @@
 }
 
 void AssistantScrollView::InitLayout() {
-  SetBackgroundColor(SK_ColorTRANSPARENT);
+  SetBackgroundColor(base::nullopt);
   SetDrawOverflowIndicator(false);
 
   // Content view.
diff --git a/ash/display/mirror_window_controller.cc b/ash/display/mirror_window_controller.cc
index 213c47ca..2caa6e0a 100644
--- a/ash/display/mirror_window_controller.cc
+++ b/ash/display/mirror_window_controller.cc
@@ -25,7 +25,6 @@
 #include "ui/aura/window_tree_host.h"
 #include "ui/base/layout.h"
 #include "ui/base/ui_base_features.h"
-#include "ui/base/ui_base_switches_util.h"
 #include "ui/display/display_layout.h"
 #include "ui/display/display_transform.h"
 #include "ui/display/manager/display_layout_store.h"
diff --git a/ash/display/overscan_calibrator_unittest.cc b/ash/display/overscan_calibrator_unittest.cc
index 2b2991f5..8024f800 100644
--- a/ash/display/overscan_calibrator_unittest.cc
+++ b/ash/display/overscan_calibrator_unittest.cc
@@ -33,7 +33,7 @@
   auto* display_manager = Shell::Get()->display_manager();
 
   int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id();
-  std::string id_str = base::StringPrintf("%ld", display_id);
+  std::string id_str = base::StringPrintf("%" PRId64, display_id);
 
   auto* calibrator = StartCalibration(id_str);
   calibrator->UpdateInsets(gfx::Insets(100, 5, 10, 15));
diff --git a/ash/display/window_tree_host_manager.cc b/ash/display/window_tree_host_manager.cc
index fc45fb956..c22e360 100644
--- a/ash/display/window_tree_host_manager.cc
+++ b/ash/display/window_tree_host_manager.cc
@@ -42,7 +42,6 @@
 #include "ui/base/ime/init/input_method_factory.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/ui_base_features.h"
-#include "ui/base/ui_base_switches_util.h"
 #include "ui/compositor/compositor.h"
 #include "ui/compositor/compositor_switches.h"
 #include "ui/display/display.h"
diff --git a/ash/login/ui/lock_debug_view.cc b/ash/login/ui/lock_debug_view.cc
index 2e7bf686..4ba2e506 100644
--- a/ash/login/ui/lock_debug_view.cc
+++ b/ash/login/ui/lock_debug_view.cc
@@ -753,7 +753,7 @@
         views::ScrollView::CreateScrollViewWithBorder();
     scroll->SetPreferredSize(gfx::Size(600, height));
     scroll->SetContents(base::WrapUnique(content));
-    scroll->SetBackgroundColor(SK_ColorTRANSPARENT);
+    scroll->SetBackgroundColor(base::nullopt);
     scroll->SetVerticalScrollBar(
         std::make_unique<views::OverlayScrollBar>(false));
     scroll->SetHorizontalScrollBar(
diff --git a/ash/login/ui/scrollable_users_list_view.cc b/ash/login/ui/scrollable_users_list_view.cc
index a05410e..fdb7c024 100644
--- a/ash/login/ui/scrollable_users_list_view.cc
+++ b/ash/login/ui/scrollable_users_list_view.cc
@@ -16,6 +16,7 @@
 #include "ash/wallpaper/wallpaper_controller_impl.h"
 #include "base/bind.h"
 #include "base/numerics/ranges.h"
+#include "base/optional.h"
 #include "base/timer/timer.h"
 #include "ui/compositor/scoped_layer_animation_settings.h"
 #include "ui/display/screen.h"
@@ -331,7 +332,7 @@
       ->set_main_axis_alignment(views::BoxLayout::MainAxisAlignment::kCenter);
   ensure_min_height->AddChildView(user_view_host_);
   SetContents(std::move(ensure_min_height));
-  SetBackgroundColor(SK_ColorTRANSPARENT);
+  SetBackgroundColor(base::nullopt);
   SetDrawOverflowIndicator(false);
 
   SetVerticalScrollBar(std::make_unique<UsersListScrollBar>(false));
diff --git a/ash/public/cpp/ash_features.cc b/ash/public/cpp/ash_features.cc
index 6ecd217..7d705f0 100644
--- a/ash/public/cpp/ash_features.cc
+++ b/ash/public/cpp/ash_features.cc
@@ -66,6 +66,9 @@
 const base::Feature kNotificationExpansionAnimation{
     "NotificationExpansionAnimation", base::FEATURE_DISABLED_BY_DEFAULT};
 
+const base::Feature kNotificationExperimentalShortTimeouts{
+    "NotificationExperimentalShortTimeouts", base::FEATURE_DISABLED_BY_DEFAULT};
+
 const base::Feature kNotificationScrollBar{"NotificationScrollBar",
                                            base::FEATURE_DISABLED_BY_DEFAULT};
 
@@ -148,6 +151,10 @@
   return base::FeatureList::IsEnabled(kNotificationScrollBar);
 }
 
+bool IsNotificationExperimentalShortTimeoutsEnabled() {
+  return base::FeatureList::IsEnabled(kNotificationExperimentalShortTimeouts);
+}
+
 bool IsPipRoundedCornersEnabled() {
   return base::FeatureList::IsEnabled(kPipRoundedCorners);
 }
diff --git a/ash/public/cpp/ash_features.h b/ash/public/cpp/ash_features.h
index 022a1f3..5a4a8e8 100644
--- a/ash/public/cpp/ash_features.h
+++ b/ash/public/cpp/ash_features.h
@@ -84,6 +84,10 @@
 // Enabled notification expansion animation.
 ASH_PUBLIC_EXPORT extern const base::Feature kNotificationExpansionAnimation;
 
+// Shorten notification timeouts to 6 seconds.
+ASH_PUBLIC_EXPORT extern const base::Feature
+    kNotificationExperimentalShortTimeouts;
+
 // Enables notification scroll bar in UnifiedSystemTray.
 ASH_PUBLIC_EXPORT extern const base::Feature kNotificationScrollBar;
 
@@ -160,6 +164,8 @@
 
 ASH_PUBLIC_EXPORT bool IsNotificationExpansionAnimationEnabled();
 
+ASH_PUBLIC_EXPORT bool IsNotificationExperimentalShortTimeoutsEnabled();
+
 ASH_PUBLIC_EXPORT bool IsNotificationScrollBarEnabled();
 
 ASH_PUBLIC_EXPORT bool IsPipRoundedCornersEnabled();
diff --git a/ash/quick_answers/quick_answers_controller_impl.cc b/ash/quick_answers/quick_answers_controller_impl.cc
index 04ebafd..5d1bd96 100644
--- a/ash/quick_answers/quick_answers_controller_impl.cc
+++ b/ash/quick_answers/quick_answers_controller_impl.cc
@@ -78,6 +78,8 @@
     quick_answers_ui_controller_->RenderQuickAnswersViewWithResult(
         anchor_bounds_, quick_answer_with_no_result);
   }
+
+  quick_answer_ = std::move(quick_answer);
 }
 
 void QuickAnswersControllerImpl::OnEligibilityChanged(bool eligible) {
@@ -94,6 +96,12 @@
   request.selected_text = query_;
   quick_answers_client_->SendRequest(request);
 }
+
+void QuickAnswersControllerImpl::OnQuickAnswerClick() {
+  quick_answers_client_->OnQuickAnswerClick(
+      quick_answer_ ? quick_answer_->result_type : ResultType::kNoResult);
+}
+
 void QuickAnswersControllerImpl::UpdateQuickAnswersAnchorBounds(
     const gfx::Rect& anchor_bounds) {
   quick_answers_ui_controller_->UpdateQuickAnswersBounds(anchor_bounds);
diff --git a/ash/quick_answers/quick_answers_controller_impl.h b/ash/quick_answers/quick_answers_controller_impl.h
index 9676849..494b8a4 100644
--- a/ash/quick_answers/quick_answers_controller_impl.h
+++ b/ash/quick_answers/quick_answers_controller_impl.h
@@ -57,6 +57,9 @@
   // Retry sending quick answers request to backend.
   void OnRetryQuickAnswersRequest();
 
+  // User clicks on the quick answer result.
+  void OnQuickAnswerClick();
+
   // Update the bounds of the anchor view.
   void UpdateQuickAnswersAnchorBounds(const gfx::Rect& anchor_bounds);
 
@@ -77,6 +80,9 @@
   bool is_eligible_ = false;
 
   std::unique_ptr<QuickAnswersUiController> quick_answers_ui_controller_;
+
+  // The last received QuickAnswer from client.
+  std::unique_ptr<chromeos::quick_answers::QuickAnswer> quick_answer_;
 };
 
 }  // namespace ash
diff --git a/ash/quick_answers/quick_answers_ui_controller.cc b/ash/quick_answers/quick_answers_ui_controller.cc
index 768f380..cc4d6405 100644
--- a/ash/quick_answers/quick_answers_ui_controller.cc
+++ b/ash/quick_answers/quick_answers_ui_controller.cc
@@ -50,6 +50,7 @@
   assistant_controller->StartTextInteraction(
       query_, /*allow_tts=*/false,
       chromeos::assistant::mojom::AssistantQuerySource::kQuickAnswers);
+  controller_->OnQuickAnswerClick();
 }
 
 void QuickAnswersUiController::Close() {
diff --git a/ash/shelf/hotseat_widget.cc b/ash/shelf/hotseat_widget.cc
index 3f55575..b8d7d6d 100644
--- a/ash/shelf/hotseat_widget.cc
+++ b/ash/shelf/hotseat_widget.cc
@@ -39,10 +39,6 @@
 namespace ash {
 namespace {
 
-bool IsScrollableShelfEnabled() {
-  return chromeos::switches::ShouldShowScrollableShelf();
-}
-
 // Custom window targeter for the hotseat. Used so the hotseat only processes
 // events that land on the visible portion of the hotseat, and only while the
 // hotseat is not animating.
@@ -88,6 +84,53 @@
 
 }  // namespace
 
+// Records smoothness of animations for background of the hotseat widget.
+class HotseatWidgetBackgroundAnimationMetricsReporter
+    : public HotseatTransitionAnimator::Observer,
+      public ui::AnimationMetricsReporter {
+ public:
+  explicit HotseatWidgetBackgroundAnimationMetricsReporter(HotseatState state)
+      : target_state_(state) {}
+
+  ~HotseatWidgetBackgroundAnimationMetricsReporter() override = default;
+
+  void OnHotseatTransitionAnimationWillStart(HotseatState from_state,
+                                             HotseatState to_state) override {
+    target_state_ = to_state;
+  }
+
+  // ui::AnimationMetricsReporter:
+  void Report(int value) override {
+    switch (target_state_) {
+      case HotseatState::kShownClamshell:
+      case HotseatState::kShownHomeLauncher:
+        UMA_HISTOGRAM_PERCENTAGE(
+            "Ash.HotseatWidgetAnimation.TranslucentBackground."
+            "AnimationSmoothness.TransitionToShownHotseat",
+            value);
+        break;
+      case HotseatState::kExtended:
+        UMA_HISTOGRAM_PERCENTAGE(
+            "Ash.HotseatWidgetAnimation.TranslucentBackground."
+            "AnimationSmoothness.TransitionToExtendedHotseat",
+            value);
+        break;
+      case HotseatState::kHidden:
+        UMA_HISTOGRAM_PERCENTAGE(
+            "Ash.HotseatWidgetAnimation.TranslucentBackground."
+            "AnimationSmoothness.TransitionToHiddenHotseat",
+            value);
+        break;
+      default:
+        NOTREACHED();
+    }
+  }
+
+ private:
+  // The state to which the animation is transitioning.
+  HotseatState target_state_;
+};
+
 class HotseatWidget::DelegateView : public HotseatTransitionAnimator::Observer,
                                     public views::WidgetDelegateView,
                                     public OverviewObserver,
@@ -100,7 +143,8 @@
 
   // Initializes the view.
   void Init(ScrollableShelfView* scrollable_shelf_view,
-            ui::Layer* parent_layer);
+            ui::Layer* parent_layer,
+            ui::AnimationMetricsReporter* background_metrics_reporter);
 
   // Updates the hotseat background.
   void UpdateTranslucentBackground();
@@ -145,6 +189,8 @@
   ScrollableShelfView* scrollable_shelf_view_ = nullptr;  // unowned.
   // Blur is disabled during animations to improve performance.
   bool blur_lock_ = false;
+  // Owned by the Hotseat Widget.
+  ui::AnimationMetricsReporter* background_metrics_reporter_;
 
   // The most recent color that the |translucent_background_| has been animated
   // to.
@@ -156,8 +202,7 @@
 HotseatWidget::DelegateView::~DelegateView() {
   WallpaperControllerImpl* wallpaper_controller =
       Shell::Get()->wallpaper_controller();
-  OverviewController* overview_controller =
-      Shell::Get()->overview_controller();
+  OverviewController* overview_controller = Shell::Get()->overview_controller();
   if (wallpaper_controller)
     wallpaper_controller->RemoveObserver(this);
   if (overview_controller)
@@ -166,16 +211,13 @@
 
 void HotseatWidget::DelegateView::Init(
     ScrollableShelfView* scrollable_shelf_view,
-    ui::Layer* parent_layer) {
+    ui::Layer* parent_layer,
+    ui::AnimationMetricsReporter* background_metrics_reporter) {
   SetLayoutManager(std::make_unique<views::FillLayout>());
 
-  if (!chromeos::switches::ShouldShowScrollableShelf())
-    return;
-
   WallpaperControllerImpl* wallpaper_controller =
       Shell::Get()->wallpaper_controller();
-  OverviewController* overview_controller =
-      Shell::Get()->overview_controller();
+  OverviewController* overview_controller = Shell::Get()->overview_controller();
   if (wallpaper_controller)
     wallpaper_controller->AddObserver(this);
   if (overview_controller)
@@ -185,6 +227,7 @@
   DCHECK(scrollable_shelf_view);
   scrollable_shelf_view_ = scrollable_shelf_view;
   UpdateTranslucentBackground();
+  background_metrics_reporter_ = background_metrics_reporter;
 }
 
 void HotseatWidget::DelegateView::UpdateTranslucentBackground() {
@@ -219,6 +262,8 @@
   animation_setter.SetTweenType(gfx::Tween::EASE_OUT);
   animation_setter.SetPreemptionStrategy(
       ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
+  if (animate)
+    animation_setter.SetAnimationMetricsReporter(background_metrics_reporter_);
 
   if (ShelfConfig::Get()->GetDefaultShelfColor() != target_color_) {
     target_color_ = ShelfConfig::Get()->GetDefaultShelfColor();
@@ -265,9 +310,6 @@
 }
 
 void HotseatWidget::DelegateView::ReorderChildLayers(ui::Layer* parent_layer) {
-  if (!chromeos::switches::ShouldShowScrollableShelf())
-    return;
-
   views::View::ReorderChildLayers(parent_layer);
   parent_layer->StackAtBottom(&translucent_background_);
 }
@@ -323,19 +365,14 @@
   set_focus_on_creation(false);
   GetFocusManager()->set_arrow_key_traversal_enabled_for_widget(true);
 
-  if (IsScrollableShelfEnabled()) {
-    scrollable_shelf_view_ = GetContentsView()->AddChildView(
-        std::make_unique<ScrollableShelfView>(ShelfModel::Get(), shelf));
-    scrollable_shelf_view_->Init();
-  } else {
-    // The shelf view observes the shelf model and creates icons as items are
-    // added to the model.
-    shelf_view_ = GetContentsView()->AddChildView(std::make_unique<ShelfView>(
-        ShelfModel::Get(), shelf, /*drag_and_drop_host=*/nullptr,
-        /*shelf_button_delegate=*/nullptr));
-    shelf_view_->Init();
-  }
-  delegate_view_->Init(scrollable_shelf_view(), GetLayer());
+  scrollable_shelf_view_ = GetContentsView()->AddChildView(
+      std::make_unique<ScrollableShelfView>(ShelfModel::Get(), shelf));
+  scrollable_shelf_view_->Init();
+  traslucent_background_metrics_reporter_ =
+      std::make_unique<HotseatWidgetBackgroundAnimationMetricsReporter>(
+          state());
+  delegate_view_->Init(scrollable_shelf_view(), GetLayer(),
+                       traslucent_background_metrics_reporter_.get());
 }
 
 void HotseatWidget::OnHotseatTransitionAnimatorCreated(
@@ -362,11 +399,7 @@
   if (!Widget::OnNativeWidgetActivationChanged(active))
     return false;
 
-  if (IsScrollableShelfEnabled())
-    scrollable_shelf_view_->OnFocusRingActivationChanged(active);
-  else if (active)
-    GetShelfView()->SetPaneFocusAndFocusDefault();
-
+  scrollable_shelf_view_->OnFocusRingActivationChanged(active);
   return true;
 }
 
@@ -541,13 +574,8 @@
 }
 
 ShelfView* HotseatWidget::GetShelfView() {
-  if (IsScrollableShelfEnabled()) {
-    DCHECK(scrollable_shelf_view_);
-    return scrollable_shelf_view_->shelf_view();
-  }
-
-  DCHECK(shelf_view_);
-  return shelf_view_;
+  DCHECK(scrollable_shelf_view_);
+  return scrollable_shelf_view_->shelf_view();
 }
 
 int HotseatWidget::GetHotseatBackgroundBlurForTest() const {
@@ -569,9 +597,6 @@
 
   state_ = state;
 
-  if (!IsScrollableShelfEnabled())
-    return;
-
   // If the hotseat is not extended we can use the normal targeting as the
   // hidden parts of the hotseat will not block non-shelf items from taking
   if (state == HotseatState::kExtended) {
diff --git a/ash/shelf/hotseat_widget.h b/ash/shelf/hotseat_widget.h
index c6c5d59..940cf26 100644
--- a/ash/shelf/hotseat_widget.h
+++ b/ash/shelf/hotseat_widget.h
@@ -23,6 +23,7 @@
 class Shelf;
 class ShelfView;
 class HotseatTransitionAnimator;
+class HotseatWidgetBackgroundAnimationMetricsReporter;
 
 // The hotseat widget is part of the shelf and hosts app shortcuts.
 class ASH_EXPORT HotseatWidget : public ShelfComponent,
@@ -143,7 +144,6 @@
 
   // View containing the shelf items within an active user session. Owned by
   // the views hierarchy.
-  ShelfView* shelf_view_ = nullptr;
   ScrollableShelfView* scrollable_shelf_view_ = nullptr;
 
   // The contents view of this widget. Contains |shelf_view_| and the background
@@ -159,6 +159,11 @@
   // during an animation.
   std::unique_ptr<aura::ScopedWindowTargeter> hotseat_window_targeter_;
 
+  // Metrics reporter for animations of the traslucent background in the
+  // hotseat.
+  std::unique_ptr<HotseatWidgetBackgroundAnimationMetricsReporter>
+      traslucent_background_metrics_reporter_;
+
   DISALLOW_COPY_AND_ASSIGN(HotseatWidget);
 };
 
diff --git a/ash/shelf/scrollable_shelf_view.cc b/ash/shelf/scrollable_shelf_view.cc
index 6114786..2b7ca245 100644
--- a/ash/shelf/scrollable_shelf_view.cc
+++ b/ash/shelf/scrollable_shelf_view.cc
@@ -1237,7 +1237,6 @@
   }
 
   const bool drag_originated_from_app_list =
-      chromeos::switches::ShouldShowScrollableShelf() &&
       shelf_view_->IsShelfViewHandlingDragAndDrop();
 
   // The drag proxy is the DragImageView created for the DragAndDropHost which
diff --git a/ash/shelf/scrollable_shelf_view_unittest.cc b/ash/shelf/scrollable_shelf_view_unittest.cc
index 9aa00d9..664cfc94 100644
--- a/ash/shelf/scrollable_shelf_view_unittest.cc
+++ b/ash/shelf/scrollable_shelf_view_unittest.cc
@@ -75,8 +75,6 @@
   ~ScrollableShelfViewTest() override = default;
 
   void SetUp() override {
-    scoped_feature_list_.InitWithFeatures(
-        {chromeos::features::kShelfScrollable}, {});
 
     AshTestBase::SetUp();
     scrollable_shelf_view_ = GetPrimaryShelf()
@@ -90,7 +88,6 @@
   }
 
   void TearDown() override {
-    scoped_feature_list_.Reset();
     AshTestBase::TearDown();
   }
 
@@ -168,7 +165,6 @@
     EXPECT_LE(ripple_right, shelf_container_bounds_in_screen.right());
   }
 
-  base::test::ScopedFeatureList scoped_feature_list_;
   ScrollableShelfView* scrollable_shelf_view_ = nullptr;
   ShelfView* shelf_view_ = nullptr;
   std::unique_ptr<ShelfViewTestAPI> test_api_;
diff --git a/ash/shelf/shelf.cc b/ash/shelf/shelf.cc
index a88e0d7..45eeb8d0 100644
--- a/ash/shelf/shelf.cc
+++ b/ash/shelf/shelf.cc
@@ -79,19 +79,19 @@
       case HotseatState::kShownClamshell:
       case HotseatState::kShownHomeLauncher:
         UMA_HISTOGRAM_PERCENTAGE(
-            "Ash.HotseatWidgetAnimation.AnimationSmoothness."
+            "Ash.HotseatWidgetAnimation.Widget.AnimationSmoothness."
             "TransitionToShownHotseat",
             value);
         break;
       case HotseatState::kExtended:
         UMA_HISTOGRAM_PERCENTAGE(
-            "Ash.HotseatWidgetAnimation.AnimationSmoothness."
+            "Ash.HotseatWidgetAnimation.Widget.AnimationSmoothness."
             "TransitionToExtendedHotseat",
             value);
         break;
       case HotseatState::kHidden:
         UMA_HISTOGRAM_PERCENTAGE(
-            "Ash.HotseatWidgetAnimation.AnimationSmoothness."
+            "Ash.HotseatWidgetAnimation.Widget.AnimationSmoothness."
             "TransitionToHiddenHotseat",
             value);
         break;
diff --git a/ash/shelf/shelf_focus_cycler.cc b/ash/shelf/shelf_focus_cycler.cc
index eb270de..a55202b4 100644
--- a/ash/shelf/shelf_focus_cycler.cc
+++ b/ash/shelf/shelf_focus_cycler.cc
@@ -76,13 +76,8 @@
     Shell::Get()->focus_cycler()->FocusWidget(shelf_widget);
   } else {
     HotseatWidget* hotseat_widget = shelf_->hotseat_widget();
-    if (chromeos::switches::ShouldShowScrollableShelf()) {
-      hotseat_widget->scrollable_shelf_view()->set_default_last_focusable_child(
-          last_element);
-    } else {
-      hotseat_widget->GetShelfView()->set_default_last_focusable_child(
-          last_element);
-    }
+    hotseat_widget->scrollable_shelf_view()->set_default_last_focusable_child(
+        last_element);
     Shell::Get()->focus_cycler()->FocusWidget(hotseat_widget);
   }
 }
diff --git a/ash/shelf/shelf_layout_manager_unittest.cc b/ash/shelf/shelf_layout_manager_unittest.cc
index 52e04699..cf254eeb 100644
--- a/ash/shelf/shelf_layout_manager_unittest.cc
+++ b/ash/shelf/shelf_layout_manager_unittest.cc
@@ -201,7 +201,7 @@
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
-// Used to test the Hotseat, ScrollabeShelf, and DenseShelf features.
+// Used to test the Hotseat, ScrollableShelf, and DenseShelf features.
 INSTANTIATE_TEST_SUITE_P(All, ShelfLayoutManagerTest, testing::Bool());
 
 // Makes sure SetVisible updates work area and widget appropriately.
diff --git a/ash/shelf/shelf_view.cc b/ash/shelf/shelf_view.cc
index 434ac5c..81748c1 100644
--- a/ash/shelf/shelf_view.cc
+++ b/ash/shelf/shelf_view.cc
@@ -316,10 +316,6 @@
   Shell::Get()->RemoveShellObserver(this);
   bounds_animator_->RemoveObserver(this);
   model_->RemoveObserver(this);
-
-  // Resets the shelf tooltip delegate when the main shelf gets destroyed.
-  if (!chromeos::switches::ShouldShowScrollableShelf())
-    shelf_->tooltip()->set_shelf_tooltip_delegate(nullptr);
 }
 
 int ShelfView::GetSizeOfAppIcons(int count) {
@@ -355,12 +351,6 @@
   }
 
   // We'll layout when our bounds change.
-
-  if (!chromeos::switches::ShouldShowScrollableShelf()) {
-    // Add the main shelf view as ShelfTooltipDelegate when scrollable shelf
-    // is not enabled.
-    shelf_->tooltip()->set_shelf_tooltip_delegate(this);
-  }
 }
 
 gfx::Rect ShelfView::GetIdealBoundsOfItemIcon(const ShelfID& id) {
@@ -512,11 +502,6 @@
   // an exception of usage within the scrollable shelf. With scrollable shelf
   // (and hotseat), tablet mode transition causes hotseat bounds changes, so
   // animating shelf items as well would introduce a lag.
-  if (shelf_->is_tablet_mode_animation_running() &&
-      !chromeos::switches::ShouldShowScrollableShelf()) {
-    AnimateToIdealBounds();
-    return;
-  }
 
   BoundsAnimatorDisabler disabler(bounds_animator_.get());
 
@@ -541,12 +526,7 @@
 
   switch (event->type()) {
     case ui::ET_MOUSEWHEEL:
-      // The mousewheel event is handled by the ScrollableShelfView, but if the
-      // scrollable shelf is not active, then we delegate the event to the
-      // shelf.
-      if (!chromeos::switches::ShouldShowScrollableShelf())
-        shelf_->ProcessMouseWheelEvent(event->AsMouseWheelEvent(),
-                                       /*from_touchpad=*/false);
+      // The mousewheel event is handled by the ScrollableShelfView.
       break;
     case ui::ET_MOUSE_PRESSED:
       if (!event->IsOnlyLeftMouseButton()) {
@@ -576,12 +556,8 @@
 }
 
 views::FocusTraversable* ShelfView::GetPaneFocusTraversable() {
-  // ScrollableShelfView should handles the focus traversal if the flag
-  // is enabled.
-  if (chromeos::switches::ShouldShowScrollableShelf())
-    return nullptr;
-
-  return this;
+  // ScrollableShelfView should handles the focus traversal.
+  return nullptr;
 }
 
 const char* ShelfView::GetClassName() const {
@@ -823,12 +799,10 @@
   drag_image_->GetWidget()->SetVisibilityAnimationTransition(
       views::Widget::ANIMATE_NONE);
   drag_image_->SetWidgetVisible(true);
-  if (chromeos::switches::ShouldShowScrollableShelf()) {
-    // Add a layer in order to ensure the icon properly animates when a drag
-    // starts from AppsGridView and ends in the Shelf.
-    drag_image_->SetPaintToLayer();
-    drag_image_->layer()->SetFillsBoundsOpaquely(false);
-  }
+  // Add a layer in order to ensure the icon properly animates when a drag
+  // starts from AppsGridView and ends in the Shelf.
+  drag_image_->SetPaintToLayer();
+  drag_image_->layer()->SetFillsBoundsOpaquely(false);
 }
 
 void ShelfView::UpdateDragIconProxy(
@@ -907,8 +881,6 @@
 
   const int button_spacing = ShelfConfig::Get()->button_spacing();
   const int separator_index = GetSeparatorIndex();
-  const AppCenteringStrategy app_centering_strategy =
-      CalculateAppCenteringStrategy();
 
   // Don't show the separator if it isn't needed, or would appear after all
   // visible items.
@@ -918,39 +890,7 @@
   int x = shelf()->PrimaryAxisValue(app_icons_layout_offset_, 0);
   int y = shelf()->PrimaryAxisValue(0, app_icons_layout_offset_);
 
-  // When scrollable shelf is enabled, the padding is handled in
-  // ScrollableShelfView.
-  if (!chromeos::switches::ShouldShowScrollableShelf()) {
-    // Now add the necessary padding to center app icons.
-    const gfx::Rect display_bounds =
-        screen_util::GetDisplayBoundsWithShelf(GetWidget()->GetNativeWindow());
-    const int display_size_primary = shelf()->PrimaryAxisValue(
-        display_bounds.size().width(), display_bounds.size().height());
-
-    const int available_size_for_app_icons = GetAvailableSpaceForAppIcons();
-    const int icons_size = GetSizeOfAppIcons(number_of_visible_apps());
-    int padding_for_centering = 0;
-
-    if (app_centering_strategy.center_on_screen) {
-      // This is how far the first icon needs to be from the screen edge.
-      padding_for_centering = (display_size_primary - icons_size) / 2;
-
-      // Let's see how far this view is from the edge of this display to
-      // compute how much extra padding is needed.
-      gfx::Point origin = gfx::Point(0, 0);
-      views::View::ConvertPointToScreen(this, &origin);
-      padding_for_centering -= shelf_->IsHorizontalAlignment()
-                                   ? (origin.x() - display_bounds.x())
-                                   : (origin.y() - display_bounds.y());
-    } else {
-      padding_for_centering = (available_size_for_app_icons - icons_size) / 2;
-    }
-
-    if (padding_for_centering > 0) {
-      x = shelf()->PrimaryAxisValue(padding_for_centering, 0);
-      y = shelf()->PrimaryAxisValue(0, padding_for_centering);
-    }
-  }
+  // The padding is handled in ScrollableShelfView.
 
   for (int i = 0; i < view_model()->view_size(); ++i) {
     const int button_size = ShelfConfig::Get()->button_size();
@@ -1033,65 +973,6 @@
   return -1;
 }
 
-ShelfView::AppCenteringStrategy ShelfView::CalculateAppCenteringStrategy() {
-  AppCenteringStrategy strategy;
-
-  // When the scrollable shelf is enabled, overflow mode is disabled. Meanwhile,
-  // centering padding is calculated in ScrollableShelfView, which means that
-  // |center_on_screen| is always false.
-  if (chromeos::switches::ShouldShowScrollableShelf())
-    return strategy;
-
-  // There are two possibilities. Either all the apps fit when centered
-  // on the whole screen width, in which case we do that. Or, when space
-  // becomes a little tight (which happens especially when the status area
-  // is wider because of extra panels), we center apps on the available space.
-
-  const int total_available_size = shelf()->PrimaryAxisValue(width(), height());
-  StatusAreaWidget* status_widget = shelf_widget()->status_area_widget();
-  const int status_widget_size =
-      status_widget ? shelf()->PrimaryAxisValue(
-                          status_widget->GetWindowBoundsInScreen().width(),
-                          status_widget->GetWindowBoundsInScreen().height())
-                    : 0;
-  const int screen_size = total_available_size + status_widget_size;
-
-  // An easy way to check whether the apps fit at the exact center of the
-  // screen is to imagine that we have another status widget on the other
-  // side (the status widget is always bigger than the home button plus
-  // the back button if applicable) and see if the apps can fit in the middle.
-  int available_space_for_screen_centering =
-      screen_size -
-      2 * (status_widget_size + ShelfConfig::Get()->app_icon_group_margin());
-
-  if (GetSizeOfAppIcons(view_model()->view_size()) <
-      available_space_for_screen_centering) {
-    // Everything fits in the center of the screen.
-    last_visible_index_ = view_model()->view_size() - 1;
-    strategy.center_on_screen = true;
-    return strategy;
-  }
-
-  const int available_size_for_app_icons = GetAvailableSpaceForAppIcons();
-  last_visible_index_ = -1;
-  // We know that replacing the last app that fits with the overflow button
-  // will not change the outcome, so we ignore that case for now.
-  while (last_visible_index() < view_model()->view_size() - 1) {
-    if (GetSizeOfAppIcons(last_visible_index() + 2) <=
-        available_size_for_app_icons) {
-      last_visible_index_++;
-    } else {
-      strategy.overflow = true;
-      // Make space for the overflow button by showing one fewer app icon. If
-      // we already don't have enough space, don't decrement the last visible
-      // index further than -1.
-      last_visible_index_ = std::max(-1, last_visible_index_ - 1);
-      break;
-    }
-  }
-  return strategy;
-}
-
 void ShelfView::DestroyDragIconProxy() {
   drag_image_.reset();
   drag_image_offset_ = gfx::Vector2d(0, 0);
@@ -1192,13 +1073,11 @@
   } else if (drag_and_drop_view) {
     std::unique_ptr<gfx::AnimationDelegate> animation_delegate;
 
-    if (chromeos::switches::ShouldShowScrollableShelf()) {
-      // Resets the dragged view's opacity at the end of drag. Otherwise, if
-      // the app is already pinned on shelf before drag starts, the dragged view
-      // will be invisible when drag ends.
-      animation_delegate = std::make_unique<StartFadeAnimationDelegate>(
-          this, drag_and_drop_view);
-    }
+    // Resets the dragged view's opacity at the end of drag. Otherwise, if
+    // the app is already pinned on shelf before drag starts, the dragged view
+    // will be invisible when drag ends.
+    animation_delegate =
+        std::make_unique<StartFadeAnimationDelegate>(this, drag_and_drop_view);
 
     if (cancel) {
       // When a hosted drag gets canceled, the item can remain in the same slot
@@ -1296,8 +1175,7 @@
   if (drag_pointer_ != NONE)
     return;
 
-  if (chromeos::switches::ShouldShowScrollableShelf())
-    drag_and_drop_host_->DestroyDragIconProxy();
+  drag_and_drop_host_->DestroyDragIconProxy();
 
   // If the drag pointer is NONE, no drag operation is going on and the
   // drag_view can be released.
@@ -1320,10 +1198,7 @@
 }
 
 void ShelfView::OnTabletModeChanged() {
-  // For scrollable shelf, the layout change will happen as part of shelf config
-  // update.
-  if (!chromeos::switches::ShouldShowScrollableShelf())
-    OnBoundsChanged(GetBoundsInScreen());
+  // The layout change will happen as part of shelf config update.
 }
 
 void ShelfView::AnimateToIdealBounds() {
@@ -1375,12 +1250,10 @@
 
   drag_view_->OnDragStarted(&event);
 
-  if (chromeos::switches::ShouldShowScrollableShelf()) {
-    drag_view_->layer()->SetOpacity(0.0f);
-    drag_and_drop_host_->CreateDragIconProxyByLocationWithNoAnimation(
-        event.root_location(), drag_view_->GetImage(), drag_view_,
-        /*scale_factor=*/1.0f, /*blur_radius=*/0);
-  }
+  drag_view_->layer()->SetOpacity(0.0f);
+  drag_and_drop_host_->CreateDragIconProxyByLocationWithNoAnimation(
+      event.root_location(), drag_view_->GetImage(), drag_view_,
+      /*scale_factor=*/1.0f, /*blur_radius=*/0);
 }
 
 void ShelfView::ContinueDrag(const ui::LocatedEvent& event) {
@@ -1408,10 +1281,8 @@
   ConvertPointToTarget(drag_view_, this, &drag_point);
   MoveDragViewTo(shelf_->PrimaryAxisValue(drag_point.x() - drag_origin_.x(),
                                           drag_point.y() - drag_origin_.y()));
-  if (chromeos::switches::ShouldShowScrollableShelf()) {
-    drag_and_drop_host_->UpdateDragIconProxy(drag_point_in_screen -
-                                             drag_origin_.OffsetFromOrigin());
-  }
+  drag_and_drop_host_->UpdateDragIconProxy(drag_point_in_screen -
+                                           drag_origin_.OffsetFromOrigin());
 }
 
 void ShelfView::MoveDragViewTo(int primary_axis_coordinate) {
@@ -1496,12 +1367,9 @@
     // If the shelf/overflow bubble bounds contains |screen_location| we insert
     // the item back into the shelf.
     if (GetBoundsForDragInsertInScreen().Contains(screen_location)) {
-
-      if (chromeos::switches::ShouldShowScrollableShelf()) {
-        drag_and_drop_host_->CreateDragIconProxyByLocationWithNoAnimation(
-            event.root_location(), drag_view_->GetImage(), drag_image_.get(),
-            /*scale_factor=*/1.0f, /*blur_radius=*/0);
-      }
+      drag_and_drop_host_->CreateDragIconProxyByLocationWithNoAnimation(
+          event.root_location(), drag_view_->GetImage(), drag_image_.get(),
+          /*scale_factor=*/1.0f, /*blur_radius=*/0);
 
       // Destroy our proxy view item.
       DestroyDragIconProxy();
@@ -1509,9 +1377,6 @@
       // the move as in any normal case.
       dragged_off_shelf_ = false;
 
-      if (!chromeos::switches::ShouldShowScrollableShelf())
-        drag_view_->layer()->SetOpacity(1.0f);
-
       return false;
     }
     // Move our proxy view item.
@@ -1525,27 +1390,20 @@
   bool dragged_off_shelf = delta > kRipOffDistance;
 
   if (dragged_off_shelf) {
-    // When scrollable shelf is enabled, replaces a proxy icon provided by
-    // drag_and_drop_host_ - keep cursor position consistent with the host
-    // provided icon, and disable visibility animations (to prevent the proxy
-    // icon from lingering on when replaced with the icon provided by host).
-    const bool animate_proxy_visibility =
-        !chromeos::switches::ShouldShowScrollableShelf();
+    // Replaces a proxy icon provided by drag_and_drop_host_ - keep cursor
+    // position consistent with the host provided icon, and disable
+    // visibility animations (to prevent the proxy icon from lingering on
+    // when replaced with the icon provided by the host).
     const gfx::Point center = drag_view_->GetLocalBounds().CenterPoint();
-    const gfx::Vector2d cursor_offset_from_center =
-        chromeos::switches::ShouldShowScrollableShelf() ? drag_origin_ - center
-                                                        : gfx::Vector2d();
+    const gfx::Vector2d cursor_offset_from_center = drag_origin_ - center;
     // Create a proxy view item which can be moved anywhere.
     CreateDragIconProxy(event.root_location(), drag_view_->GetImage(),
                         drag_view_, cursor_offset_from_center,
-                        kDragAndDropProxyScale, animate_proxy_visibility);
+                        kDragAndDropProxyScale, /*animate_visibility=*/false);
 
     dragged_off_shelf_ = true;
 
-    if (chromeos::switches::ShouldShowScrollableShelf())
-      drag_and_drop_host_->DestroyDragIconProxy();
-    else
-      drag_view_->layer()->SetOpacity(0.0f);
+    drag_and_drop_host_->DestroyDragIconProxy();
 
     if (RemovableByRipOff(current_index) == REMOVABLE) {
       // Move the item to the back and hide it. ShelfItemMoved() callback will
@@ -1679,15 +1537,13 @@
 void ShelfView::OnFadeInAnimationEnded() {
   // Call PreferredSizeChanged() to notify container to re-layout at the end
   // of fade-in animation.
-  if (chromeos::switches::ShouldShowScrollableShelf())
-    PreferredSizeChanged();
+  PreferredSizeChanged();
 }
 
 void ShelfView::OnFadeOutAnimationEnded() {
   // Call PreferredSizeChanged() to notify container to re-layout at the end
   // of removal animation.
-  if (chromeos::switches::ShouldShowScrollableShelf())
-    PreferredSizeChanged();
+  PreferredSizeChanged();
 
   AnimateToIdealBounds();
   StartFadeInLastVisibleItem();
@@ -1895,8 +1751,7 @@
     shelf_->tooltip()->Close();
 
   if (view->GetVisible() && view->layer()->opacity() > 0.0f) {
-    if (chromeos::switches::ShouldShowScrollableShelf())
-      UpdateVisibleIndices();
+    UpdateVisibleIndices();
 
     // The first animation fades out the view. When done we'll animate the rest
     // of the views to their target location.
@@ -1914,8 +1769,7 @@
 
     // If there is no fade out animation, notify the parent view of the
     // changed size before bounds animations start.
-    if (chromeos::switches::ShouldShowScrollableShelf())
-      PreferredSizeChanged();
+    PreferredSizeChanged();
 
     // We don't need to show a fade out animation for invisible |view|. When an
     // item is ripped out from the shelf, its |view| is already invisible.
@@ -2157,8 +2011,6 @@
 
   // Do not call PreferredSizeChanged() so that container does not re-layout
   // during the bounds animation.
-  if (!chromeos::switches::ShouldShowScrollableShelf())
-    PreferredSizeChanged();
 }
 
 void ShelfView::OnBoundsAnimatorDone(views::BoundsAnimator* animator) {
@@ -2248,8 +2100,6 @@
 }
 
 void ShelfView::UpdateVisibleIndices() {
-  DCHECK_EQ(true, chromeos::switches::ShouldShowScrollableShelf());
-
   // When the scrollable shelf is enabled, ShelfView's |last_visible_index_| is
   // always the index to the last shelf item.
   first_visible_index_ = view_model()->view_size() == 0 ? -1 : 0;
diff --git a/ash/shelf/shelf_view.h b/ash/shelf/shelf_view.h
index 91c3cb4..1c66527 100644
--- a/ash/shelf/shelf_view.h
+++ b/ash/shelf/shelf_view.h
@@ -317,11 +317,6 @@
     NOT_REMOVABLE,  // Item is fixed and can never be removed.
   };
 
-  struct AppCenteringStrategy {
-    bool center_on_screen = false;
-    bool overflow = false;
-  };
-
   // Minimum distance before drag starts.
   static const int kMinimumDragDistance;
 
@@ -348,11 +343,6 @@
   // or -1 if no separator is required.
   int GetSeparatorIndex() const;
 
-  // This method determines which centering strategy is adequate, returns that,
-  // and sets the |first_visible_index_| and |last_visible_index_| fields
-  // appropriately.
-  AppCenteringStrategy CalculateAppCenteringStrategy();
-
   // Sets the bounds of each view to its ideal bounds.
   void LayoutToIdealBounds();
 
diff --git a/ash/shelf/shelf_view_unittest.cc b/ash/shelf/shelf_view_unittest.cc
index 9c414c53..f7c7e65 100644
--- a/ash/shelf/shelf_view_unittest.cc
+++ b/ash/shelf/shelf_view_unittest.cc
@@ -302,25 +302,6 @@
   second_observer.Reset();
 }
 
-TEST_F(ShelfObserverIconTest, BoundsChanged) {
-  // When scrollable shelf enabled, the shelf view's bounds are calculated in
-  // scrollable shelf and may remain unchanged when shelf widget's bounds are
-  // changed.
-  // TODO(https://crbug.com/1002576): revisit when scrollable shelf is launched.
-  if (chromeos::switches::ShouldShowScrollableShelf())
-    return;
-
-  views::Widget* widget =
-      GetPrimaryShelf()->GetShelfViewForTesting()->GetWidget();
-  gfx::Rect shelf_bounds = widget->GetWindowBoundsInScreen();
-  shelf_bounds.set_width(shelf_bounds.width() / 2);
-  ASSERT_GT(shelf_bounds.width(), 0);
-  widget->SetBounds(shelf_bounds);
-  // No animation happens for ShelfView bounds change.
-  EXPECT_TRUE(observer()->icon_positions_changed());
-  observer()->Reset();
-}
-
 ////////////////////////////////////////////////////////////////////////////////
 // ShelfView tests.
 
@@ -611,8 +592,7 @@
 
   void SetUp() override {
     scoped_feature_list_.InitWithFeatures({},
-                                          {chromeos::features::kShelfScrollable,
-                                           chromeos::features::kShelfHotseat});
+                                          {chromeos::features::kShelfHotseat});
     ShelfViewTest::SetUp();
   }
 
@@ -1196,49 +1176,6 @@
       shelf_view_->GetMirroredXInView(center_point.x()), center_point.y())));
 }
 
-// Test that by moving the mouse cursor off the button onto the bubble it closes
-// the bubble.
-TEST_P(HotseatShelfViewTest, ShouldHideTooltipWhenHoveringOnTooltip) {
-  if (chromeos::switches::ShouldShowShelfHotseat() ||
-      chromeos::switches::ShouldShowScrollableShelf()) {
-    return;
-  }
-  ShelfTooltipManager* tooltip_manager = test_api_->tooltip_manager();
-  tooltip_manager->set_timer_delay_for_test(0);
-  ui::test::EventGenerator* generator = GetEventGenerator();
-
-  // Move the mouse off any item and check that no tooltip is shown.
-  generator->MoveMouseTo(gfx::Point(0, 0));
-  EXPECT_FALSE(tooltip_manager->IsVisible());
-
-  // Move the mouse over the button and check that it is visible.
-  views::View* button = shelf_view_->first_visible_button_for_testing();
-  gfx::Rect bounds = button->GetBoundsInScreen();
-  generator->MoveMouseTo(bounds.CenterPoint());
-  // Wait for the timer to go off.
-  base::RunLoop().RunUntilIdle();
-  EXPECT_TRUE(tooltip_manager->IsVisible());
-
-  // Move the mouse cursor slightly to the right of the item. The tooltip should
-  // now close.
-  generator->MoveMouseBy(bounds.width() / 2 + 5, 0);
-  base::RunLoop().RunUntilIdle();
-  EXPECT_FALSE(tooltip_manager->IsVisible());
-
-  // Move back - it should appear again.
-  generator->MoveMouseBy(-(bounds.width() / 2 + 5), 0);
-  // Make sure there is no delayed close.
-  base::RunLoop().RunUntilIdle();
-  EXPECT_TRUE(tooltip_manager->IsVisible());
-
-  // Now move the mouse cursor slightly above the item - so that it is over the
-  // tooltip bubble. Now it should disappear.
-  generator->MoveMouseBy(0, -(bounds.height() / 2 + 5));
-  // Wait until the delayed close kicked in.
-  base::RunLoop().RunUntilIdle();
-  EXPECT_FALSE(tooltip_manager->IsVisible());
-}
-
 // Checks the rip an item off from left aligned shelf in secondary monitor.
 TEST_F(ShelfViewTest, CheckRipOffFromLeftShelfAlignmentWithMultiMonitor) {
   UpdateDisplay("800x600,800x600");
@@ -1363,14 +1300,12 @@
   observer.Reset();
   Shell::Get()->tablet_mode_controller()->SetEnabledForTest(true);
   test_api_->RunMessageLoopUntilAnimationsDone();
-  EXPECT_EQ((chromeos::switches::ShouldShowScrollableShelf() ? 1 : 100),
-            observer.icon_positions_animation_duration().InMilliseconds());
+  EXPECT_EQ(1, observer.icon_positions_animation_duration().InMilliseconds());
 
   observer.Reset();
   Shell::Get()->tablet_mode_controller()->SetEnabledForTest(false);
   test_api_->RunMessageLoopUntilAnimationsDone();
-  EXPECT_EQ((chromeos::switches::ShouldShowScrollableShelf() ? 1 : 100),
-            observer.icon_positions_animation_duration().InMilliseconds());
+  EXPECT_EQ(1, observer.icon_positions_animation_duration().InMilliseconds());
 
   // The shelf items should not animate if we are entering or exiting tablet
   // mode, and the shelf alignment is not bottom aligned.
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index e365b11..0672e4b 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -209,6 +209,7 @@
 <translation id="3513798432020909783">கணக்கை நிர்வகிப்பது: <ph name="MANAGER_EMAIL" /></translation>
 <translation id="3573179567135747900">"<ph name="FROM_LOCALE" />" க்கு மீண்டும் மாற்று (மறுதொடக்கம் தேவை)</translation>
 <translation id="3576141592585647168">நேரமண்டலத்தை மாற்றுக</translation>
+<translation id="3593646411856133110">ஆப்ஸ் திறப்பதைப் பார்க்க மேலே ஸ்வைப் செய்து பிடிக்கவும்</translation>
 <translation id="3595596368722241419">பேட்டரி நிரம்பியது</translation>
 <translation id="3604801046548457007">டெஸ்க் <ph name="DESK_TITILE" /> உருவாக்கப்பட்டது</translation>
 <translation id="3606978283550408104">பிரெய்ல் திரை இணைக்கப்பட்டது.</translation>
@@ -362,6 +363,7 @@
 <translation id="5745612484876805746">சூரிய அஸ்தமனத்தின் போது நைட் லைட் விருப்பம் தானாக இயக்கப்படும்</translation>
 <translation id="5750765938512549687">புளூடூத் முடக்கப்பட்டுள்ளது</translation>
 <translation id="576453121877257266">நைட் லைட் ஆன் செய்யப்பட்டது.</translation>
+<translation id="5769373120130404283">தனிப்பட்ட திரை</translation>
 <translation id="5777841717266010279">திரைப் பகிர்வதை நிறுத்தவா?</translation>
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" />க்கு <ph name="ROUTE_TITLE" />ஐ அனுப்புவதை நிறுத்து</translation>
@@ -403,6 +405,7 @@
 <translation id="6297287540776456956">பகுதியைத் தேர்ந்தெடுக்க, ஸ்டைஸைப் பயன்படுத்தவும்</translation>
 <translation id="6310121235600822547"><ph name="DISPLAY_NAME" /> <ph name="ROTATION" /> ஆகச் சுழற்றப்பட்டது</translation>
 <translation id="6376931439017688372">புளூடூத் இயக்கப்பட்டுள்ளது</translation>
+<translation id="6381109794406942707">சாதனத்தைத் திறக்க உங்கள் பின்னை உள்ளிடவும்.</translation>
 <translation id="639644700271529076">CAPS LOCK முடக்கப்பட்டுள்ளது</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, சிக்னல் வலிமை: <ph name="SIGNAL_STRENGTH" /></translation>
@@ -613,6 +616,7 @@
 <translation id="9072519059834302790">பேட்டரி காலியாவதற்கான நேரம்: <ph name="TIME_LEFT" />.</translation>
 <translation id="9074739597929991885">புளூடூத்</translation>
 <translation id="9079731690316798640">வைஃபை: <ph name="ADDRESS" /></translation>
+<translation id="9080132581049224423">முகப்புக்குச் செல்ல மேலே ஸ்வைப் செய்யவும்</translation>
 <translation id="9080206825613744995">மைக்ரோஃபோன் பயன்பாட்டில் உள்ளது.</translation>
 <translation id="9084606467167974638">மெனுவை நிலைமாற்றும்</translation>
 <translation id="9089416786594320554">உள்ளீட்டு முறைகள்</translation>
diff --git a/ash/system/message_center/notifier_settings_view.cc b/ash/system/message_center/notifier_settings_view.cc
index e4d000c..5ae44e17 100644
--- a/ash/system/message_center/notifier_settings_view.cc
+++ b/ash/system/message_center/notifier_settings_view.cc
@@ -22,6 +22,7 @@
 #include "ash/system/message_center/message_center_style.h"
 #include "ash/system/tray/tray_popup_utils.h"
 #include "base/macros.h"
+#include "base/optional.h"
 #include "base/strings/string16.h"
 #include "base/strings/utf_string_conversions.h"
 #include "skia/ext/image_operations.h"
@@ -496,7 +497,7 @@
   header_view_ = AddChildView(std::move(header_view));
 
   auto scroller = std::make_unique<views::ScrollView>();
-  scroller->SetBackgroundColor(SK_ColorTRANSPARENT);
+  scroller->SetBackgroundColor(base::nullopt);
   scroll_bar_ = scroller->SetVerticalScrollBar(
       std::make_unique<views::OverlayScrollBar>(/*horizontal=*/false));
   scroller->SetDrawOverflowIndicator(false);
diff --git a/ash/system/message_center/unified_message_center_view.cc b/ash/system/message_center/unified_message_center_view.cc
index 5e08ed40..8332b981 100644
--- a/ash/system/message_center/unified_message_center_view.cc
+++ b/ash/system/message_center/unified_message_center_view.cc
@@ -21,6 +21,7 @@
 #include "ash/system/unified/unified_system_tray_view.h"
 #include "base/memory/ptr_util.h"
 #include "base/metrics/user_metrics.h"
+#include "base/optional.h"
 #include "ui/gfx/animation/linear_animation.h"
 #include "ui/message_center/message_center.h"
 #include "ui/message_center/views/message_view.h"
@@ -93,7 +94,7 @@
   // set the default opaque background color.
   scroller_->SetContents(
       std::make_unique<ScrollerContentsView>(message_list_view_));
-  scroller_->SetBackgroundColor(SK_ColorTRANSPARENT);
+  scroller_->SetBackgroundColor(base::nullopt);
   scroller_->SetVerticalScrollBar(base::WrapUnique(scroll_bar_));
   scroller_->SetDrawOverflowIndicator(false);
   AddChildView(scroller_);
diff --git a/ash/test/ash_test_helper.cc b/ash/test/ash_test_helper.cc
index 54c8492..e0a1738 100644
--- a/ash/test/ash_test_helper.cc
+++ b/ash/test/ash_test_helper.cc
@@ -51,8 +51,6 @@
 #include "ui/aura/test/test_windows.h"
 #include "ui/aura/window.h"
 #include "ui/base/ime/init/input_method_initializer.h"
-#include "ui/base/material_design/material_design_controller.h"
-#include "ui/base/ui_base_switches_util.h"
 #include "ui/compositor/scoped_animation_duration_scale_mode.h"
 #include "ui/compositor/test/test_context_factories.h"
 #include "ui/display/display.h"
@@ -145,8 +143,6 @@
   // last cursor visibility state, etc.
   ::wm::CursorManager::ResetCursorVisibilityStateForTest();
 
-  ui::MaterialDesignController::Initialize();
-
   CreateShell(std::move(shell_init_params), init_params.local_state);
 
   // Reset aura::Env to eliminate test dependency (https://crbug.com/586514).
diff --git a/ash/wm/overview/overview_window_drag_controller_unittest.cc b/ash/wm/overview/overview_window_drag_controller_unittest.cc
index 2bddd87..9fec5c3 100644
--- a/ash/wm/overview/overview_window_drag_controller_unittest.cc
+++ b/ash/wm/overview/overview_window_drag_controller_unittest.cc
@@ -323,14 +323,12 @@
   void SetUp() override {
     if (GetParam()) {
       scoped_feature_list_.InitWithFeatures(
-          /* enabled */ {chromeos::features::kShelfScrollable,
-                         chromeos::features::kShelfHotseat},
+          /* enabled */ {chromeos::features::kShelfHotseat},
           /* disabled */ {});
     } else {
       scoped_feature_list_.InitWithFeatures(
           /* enabled */ {},
-          /* disabled */ {chromeos::features::kShelfScrollable,
-                          chromeos::features::kShelfHotseat});
+          /* disabled */ {chromeos::features::kShelfHotseat});
     }
 
     AshTestBase::SetUp();
diff --git a/base/android/java/src/org/chromium/base/PackageManagerUtils.java b/base/android/java/src/org/chromium/base/PackageManagerUtils.java
index 50ac978..565b8d1 100644
--- a/base/android/java/src/org/chromium/base/PackageManagerUtils.java
+++ b/base/android/java/src/org/chromium/base/PackageManagerUtils.java
@@ -7,6 +7,7 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
+import android.net.Uri;
 import android.os.TransactionTooLargeException;
 
 import java.util.Collections;
@@ -17,6 +18,7 @@
  */
 public class PackageManagerUtils {
     private static final String TAG = "PackageManagerUtils";
+    private static final String SAMPLE_URL = "http://";
 
     /**
      * Retrieve information about the Activity that will handle the given Intent.
@@ -58,6 +60,44 @@
         return Collections.emptyList();
     }
 
+    /**
+     * @return Intent to query a list of installed web browsers.
+     */
+    public static Intent getQueryInstalledBrowsersIntent() {
+        return new Intent(Intent.ACTION_VIEW, Uri.parse(SAMPLE_URL))
+                .addCategory(Intent.CATEGORY_BROWSABLE);
+    }
+
+    /**
+     * @return Intent to query a list of installed home launchers.
+     */
+    public static Intent getQueryInstalledHomeLaunchersIntent() {
+        return new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME);
+    }
+
+    /**
+     * @return Default ResolveInfo to handle a VIEW intent for a url.
+     */
+    public static ResolveInfo resolveDefaultWebBrowserActivity() {
+        return resolveActivity(getQueryInstalledBrowsersIntent(), 0);
+    }
+
+    /**
+     * @return The list of names of web browser applications available in the system. A browser
+     *         may appear twice if it has multiple intent handlers.
+     */
+    public static List<ResolveInfo> queryAllWebBrowsersInfo() {
+        return queryIntentActivities(getQueryInstalledBrowsersIntent(), PackageManager.MATCH_ALL);
+    }
+
+    /**
+     * @return The list of names of system launcher applications available in the system.
+     */
+    public static List<ResolveInfo> queryAllLaunchersInfo() {
+        return queryIntentActivities(
+                getQueryInstalledHomeLaunchersIntent(), PackageManager.MATCH_ALL);
+    }
+
     // See https://crbug.com/700505 and https://crbug.com/369574.
     private static void handleExpectedExceptionsOrRethrow(RuntimeException e, Intent intent) {
         if (e instanceof NullPointerException
diff --git a/base/i18n/icu_util.cc b/base/i18n/icu_util.cc
index 7f7398d6..6adb060 100644
--- a/base/i18n/icu_util.cc
+++ b/base/i18n/icu_util.cc
@@ -16,6 +16,8 @@
 #include "base/files/file_util.h"
 #include "base/files/memory_mapped_file.h"
 #include "base/logging.h"
+#include "base/metrics/histogram_functions.h"
+#include "base/metrics/metrics_hashes.h"
 #include "base/path_service.h"
 #include "base/strings/string_util.h"
 #include "base/strings/sys_string_conversions.h"
@@ -23,6 +25,7 @@
 #include "build/chromecast_buildflags.h"
 #include "third_party/icu/source/common/unicode/putil.h"
 #include "third_party/icu/source/common/unicode/udata.h"
+#include "third_party/icu/source/common/unicode/utrace.h"
 
 #if defined(OS_ANDROID)
 #include "base/android/apk_assets.h"
@@ -349,6 +352,36 @@
 #endif  // defined(OS_ANDROID)
 }
 
+const char kICUDataFile[] = "ICU.DataFile";
+
+// Callback function to report the opening of ICU Data File to UMA.
+// This help us to understand what built-in ICU data files are rarely used
+// in the user's machines.
+static void U_CALLCONV TraceICUDataFile(const void* context,
+                                        int32_t fn_number,
+                                        int32_t level,
+                                        const char* fmt,
+                                        va_list args) {
+  if (fn_number == UTRACE_UDATA_DATA_FILE) {
+    std::string icu_data_file_name(va_arg(args, const char*));
+    va_end(args);
+    // Skip icu version specified prefix if exist.
+    // path is prefixed with icu version prefix such as "icudt65l-".
+    // Histogram only the part after the -.
+    if (icu_data_file_name.find("icudt") == 0) {
+      size_t dash = icu_data_file_name.find("-");
+      if (dash != std::string::npos) {
+        icu_data_file_name = icu_data_file_name.substr(dash + 1);
+      }
+    }
+    // UmaHistogramSparse should track less than 100 values.
+    // We currently have about total 55 built-in data files inside ICU
+    // so it fit the UmaHistogramSparse usage.
+    int hash = base::HashMetricName(icu_data_file_name);
+    base::UmaHistogramSparse(kICUDataFile, hash);
+  }
+}
+
 // Common initialization to run regardless of how ICU is initialized.
 // There are multiple exposed InitializeIcu* functions. This should be called
 // as at the end of (the last functions in the sequence of) these functions.
@@ -358,6 +391,9 @@
   // when requested.
   InitializeIcuTimeZone();
 
+  const void* context = nullptr;
+  utrace_setFunctions(context, nullptr, nullptr, TraceICUDataFile);
+  utrace_setLevel(UTRACE_VERBOSE);
   return true;
 }
 
diff --git a/base/memory/shared_memory_hooks.h b/base/memory/shared_memory_hooks.h
index a7e401e..4404b54c 100644
--- a/base/memory/shared_memory_hooks.h
+++ b/base/memory/shared_memory_hooks.h
@@ -9,6 +9,13 @@
 #include "base/memory/unsafe_shared_memory_region.h"
 #include "base/memory/writable_shared_memory_region.h"
 
+namespace service_manager {
+
+struct MainParams;
+int Main(const MainParams&);
+
+}  // namespace service_manager
+
 namespace base {
 
 class SharedMemoryHooks {
@@ -17,6 +24,7 @@
 
  private:
   friend class SharedMemoryHooksTest;
+  friend int service_manager::Main(const service_manager::MainParams&);
 
   // Allows shared memory region creation to be hooked. Useful for sandboxed
   // processes that are restricted from invoking the platform APIs directly.
diff --git a/base/message_loop/message_pump_win.cc b/base/message_loop/message_pump_win.cc
index 8a87dc1..8f6258f7 100644
--- a/base/message_loop/message_pump_win.cc
+++ b/base/message_loop/message_pump_win.cc
@@ -624,6 +624,7 @@
     if (state_->should_quit)
       break;
 
+    state_->delegate->BeforeWait();
     more_work_is_plausible |= WaitForIOCompletion(0, nullptr);
     if (state_->should_quit)
       break;
@@ -638,6 +639,7 @@
     if (more_work_is_plausible)
       continue;
 
+    state_->delegate->BeforeWait();
     WaitForWork(next_work_info);
   }
 }
diff --git a/base/test/gtest_util.h b/base/test/gtest_util.h
index 3f11c76f9..1db1fae1 100644
--- a/base/test/gtest_util.h
+++ b/base/test/gtest_util.h
@@ -27,8 +27,15 @@
 // is part of the error message), but intentionally do not expose the gtest
 // death test's full |regex| parameter to avoid users having to verify the exact
 // syntax of the error message produced by the DCHECK.
+
+// Official builds will eat stream parameters, so don't check the error message.
+#if defined(OFFICIAL_BUILD) && defined(NDEBUG)
+#define EXPECT_DCHECK_DEATH(statement) EXPECT_DEATH(statement, "")
+#define ASSERT_DCHECK_DEATH(statement) ASSERT_DEATH(statement, "")
+#else
 #define EXPECT_DCHECK_DEATH(statement) EXPECT_DEATH(statement, "Check failed")
 #define ASSERT_DCHECK_DEATH(statement) ASSERT_DEATH(statement, "Check failed")
+#endif  // defined(OFFICIAL_BUILD) && defined(NDEBUG)
 
 #else
 // DCHECK_IS_ON() && defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
@@ -44,7 +51,7 @@
 // As above, but for CHECK().
 #if defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
 
-// Official builds will CHECK, but also eat stream parameters. So match "".
+// Official builds will eat stream parameters, so don't check the error message.
 #if defined(OFFICIAL_BUILD) && defined(NDEBUG)
 #define EXPECT_CHECK_DEATH(statement) EXPECT_DEATH(statement, "")
 #define ASSERT_CHECK_DEATH(statement) ASSERT_DEATH(statement, "")
diff --git a/base/threading/hang_watcher.cc b/base/threading/hang_watcher.cc
index 0d7ef9ae6..2181e7e 100644
--- a/base/threading/hang_watcher.cc
+++ b/base/threading/hang_watcher.cc
@@ -100,13 +100,14 @@
 
 HangWatcher::HangWatcher(RepeatingClosure on_hang_closure)
     : monitor_period_(kMonitoringPeriod),
-      monitor_event_(WaitableEvent::ResetPolicy::AUTOMATIC,
-                     WaitableEvent::InitialState::NOT_SIGNALED),
+      should_monitor_(WaitableEvent::ResetPolicy::AUTOMATIC),
       on_hang_closure_(std::move(on_hang_closure)),
       thread_(this, kThreadName) {
   // |thread_checker_| should not be bound to the constructing thread.
   DETACH_FROM_THREAD(thread_checker_);
 
+  should_monitor_.declare_only_used_while_idle();
+
   DCHECK(!g_instance);
   g_instance = this;
   Start();
@@ -124,8 +125,8 @@
 }
 
 void HangWatcher::Stop() {
-  keep_monitoring_.store(false);
-  monitor_event_.Signal();
+  keep_monitoring_.store(false, std::memory_order_relaxed);
+  should_monitor_.Signal();
   thread_.Join();
 }
 
@@ -139,17 +140,17 @@
   // sure of that.
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
-  while (keep_monitoring_) {
+  while (keep_monitoring_.load(std::memory_order_relaxed)) {
     // If there is nothing to watch sleep until there is.
     if (IsWatchListEmpty()) {
-      monitor_event_.Wait();
+      should_monitor_.Wait();
     } else {
       Monitor();
     }
 
-    if (keep_monitoring_) {
+    if (keep_monitoring_.load(std::memory_order_relaxed)) {
       // Sleep until next scheduled monitoring.
-      monitor_event_.TimedWait(monitor_period_);
+      should_monitor_.TimedWait(monitor_period_);
     }
   }
 }
@@ -178,7 +179,7 @@
 
   // Now that there is a thread to monitor we wake the HangWatcher thread.
   if (watch_states_.size() == 1) {
-    monitor_event_.Signal();
+    should_monitor_.Signal();
   }
 
   return ScopedClosureRunner(BindOnce(&HangWatcher::UnregisterThread,
@@ -225,7 +226,7 @@
 }
 
 void HangWatcher::SignalMonitorEventForTesting() {
-  monitor_event_.Signal();
+  should_monitor_.Signal();
 }
 
 void HangWatcher::BlockIfCaptureInProgress() {
@@ -261,7 +262,7 @@
 
 // |deadline_| starts at Max() to avoid validation problems
 // when setting the first legitimate value.
-HangWatchState::HangWatchState() : deadline_(TimeTicks::Max()) {
+HangWatchState::HangWatchState() {
   // There should not exist a state object for this thread already.
   DCHECK(!GetHangWatchStateForCurrentThread()->Get());
 
@@ -298,16 +299,16 @@
 }
 
 TimeTicks HangWatchState::GetDeadline() const {
-  return deadline_.load();
+  return deadline_.load(std::memory_order_relaxed);
 }
 
-TimeTicks HangWatchState::SetDeadline(TimeTicks deadline) {
+void HangWatchState::SetDeadline(TimeTicks deadline) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
-  return deadline_.exchange(deadline);
+  deadline_.store(deadline, std::memory_order_relaxed);
 }
 
 bool HangWatchState::IsOverDeadline() const {
-  return TimeTicks::Now() > deadline_.load();
+  return TimeTicks::Now() > deadline_.load(std::memory_order_relaxed);
 }
 
 #if DCHECK_IS_ON()
diff --git a/base/threading/hang_watcher.h b/base/threading/hang_watcher.h
index 24232a6..94aa145 100644
--- a/base/threading/hang_watcher.h
+++ b/base/threading/hang_watcher.h
@@ -40,10 +40,12 @@
 //
 // If DoSomeWork() takes more than 5s to run and the HangWatcher
 // inspects the thread state before Foobar returns a hang will be
-// reported. Instances of this object should live on the stack only as they are
-// intrinsically linked to the execution scopes that contain them.
-// Keeping a HangWatchScope alive after the scope in which it was created has
-// exited would lead to non-actionable hang reports.
+// reported.
+//
+// HangWatchScopes are typically meant to live on the stack. In some cases it's
+// necessary to keep a HangWatchScope instance as a class member but special
+// care is required when doing so as a HangWatchScope that stays alive longer
+// than intended will generate non-actionable hang reports.
 class BASE_EXPORT HangWatchScope {
  public:
   // A good default value needs to be large enough to represent a significant
@@ -148,7 +150,7 @@
 
   // Use to make the HangWatcher thread wake or sleep to schedule the
   // appropriate monitoring frequency.
-  WaitableEvent monitor_event_;
+  WaitableEvent should_monitor_;
 
   bool IsWatchListEmpty() LOCKS_EXCLUDED(watch_state_lock_);
 
@@ -204,7 +206,7 @@
   TimeTicks GetDeadline() const;
 
   // Atomically sets the deadline to a new value and return the previous value.
-  TimeTicks SetDeadline(TimeTicks deadline);
+  void SetDeadline(TimeTicks deadline);
 
   // Tests whether the associated thread's execution has gone over the deadline.
   bool IsOverDeadline() const;
@@ -224,7 +226,7 @@
 
   // If the deadline fails to be updated before TimeTicks::Now() ever
   // reaches the value contained in it this constistutes a hang.
-  std::atomic<TimeTicks> deadline_;
+  std::atomic<TimeTicks> deadline_{base::TimeTicks::Max()};
 
 #if DCHECK_IS_ON()
   // Used to keep track of the current HangWatchScope and detect improper usage.
diff --git a/build/config/linux/gtk/BUILD.gn b/build/config/linux/gtk/BUILD.gn
index a58b089..27cf4bb3 100644
--- a/build/config/linux/gtk/BUILD.gn
+++ b/build/config/linux/gtk/BUILD.gn
@@ -20,14 +20,13 @@
   ]
 }
 
-# Basically no parts of Chrome should depend on GTK. To prevent accidents, the
-# parts that explicitly need GTK are whitelisted on this target.
 group("gtk") {
   visibility = [
-    "//chrome/test:interactive_ui_tests",
-    "//chrome/test:unit_tests",
+    # This is the only target in Chrome that should depend on GTK.
+    "//chrome/browser/ui/gtk:*",
+
+    # These are all for WebRTC.
     "//examples:peerconnection_client",
-    "//gpu/gles2_conform_support:gles2_conform_test_windowless",
     "//remoting/host/linux",
     "//remoting/host/it2me:common",
     "//remoting/host/it2me:remote_assistance_host",
@@ -36,7 +35,6 @@
     "//remoting/host:remoting_me2me_host_static",
     "//remoting/test:it2me_standalone_host_main",
     "//webrtc/examples:peerconnection_client",
-    "//chrome/browser/ui/gtk:*",
   ]
 
   public_configs = [ ":gtk_internal_config" ]
diff --git a/cc/trees/layer_tree_host_pixeltest_filters.cc b/cc/trees/layer_tree_host_pixeltest_filters.cc
index d7e6361..b8214db 100644
--- a/cc/trees/layer_tree_host_pixeltest_filters.cc
+++ b/cc/trees/layer_tree_host_pixeltest_filters.cc
@@ -452,6 +452,9 @@
       average_error_allowed_in_bad_pixels,
       large_error_allowed,
       small_error_allowed));
+#else
+  if (use_vulkan())
+    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(true);
 #endif
 
   RunPixelTestWithLayerList(
@@ -941,6 +944,9 @@
       percentage_pixels_large_error, percentage_pixels_small_error,
       average_error_allowed_in_bad_pixels, large_error_allowed,
       small_error_allowed));
+#else
+  if (use_vulkan())
+    pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(true);
 #endif
 
   RunPixelTest(
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 5e58522c..8a399e3 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -455,7 +455,6 @@
     "//components/ntp_tiles:ntp_tiles_enums_java",
     "//components/offline_pages/core:offline_page_model_enums_java",
     "//components/password_manager/core/browser:password_manager_java_enums_srcjar",
-    "//components/payments/content/android:error_strings_generated_srcjar",
     "//components/payments/content/android:method_strings_generated_srcjar",
     "//components/search_engines:search_engine_type_java",
     "//components/signin/core/browser:signin_enums_javagen",
@@ -2833,9 +2832,6 @@
     "java/src/org/chromium/chrome/browser/settings/password/PasswordEditingBridge.java",
     "java/src/org/chromium/chrome/browser/settings/password/PasswordUIView.java",
     "java/src/org/chromium/chrome/browser/settings/privacy/PrivacyPreferencesManager.java",
-    "java/src/org/chromium/chrome/browser/settings/website/CookieControlsBridge.java",
-    "java/src/org/chromium/chrome/browser/settings/website/CookieControlsServiceBridge.java",
-    "java/src/org/chromium/chrome/browser/settings/website/WebsitePreferenceBridge.java",
     "java/src/org/chromium/chrome/browser/sharing/SharingJNIBridge.java",
     "java/src/org/chromium/chrome/browser/sharing/SharingServiceProxy.java",
     "java/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallMessageHandler.java",
@@ -2847,6 +2843,9 @@
     "java/src/org/chromium/chrome/browser/signin/SigninPromoUtil.java",
     "java/src/org/chromium/chrome/browser/signin/SigninUtils.java",
     "java/src/org/chromium/chrome/browser/signin/UnifiedConsentServiceBridge.java",
+    "java/src/org/chromium/chrome/browser/site_settings/CookieControlsBridge.java",
+    "java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.java",
+    "java/src/org/chromium/chrome/browser/site_settings/WebsitePreferenceBridge.java",
     "java/src/org/chromium/chrome/browser/sms/SmsReceiverInfoBar.java",
     "java/src/org/chromium/chrome/browser/ssl/ChromeSecurityStateModelDelegate.java",
     "java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index e3f493ae..11d30f2 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -1397,6 +1397,7 @@
   "java/src/org/chromium/chrome/browser/settings/download/DownloadLocationPreferenceDialog.java",
   "java/src/org/chromium/chrome/browser/settings/download/DownloadSettings.java",
   "java/src/org/chromium/chrome/browser/settings/homepage/HomepageEditor.java",
+  "java/src/org/chromium/chrome/browser/settings/homepage/HomepageMetricsEnums.java",
   "java/src/org/chromium/chrome/browser/settings/homepage/HomepageSettings.java",
   "java/src/org/chromium/chrome/browser/settings/homepage/RadioButtonGroupHomepagePreference.java",
   "java/src/org/chromium/chrome/browser/settings/password/CallbackDelayer.java",
@@ -1424,36 +1425,6 @@
   "java/src/org/chromium/chrome/browser/settings/privacy/DoNotTrackSettings.java",
   "java/src/org/chromium/chrome/browser/settings/privacy/PrivacyPreferencesManager.java",
   "java/src/org/chromium/chrome/browser/settings/privacy/PrivacySettings.java",
-  "java/src/org/chromium/chrome/browser/settings/website/AddExceptionPreference.java",
-  "java/src/org/chromium/chrome/browser/settings/website/ChosenObjectInfo.java",
-  "java/src/org/chromium/chrome/browser/settings/website/ChosenObjectSettings.java",
-  "java/src/org/chromium/chrome/browser/settings/website/ClearWebsiteStorage.java",
-  "java/src/org/chromium/chrome/browser/settings/website/ClearWebsiteStorageDialog.java",
-  "java/src/org/chromium/chrome/browser/settings/website/ContentSetting.java",
-  "java/src/org/chromium/chrome/browser/settings/website/ContentSettingException.java",
-  "java/src/org/chromium/chrome/browser/settings/website/ContentSettingsResources.java",
-  "java/src/org/chromium/chrome/browser/settings/website/CookieControlsBridge.java",
-  "java/src/org/chromium/chrome/browser/settings/website/CookieControlsServiceBridge.java",
-  "java/src/org/chromium/chrome/browser/settings/website/LocalStorageInfo.java",
-  "java/src/org/chromium/chrome/browser/settings/website/LocationCategory.java",
-  "java/src/org/chromium/chrome/browser/settings/website/ManageSpaceActivity.java",
-  "java/src/org/chromium/chrome/browser/settings/website/NfcCategory.java",
-  "java/src/org/chromium/chrome/browser/settings/website/NotificationCategory.java",
-  "java/src/org/chromium/chrome/browser/settings/website/PermissionInfo.java",
-  "java/src/org/chromium/chrome/browser/settings/website/SettingsNavigationSource.java",
-  "java/src/org/chromium/chrome/browser/settings/website/SingleCategorySettings.java",
-  "java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java",
-  "java/src/org/chromium/chrome/browser/settings/website/SiteDataCleaner.java",
-  "java/src/org/chromium/chrome/browser/settings/website/SiteSettings.java",
-  "java/src/org/chromium/chrome/browser/settings/website/SiteSettingsCategory.java",
-  "java/src/org/chromium/chrome/browser/settings/website/SiteSettingsPreference.java",
-  "java/src/org/chromium/chrome/browser/settings/website/StorageInfo.java",
-  "java/src/org/chromium/chrome/browser/settings/website/TriStateSiteSettingsPreference.java",
-  "java/src/org/chromium/chrome/browser/settings/website/Website.java",
-  "java/src/org/chromium/chrome/browser/settings/website/WebsiteAddress.java",
-  "java/src/org/chromium/chrome/browser/settings/website/WebsitePermissionsFetcher.java",
-  "java/src/org/chromium/chrome/browser/settings/website/WebsitePreference.java",
-  "java/src/org/chromium/chrome/browser/settings/website/WebsitePreferenceBridge.java",
   "java/src/org/chromium/chrome/browser/share/LensUtils.java",
   "java/src/org/chromium/chrome/browser/share/OptionalShareTargetsManager.java",
   "java/src/org/chromium/chrome/browser/share/ShareActivity.java",
@@ -1505,6 +1476,36 @@
   "java/src/org/chromium/chrome/browser/signin/SigninView.java",
   "java/src/org/chromium/chrome/browser/signin/SyncPromoView.java",
   "java/src/org/chromium/chrome/browser/signin/UnifiedConsentServiceBridge.java",
+  "java/src/org/chromium/chrome/browser/site_settings/AddExceptionPreference.java",
+  "java/src/org/chromium/chrome/browser/site_settings/ChosenObjectInfo.java",
+  "java/src/org/chromium/chrome/browser/site_settings/ChosenObjectSettings.java",
+  "java/src/org/chromium/chrome/browser/site_settings/ClearWebsiteStorage.java",
+  "java/src/org/chromium/chrome/browser/site_settings/ClearWebsiteStorageDialog.java",
+  "java/src/org/chromium/chrome/browser/site_settings/ContentSetting.java",
+  "java/src/org/chromium/chrome/browser/site_settings/ContentSettingException.java",
+  "java/src/org/chromium/chrome/browser/site_settings/ContentSettingsResources.java",
+  "java/src/org/chromium/chrome/browser/site_settings/CookieControlsBridge.java",
+  "java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.java",
+  "java/src/org/chromium/chrome/browser/site_settings/LocalStorageInfo.java",
+  "java/src/org/chromium/chrome/browser/site_settings/LocationCategory.java",
+  "java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java",
+  "java/src/org/chromium/chrome/browser/site_settings/NfcCategory.java",
+  "java/src/org/chromium/chrome/browser/site_settings/NotificationCategory.java",
+  "java/src/org/chromium/chrome/browser/site_settings/PermissionInfo.java",
+  "java/src/org/chromium/chrome/browser/site_settings/SettingsNavigationSource.java",
+  "java/src/org/chromium/chrome/browser/site_settings/SingleCategorySettings.java",
+  "java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java",
+  "java/src/org/chromium/chrome/browser/site_settings/SiteDataCleaner.java",
+  "java/src/org/chromium/chrome/browser/site_settings/SiteSettings.java",
+  "java/src/org/chromium/chrome/browser/site_settings/SiteSettingsCategory.java",
+  "java/src/org/chromium/chrome/browser/site_settings/SiteSettingsPreference.java",
+  "java/src/org/chromium/chrome/browser/site_settings/StorageInfo.java",
+  "java/src/org/chromium/chrome/browser/site_settings/TriStateSiteSettingsPreference.java",
+  "java/src/org/chromium/chrome/browser/site_settings/Website.java",
+  "java/src/org/chromium/chrome/browser/site_settings/WebsiteAddress.java",
+  "java/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcher.java",
+  "java/src/org/chromium/chrome/browser/site_settings/WebsitePreference.java",
+  "java/src/org/chromium/chrome/browser/site_settings/WebsitePreferenceBridge.java",
   "java/src/org/chromium/chrome/browser/sms/SmsReceiverInfoBar.java",
   "java/src/org/chromium/chrome/browser/sms/SmsReceiverUma.java",
   "java/src/org/chromium/chrome/browser/ssl/ChromeSecurityStateModelDelegate.java",
diff --git a/chrome/android/chrome_test_java_sources.gni b/chrome/android/chrome_test_java_sources.gni
index 977d5e6..9cf59e3 100644
--- a/chrome/android/chrome_test_java_sources.gni
+++ b/chrome/android/chrome_test_java_sources.gni
@@ -423,14 +423,6 @@
   "javatests/src/org/chromium/chrome/browser/settings/homepage/HomepageSettingsFragmentWithEditorTest.java",
   "javatests/src/org/chromium/chrome/browser/settings/password/PasswordSettingsTest.java",
   "javatests/src/org/chromium/chrome/browser/settings/privacy/PrivacyPreferencesManagerNativeTest.java",
-  "javatests/src/org/chromium/chrome/browser/settings/website/CookieControlsBridgeTest.java",
-  "javatests/src/org/chromium/chrome/browser/settings/website/CookieControlsServiceBridgeTest.java",
-  "javatests/src/org/chromium/chrome/browser/settings/website/ManageSpaceActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/settings/website/PermissionInfoTest.java",
-  "javatests/src/org/chromium/chrome/browser/settings/website/SiteSettingsTest.java",
-  "javatests/src/org/chromium/chrome/browser/settings/website/SiteSettingsTestUtils.java",
-  "javatests/src/org/chromium/chrome/browser/settings/website/WebsiteAddressTest.java",
-  "javatests/src/org/chromium/chrome/browser/settings/website/WebsitePermissionsFetcherTest.java",
   "javatests/src/org/chromium/chrome/browser/shape_detection/ShapeDetectionTest.java",
   "javatests/src/org/chromium/chrome/browser/share/LensUtilsTest.java",
   "javatests/src/org/chromium/chrome/browser/share/ShareButtonControllerTest.java",
@@ -448,6 +440,14 @@
   "javatests/src/org/chromium/chrome/browser/signin/SigninFragmentTest.java",
   "javatests/src/org/chromium/chrome/browser/signin/SigninHelperTest.java",
   "javatests/src/org/chromium/chrome/browser/signin/SigninSignoutIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/site_settings/CookieControlsBridgeTest.java",
+  "javatests/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridgeTest.java",
+  "javatests/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/site_settings/PermissionInfoTest.java",
+  "javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java",
+  "javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTestUtils.java",
+  "javatests/src/org/chromium/chrome/browser/site_settings/WebsiteAddressTest.java",
+  "javatests/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcherTest.java",
   "javatests/src/org/chromium/chrome/browser/sms/SmsReceiverInfoBarTest.java",
   "javatests/src/org/chromium/chrome/browser/ssl/CaptivePortalTest.java",
   "javatests/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorTest.java",
diff --git a/chrome/android/features/autofill_assistant/BUILD.gn b/chrome/android/features/autofill_assistant/BUILD.gn
index 09235e6..4c2e199 100644
--- a/chrome/android/features/autofill_assistant/BUILD.gn
+++ b/chrome/android/features/autofill_assistant/BUILD.gn
@@ -196,7 +196,6 @@
     "java/src/org/chromium/chrome/browser/autofill_assistant/overlay/AssistantOverlayModel.java",
     "java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataModel.java",
     "java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataNativeDelegate.java",
-    "java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantDateTime.java",
   ]
 }
 
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/generic_ui/AssistantGenericUiDelegate.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/generic_ui/AssistantGenericUiDelegate.java
index 3907687..272bf6a 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/generic_ui/AssistantGenericUiDelegate.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/generic_ui/AssistantGenericUiDelegate.java
@@ -35,13 +35,6 @@
                 value);
     }
 
-    void onCalendarPopupDateChanged(String identifier, AssistantValue value) {
-        assert mNativeAssistantGenericUiDelegate != 0;
-        AssistantGenericUiDelegateJni.get().onCalendarPopupDateChanged(
-                mNativeAssistantGenericUiDelegate, AssistantGenericUiDelegate.this, identifier,
-                value);
-    }
-
     @CalledByNative
     private void clearNativePtr() {
         mNativeAssistantGenericUiDelegate = 0;
@@ -53,7 +46,5 @@
                 String identifier);
         void onListPopupSelectionChanged(long nativeAssistantGenericUiDelegate,
                 AssistantGenericUiDelegate caller, String identifier, AssistantValue value);
-        void onCalendarPopupDateChanged(long nativeAssistantGenericUiDelegate,
-                AssistantGenericUiDelegate caller, String identifier, AssistantValue value);
     }
 }
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/generic_ui/AssistantValue.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/generic_ui/AssistantValue.java
index 2fc5ada5..fe66db6 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/generic_ui/AssistantValue.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/generic_ui/AssistantValue.java
@@ -8,11 +8,8 @@
 
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
-import org.chromium.chrome.browser.autofill_assistant.user_data.AssistantDateTime;
 
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
 
 /** The Java equivalent to {@code ValueProto}. */
 @JNINamespace("autofill_assistant")
@@ -20,41 +17,29 @@
     private final String[] mStrings;
     private final boolean[] mBooleans;
     private final int[] mIntegers;
-    private final List<AssistantDateTime> mDateTimes;
 
     AssistantValue() {
         mStrings = null;
         mBooleans = null;
         mIntegers = null;
-        mDateTimes = null;
     }
 
     public AssistantValue(String[] strings) {
         mStrings = strings;
         mBooleans = null;
         mIntegers = null;
-        mDateTimes = null;
     }
 
     public AssistantValue(boolean[] booleans) {
         mStrings = null;
         mBooleans = booleans;
         mIntegers = null;
-        mDateTimes = null;
     }
 
     public AssistantValue(int[] integers) {
         mStrings = null;
         mBooleans = null;
         mIntegers = integers;
-        mDateTimes = null;
-    }
-
-    public AssistantValue(List<AssistantDateTime> dateTimes) {
-        mStrings = null;
-        mBooleans = null;
-        mIntegers = null;
-        mDateTimes = dateTimes;
     }
 
     @CalledByNative
@@ -78,21 +63,6 @@
     }
 
     @CalledByNative
-    public static AssistantValue createForDateTimes(List<AssistantDateTime> values) {
-        return new AssistantValue(values);
-    }
-
-    @CalledByNative
-    private static List<AssistantDateTime> createDateTimeList() {
-        return new ArrayList<>();
-    }
-
-    @CalledByNative
-    private static void addDateTimeToList(List<AssistantDateTime> list, AssistantDateTime value) {
-        list.add(value);
-    }
-
-    @CalledByNative
     public String[] getStrings() {
         return mStrings;
     }
@@ -107,25 +77,6 @@
         return mIntegers;
     }
 
-    @CalledByNative
-    public List<AssistantDateTime> getDateTimes() {
-        return mDateTimes;
-    }
-
-    public static boolean isDateSingleton(AssistantValue value) {
-        return value != null && value.mDateTimes != null && value.mDateTimes.size() == 1;
-    }
-
-    @CalledByNative
-    private static int getListSize(List list) {
-        return list.size();
-    }
-
-    @CalledByNative
-    private static Object getListAt(List list, int index) {
-        return list.get(index);
-    }
-
     @Override
     public boolean equals(@Nullable Object obj) {
         if (obj == this) {
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/generic_ui/AssistantViewInteractions.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/generic_ui/AssistantViewInteractions.java
index 982e2d5..64b9802b 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/generic_ui/AssistantViewInteractions.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/generic_ui/AssistantViewInteractions.java
@@ -4,22 +4,16 @@
 
 package org.chromium.chrome.browser.autofill_assistant.generic_ui;
 
-import static org.chromium.chrome.browser.autofill_assistant.generic_ui.AssistantValue.isDateSingleton;
-
 import android.content.Context;
-import android.support.annotation.Nullable;
 import android.view.View;
 
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
-import org.chromium.chrome.browser.autofill_assistant.user_data.AssistantDateTime;
 import org.chromium.content.browser.input.PopupItemType;
 import org.chromium.content.browser.input.SelectPopupDialog;
 import org.chromium.content.browser.input.SelectPopupItem;
-import org.chromium.content.browser.picker.InputDialogContainer;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 /** JNI bridge between {@code interaction_handler_android} and Java. */
@@ -48,41 +42,4 @@
                 popupItems, multiple, selectedItems);
         dialog.show();
     }
-
-    @CalledByNative
-    private static boolean showCalendarPopup(Context context, @Nullable AssistantValue initialDate,
-            AssistantValue minDate, AssistantValue maxDate, String outputIdentifier,
-            AssistantGenericUiDelegate delegate) {
-        if ((initialDate != null && !isDateSingleton(initialDate)) || !isDateSingleton(minDate)
-                || !isDateSingleton(maxDate)) {
-            return false;
-        }
-
-        InputDialogContainer inputDialogContainer =
-                new InputDialogContainer(context, new InputDialogContainer.InputActionDelegate() {
-                    @Override
-                    public void cancelDateTimeDialog() {
-                        // Do nothing.
-                    }
-
-                    @Override
-                    public void replaceDateTime(double value) {
-                        // User tapped the 'clear' button.
-                        if (Double.isNaN(value)) {
-                            delegate.onCalendarPopupDateChanged(outputIdentifier, null);
-                        } else {
-                            delegate.onCalendarPopupDateChanged(outputIdentifier,
-                                    AssistantValue.createForDateTimes(Collections.singletonList(
-                                            new AssistantDateTime((long) value))));
-                        }
-                    }
-                });
-
-        inputDialogContainer.showDialog(org.chromium.ui.base.ime.TextInputType.DATE,
-                initialDate != null ? initialDate.getDateTimes().get(0).getTimeInUtcMillis()
-                                    : Double.NaN,
-                minDate.getDateTimes().get(0).getTimeInUtcMillis(),
-                maxDate.getDateTimes().get(0).getTimeInUtcMillis(), -1, null);
-        return true;
-    }
 }
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantDateTime.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantDateTime.java
index ca1af81..a7b91f3 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantDateTime.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantDateTime.java
@@ -4,9 +4,6 @@
 
 package org.chromium.chrome.browser.autofill_assistant.user_data;
 
-import org.chromium.base.annotations.CalledByNative;
-import org.chromium.base.annotations.JNINamespace;
-
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
@@ -20,7 +17,6 @@
  * Note that this class does not make any guarantees with respect to the validity of the represented
  * date/time.
  */
-@JNINamespace("autofill_assistant")
 public class AssistantDateTime {
     /** Year, e.g., 2019. */
     private int mYear;
@@ -35,7 +31,6 @@
     /** Second in [0-59]. */
     private int mSecond;
 
-    @CalledByNative
     public AssistantDateTime(int year, int month, int day, int hour, int minute, int second) {
         set(year, month, day, hour, minute, second);
     }
@@ -80,17 +75,14 @@
         return calendar.getTimeInMillis();
     }
 
-    @CalledByNative
     public int getYear() {
         return mYear;
     }
 
-    @CalledByNative
     public int getMonth() {
         return mMonth;
     }
 
-    @CalledByNative
     public int getDay() {
         return mDay;
     }
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_af.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_af.xtb
index f923cf1..b7d1564 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_af.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_af.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Jammer dat ek nie kan help nie; gaan asseblief op jou eie voort.</translation>
 <translation id="7658239707568436148">Kanselleer</translation>
 <translation id="8253702004019660079">Google Assistent in Chrome.</translation>
+<translation id="8655206162393751348">Voltooi die motorhuurvloei vinnig met net 'n paar tikke.</translation>
 <translation id="945522503751344254">Stuur terugvoer</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_am.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_am.xtb
index 4501107a..e4c4d863 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_am.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_am.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">ከእንግዲህ ላግዝ አልችልም፣ እባክዎ በራስዎ ይቀጥሉ።</translation>
 <translation id="7658239707568436148">ይቅር</translation>
 <translation id="8253702004019660079">በChrome ውስጥ Google ረዳት።</translation>
+<translation id="8655206162393751348">በጥቂት መታ ማድረጎች ብቻ የመኪና ኪራይ ፍሰቱን በፍጥነት ያጠናቅቁ።</translation>
 <translation id="945522503751344254">ግብረ መልስ ላክ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bg.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bg.xtb
index 0e42c0ec..52df861 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bg.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bg.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">За съжаление, не мога да помогна. Моля, продължете ръчно.</translation>
 <translation id="7658239707568436148">Отказ</translation>
 <translation id="8253702004019660079">Google Асистент в Chrome.</translation>
+<translation id="8655206162393751348">Бързо завършете процеса за наемане на автомобил само с няколко докосвания.</translation>
 <translation id="945522503751344254">Изпращане на отзиви</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bs.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bs.xtb
index 400ac04d..f600b9b 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bs.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bs.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Nažalost, ne mogu vam pomoći. Nastavite sami.</translation>
 <translation id="7658239707568436148">Otkaži</translation>
 <translation id="8253702004019660079">Google Asistent u Chromeu.</translation>
+<translation id="8655206162393751348">Brzo završite tok iznajmljivanja automobila sa samo nekoliko dodira.</translation>
 <translation id="945522503751344254">Slanje povratnih informacija</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ca.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ca.xtb
index 6556cb8..bd39a0ca 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ca.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ca.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Em sap greu, però no et puc ajudar. Continua pel teu compte.</translation>
 <translation id="7658239707568436148">Cancel·la</translation>
 <translation id="8253702004019660079">Assistent de Google a Chrome.</translation>
+<translation id="8655206162393751348">Completa ràpidament el procés de lloguer de cotxes amb uns quants tocs.</translation>
 <translation id="945522503751344254">Envia suggeriments</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb
index 72b28bab..fd3f7fe9 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Jeg kan desværre ikke hjælpe. Fortsæt på egen hånd.</translation>
 <translation id="7658239707568436148">Annuller</translation>
 <translation id="8253702004019660079">Google Assistent i Chrome</translation>
+<translation id="8655206162393751348">Kom hurtigt igennem biludlejningsprocessen med få tryk.</translation>
 <translation id="945522503751344254">Send feedback</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_el.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_el.xtb
index 89c14b6..2ed5f12b 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_el.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_el.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Δυστυχώς, δεν μπορώ να σας βοηθήσω, θα πρέπει να συνεχίσετε μόνοι σας.</translation>
 <translation id="7658239707568436148">Ακύρωση</translation>
 <translation id="8253702004019660079">Βοηθός Google στο Chrome.</translation>
+<translation id="8655206162393751348">Ολοκληρώστε γρήγορα, με λίγα μόνο πατήματα, τη ροή ενοικίασης αυτοκινήτου.</translation>
 <translation id="945522503751344254">Αποστολή σχολίων</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_en-GB.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_en-GB.xtb
index c86596a..fdcdd13 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_en-GB.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_en-GB.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Sorry I'm not able to help. Please continue on your own.</translation>
 <translation id="7658239707568436148">Cancel</translation>
 <translation id="8253702004019660079">Google Assistant in Chrome.</translation>
+<translation id="8655206162393751348">Quickly complete the car rental flow with just a few taps.</translation>
 <translation id="945522503751344254">Send feedback</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_et.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_et.xtb
index 5637bee1..c37e7ab 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_et.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_et.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Kahjuks ma ei saa aidata, jätkake iseseisvalt.</translation>
 <translation id="7658239707568436148">Tühista</translation>
 <translation id="8253702004019660079">Google'i assistent Chrome'is.</translation>
+<translation id="8655206162393751348">Viige auto laenutamine vaid mõne puudutusega kiirelt lõpule.</translation>
 <translation id="945522503751344254">Saada tagasisidet</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fi.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fi.xtb
index da9bbc2..5dfb3bd 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fi.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fi.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">En valitettavasti voi auttaa. Voit jatkaa omatoimisesti.</translation>
 <translation id="7658239707568436148">Peruuta</translation>
 <translation id="8253702004019660079">Chromen Google Assistant</translation>
+<translation id="8655206162393751348">Suorita autonvuokraus loppuun muutamalla napautuksella.</translation>
 <translation id="945522503751344254">Lähetä palautetta</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hr.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hr.xtb
index 6e27313..2e77cce 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hr.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hr.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Nažalost, ne mogu vam pomoći, nastavite sami.</translation>
 <translation id="7658239707568436148">Odustani</translation>
 <translation id="8253702004019660079">Google asistent u Chromeu.</translation>
+<translation id="8655206162393751348">Najam automobila dostupan vam je brzo, u samo nekoliko dodira.</translation>
 <translation id="945522503751344254">Slanje povratnih informacija</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hu.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hu.xtb
index 33027e3..33b01b3 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hu.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hu.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Sajnos nem tudok többet segíteni. Kérjük, folytassa egyedül.</translation>
 <translation id="7658239707568436148">Mégse</translation>
 <translation id="8253702004019660079">Google Segéd a Chrome-ban.</translation>
+<translation id="8655206162393751348">Néhány koppintással gyorsan elvégezheti az autókölcsönzési folyamatot.</translation>
 <translation id="945522503751344254">Visszajelzés küldése</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_id.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_id.xtb
index 31ea5f3..991a2278 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_id.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_id.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Maaf, saya tidak bisa membantu lagi. Silakan lanjutkan sendiri.</translation>
 <translation id="7658239707568436148">Batal</translation>
 <translation id="8253702004019660079">Asisten Google di Chrome.</translation>
+<translation id="8655206162393751348">Selesaikan alur persewaan mobil secara cepat, cukup dengan beberapa kali ketuk.</translation>
 <translation id="945522503751344254">Kirim masukan</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_is.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_is.xtb
index 9db3137..0424e27 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_is.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_is.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Ég get ekki aðstoðað meira, haltu áfram upp á eigin spýtur.</translation>
 <translation id="7658239707568436148">Hætta við</translation>
 <translation id="8253702004019660079">Google hjálpari í Chrome.</translation>
+<translation id="8655206162393751348">Ljúktu við bílaleiguferli á fljótlegan hátt með nokkrum smellum.</translation>
 <translation id="945522503751344254">Senda ábendingu</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_it.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_it.xtb
index 9065ecf..ee1f7d8 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_it.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_it.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Mi spiace, non posso aiutarti. Continua autonomamente.</translation>
 <translation id="7658239707568436148">Annulla</translation>
 <translation id="8253702004019660079">Assistente Google in Chrome.</translation>
+<translation id="8655206162393751348">Completa rapidamente l'operazione di noleggio auto con pochi tocchi.</translation>
 <translation id="945522503751344254">Invia feedback</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_iw.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_iw.xtb
index 3af571d..57b8edf9 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_iw.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_iw.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">לצערי אין לי אפשרות לעזור. עליך להמשיך בעצמך.</translation>
 <translation id="7658239707568436148">ביטול</translation>
 <translation id="8253702004019660079">‏Google Assistant ב-Chrome.</translation>
+<translation id="8655206162393751348">תהליך השכרת הרכב פשוט ומהיר ולא דורש יותר מכמה הקשות.</translation>
 <translation id="945522503751344254"> שליחת משוב</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb
index a710d963..d5dceb9 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Deja, negaliu padėti, tolesnius veiksmus atlikite patys.</translation>
 <translation id="7658239707568436148">Atšaukti</translation>
 <translation id="8253702004019660079">„Google Assistant“ sistemoje „Chrome“.</translation>
+<translation id="8655206162393751348">Sparčiai atlikite automobilio nuomos proceso veiksmus vos keliais palietimais.</translation>
 <translation id="945522503751344254">Siųsti atsiliepimą</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lv.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lv.xtb
index a59b2a5..49e81af 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lv.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lv.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Diemžēl nevaru palīdzēt. Lūdzu, turpiniet patstāvīgi.</translation>
 <translation id="7658239707568436148">Atcelt</translation>
 <translation id="8253702004019660079">Google asistents pārlūkprogrammā Chrome.</translation>
+<translation id="8655206162393751348">Ātri pabeidziet automašīnu nomas plūsmu, veicot tikai dažus skārienus.</translation>
 <translation id="945522503751344254">Sūtīt atsauksmes</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mk.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mk.xtb
index 37d75917..3e9527b 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mk.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mk.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Извинете што не можам да ви помогнам, продолжете сами.</translation>
 <translation id="7658239707568436148">Откажи</translation>
 <translation id="8253702004019660079">„Помошникот на Google“ во Chrome.</translation>
+<translation id="8655206162393751348">Брзо завршете го процесот за изнајмување автомобил со само неколку допири.</translation>
 <translation id="945522503751344254">Испратете повратни информации</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ms.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ms.xtb
index 26bdf18e..c3ee69c 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ms.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ms.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Maaf, saya tidak dapat membantu. Sila teruskan sendiri.</translation>
 <translation id="7658239707568436148">Batal</translation>
 <translation id="8253702004019660079">Google Assistant dalam Chrome.</translation>
+<translation id="8655206162393751348">Lengkapkan aliran sewa kereta dengan pantas dengan hanya beberapa ketikan.</translation>
 <translation id="945522503751344254">Hantar maklum balas</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_my.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_my.xtb
index 93d715d..9dfbc6d 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_my.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_my.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">ကျွန်ုပ် ကူညီ၍မရပါ၊ ကိုယ်တိုင် ဆက်လုပ်ပါ။</translation>
 <translation id="7658239707568436148">မလုပ်တော့</translation>
 <translation id="8253702004019660079">Chrome ရှိ Google Assistant။</translation>
+<translation id="8655206162393751348">အနည်းငယ်တို့ရုံဖြင့် ကားငှားရမ်းမှု လုပ်ငန်းစဉ်ကို အမြန်အပြီးသတ်နိုင်သည်။</translation>
 <translation id="945522503751344254">အကြံပြုချက် ပေးပို့မည်</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_nl.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_nl.xtb
index 22ffcc0d..2954bc5 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_nl.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_nl.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Ik kan je helaas niet helpen. Ga zelf verder.</translation>
 <translation id="7658239707568436148">Annuleren</translation>
 <translation id="8253702004019660079">De Google Assistent in Chrome.</translation>
+<translation id="8655206162393751348">Met slechts een paar tikken kun je snel een auto huren.</translation>
 <translation id="945522503751344254">Feedback sturen</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_no.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_no.xtb
index 2902f57..3a2d25d 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_no.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_no.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Beklager, jeg kan ikke hjelpe deg. Fortsett på egen hånd.</translation>
 <translation id="7658239707568436148">Avbryt</translation>
 <translation id="8253702004019660079">Google-assistenten i Chrome.</translation>
+<translation id="8655206162393751348">Fullfør bilutleieprosessen raskt med bare noen få trykk.</translation>
 <translation id="945522503751344254">Gi tilbakemelding</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pl.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pl.xtb
index 1c88229..c4528b6 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pl.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pl.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Nie jestem w stanie Ci pomóc. Kontynuuj samodzielnie.</translation>
 <translation id="7658239707568436148">Anuluj</translation>
 <translation id="8253702004019660079">Asystent Google w Chrome.</translation>
+<translation id="8655206162393751348">Do wypożyczenia samochodu wystarczy tylko kilka kliknięć.</translation>
 <translation id="945522503751344254">Wyślij zgłoszenie</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-BR.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-BR.xtb
index ea0e92f..87d7cf0e 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-BR.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-BR.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Não posso ajudar. Você está por conta própria.</translation>
 <translation id="7658239707568436148">Cancelar</translation>
 <translation id="8253702004019660079">Google Assistente no Chrome.</translation>
+<translation id="8655206162393751348">Conclua rapidamente o processo de locação do carro com apenas alguns toques.</translation>
 <translation id="945522503751344254">Enviar comentários</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-PT.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-PT.xtb
index 36a3600..8071dc2e 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-PT.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-PT.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Lamento, mas não posso ajudar. Continue por sua conta.</translation>
 <translation id="7658239707568436148">Cancelar</translation>
 <translation id="8253702004019660079">Assistente Google no Chrome.</translation>
+<translation id="8655206162393751348">Conclua rapidamente o fluxo de aluguer de automóvel com apenas alguns passos.</translation>
 <translation id="945522503751344254">Enviar comentários</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_si.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_si.xtb
index 0378094..5766720 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_si.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_si.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">සමාවෙන්න, මට උදවු කළ නොහැක, ඔබම ඉදිරියට යන්න.</translation>
 <translation id="7658239707568436148">අවලංගු කරන්න</translation>
 <translation id="8253702004019660079">Chrome තුළ Google සහකරු.</translation>
+<translation id="8655206162393751348">තට්ටු කිරීම් කිහිපයක් සමඟ මෝටර් රථ කුලියට දීමේ ප්‍රවාහය ක්‍ෂණිකව සම්පූර්ණ කරන්න.</translation>
 <translation id="945522503751344254">අදහස් හා යෝජනා යවන්න</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sk.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sk.xtb
index dafa04f8..c937175 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sk.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sk.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Ľutujem, neviem pomôcť. Pokračujte samostatne.</translation>
 <translation id="7658239707568436148">Zrušiť</translation>
 <translation id="8253702004019660079">Asistent Google v Chrome</translation>
+<translation id="8655206162393751348">Rýchlo dokončite požičanie auta niekoľkým klepnutiami.</translation>
 <translation id="945522503751344254">Poslať spätnú väzbu</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sr.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sr.xtb
index 9eba0ea93..0f549648 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sr.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sr.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Жао ми је, не могу да вам помогнем. Наставите сами.</translation>
 <translation id="7658239707568436148">Откажи</translation>
 <translation id="8253702004019660079">Google помоћник у Chrome-у.</translation>
+<translation id="8655206162393751348">Брзо довршите ток изнајмљивања аутомобила уз само пар додира.</translation>
 <translation id="945522503751344254">Пошаљи повратне информације</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sv.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sv.xtb
index 2767d222..2e86266 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sv.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sv.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Jag kan tyvärr inte hjälpa till. Fortsätt på egen hand.</translation>
 <translation id="7658239707568436148">Avbryt</translation>
 <translation id="8253702004019660079">Google-assistenten i Chrome.</translation>
+<translation id="8655206162393751348">Slutför snabbt proceduren kring biluthyrning med några tryck.</translation>
 <translation id="945522503751344254">Skicka synpunkter</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sw.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sw.xtb
index 562639b6..4ae696ce 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sw.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sw.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Samahani, nimeshindwa kukusaidia, tafadhali endelea mwenyewe.</translation>
 <translation id="7658239707568436148">Ghairi</translation>
 <translation id="8253702004019660079">Programu ya Mratibu wa Google katika Chrome.</translation>
+<translation id="8655206162393751348">Kamilisha kwa haraka utaratibu wa kukodisha magari kwa kugusa mara chache tu.</translation>
 <translation id="945522503751344254">Tuma maoni</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zh-HK.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zh-HK.xtb
index cb6f11b..5e090171 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zh-HK.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zh-HK.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">很抱歉,我無法提供協助,請自行繼續。</translation>
 <translation id="7658239707568436148">取消</translation>
 <translation id="8253702004019660079">Chrome 的「Google 助理」。</translation>
+<translation id="8655206162393751348">只要再輕觸幾下,即可快速完成租車流程。</translation>
 <translation id="945522503751344254">提供意見反映</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zh-TW.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zh-TW.xtb
index 248a56c..f111da2f 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zh-TW.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zh-TW.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">抱歉,目前無法提供協助,請自行填入資料。</translation>
 <translation id="7658239707568436148">取消</translation>
 <translation id="8253702004019660079">Chrome 版 Google 助理。</translation>
+<translation id="8655206162393751348">只要再輕觸幾下,即可快速完成租車流程。</translation>
 <translation id="945522503751344254">提供意見</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zu.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zu.xtb
index 9e574d59..31f36f0 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zu.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_zu.xtb
@@ -16,5 +16,6 @@
 <translation id="6973932557599545801">Uxolo angikwazi ukukusiza, ngicela uqhubeke ngokwakho.</translation>
 <translation id="7658239707568436148">Khansela</translation>
 <translation id="8253702004019660079">Umsizi we-Google ku-Chrome</translation>
+<translation id="8655206162393751348">Qedela ngokushesha ukwenziwa kokuqashwa kwemoto ngokuthepha okumbalwa nje.</translation>
 <translation id="945522503751344254">Thumela impendulo</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantBottomsheetTest.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantBottomsheetTest.java
index 10f3bc5e..463c3db 100644
--- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantBottomsheetTest.java
+++ b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantBottomsheetTest.java
@@ -37,6 +37,7 @@
 import static org.chromium.chrome.browser.autofill_assistant.proto.ConfigureBottomSheetProto.ViewportResizing.RESIZE_VISUAL_VIEWPORT;
 
 import android.graphics.Rect;
+import android.os.Build;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.espresso.Espresso;
 import android.support.test.espresso.ViewAction;
@@ -52,6 +53,7 @@
 import org.junit.runner.RunWith;
 
 import org.chromium.base.test.util.CommandLineFlags;
+import org.chromium.base.test.util.DisableIf;
 import org.chromium.base.test.util.DisabledTest;
 import org.chromium.chrome.autofill_assistant.R;
 import org.chromium.chrome.browser.autofill_assistant.proto.ActionProto;
@@ -163,7 +165,10 @@
 
     @Test
     @MediumTest
-    public void testNoResize() {
+    @DisableIf.Build(sdk_is_less_than = Build.VERSION_CODES.LOLLIPOP,
+            message = "Flaky on KitKat crbug.com/1060244")
+    public void
+    testNoResize() {
         AutofillAssistantTestService testService = new AutofillAssistantTestService(
                 Collections.singletonList(makeScript(NO_RESIZE, HANDLE, false)));
         startAutofillAssistant(mTestRule.getActivity(), testService);
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantGenericUiTest.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantGenericUiTest.java
index ec4aeb4..edeafa2 100644
--- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantGenericUiTest.java
+++ b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantGenericUiTest.java
@@ -8,13 +8,11 @@
 import static android.support.test.espresso.action.ViewActions.click;
 import static android.support.test.espresso.assertion.PositionAssertions.isLeftAlignedWith;
 import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.contrib.PickerActions.setDate;
 import static android.support.test.espresso.matcher.RootMatchers.isDialog;
 import static android.support.test.espresso.matcher.ViewMatchers.assertThat;
 import static android.support.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed;
 import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
 import static android.support.test.espresso.matcher.ViewMatchers.isEnabled;
-import static android.support.test.espresso.matcher.ViewMatchers.withClassName;
 import static android.support.test.espresso.matcher.ViewMatchers.withContentDescription;
 import static android.support.test.espresso.matcher.ViewMatchers.withTagValue;
 import static android.support.test.espresso.matcher.ViewMatchers.withText;
@@ -22,7 +20,6 @@
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.isIn;
 import static org.hamcrest.Matchers.iterableWithSize;
 
@@ -31,7 +28,6 @@
 
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.MediumTest;
-import android.widget.DatePicker;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -53,8 +49,6 @@
 import org.chromium.chrome.browser.autofill_assistant.proto.CollectUserDataResultProto;
 import org.chromium.chrome.browser.autofill_assistant.proto.ColorProto;
 import org.chromium.chrome.browser.autofill_assistant.proto.ComputeValueProto;
-import org.chromium.chrome.browser.autofill_assistant.proto.DateList;
-import org.chromium.chrome.browser.autofill_assistant.proto.DateProto;
 import org.chromium.chrome.browser.autofill_assistant.proto.DividerViewProto;
 import org.chromium.chrome.browser.autofill_assistant.proto.DrawableProto;
 import org.chromium.chrome.browser.autofill_assistant.proto.EndActionProto;
@@ -76,7 +70,6 @@
 import org.chromium.chrome.browser.autofill_assistant.proto.SetModelValueProto;
 import org.chromium.chrome.browser.autofill_assistant.proto.SetUserActionsProto;
 import org.chromium.chrome.browser.autofill_assistant.proto.ShapeDrawableProto;
-import org.chromium.chrome.browser.autofill_assistant.proto.ShowCalendarPopupProto;
 import org.chromium.chrome.browser.autofill_assistant.proto.ShowGenericUiProto;
 import org.chromium.chrome.browser.autofill_assistant.proto.ShowInfoPopupProto;
 import org.chromium.chrome.browser.autofill_assistant.proto.ShowListPopupProto;
@@ -965,125 +958,4 @@
                                         IntList.newBuilder().addValues(1)))
                                 .build()));
     }
-
-    /**
-     * Displays a calendar popup and interacts with it.
-     */
-    @Test
-    @MediumTest
-    public void testCalendarPopup() {
-        List<ModelProto.ModelValue> modelValues = new ArrayList<>();
-        modelValues.add(
-                (ModelProto.ModelValue) ModelProto.ModelValue.newBuilder()
-                        .setIdentifier("date")
-                        .setValue(ValueProto.newBuilder().setDates(DateList.newBuilder().addValues(
-                                DateProto.newBuilder().setYear(2020).setMonth(4).setDay(15))))
-                        .build());
-        modelValues.add(
-                (ModelProto.ModelValue) ModelProto.ModelValue.newBuilder()
-                        .setIdentifier("min_date")
-                        .setValue(ValueProto.newBuilder().setDates(DateList.newBuilder().addValues(
-                                DateProto.newBuilder().setYear(2020).setMonth(1).setDay(1))))
-                        .build());
-        modelValues.add(
-                (ModelProto.ModelValue) ModelProto.ModelValue.newBuilder()
-                        .setIdentifier("max_date")
-                        .setValue(ValueProto.newBuilder().setDates(DateList.newBuilder().addValues(
-                                DateProto.newBuilder().setYear(2020).setMonth(12).setDay(31))))
-                        .build());
-        modelValues.add(
-                (ModelProto.ModelValue) ModelProto.ModelValue.newBuilder()
-                        .setIdentifier("chips")
-                        .setValue(ValueProto.newBuilder().setUserActions(
-                                UserActionList.newBuilder().addValues(
-                                        UserActionProto.newBuilder()
-                                                .setChip(ChipProto.newBuilder()
-                                                                 .setText("Done")
-                                                                 .setType(ChipType.NORMAL_ACTION))
-                                                .setIdentifier("done_chip"))))
-                        .build());
-
-        List<InteractionProto> interactions = new ArrayList<>();
-        interactions.add(
-                (InteractionProto) InteractionProto.newBuilder()
-                        .setTriggerEvent(EventProto.newBuilder().setOnValueChanged(
-                                OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
-                                        "chips")))
-                        .addCallbacks(CallbackProto.newBuilder().setSetUserActions(
-                                SetUserActionsProto.newBuilder().setModelIdentifier("chips")))
-                        .build());
-        interactions.add((InteractionProto) InteractionProto.newBuilder()
-                                 .setTriggerEvent(EventProto.newBuilder().setOnUserActionCalled(
-                                         OnUserActionCalled.newBuilder().setUserActionIdentifier(
-                                                 "done_chip")))
-                                 .addCallbacks(CallbackProto.newBuilder().setEndAction(
-                                         EndActionProto.newBuilder().setStatus(
-                                                 ProcessedActionStatusProto.ACTION_APPLIED)))
-                                 .build());
-        interactions.add((InteractionProto) InteractionProto.newBuilder()
-                                 .setTriggerEvent(EventProto.newBuilder().setOnViewClicked(
-                                         OnViewClickedEventProto.newBuilder().setViewIdentifier(
-                                                 "text_view")))
-                                 .addCallbacks(CallbackProto.newBuilder().setShowCalendarPopup(
-                                         ShowCalendarPopupProto.newBuilder()
-                                                 .setDateModelIdentifier("date")
-                                                 .setMinDateModelIdentifier("min_date")
-                                                 .setMaxDateModelIdentifier("max_date")))
-                                 .build());
-
-        GenericUserInterfaceProto genericUserInterface =
-                (GenericUserInterfaceProto) GenericUserInterfaceProto.newBuilder()
-                        .setRootView(createTextView("Click me", "text_view"))
-                        .setInteractions(
-                                InteractionsProto.newBuilder().addAllInteractions(interactions))
-                        .setModel(ModelProto.newBuilder().addAllValues(modelValues))
-                        .build();
-
-        ArrayList<ActionProto> list = new ArrayList<>();
-        list.add((ActionProto) ActionProto.newBuilder()
-                         .setShowGenericUi(ShowGenericUiProto.newBuilder()
-                                                   .setGenericUserInterface(genericUserInterface)
-                                                   .addOutputModelIdentifiers("date"))
-                         .build());
-        AutofillAssistantTestScript script = new AutofillAssistantTestScript(
-                (SupportedScriptProto) SupportedScriptProto.newBuilder()
-                        .setPath("form_target_website.html")
-                        .setPresentation(PresentationProto.newBuilder().setAutostart(true).setChip(
-                                ChipProto.newBuilder().setText("Autostart")))
-                        .build(),
-                list);
-
-        AutofillAssistantTestService testService =
-                new AutofillAssistantTestService(Collections.singletonList(script));
-        startAutofillAssistant(mTestRule.getActivity(), testService);
-
-        waitUntilViewMatchesCondition(withText("Done"), isCompletelyDisplayed());
-
-        onView(withText("Click me")).perform(click());
-        onView(withClassName(equalTo(DatePicker.class.getName())))
-                .inRoot(isDialog())
-                .perform(setDate(2020, 7, 13));
-        onView(withText(R.string.date_picker_dialog_set)).inRoot(isDialog()).perform(click());
-
-        int numNextActionsCalled = testService.getNextActionsCounter();
-        onView(withContentDescription("Done")).perform(click());
-        testService.waitUntilGetNextActions(numNextActionsCalled + 1);
-
-        List<ProcessedActionProto> processedActions = testService.getProcessedActions();
-        assertThat(processedActions, iterableWithSize(1));
-        assertThat(
-                processedActions.get(0).getStatus(), is(ProcessedActionStatusProto.ACTION_APPLIED));
-        ShowGenericUiProto.Result result = processedActions.get(0).getShowGenericUiResult();
-        List<ModelProto.ModelValue> resultModelValues = result.getModel().getValuesList();
-        assertThat(resultModelValues, iterableWithSize(1));
-        assertThat(resultModelValues.get(0),
-                is((ModelProto.ModelValue) ModelProto.ModelValue.newBuilder()
-                                .setIdentifier("date")
-                                .setValue(ValueProto.newBuilder().setDates(
-                                        DateList.newBuilder().addValues(DateProto.newBuilder()
-                                                                                .setYear(2020)
-                                                                                .setMonth(7)
-                                                                                .setDay(13))))
-                                .build()));
-    }
 }
diff --git a/chrome/android/features/tab_ui/java/res/values/dimens.xml b/chrome/android/features/tab_ui/java/res/values/dimens.xml
index 921e875..99e3027 100644
--- a/chrome/android/features/tab_ui/java/res/values/dimens.xml
+++ b/chrome/android/features/tab_ui/java/res/values/dimens.xml
@@ -12,6 +12,7 @@
     <dimen name="tab_grid_close_button_size">18dp</dimen>
     <dimen name="tab_grid_dialog_side_margin">16dp</dimen>
     <dimen name="tab_grid_dialog_top_margin">85dp</dimen>
+    <dimen name="tab_grid_iph_item_description_margin">16dp</dimen>
     <dimen name="tab_grid_iph_dialog_height">430dp</dimen>
     <dimen name="tab_grid_iph_dialog_top_margin">24dp</dimen>
     <dimen name="tab_grid_iph_dialog_side_margin">12dp</dimen>
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/IphMessageCardViewModel.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/IphMessageCardViewModel.java
index 4ddfdcb..9211bff 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/IphMessageCardViewModel.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/IphMessageCardViewModel.java
@@ -43,10 +43,12 @@
                 .with(MessageCardViewProperties.MESSAGE_SERVICE_ACTION_PROVIDER,
                         data.getReviewActionProvider())
                 .with(MessageCardViewProperties.DESCRIPTION_TEXT, descriptionText)
+                .with(MessageCardViewProperties.DESCRIPTION_TEXT_TEMPLATE, null)
                 .with(MessageCardViewProperties.ACTION_TEXT, actionText)
                 .with(MessageCardViewProperties.DISMISS_BUTTON_CONTENT_DESCRIPTION,
                         dismissButtonContextDescription)
                 .with(MessageCardViewProperties.SHOULD_KEEP_AFTER_REVIEW, true)
+                .with(MessageCardViewProperties.IS_ICON_VISIBLE, false)
                 .with(CARD_TYPE, MESSAGE)
                 .with(CARD_ALPHA, 1f)
                 .build();
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardView.java
index f6d68a5..07b1ea1 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardView.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardView.java
@@ -124,4 +124,24 @@
     void setDismissButtonOnClickListener(OnClickListener listener) {
         mCloseButton.setOnClickListener(listener);
     }
+
+    /**
+     * Modify the view based on the visibility of the icon. For messages that doesn't have an icon,
+     * remove the icon and update the margin of the description text field.
+     * @param visible  Whether icon is visible.
+     */
+    void setIconVisibility(boolean visible) {
+        MarginLayoutParams params = (MarginLayoutParams) mDescription.getLayoutParams();
+        if (visible) {
+            if (indexOfChild(mIcon) == -1) {
+                addView(mIcon, 0);
+                params.setMargins(0, 0, 0, 0);
+            }
+        } else {
+            int margin = (int) getContext().getResources().getDimension(
+                    R.dimen.tab_grid_iph_item_description_margin);
+            removeView(mIcon);
+            params.setMargins(margin, 0, 0, 0);
+        }
+    }
 }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewBinder.java
index 1e076a0..13809a9 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewBinder.java
@@ -59,6 +59,8 @@
             });
         } else if (CARD_ALPHA == propertyKey) {
             itemView.setAlpha(model.get(CARD_ALPHA));
+        } else if (MessageCardViewProperties.IS_ICON_VISIBLE == propertyKey) {
+            itemView.setIconVisibility(model.get(MessageCardViewProperties.IS_ICON_VISIBLE));
         }
     }
 }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewProperties.java
index bb16e3d..0552c94 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewProperties.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewProperties.java
@@ -40,10 +40,12 @@
             new PropertyModel.WritableObjectPropertyKey<>();
     public static final PropertyModel.WritableBooleanPropertyKey SHOULD_KEEP_AFTER_REVIEW =
             new PropertyModel.WritableBooleanPropertyKey();
+    public static final PropertyModel.WritableBooleanPropertyKey IS_ICON_VISIBLE =
+            new PropertyModel.WritableBooleanPropertyKey();
 
     public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {ACTION_TEXT, DESCRIPTION_TEXT,
             DESCRIPTION_TEXT_TEMPLATE, MESSAGE_TYPE, ICON_PROVIDER, UI_ACTION_PROVIDER,
             UI_DISMISS_ACTION_PROVIDER, MESSAGE_SERVICE_ACTION_PROVIDER,
             MESSAGE_SERVICE_DISMISS_ACTION_PROVIDER, DISMISS_BUTTON_CONTENT_DESCRIPTION,
-            SHOULD_KEEP_AFTER_REVIEW, CARD_TYPE, CARD_ALPHA};
+            SHOULD_KEEP_AFTER_REVIEW, IS_ICON_VISIBLE, CARD_TYPE, CARD_ALPHA};
 }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageCardViewModel.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageCardViewModel.java
index e7dc779..0fc80718 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageCardViewModel.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageCardViewModel.java
@@ -52,6 +52,7 @@
                 .with(MessageCardViewProperties.ACTION_TEXT, actionText)
                 .with(MessageCardViewProperties.DISMISS_BUTTON_CONTENT_DESCRIPTION,
                         dismissButtonContextDescription)
+                .with(MessageCardViewProperties.IS_ICON_VISIBLE, true)
                 .with(CARD_TYPE, MESSAGE)
                 .with(CARD_ALPHA, 1f)
                 .build();
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewBinderTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewBinderTest.java
index d62b748..8a6715e 100644
--- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewBinderTest.java
+++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewBinderTest.java
@@ -143,6 +143,26 @@
         assertTrue(mMessageServiceDismissCallbackRan.get());
     }
 
+    @Test
+    @UiThreadTest
+    @SmallTest
+    public void testSetIconVisibility() {
+        int margin = (int) getActivity().getResources().getDimension(
+                R.dimen.tab_grid_iph_item_description_margin);
+        ViewGroup.MarginLayoutParams params =
+                (ViewGroup.MarginLayoutParams) mItemView.findViewById(R.id.description)
+                        .getLayoutParams();
+        assertEquals(4, mItemView.getChildCount());
+
+        mItemViewModel.set(MessageCardViewProperties.IS_ICON_VISIBLE, false);
+        assertEquals(3, mItemView.getChildCount());
+        assertEquals(margin, params.leftMargin);
+
+        mItemViewModel.set(MessageCardViewProperties.IS_ICON_VISIBLE, true);
+        assertEquals(4, mItemView.getChildCount());
+        assertEquals(0, params.leftMargin);
+    }
+
     @Override
     public void tearDownTest() throws Exception {
         mItemMCP.destroy();
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
index 2b3fd22..a18cd3d 100644
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -602,7 +602,7 @@
             android:label="@string/settings"
             android:exported="false">
         </activity>
-        <activity android:name="org.chromium.chrome.browser.settings.website.ManageSpaceActivity"
+        <activity android:name="org.chromium.chrome.browser.site_settings.ManageSpaceActivity"
             android:theme="@style/Theme.Chromium.Settings.ManageSpace"
             android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
             android:label="@string/storage_management_activity_label"
diff --git a/chrome/android/java/monochrome_public_bundle__base_bundle_module.AndroidManifest.expected b/chrome/android/java/monochrome_public_bundle__base_bundle_module.AndroidManifest.expected
index 7f634ea..4647d7d8 100644
--- a/chrome/android/java/monochrome_public_bundle__base_bundle_module.AndroidManifest.expected
+++ b/chrome/android/java/monochrome_public_bundle__base_bundle_module.AndroidManifest.expected
@@ -278,7 +278,7 @@
         android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
         android:exported="false"
         android:label="@string/storage_management_activity_label"
-        android:name="org.chromium.chrome.browser.settings.website.ManageSpaceActivity"
+        android:name="org.chromium.chrome.browser.site_settings.ManageSpaceActivity"
         android:theme="@style/Theme.Chromium.Settings.ManageSpace"/>
     <activity
         android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
@@ -1003,7 +1003,7 @@
         android:launchMode="singleTask"
         android:name="org.chromium.android_webview.devui.MainActivity"
         android:process=":webview_apk"
-        android:taskAffinity="org.chromium.android_webview.devui"
+        android:taskAffinity="org.chromium.chrome.org.chromium.android_webview.devui"
         android:theme="@style/Theme.DevUi.DayNight">
       <intent-filter>
         <action android:name="com.android.webview.SHOW_DEV_UI"/>
@@ -1028,7 +1028,7 @@
         android:launchMode="singleTop"
         android:name="org.chromium.android_webview.devui.CrashesListActivity"
         android:process=":webview_apk"
-        android:taskAffinity="org.chromium.android_webview.devui"
+        android:taskAffinity="org.chromium.chrome.org.chromium.android_webview.devui"
         android:theme="@style/Theme.DevUi.DayNight"/>
     <activity
         android:label="WebView
@@ -1036,7 +1036,7 @@
         android:launchMode="singleTop"
         android:name="org.chromium.android_webview.devui.FlagsActivity"
         android:process=":webview_apk"
-        android:taskAffinity="org.chromium.android_webview.devui"
+        android:taskAffinity="org.chromium.chrome.org.chromium.android_webview.devui"
         android:theme="@style/Theme.DevUi.DayNight"/>
     <activity
         android:enabled="false"
diff --git a/chrome/android/java/res/values-v19/values.xml b/chrome/android/java/res/values-v19/values.xml
index 86eb5b0f..2c61827 100644
--- a/chrome/android/java/res/values-v19/values.xml
+++ b/chrome/android/java/res/values-v19/values.xml
@@ -3,5 +3,5 @@
      Use of this source code is governed by a BSD-style license that can be
      found in the LICENSE file. -->
 <resources>
-    <string translatable="false" name="manage_space_activity">org.chromium.chrome.browser.settings.website.ManageSpaceActivity</string>
+    <string translatable="false" name="manage_space_activity">org.chromium.chrome.browser.site_settings.ManageSpaceActivity</string>
 </resources>
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
index 370468e..3eb9c82 100644
--- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml
@@ -76,7 +76,7 @@
         android:order="13"
         android:title="@string/prefs_accessibility"/>
     <Preference
-        android:fragment="org.chromium.chrome.browser.settings.website.SiteSettings"
+        android:fragment="org.chromium.chrome.browser.site_settings.SiteSettings"
         android:key="content_settings"
         android:order="14"
         android:title="@string/prefs_site_settings"/>
diff --git a/chrome/android/java/res/xml/notifications_preferences.xml b/chrome/android/java/res/xml/notifications_preferences.xml
index a30dc4a3..8ab643a 100644
--- a/chrome/android/java/res/xml/notifications_preferences.xml
+++ b/chrome/android/java/res/xml/notifications_preferences.xml
@@ -11,7 +11,7 @@
         android:summary="@string/notifications_content_suggestions_summary" />
 
     <Preference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:title="@string/notifications_from_websites_title"
         android:key="from_websites" />
 </PreferenceScreen>
\ No newline at end of file
diff --git a/chrome/android/java/res/xml/single_website_preferences.xml b/chrome/android/java/res/xml/single_website_preferences.xml
index 225aefc..534ce25f 100644
--- a/chrome/android/java/res/xml/single_website_preferences.xml
+++ b/chrome/android/java/res/xml/single_website_preferences.xml
@@ -30,7 +30,7 @@
     <PreferenceCategory
         android:key="site_usage"
         android:title="@string/website_settings_usage_category" />
-    <org.chromium.chrome.browser.settings.website.ClearWebsiteStorage
+    <org.chromium.chrome.browser.site_settings.ClearWebsiteStorage
         android:key="clear_data"
         android:title="@string/webstorage_clear_data_dialog_title"
         android:dialogMessage="@string/webstorage_clear_data_dialog_message"
diff --git a/chrome/android/java/res/xml/site_settings_preferences.xml b/chrome/android/java/res/xml/site_settings_preferences.xml
index c25b985..c99b264 100644
--- a/chrome/android/java/res/xml/site_settings_preferences.xml
+++ b/chrome/android/java/res/xml/site_settings_preferences.xml
@@ -7,94 +7,94 @@
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto">
     <!-- All sites -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="all_sites"
         android:title="@string/all_sites"
         android:icon="@drawable/settings_all_sites"
         app:iconTint="@color/default_icon_color" />
     <!-- Cookies -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
         android:key="cookies"
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings" />
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings" />
     <!-- Location -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="device_location" />
     <!-- Camera -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="camera" />
     <!-- Microphone -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="microphone" />
     <!-- Sensors -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="sensors" />
     <!-- Notifications -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="notifications" />
     <!-- JavaScript -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="javascript" />
     <!-- Popups -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="popups" />
     <!-- Ads -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="ads" />
     <!-- Background sync -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="background_sync" />
     <!-- Automatic Downloads -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="automatic_downloads" />
     <!-- Protected content -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="protected_content" />
     <!-- Sound -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="sound" />
     <!-- Storage -->
     <!-- TODO(finnur): Move this over to the new Usage screen, once it exists. -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="use_storage"
         android:title="@string/website_settings_storage"
         android:icon="@drawable/settings_storage"
         app:iconTint="@color/default_icon_color" />
     <!-- NFC -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="nfc" />
     <!-- USB -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="usb" />
     <!-- Clipboard API -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="clipboard" />
     <!-- Bluetooth Scanning -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="bluetooth_scanning" />
     <!-- VR -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="virtual_reality" />
     <!-- AR -->
-    <org.chromium.chrome.browser.settings.website.SiteSettingsPreference
-        android:fragment="org.chromium.chrome.browser.settings.website.SingleCategorySettings"
+    <org.chromium.chrome.browser.site_settings.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.site_settings.SingleCategorySettings"
         android:key="augmented_reality" />
 </PreferenceScreen>
diff --git a/chrome/android/java/res/xml/website_preferences.xml b/chrome/android/java/res/xml/website_preferences.xml
index cf1ac69..5c06cc6 100644
--- a/chrome/android/java/res/xml/website_preferences.xml
+++ b/chrome/android/java/res/xml/website_preferences.xml
@@ -16,7 +16,7 @@
     <!-- A common Allow/Ask/Block 3-state toggle (radio group). Only shown when
          the category requires these 3 states. Mutual exclusive with the
          "binary_toggle" above. -->
-    <org.chromium.chrome.browser.settings.website.TriStateSiteSettingsPreference
+    <org.chromium.chrome.browser.site_settings.TriStateSiteSettingsPreference
         android:key="tri_state_toggle" />
 
     <!-- A toggle for blocking third-party cookies, only shown for the Cookies category. -->
diff --git a/chrome/android/java/src/PRESUBMIT.py b/chrome/android/java/src/PRESUBMIT.py
index f64d17cb..d1f4114 100644
--- a/chrome/android/java/src/PRESUBMIT.py
+++ b/chrome/android/java/src/PRESUBMIT.py
@@ -92,6 +92,12 @@
       BROWSER_ROOT + 'signin/ConfirmSyncDataStateMachineDelegate.java',
       BROWSER_ROOT + 'signin/SigninFragmentBase.java',
       BROWSER_ROOT + 'signin/SignOutDialogFragment.java',
+      BROWSER_ROOT + 'site_settings/AddExceptionPreference.java',
+      BROWSER_ROOT + 'site_settings/ChosenObjectSettings.java',
+      BROWSER_ROOT + 'site_settings/ManageSpaceActivity.java',
+      BROWSER_ROOT + 'site_settings/ManageSpaceActivity.java',
+      BROWSER_ROOT + 'site_settings/SingleCategorySettings.java',
+      BROWSER_ROOT + 'site_settings/SingleWebsiteSettings.java',
       BROWSER_ROOT + 'sync/settings/SyncAndServicesSettings.java',
       BROWSER_ROOT + 'sync/ui/PassphraseCreationDialogFragment.java',
       BROWSER_ROOT + 'sync/ui/PassphraseDialogFragment.java',
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeCallback.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeCallback.java
index 0ff7454..0035ccc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeCallback.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeCallback.java
@@ -4,6 +4,7 @@
 
 package org.chromium.chrome.browser;
 
+import android.content.pm.ResolveInfo;
 import android.text.TextUtils;
 import android.view.ActionMode;
 import android.view.Menu;
@@ -12,6 +13,8 @@
 import androidx.annotation.VisibleForTesting;
 
 import org.chromium.base.Callback;
+import org.chromium.base.CollectionUtil;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
 import org.chromium.chrome.browser.firstrun.FirstRunStatus;
@@ -30,6 +33,10 @@
 import org.chromium.content_public.browser.WebContents;
 import org.chromium.ui.base.PageTransition;
 
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
 /**
  * A class that handles selection action mode for an associated {@link Tab}.
  */
@@ -67,7 +74,22 @@
     @Override
     public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
         notifyContextualActionBarVisibilityChanged(true);
-        return mHelper.onPrepareActionMode(mode, menu);
+        boolean res = mHelper.onPrepareActionMode(mode, menu);
+        Set<String> browsers = getPackageNames(PackageManagerUtils.queryAllWebBrowsersInfo());
+        Set<String> launchers = getPackageNames(PackageManagerUtils.queryAllLaunchersInfo());
+        for (int i = 0; i < menu.size(); i++) {
+            MenuItem item = menu.getItem(i);
+            if (item.getGroupId() != R.id.select_action_menu_text_processing_menus
+                    || item.getIntent() == null || item.getIntent().getComponent() == null) {
+                continue;
+            }
+            String packageName = item.getIntent().getComponent().getPackageName();
+            // Exclude actions from browsers and system launchers. https://crbug.com/850195
+            if (browsers.contains(packageName) || launchers.contains(packageName)) {
+                item.setVisible(false);
+            }
+        }
+        return res;
     }
 
     @Override
@@ -100,6 +122,12 @@
         }
     }
 
+    private Set<String> getPackageNames(List<ResolveInfo> list) {
+        Set<String> set = new HashSet<>();
+        CollectionUtil.forEach(list, (info) -> set.add(info.activityInfo.packageName));
+        return set;
+    }
+
     /**
      * Generate the LoadUrlParams necessary to load the specified search query.
      */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
index 91f3fe4..264670bb 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -28,6 +28,7 @@
 import android.view.Window;
 import android.view.WindowManager;
 
+import androidx.annotation.IntDef;
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
@@ -41,8 +42,6 @@
 import org.chromium.base.ThreadUtils;
 import org.chromium.base.TraceEvent;
 import org.chromium.base.library_loader.LibraryLoader;
-import org.chromium.base.metrics.CachedMetrics.BooleanHistogramSample;
-import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.base.supplier.ObservableSupplier;
@@ -167,6 +166,8 @@
 import org.chromium.ui.modaldialog.ModalDialogManager;
 import org.chromium.ui.widget.Toast;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.List;
 import java.util.Locale;
 
@@ -211,17 +212,15 @@
     // Name of the ChromeTabbedActivity alias that handles MAIN intents.
     public static final String MAIN_LAUNCHER_ACTIVITY_NAME = "com.google.android.apps.chrome.Main";
 
-    // Boolean histograms used with maybeDispatchExplicitMainViewIntent().
-    private static final BooleanHistogramSample sExplicitMainViewIntentDispatchedOnCreate =
-            new BooleanHistogramSample(
-                    "Android.MainActivity.ExplicitMainViewIntentDispatched.OnCreate");
-    private static final BooleanHistogramSample sExplicitMainViewIntentDispatchedOnNewIntent =
-            new BooleanHistogramSample(
-                    "Android.MainActivity.ExplicitMainViewIntentDispatched.OnNewIntent");
-    private static final EnumeratedHistogramSample sUndispatchedExplicitMainViewIntentSource =
-            new EnumeratedHistogramSample(
-                    "Android.MainActivity.UndispatchedExplicitMainViewIntentSource",
-                    IntentHandler.ExternalAppId.NUM_ENTRIES);
+    /**
+     * Identifies a histogram to use in {@link #maybeDispatchExplicitMainViewIntent(Intent, int)}.
+     */
+    @IntDef({DispatchedBy.ON_CREATE, DispatchedBy.ON_NEW_INTENT})
+    @Retention(RetentionPolicy.SOURCE)
+    private @interface DispatchedBy {
+        int ON_CREATE = 1;
+        int ON_NEW_INTENT = 2;
+    }
 
     // Count histogram used to track number of tabs when we show the Overview on Return to Chrome.
     private static final String TAB_COUNT_ON_RETURN = "Tabs.TabCountOnStartScreenShown";
@@ -476,8 +475,7 @@
             return LaunchIntentDispatcher.dispatchToTabbedActivity(this, intent);
         }
         @LaunchIntentDispatcher.Action
-        int action = maybeDispatchExplicitMainViewIntent(
-                intent, sExplicitMainViewIntentDispatchedOnCreate);
+        int action = maybeDispatchExplicitMainViewIntent(intent, DispatchedBy.ON_CREATE);
         if (action != LaunchIntentDispatcher.Action.CONTINUE) {
             return action;
         }
@@ -492,10 +490,10 @@
     // intents, and dispatch them accordingly. If the intent was not dispatched, the method
     // returns Action.CONTINUE.
     //
-    // The method also updates the supplied binary histogram with the dispatching result,
+    // The method also updates the supplied boolean histogram with the dispatching result,
     // but only if the intent is a VIEW intent sent explicitly to .Main activity.
     private @LaunchIntentDispatcher.Action int maybeDispatchExplicitMainViewIntent(
-            Intent intent, BooleanHistogramSample dispatchedHistogram) {
+            Intent intent, @DispatchedBy int dispatchedBy) {
         // The first check ensures that this is .Main activity alias (we can't check exactly, but
         // this gets us sufficiently close).
         if (getClass().equals(ChromeTabbedActivity.class)
@@ -503,12 +501,28 @@
                 && MAIN_LAUNCHER_ACTIVITY_NAME.equals(intent.getComponent().getClassName())) {
             @LaunchIntentDispatcher.Action
             int action = LaunchIntentDispatcher.dispatchToCustomTabActivity(this, intent);
-            dispatchedHistogram.record(action != LaunchIntentDispatcher.Action.CONTINUE);
+            switch (dispatchedBy) {
+                case DispatchedBy.ON_CREATE:
+                    RecordHistogram.recordBooleanHistogram(
+                            "Android.MainActivity.ExplicitMainViewIntentDispatched.OnCreate",
+                            action != LaunchIntentDispatcher.Action.CONTINUE);
+                    break;
+                case DispatchedBy.ON_NEW_INTENT:
+
+                    RecordHistogram.recordBooleanHistogram(
+                            "Android.MainActivity.ExplicitMainViewIntentDispatched.OnNewIntent",
+                            action != LaunchIntentDispatcher.Action.CONTINUE);
+                    break;
+                default:
+                    assert false : "Unknown dispatchedBy value " + dispatchedBy;
+            }
             if (action == LaunchIntentDispatcher.Action.CONTINUE) {
                 // Intent was not dispatched, record its source.
                 @IntentHandler.ExternalAppId
                 int externalId = IntentHandler.determineExternalIntentSource(intent);
-                sUndispatchedExplicitMainViewIntentSource.record(externalId);
+                RecordHistogram.recordEnumeratedHistogram(
+                        "Android.MainActivity.UndispatchedExplicitMainViewIntentSource", externalId,
+                        IntentHandler.ExternalAppId.NUM_ENTRIES);
 
                 // Crash if intent came from us, but only in debug builds and only if we weren't
                 // explicitly told not to. Hopefully we'll get enough reports to find where
@@ -790,7 +804,7 @@
         intentForDispatching.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         @LaunchIntentDispatcher.Action
         int action = maybeDispatchExplicitMainViewIntent(
-                intentForDispatching, sExplicitMainViewIntentDispatchedOnNewIntent);
+                intentForDispatching, DispatchedBy.ON_NEW_INTENT);
         if (action != LaunchIntentDispatcher.Action.CONTINUE) {
             // Pressing back button in CCT should bring user to the caller activity.
             moveTaskToBack(true);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/DefaultBrowserInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/DefaultBrowserInfo.java
index 4911168d..9756d3fe 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/DefaultBrowserInfo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/DefaultBrowserInfo.java
@@ -5,11 +5,9 @@
 package org.chromium.chrome.browser;
 
 import android.content.Context;
-import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
-import android.net.Uri;
 import android.text.TextUtils;
 
 import androidx.annotation.IntDef;
@@ -38,8 +36,6 @@
  * A utility class for querying information about the default browser setting.
  */
 public final class DefaultBrowserInfo {
-    private static final String SAMPLE_URL = "https://www.madeupdomainforcheck123.chrome/";
-
     /**
      * A list of potential default browser states.  To add a type to this list please update
      * MobileDefaultBrowserState in histograms.xml and make sure to keep this list in sync.
@@ -97,7 +93,7 @@
                                 context, BuildInfo.getInstance().hostPackageLabel));
 
                         PackageManager pm = context.getPackageManager();
-                        ResolveInfo info = getResolveInfoForViewIntent();
+                        ResolveInfo info = PackageManagerUtils.resolveDefaultWebBrowserActivity();
 
                         // Caches whether Chrome is set as a default browser on the device.
                         boolean isDefault = info != null && info.match != 0
@@ -128,19 +124,6 @@
     }
 
     /**
-     * @return Default ResolveInfo to handle a VIEW intent for a url.
-     */
-    private static ResolveInfo getResolveInfoForViewIntent() {
-        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(SAMPLE_URL));
-        return PackageManagerUtils.resolveActivity(intent, 0);
-    }
-
-    private static List<ResolveInfo> getResolveInfoListForViewIntent() {
-        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(SAMPLE_URL));
-        return PackageManagerUtils.queryIntentActivities(intent, PackageManager.MATCH_ALL);
-    }
-
-    /**
      * @return Title of the menu item for opening a link in the default browser.
      * @param forceChromeAsDefault Whether the Custom Tab is created by Chrome.
      */
@@ -174,7 +157,7 @@
                     DefaultInfo info = new DefaultInfo();
 
                     // Query the default handler first.
-                    ResolveInfo defaultRi = getResolveInfoForViewIntent();
+                    ResolveInfo defaultRi = PackageManagerUtils.resolveDefaultWebBrowserActivity();
                     if (defaultRi != null && defaultRi.match != 0) {
                         info.hasDefault = true;
                         info.isChromeDefault = isSamePackage(context, defaultRi);
@@ -183,7 +166,7 @@
 
                     // Query all other intent handlers.
                     Set<String> uniquePackages = new HashSet<>();
-                    List<ResolveInfo> ris = getResolveInfoListForViewIntent();
+                    List<ResolveInfo> ris = PackageManagerUtils.queryAllWebBrowsersInfo();
                     if (ris != null) {
                         for (ResolveInfo ri : ris) {
                             String packageName = ri.activityInfo.applicationInfo.packageName;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
index b0e6fcd..e6c72556 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
@@ -27,7 +27,7 @@
 import org.chromium.base.IntentUtils;
 import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.StrictModeContext;
-import org.chromium.base.metrics.CachedMetrics;
+import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProvider.CustomTabsUiType;
 import org.chromium.chrome.browser.browserservices.SessionDataHolder;
 import org.chromium.chrome.browser.browserservices.trustedwebactivityui.splashscreen.TwaSplashController;
@@ -74,9 +74,6 @@
      */
     private static final int PARTNER_BROWSER_CUSTOMIZATIONS_TIMEOUT_MS = 10000;
 
-    private static final CachedMetrics.SparseHistogramSample sIntentFlagsHistogram =
-            new CachedMetrics.SparseHistogramSample("Launch.IntentFlags");
-
     private final Activity mActivity;
     private final Intent mIntent;
     private final boolean mIsCustomTabIntent;
@@ -476,7 +473,7 @@
                 flagsOfInterest |= Intent.FLAG_ACTIVITY_NEW_DOCUMENT;
             }
             int maskedFlags = mIntent.getFlags() & flagsOfInterest;
-            sIntentFlagsHistogram.record(maskedFlags);
+            RecordHistogram.recordSparseHistogram("Launch.IntentFlags", maskedFlags);
         }
         MediaNotificationUma.recordClickSource(mIntent);
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivitySettingsLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivitySettingsLauncher.java
index 8feb145..679200ca 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivitySettingsLauncher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivitySettingsLauncher.java
@@ -12,10 +12,10 @@
 import org.chromium.base.Log;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.settings.SettingsLauncher;
-import org.chromium.chrome.browser.settings.website.SettingsNavigationSource;
-import org.chromium.chrome.browser.settings.website.SingleCategorySettings;
-import org.chromium.chrome.browser.settings.website.SingleWebsiteSettings;
-import org.chromium.chrome.browser.settings.website.SiteSettingsCategory;
+import org.chromium.chrome.browser.site_settings.SettingsNavigationSource;
+import org.chromium.chrome.browser.site_settings.SingleCategorySettings;
+import org.chromium.chrome.browser.site_settings.SingleWebsiteSettings;
+import org.chromium.chrome.browser.site_settings.SiteSettingsCategory;
 
 import java.util.ArrayList;
 import java.util.Collection;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappBridge.java
index 0e06554..40570e1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappBridge.java
@@ -7,7 +7,7 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.NativeMethods;
 import org.chromium.chrome.browser.browserservices.Origin;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
 
 /**
  * Provides Trusted Web Activity Client App permissions for native. The C++ counterpart is the
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/TrustedWebActivityPermissionManager.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/TrustedWebActivityPermissionManager.java
index 2f8ccc75..76bfb902 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/TrustedWebActivityPermissionManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/TrustedWebActivityPermissionManager.java
@@ -11,11 +11,16 @@
 import android.content.pm.PackageManager;
 import android.text.TextUtils;
 
+import androidx.annotation.Nullable;
+import androidx.annotation.UiThread;
+import androidx.annotation.VisibleForTesting;
+import androidx.browser.trusted.Token;
+
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
 import org.chromium.chrome.browser.ChromeApplication;
 import org.chromium.chrome.browser.browserservices.Origin;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -25,10 +30,6 @@
 import javax.inject.Named;
 import javax.inject.Singleton;
 
-import androidx.annotation.Nullable;
-import androidx.annotation.UiThread;
-import androidx.annotation.VisibleForTesting;
-import androidx.browser.trusted.Token;
 import dagger.Lazy;
 
 /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
index e306a5fa..11522a5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
@@ -28,7 +28,6 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.base.annotations.NativeMethods;
-import org.chromium.base.metrics.CachedMetrics;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.task.AsyncTask;
 import org.chromium.chrome.R;
@@ -458,10 +457,6 @@
                     notifyOnLastThumbnail();
                 }
                 if (jpeg != null) {
-                    CachedMetrics.EnumeratedHistogramSample histogram =
-                            new CachedMetrics.EnumeratedHistogramSample(
-                                    UMA_THUMBNAIL_FETCHING_RESULT,
-                                    ThumbnailFetchingResult.NUM_ENTRIES);
                     if (CachedFeatureFlags.getValue(ALLOW_TO_REFETCH_TAB_THUMBNAIL_VARIATION)) {
                         double jpegAspectRatio = jpeg.getHeight() == 0
                                 ? 0
@@ -471,7 +466,7 @@
                         if (!mRefectchedTabIds.contains(tabId)
                                 && Math.abs(jpegAspectRatio - mExpectedThumbnailAspectRatio)
                                         >= ASPECT_RATIO_PRECISION) {
-                            histogram.record(
+                            recordThumbnailFetchingResult(
                                     ThumbnailFetchingResult.GOT_DIFFERENT_ASPECT_RATIO_JPEG);
                             mRefectchedTabIds.add(tabId);
                             if (mNativeTabContentManager == 0 || !mSnapshotsEnabled) return;
@@ -481,7 +476,7 @@
                             return;
                         }
                     }
-                    histogram.record(ThumbnailFetchingResult.GOT_JPEG);
+                    recordThumbnailFetchingResult(ThumbnailFetchingResult.GOT_JPEG);
 
                     callback.onResult(jpeg);
                     return;
@@ -490,15 +485,9 @@
                 TabContentManagerJni.get().getEtc1TabThumbnail(
                         mNativeTabContentManager, TabContentManager.this, tabId, (etc1) -> {
                             if (etc1 != null) {
-                                RecordHistogram.recordEnumeratedHistogram(
-                                        UMA_THUMBNAIL_FETCHING_RESULT,
-                                        ThumbnailFetchingResult.GOT_ETC1,
-                                        ThumbnailFetchingResult.NUM_ENTRIES);
+                                recordThumbnailFetchingResult(ThumbnailFetchingResult.GOT_ETC1);
                             } else {
-                                RecordHistogram.recordEnumeratedHistogram(
-                                        UMA_THUMBNAIL_FETCHING_RESULT,
-                                        ThumbnailFetchingResult.GOT_NOTHING,
-                                        ThumbnailFetchingResult.NUM_ENTRIES);
+                                recordThumbnailFetchingResult(ThumbnailFetchingResult.GOT_NOTHING);
                             }
                             callback.onResult(etc1);
                         });
@@ -506,6 +495,11 @@
         }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
     }
 
+    private static void recordThumbnailFetchingResult(@ThumbnailFetchingResult int result) {
+        RecordHistogram.recordEnumeratedHistogram(
+                UMA_THUMBNAIL_FETCHING_RESULT, result, ThumbnailFetchingResult.NUM_ENTRIES);
+    }
+
     /**
      * Cache the content of a tab as a thumbnail.
      * @param tab The tab whose content we will cache.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
index 6e93c5e..14ca94a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
@@ -44,7 +44,6 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.base.annotations.NativeMethods;
-import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.task.PostTask;
 import org.chromium.chrome.R;
@@ -190,10 +189,6 @@
             "Chrome not initialized", "Not authorized", "Invalid URL", "Invalid referrer",
             "Invalid referrer for session"};
 
-    private static final EnumeratedHistogramSample sParallelRequestStatusOnStart =
-            new EnumeratedHistogramSample(
-                    "CustomTabs.ParallelRequestStatusOnStart", ParallelRequestStatus.NUM_ENTRIES);
-
     private static CustomTabsConnection sInstance;
     private @Nullable String mTrustedPublisherUrlPackage;
 
@@ -848,7 +843,8 @@
     @ParallelRequestStatus
     int handleParallelRequest(CustomTabsSessionToken session, Intent intent) {
         int status = maybeStartParallelRequest(session, intent);
-        sParallelRequestStatusOnStart.record(status);
+        RecordHistogram.recordEnumeratedHistogram("CustomTabs.ParallelRequestStatusOnStart", status,
+                ParallelRequestStatus.NUM_ENTRIES);
 
         if (mLogRequests) {
             Log.w(TAG, "handleParallelRequest() = " + PARALLEL_REQUEST_MESSAGES[status]);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionUsageHistogram.java b/chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionUsageHistogram.java
index 4330e343..ba5b969f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionUsageHistogram.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionUsageHistogram.java
@@ -7,7 +7,7 @@
 import androidx.annotation.IntDef;
 import androidx.annotation.VisibleForTesting;
 
-import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample;
+import org.chromium.base.metrics.RecordHistogram;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -20,9 +20,6 @@
  * the specific action that was performed.
  */
 class DirectActionUsageHistogram {
-    private static final EnumeratedHistogramSample PERFORM_HISTOGRAM =
-            new EnumeratedHistogramSample(
-                    "Android.DirectAction.Perform", DirectActionId.NUM_ENTRIES);
 
     /** A map that convert known string ids to enum value for the histogram. */
     private static final Map<String, Integer> ACTION_ID_MAP;
@@ -81,7 +78,7 @@
      * Records an attempt to execute a direct action that was rejected as unknown.
      */
     static void recordUnknown() {
-        PERFORM_HISTOGRAM.record(DirectActionId.UNKNOWN);
+        record(DirectActionId.UNKNOWN);
     }
 
     /**
@@ -90,9 +87,15 @@
      * @param actionId The string id of the direct action that was executed.
      */
     static void record(String actionId) {
+        @DirectActionId
         Integer histogramId = ACTION_ID_MAP.get(actionId);
         if (histogramId == null) histogramId = DirectActionId.OTHER;
 
-        PERFORM_HISTOGRAM.record(histogramId);
+        record(histogramId);
+    }
+
+    private static void record(@DirectActionId int actionId) {
+        RecordHistogram.recordEnumeratedHistogram(
+                "Android.DirectAction.Perform", actionId, DirectActionId.NUM_ENTRIES);
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
index 70d2614..860454a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
@@ -17,7 +17,7 @@
 import org.chromium.base.ActivityState;
 import org.chromium.base.ApplicationStatus;
 import org.chromium.base.ApplicationStatus.ActivityStateListener;
-import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample;
+import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.customtabs.CustomTabActivity;
 import org.chromium.chrome.browser.datareduction.DataReductionPromoUtils;
@@ -67,8 +67,6 @@
     private static final int SIGNIN_ACCEPT_ANOTHER_ACCOUNT = 3;
     private static final int SIGNIN_NO_THANKS = 4;
     private static final int SIGNIN_MAX = 5;
-    private static final EnumeratedHistogramSample sSigninChoiceHistogram =
-            new EnumeratedHistogramSample("MobileFre.SignInChoice", SIGNIN_MAX);
 
     private static final int FRE_PROGRESS_STARTED = 0;
     private static final int FRE_PROGRESS_WELCOME_SHOWN = 1;
@@ -78,10 +76,6 @@
     private static final int FRE_PROGRESS_COMPLETED_NOT_SIGNED_IN = 5;
     private static final int FRE_PROGRESS_DEFAULT_SEARCH_ENGINE_SHOWN = 6;
     private static final int FRE_PROGRESS_MAX = 7;
-    private static final EnumeratedHistogramSample sMobileFreProgressMainIntentHistogram =
-            new EnumeratedHistogramSample("MobileFre.Progress.MainIntent", FRE_PROGRESS_MAX);
-    private static final EnumeratedHistogramSample sMobileFreProgressViewIntentHistogram =
-            new EnumeratedHistogramSample("MobileFre.Progress.ViewIntent", FRE_PROGRESS_MAX);
 
     private static FirstRunActivityObserver sObserver;
 
@@ -362,7 +356,7 @@
                 choice = mResultIsDefaultAccount ? SIGNIN_ACCEPT_DEFAULT_ACCOUNT
                                                  : SIGNIN_ACCEPT_ANOTHER_ACCOUNT;
             }
-            sSigninChoiceHistogram.record(choice);
+            recordSigninChoiceHistogram(choice);
             recordFreProgressHistogram(FRE_PROGRESS_COMPLETED_SIGNED_IN);
         } else {
             recordFreProgressHistogram(FRE_PROGRESS_COMPLETED_NOT_SIGNED_IN);
@@ -411,7 +405,7 @@
 
     @Override
     public void refuseSignIn() {
-        sSigninChoiceHistogram.record(SIGNIN_NO_THANKS);
+        recordSigninChoiceHistogram(SIGNIN_NO_THANKS);
         mResultSignInAccountName = null;
         mResultShowSignInSettings = false;
     }
@@ -486,12 +480,19 @@
 
     private void recordFreProgressHistogram(int state) {
         if (mLaunchedFromChromeIcon) {
-            sMobileFreProgressMainIntentHistogram.record(state);
+            RecordHistogram.recordEnumeratedHistogram(
+                    "MobileFre.Progress.MainIntent", state, FRE_PROGRESS_MAX);
         } else {
-            sMobileFreProgressViewIntentHistogram.record(state);
+            RecordHistogram.recordEnumeratedHistogram(
+                    "MobileFre.Progress.ViewIntent", state, FRE_PROGRESS_MAX);
         }
     }
 
+    private static void recordSigninChoiceHistogram(int signInChoice) {
+        RecordHistogram.recordEnumeratedHistogram(
+                "MobileFre.SignInChoice", signInChoice, SIGNIN_MAX);
+    }
+
     @Override
     public void showInfoPage(@StringRes int url) {
         CustomTabActivity.showInfoPage(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/PermissionInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/PermissionInfoBar.java
index ef216ab..3823241d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/PermissionInfoBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/PermissionInfoBar.java
@@ -10,8 +10,8 @@
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.permissions.ChromePermissionsClient;
 import org.chromium.chrome.browser.settings.SettingsLauncher;
-import org.chromium.chrome.browser.settings.website.SingleCategorySettings;
-import org.chromium.chrome.browser.settings.website.SiteSettingsCategory;
+import org.chromium.chrome.browser.site_settings.SingleCategorySettings;
+import org.chromium.chrome.browser.site_settings.SiteSettingsCategory;
 import org.chromium.components.permissions.AndroidPermissionRequester;
 import org.chromium.ui.base.WindowAndroid;
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBar.java
index 3dc894e..a091d48 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBar.java
@@ -10,7 +10,7 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.settings.SettingsLauncher;
-import org.chromium.chrome.browser.settings.website.SingleWebsiteSettings;
+import org.chromium.chrome.browser.site_settings.SingleWebsiteSettings;
 
 /**
  * An infobar to disclose to the user that the default search engine has geolocation access by
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
index 2581366..9f8a543 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
@@ -349,6 +349,7 @@
             public void run() {
                 HomepageManager.recordHomeButtonPreferenceState();
                 HomepageManager.recordHomepageIsCustomized(HomepageManager.isHomepageCustomized());
+                HomepageManager.recordHomepageLocationTypeIfEnabled();
             }
         });
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java
index 2b28265e..a68260e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java
@@ -17,8 +17,7 @@
 import org.chromium.base.ContextUtils;
 import org.chromium.base.IntentUtils;
 import org.chromium.base.Log;
-import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample;
-import org.chromium.base.metrics.CachedMetrics.TimesHistogramSample;
+import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.chrome.browser.AppHooks;
 import org.chromium.chrome.browser.IntentHandler;
 import org.chromium.chrome.browser.ShortcutHelper;
@@ -83,32 +82,9 @@
     /** Finch experiment group which is disabled for instant apps. */
     private static final String INSTANT_APPS_DISABLED_ARM = "InstantAppsDisabled";
 
-    /** A histogram to record how long each handleIntent() call took. */
-    private static final TimesHistogramSample sHandleIntentDuration =
-            new TimesHistogramSample("Android.InstantApps.HandleIntentDuration");
-
-    /** A histogram to record how long the fallback intent roundtrip was. */
-    private static final TimesHistogramSample sFallbackIntentTimes =
-            new TimesHistogramSample("Android.InstantApps.FallbackDuration");
-
     // Only two possible call sources for fallback intents, set boundary at n+1.
     private static final int SOURCE_BOUNDARY = 3;
 
-    private static final EnumeratedHistogramSample sFallbackCallSource =
-            new EnumeratedHistogramSample("Android.InstantApps.CallSource", SOURCE_BOUNDARY);
-
-    /**
-     * A histogram to record how long the GMS Core API call took when the instant app was found.
-     */
-    private static final TimesHistogramSample sInstantAppsApiCallTimesHasApp =
-            new TimesHistogramSample("Android.InstantApps.ApiCallDurationWithApp");
-
-    /**
-     * A histogram to record how long the GMS Core API call took when the instant app was not found.
-     */
-    private static final TimesHistogramSample sInstantAppsApiCallTimesNoApp =
-            new TimesHistogramSample("Android.InstantApps.ApiCallDurationWithoutApp");
-
     /** @return The singleton instance of {@link InstantAppsHandler}. */
     public static InstantAppsHandler getInstance() {
         synchronized (INSTANCE_LOCK) {
@@ -141,7 +117,8 @@
      * @param startTime The timestamp for handleIntent start time.
      */
     private void recordHandleIntentDuration(long startTime) {
-        sHandleIntentDuration.record(SystemClock.elapsedRealtime() - startTime);
+        RecordHistogram.recordTimesHistogram("Android.InstantApps.HandleIntentDuration",
+                SystemClock.elapsedRealtime() - startTime);
     }
 
     /**
@@ -151,9 +128,11 @@
      */
     protected void recordInstantAppsApiCallTime(long startTime, boolean hasApp) {
         if (hasApp) {
-            sInstantAppsApiCallTimesHasApp.record(SystemClock.elapsedRealtime() - startTime);
+            RecordHistogram.recordTimesHistogram("Android.InstantApps.ApiCallDurationWithApp",
+                    SystemClock.elapsedRealtime() - startTime);
         } else {
-            sInstantAppsApiCallTimesNoApp.record(SystemClock.elapsedRealtime() - startTime);
+            RecordHistogram.recordTimesHistogram("Android.InstantApps.ApiCallDurationWithoutApp",
+                    SystemClock.elapsedRealtime() - startTime);
         }
     }
 
@@ -166,12 +145,14 @@
     private void maybeRecordFallbackStats(Intent intent) {
         Long startTime = IntentUtils.safeGetLongExtra(intent, INSTANT_APP_START_TIME_EXTRA, 0);
         if (startTime > 0) {
-            sFallbackIntentTimes.record(SystemClock.elapsedRealtime() - startTime);
+            RecordHistogram.recordTimesHistogram("Android.InstantApps.FallbackDuration",
+                    SystemClock.elapsedRealtime() - startTime);
             intent.removeExtra(INSTANT_APP_START_TIME_EXTRA);
         }
         int callSource = IntentUtils.safeGetIntExtra(intent, BROWSER_LAUNCH_REASON, 0);
         if (callSource > 0 && callSource < SOURCE_BOUNDARY) {
-            sFallbackCallSource.record(callSource);
+            RecordHistogram.recordEnumeratedHistogram(
+                    "Android.InstantApps.CallSource", callSource, SOURCE_BOUNDARY);
             intent.removeExtra(BROWSER_LAUNCH_REASON);
         } else if (callSource >= SOURCE_BOUNDARY) {
             Log.e(TAG, "Unexpected call source constant for Instant Apps: " + callSource);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/MediaLauncherActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/media/MediaLauncherActivity.java
index 3a2c4ad..60f6a550 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/MediaLauncherActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/MediaLauncherActivity.java
@@ -14,7 +14,7 @@
 import androidx.annotation.IntDef;
 
 import org.chromium.base.IntentUtils;
-import org.chromium.base.metrics.CachedMetrics;
+import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider;
 
 import java.lang.annotation.Retention;
@@ -38,10 +38,6 @@
         int NUM_ENTRIES = 4;
     }
 
-    private static CachedMetrics.EnumeratedHistogramSample sMediaTypeHistogram =
-            new CachedMetrics.EnumeratedHistogramSample(
-                    "MediaLauncherActivity.MediaType", MediaType.NUM_ENTRIES);
-
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -51,7 +47,8 @@
         String mimeType = getMIMEType(contentUri);
         int mediaType = MediaViewerUtils.getMediaTypeFromMIMEType(mimeType);
 
-        sMediaTypeHistogram.record(mediaType);
+        RecordHistogram.recordEnumeratedHistogram(
+                "MediaLauncherActivity.MediaType", mediaType, MediaType.NUM_ENTRIES);
 
         if (mediaType == MediaType.UNKNOWN) {
             // With our intent-filter, we should only receive implicit intents with media MIME
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/MediaNotificationUma.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/MediaNotificationUma.java
index 645a6f8..0849354e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/MediaNotificationUma.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/MediaNotificationUma.java
@@ -8,7 +8,7 @@
 
 import androidx.annotation.IntDef;
 
-import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample;
+import org.chromium.base.metrics.RecordHistogram;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -31,9 +31,6 @@
     public static final String INTENT_EXTRA_NAME =
             "org.chromium.chrome.browser.metrics.MediaNotificationUma.EXTRA_CLICK_SOURCE";
 
-    private static final EnumeratedHistogramSample sClickSourceHistogram =
-            new EnumeratedHistogramSample("Media.Notification.Click", Source.NUM_ENTRIES);
-
     /**
      * Record the UMA as specified by {@link intent}. The {@link intent} should contain intent extra
      * of name {@link INTENT_EXTRA_NAME} indicating the type.
@@ -44,6 +41,7 @@
         @Source
         int source = intent.getIntExtra(INTENT_EXTRA_NAME, Source.INVALID);
         if (source == Source.INVALID || source >= Source.NUM_ENTRIES) return;
-        sClickSourceHistogram.record(source);
+        RecordHistogram.recordEnumeratedHistogram(
+                "Media.Notification.Click", source, Source.NUM_ENTRIES);
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/night_mode/NightModeMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/night_mode/NightModeMetrics.java
index db3d6a7..d2293d6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/night_mode/NightModeMetrics.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/night_mode/NightModeMetrics.java
@@ -6,7 +6,7 @@
 
 import androidx.annotation.IntDef;
 
-import org.chromium.base.metrics.CachedMetrics;
+import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.metrics.RecordUserAction;
 
 import java.lang.annotation.Retention;
@@ -16,17 +16,6 @@
  * Records user actions and histograms related to the night mode state.
  */
 public class NightModeMetrics {
-    private static final CachedMetrics.BooleanHistogramSample BOOLEAN_NIGHT_MODE_STATE =
-            new CachedMetrics.BooleanHistogramSample("Android.DarkTheme.EnabledState");
-
-    private static final CachedMetrics
-            .EnumeratedHistogramSample ENUMERATED_NIGHT_MODE_ENABLED_REASON =
-            new CachedMetrics.EnumeratedHistogramSample(
-                    "Android.DarkTheme.EnabledReason", NightModeEnabledReason.NUM_ENTRIES);
-
-    private static final CachedMetrics.EnumeratedHistogramSample ENUMERATED_THEME_PREFERENCE_STATE =
-            new CachedMetrics.EnumeratedHistogramSample(
-                    "Android.DarkTheme.Preference.State", ThemeType.NUM_ENTRIES);
 
     /**
      * Different ways that night mode (aka dark theme) can be enabled. This is used for histograms
@@ -49,7 +38,7 @@
      * @param isInNightMode Whether the app is currently in night mode.
      */
     public static void recordNightModeState(boolean isInNightMode) {
-        BOOLEAN_NIGHT_MODE_STATE.record(isInNightMode);
+        RecordHistogram.recordBooleanHistogram("Android.DarkTheme.EnabledState", isInNightMode);
     }
 
     /**
@@ -58,8 +47,9 @@
      * @param powerSaveModeOn Whether or not power save mode is on.
      */
     public static void recordNightModeEnabledReason(@ThemeType int theme, boolean powerSaveModeOn) {
-        ENUMERATED_NIGHT_MODE_ENABLED_REASON.record(
-                calculateNightModeEnabledReason(theme, powerSaveModeOn));
+        RecordHistogram.recordEnumeratedHistogram("Android.DarkTheme.EnabledReason",
+                calculateNightModeEnabledReason(theme, powerSaveModeOn),
+                NightModeEnabledReason.NUM_ENTRIES);
     }
 
     @NightModeEnabledReason
@@ -77,7 +67,8 @@
      * @param theme The new {@link ThemeType} that the user selects.
      */
     public static void recordThemePreferencesState(@ThemeType int theme) {
-        ENUMERATED_THEME_PREFERENCE_STATE.record(theme);
+        RecordHistogram.recordEnumeratedHistogram(
+                "Android.DarkTheme.Preference.State", theme, ThemeType.NUM_ENTRIES);
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java
index 12ddd5d..74c9706 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java
@@ -40,9 +40,9 @@
 import org.chromium.chrome.browser.preferences.Pref;
 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
 import org.chromium.chrome.browser.settings.SettingsLauncher;
-import org.chromium.chrome.browser.settings.website.SingleCategorySettings;
-import org.chromium.chrome.browser.settings.website.SingleWebsiteSettings;
-import org.chromium.chrome.browser.settings.website.SiteSettingsCategory;
+import org.chromium.chrome.browser.site_settings.SingleCategorySettings;
+import org.chromium.chrome.browser.site_settings.SingleWebsiteSettings;
+import org.chromium.chrome.browser.site_settings.SiteSettingsCategory;
 import org.chromium.chrome.browser.usage_stats.NotificationSuspender;
 import org.chromium.chrome.browser.webapps.ChromeWebApkHost;
 import org.chromium.chrome.browser.webapps.WebApkServiceClient;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java
index 4ab5e83..5b679de 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java
@@ -18,7 +18,6 @@
 import org.chromium.base.ContextUtils;
 import org.chromium.base.MathUtils;
 import org.chromium.base.library_loader.LibraryLoader;
-import org.chromium.base.metrics.CachedMetrics;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.chrome.browser.notifications.channels.ChannelDefinitions;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
@@ -177,10 +176,8 @@
     public void onNotificationContentClick(@SystemNotificationType int type, long createTime) {
         if (type == SystemNotificationType.UNKNOWN) return;
 
-        new CachedMetrics
-                .EnumeratedHistogramSample("Mobile.SystemNotification.Content.Click",
-                        SystemNotificationType.NUM_ENTRIES)
-                .record(type);
+        RecordHistogram.recordEnumeratedHistogram("Mobile.SystemNotification.Content.Click", type,
+                SystemNotificationType.NUM_ENTRIES);
         recordNotificationAgeHistogram("Mobile.SystemNotification.Content.Click.Age", createTime);
 
         switch (type) {
@@ -209,10 +206,8 @@
 
         // TODO(xingliu): This may not work if Android kill Chrome before native library is loaded.
         // Cache data in Android shared preference and flush them to native when available.
-        new CachedMetrics
-                .EnumeratedHistogramSample(
-                        "Mobile.SystemNotification.Dismiss", SystemNotificationType.NUM_ENTRIES)
-                .record(type);
+        RecordHistogram.recordEnumeratedHistogram(
+                "Mobile.SystemNotification.Dismiss", type, SystemNotificationType.NUM_ENTRIES);
         recordNotificationAgeHistogram("Mobile.SystemNotification.Dismiss.Age", createTime);
 
         switch (type) {
@@ -243,10 +238,8 @@
 
         // TODO(xingliu): This may not work if Android kill Chrome before native library is loaded.
         // Cache data in Android shared preference and flush them to native when available.
-        new CachedMetrics
-                .EnumeratedHistogramSample(
-                        "Mobile.SystemNotification.Action.Click", ActionType.NUM_ENTRIES)
-                .record(actionType);
+        RecordHistogram.recordEnumeratedHistogram(
+                "Mobile.SystemNotification.Action.Click", actionType, ActionType.NUM_ENTRIES);
         recordNotificationAgeHistogram("Mobile.SystemNotification.Action.Click.Age", createTime);
 
         switch (notificationType) {
@@ -336,9 +329,7 @@
         int ageSample = (int) MathUtils.clamp(
                 (System.currentTimeMillis() - createTime) / DateUtils.MINUTE_IN_MILLIS, 0,
                 Integer.MAX_VALUE);
-        new CachedMetrics
-                .CustomCountHistogramSample(
-                        name, 1, (int) (DateUtils.WEEK_IN_MILLIS / DateUtils.MINUTE_IN_MILLIS), 50)
-                .record(ageSample);
+        RecordHistogram.recordCustomCountHistogram(name, ageSample, 1,
+                (int) (DateUtils.WEEK_IN_MILLIS / DateUtils.MINUTE_IN_MILLIS), 50);
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/channels/SiteChannelsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/channels/SiteChannelsManager.java
index d6fe539..dcc0edd9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/channels/SiteChannelsManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/channels/SiteChannelsManager.java
@@ -19,7 +19,7 @@
 import org.chromium.chrome.browser.notifications.NotificationManagerProxy;
 import org.chromium.chrome.browser.notifications.NotificationManagerProxyImpl;
 import org.chromium.chrome.browser.notifications.NotificationSettingsBridge.SiteChannel;
-import org.chromium.chrome.browser.settings.website.WebsiteAddress;
+import org.chromium.chrome.browser.site_settings.WebsiteAddress;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/settings/NotificationSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/settings/NotificationSettings.java
index 8866c6a..788ca09 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/settings/NotificationSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/settings/NotificationSettings.java
@@ -16,10 +16,10 @@
 import org.chromium.chrome.browser.offlinepages.prefetch.PrefetchPrefs;
 import org.chromium.chrome.browser.settings.ChromeSwitchPreference;
 import org.chromium.chrome.browser.settings.SettingsUtils;
-import org.chromium.chrome.browser.settings.website.ContentSettingsResources;
-import org.chromium.chrome.browser.settings.website.SingleCategorySettings;
-import org.chromium.chrome.browser.settings.website.SiteSettingsCategory;
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge;
+import org.chromium.chrome.browser.site_settings.ContentSettingsResources;
+import org.chromium.chrome.browser.site_settings.SingleCategorySettings;
+import org.chromium.chrome.browser.site_settings.SiteSettingsCategory;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge;
 import org.chromium.components.content_settings.ContentSettingsType;
 
 /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoCookieControlsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoCookieControlsManager.java
index a0bb5ca..eedfbcd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoCookieControlsManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoCookieControlsManager.java
@@ -13,10 +13,10 @@
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.settings.SettingsLauncher;
-import org.chromium.chrome.browser.settings.website.CookieControlsServiceBridge;
-import org.chromium.chrome.browser.settings.website.CookieControlsServiceBridge.CookieControlsServiceObserver;
-import org.chromium.chrome.browser.settings.website.SingleCategorySettings;
-import org.chromium.chrome.browser.settings.website.SiteSettingsCategory;
+import org.chromium.chrome.browser.site_settings.CookieControlsServiceBridge;
+import org.chromium.chrome.browser.site_settings.CookieControlsServiceBridge.CookieControlsServiceObserver;
+import org.chromium.chrome.browser.site_settings.SingleCategorySettings;
+import org.chromium.chrome.browser.site_settings.SiteSettingsCategory;
 import org.chromium.components.content_settings.CookieControlsEnforcement;
 
 /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/AutoFetchNotifier.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/AutoFetchNotifier.java
index f5e800d..e6df8ca 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/AutoFetchNotifier.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/AutoFetchNotifier.java
@@ -22,7 +22,6 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.base.annotations.NativeMethods;
-import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.IntentHandler;
@@ -346,11 +345,9 @@
     }
 
     private static void reportCompleteNotificationAction(@NotificationAction int action) {
-        // Native may or may not be running, so use CachedMetrics.EnumeratedHistogramSample.
-        EnumeratedHistogramSample sample =
-                new EnumeratedHistogramSample("OfflinePages.AutoFetch.CompleteNotificationAction",
-                        NotificationAction.NUM_ENTRIES);
-        sample.record(action);
+        RecordHistogram.recordEnumeratedHistogram(
+                "OfflinePages.AutoFetch.CompleteNotificationAction", action,
+                NotificationAction.NUM_ENTRIES);
     }
 
     private static boolean isShowingInProgressNotification() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java
index 1f8c941..eb80e28 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java
@@ -27,9 +27,9 @@
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.chrome.browser.omnibox.geo.VisibleNetworks.VisibleCell;
 import org.chromium.chrome.browser.omnibox.geo.VisibleNetworks.VisibleWifi;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.PermissionInfo;
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.PermissionInfo;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.components.content_settings.ContentSettingsType;
 import org.chromium.components.embedder_support.util.UrlConstants;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/PageInfoController.java b/chrome/android/java/src/org/chromium/chrome/browser/page_info/PageInfoController.java
index 9bae496..3f13a54 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/page_info/PageInfoController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/page_info/PageInfoController.java
@@ -37,8 +37,8 @@
 import org.chromium.chrome.browser.previews.PreviewsAndroidBridge;
 import org.chromium.chrome.browser.previews.PreviewsUma;
 import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.CookieControlsBridge;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.CookieControlsBridge;
 import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.chrome.browser.vr.VrModuleProvider;
 import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilder.java b/chrome/android/java/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilder.java
index 55df79b..30eabd59 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilder.java
@@ -21,9 +21,9 @@
 import org.chromium.chrome.browser.browserservices.permissiondelegation.TrustedWebActivityPermissionManager;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.nfc.NfcSystemLevelSetting;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.ContentSettingsResources;
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.ContentSettingsResources;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge;
 import org.chromium.components.content_settings.ContentSettingsType;
 import org.chromium.components.location.LocationUtils;
 import org.chromium.components.page_info.PageInfoView;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/SiteSettingsHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/page_info/SiteSettingsHelper.java
index d4c8c2c..22b0b454 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/page_info/SiteSettingsHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/page_info/SiteSettingsHelper.java
@@ -11,7 +11,7 @@
 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
 import org.chromium.chrome.browser.previews.PreviewsAndroidBridge;
 import org.chromium.chrome.browser.settings.SettingsLauncher;
-import org.chromium.chrome.browser.settings.website.SingleWebsiteSettings;
+import org.chromium.chrome.browser.site_settings.SingleWebsiteSettings;
 import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
 import org.chromium.components.embedder_support.util.UrlConstants;
 import org.chromium.content_public.browser.WebContents;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
index 1ea83da..8aa58321 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
@@ -6,46 +6,28 @@
 
 import android.text.TextUtils;
 
-import androidx.annotation.IntDef;
 import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
 
 import org.chromium.base.ObserverList;
 import org.chromium.base.metrics.RecordHistogram;
+import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.browser.flags.CachedFeatureFlags;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.homepage.HomepagePolicyManager;
 import org.chromium.chrome.browser.ntp.NewTabPage;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
+import org.chromium.chrome.browser.settings.homepage.HomepageMetricsEnums.HomeButtonPreferenceState;
+import org.chromium.chrome.browser.settings.homepage.HomepageMetricsEnums.HomepageLocationType;
 import org.chromium.components.embedder_support.util.UrlConstants;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
 /**
  * Provides information regarding homepage enabled states and URI.
  *
  * This class serves as a single homepage logic gateway.
  */
 public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStateListener {
-    /**
-     * Possible states for HomeButton. Used for Histogram
-     * Settings.ShowHomeButtonPreferenceStateManaged. Currently {@link
-     * HomeButtonPreferenceState.MANAGED_DISABLED } is not used.
-     *
-     * These values are persisted to logs, and should therefore never be renumbered nor reused.
-     */
-    @IntDef({HomeButtonPreferenceState.USER_DISABLED, HomeButtonPreferenceState.USER_ENABLED,
-            HomeButtonPreferenceState.MANAGED_DISABLED, HomeButtonPreferenceState.MANAGED_ENABLED})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface HomeButtonPreferenceState {
-        int USER_DISABLED = 0;
-        int USER_ENABLED = 1;
-        int MANAGED_DISABLED = 2;
-        int MANAGED_ENABLED = 3;
-
-        int NUM_ENTRIES = 4;
-    }
 
     /**
      * An interface to use for getting homepage related updates.
@@ -240,19 +222,32 @@
      */
     public void setHomepagePreferences(
             boolean useChromeNtp, boolean useDefaultUri, String customUri) {
-        // TODO(wenyufu): Add metrics for how ofter user checks this option.
-        mSharedPreferencesManager.writeBoolean(
-                ChromePreferenceKeys.HOMEPAGE_USE_CHROME_NTP, useChromeNtp);
-
+        boolean wasUseChromeNTP = getPrefHomepageUseChromeNTP();
         boolean wasUseDefaultUri = getPrefHomepageUseDefaultUri();
+        String oldCustomUri = getPrefHomepageCustomUri();
+
+        if (useChromeNtp == wasUseChromeNTP && useDefaultUri == wasUseDefaultUri
+                && oldCustomUri.equals(customUri)) {
+            return;
+        }
+
+        if (useChromeNtp != wasUseChromeNTP) {
+            mSharedPreferencesManager.writeBoolean(
+                    ChromePreferenceKeys.HOMEPAGE_USE_CHROME_NTP, useChromeNtp);
+        }
+
         if (wasUseDefaultUri != useDefaultUri) {
             recordHomepageIsCustomized(!useDefaultUri);
             mSharedPreferencesManager.writeBoolean(
                     ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI, useDefaultUri);
         }
 
-        mSharedPreferencesManager.writeString(ChromePreferenceKeys.HOMEPAGE_CUSTOM_URI, customUri);
+        if (!oldCustomUri.equals(customUri)) {
+            mSharedPreferencesManager.writeString(
+                    ChromePreferenceKeys.HOMEPAGE_CUSTOM_URI, customUri);
+        }
 
+        RecordUserAction.record("Settings.Homepage.LocationChanged");
         notifyHomepageUpdated();
     }
 
@@ -281,6 +276,45 @@
         RecordHistogram.recordBooleanHistogram("Settings.HomePageIsCustomized", isCustomized);
     }
 
+    /**
+     * Record histogram "Settings.Homepage.LocationType" with the current homepage location type.
+     */
+    public static void recordHomepageLocationTypeIfEnabled() {
+        if (!isHomepageEnabled()) return;
+
+        int homepageLocationType = getInstance().getHomepageLocationType();
+        RecordHistogram.recordEnumeratedHistogram("Settings.Homepage.LocationType",
+                homepageLocationType, HomepageLocationType.NUM_ENTRIES);
+    }
+
+    /**
+     * @return {@link HomepageLocationType} for current homepage settings.
+     */
+    @VisibleForTesting
+    public @HomepageLocationType int getHomepageLocationType() {
+        if (HomepagePolicyManager.isHomepageManagedByPolicy()) {
+            return NewTabPage.isNTPUrl(HomepagePolicyManager.getHomepageUrl())
+                    ? HomepageLocationType.POLICY_NTP
+                    : HomepageLocationType.POLICY_OTHER;
+        }
+        if (getPrefHomepageUseChromeNTP()) {
+            return HomepageLocationType.USER_CUSTOMIZED_NTP;
+        }
+        if (getPrefHomepageUseDefaultUri()) {
+            if (!PartnerBrowserCustomizations.isHomepageProviderAvailableAndEnabled()) {
+                return HomepageLocationType.DEFAULT_NTP;
+            }
+
+            return NewTabPage.isNTPUrl(PartnerBrowserCustomizations.getHomePageUrl())
+                    ? HomepageLocationType.PARTNER_PROVIDED_NTP
+                    : HomepageLocationType.PARTNER_PROVIDED_OTHER;
+        }
+        // If user type NTP URI as their customized homepage, we'll record user is using NTP
+        return NewTabPage.isNTPUrl(getPrefHomepageCustomUri())
+                ? HomepageLocationType.USER_CUSTOMIZED_NTP
+                : HomepageLocationType.USER_CUSTOMIZED_OTHER;
+    }
+
     @Override
     public void onHomepagePolicyUpdate() {
         notifyHomepageUpdated();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java
index 9bd4e8e..6073eae 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java
@@ -4,7 +4,6 @@
 
 package org.chromium.chrome.browser.payments;
 
-import android.app.Activity;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface.OnClickListener;
@@ -42,7 +41,6 @@
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
@@ -57,19 +55,15 @@
     /** The maximum number of milliseconds to wait for a connection to READY_TO_PAY service. */
     private static final long SERVICE_CONNECTION_TIMEOUT_MS = 1000;
 
-    // Response from the payment app.
-    private static final String EXTRA_DEPRECATED_RESPONSE_INSTRUMENT_DETAILS = "instrumentDetails";
-    private static final String EXTRA_RESPONSE_DETAILS = "details";
-    private static final String EXTRA_RESPONSE_METHOD_NAME = "methodName";
-
     private static final String EMPTY_JSON_DATA = "{}";
 
     private final Handler mHandler;
     private final WebContents mWebContents;
-    private final Intent mPayIntent;
     private final Set<String> mMethodNames;
     private final boolean mIsIncognito;
-    private Intent mIsReadyToPayIntent;
+    private final String mPackageName;
+    private final String mPayActivityName;
+    private final String mIsReadyToPayServiceName;
     private IsReadyToPayCallback mIsReadyToPayCallback;
     private InstrumentDetailsCallback mInstrumentDetailsCallback;
     private ServiceConnection mServiceConnection;
@@ -101,14 +95,12 @@
         mHandler = new Handler();
         mWebContents = webContents;
 
-        mPayIntent = new Intent();
-        mPayIntent.setClassName(packageName, activity);
-        mPayIntent.setAction(WebPaymentIntentHelper.ACTION_PAY);
+        mPackageName = packageName;
+        mPayActivityName = activity;
+        mIsReadyToPayServiceName = isReadyToPayService;
 
-        if (isReadyToPayService != null) {
+        if (mIsReadyToPayServiceName != null) {
             assert !isIncognito;
-            mIsReadyToPayIntent = new Intent();
-            mIsReadyToPayIntent.setClassName(packageName, isReadyToPayService);
         }
 
         mMethodNames = new HashSet<>();
@@ -140,7 +132,7 @@
                 == null : "Have not responded to previous IS_READY_TO_PAY request";
 
         mIsReadyToPayCallback = callback;
-        if (mIsReadyToPayIntent == null) {
+        if (mIsReadyToPayServiceName == null) {
             respondToIsReadyToPayQuery(true);
             return;
         }
@@ -171,11 +163,10 @@
             }
         };
 
-        mIsReadyToPayIntent.putExtras(WebPaymentIntentHelper.buildExtras(null /* id */,
-                null /* merchantName */, removeUrlScheme(origin), removeUrlScheme(iframeOrigin),
-                certificateChain,
-                WebPaymentIntentHelperTypeConverter.fromMojoPaymentMethodDataMap(methodDataMap),
-                null /* total */, null /* displayItems */, null /* modifiers */));
+        Intent isReadyToPayIntent = WebPaymentIntentHelper.createIsReadyToPayIntent(
+                /*packageName=*/mPackageName, /*serviceName=*/mIsReadyToPayServiceName,
+                removeUrlScheme(origin), removeUrlScheme(iframeOrigin), certificateChain,
+                WebPaymentIntentHelperTypeConverter.fromMojoPaymentMethodDataMap(methodDataMap));
 
         if (mBypassIsReadyToPayServiceInTest) {
             respondToIsReadyToPayQuery(true);
@@ -190,7 +181,7 @@
             // connection."
             // https://developer.android.com/reference/android/content/Context.html#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int)
             mIsServiceBindingInitiated = ContextUtils.getApplicationContext().bindService(
-                    mIsReadyToPayIntent, mServiceConnection, Context.BIND_AUTO_CREATE);
+                    isReadyToPayIntent, mServiceConnection, Context.BIND_AUTO_CREATE);
         } catch (SecurityException e) {
             // Intentionally blank, so mIsServiceBindingInitiated is false.
         }
@@ -322,14 +313,14 @@
             return;
         }
 
-        mPayIntent.putExtras(WebPaymentIntentHelper.buildExtras(id, merchantName, origin,
-                iframeOrigin, certificateChain,
+        Intent payIntent = WebPaymentIntentHelper.createPayIntent(mPackageName, mPayActivityName,
+                id, merchantName, origin, iframeOrigin, certificateChain,
                 WebPaymentIntentHelperTypeConverter.fromMojoPaymentMethodDataMap(methodDataMap),
                 WebPaymentIntentHelperTypeConverter.fromMojoPaymentItem(total),
                 WebPaymentIntentHelperTypeConverter.fromMojoPaymentItems(displayItems),
-                WebPaymentIntentHelperTypeConverter.fromMojoPaymentDetailsModifierMap(modifiers)));
+                WebPaymentIntentHelperTypeConverter.fromMojoPaymentDetailsModifierMap(modifiers));
         try {
-            if (!window.showIntent(mPayIntent, this, R.string.payments_android_app_error)) {
+            if (!window.showIntent(payIntent, this, R.string.payments_android_app_error)) {
                 notifyErrorInvokingPaymentApp(ErrorStrings.PAYMENT_APP_LAUNCH_FAIL);
             }
         } catch (SecurityException e) {
@@ -346,28 +337,12 @@
     public void onIntentCompleted(WindowAndroid window, int resultCode, Intent data) {
         ThreadUtils.assertOnUiThread();
         window.removeIntentCallback(this);
-        if (data == null) {
-            mInstrumentDetailsCallback.onInstrumentDetailsError(ErrorStrings.MISSING_INTENT_DATA);
-        } else if (data.getExtras() == null) {
-            mInstrumentDetailsCallback.onInstrumentDetailsError(ErrorStrings.MISSING_INTENT_EXTRAS);
-        } else if (resultCode == Activity.RESULT_CANCELED) {
-            mInstrumentDetailsCallback.onInstrumentDetailsError(ErrorStrings.RESULT_CANCELED);
-        } else if (resultCode != Activity.RESULT_OK) {
-            mInstrumentDetailsCallback.onInstrumentDetailsError(String.format(
-                    Locale.US, ErrorStrings.UNRECOGNIZED_ACTIVITY_RESULT, resultCode));
-        } else {
-            String details = data.getExtras().getString(EXTRA_RESPONSE_DETAILS);
-            if (details == null) {
-                details = data.getExtras().getString(EXTRA_DEPRECATED_RESPONSE_INSTRUMENT_DETAILS);
-            }
-            if (details == null) details = EMPTY_JSON_DATA;
-            String methodName = data.getExtras().getString(EXTRA_RESPONSE_METHOD_NAME);
-            if (methodName == null) methodName = "";
-            // TODO(crbug.com/1026667): Support payer data delegation for native apps instead of
-            // returning empty PayerData.
-            mInstrumentDetailsCallback.onInstrumentDetailsReady(
-                    methodName, details, new PayerData());
-        }
+        WebPaymentIntentHelper.parsePaymentResponse(resultCode, data,
+                (errorString)
+                        -> notifyErrorInvokingPaymentApp(errorString),
+                (methodName, details)
+                        -> mInstrumentDetailsCallback.onInstrumentDetailsReady(
+                                methodName, details, new PayerData()));
         mInstrumentDetailsCallback = null;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java
index e6c5d34..a6eef95 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java
@@ -32,10 +32,10 @@
 import org.chromium.chrome.browser.locale.LocaleManager;
 import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
 import org.chromium.chrome.browser.settings.SettingsLauncher;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.PermissionInfo;
-import org.chromium.chrome.browser.settings.website.SingleWebsiteSettings;
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.PermissionInfo;
+import org.chromium.chrome.browser.site_settings.SingleWebsiteSettings;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge;
 import org.chromium.components.content_settings.ContentSettingsType;
 import org.chromium.components.location.LocationUtils;
 import org.chromium.components.search_engines.TemplateUrl;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java
index 777f7bb0..e3edecc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java
@@ -8,7 +8,6 @@
 
 import androidx.annotation.IntDef;
 
-import org.chromium.base.metrics.CachedMetrics;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.task.PostTask;
 import org.chromium.content_public.browser.BrowserStartupController;
@@ -78,12 +77,8 @@
     }
 
     public static void recordWebPushReceivedDeviceState(@WebPushDeviceState int state) {
-        // Use {@link CachedMetrics} so this gets reported when native is loaded instead of calling
-        // native right away.
-        new CachedMetrics
-                .EnumeratedHistogramSample(
-                        "GCM.WebPushReceived.DeviceState", WebPushDeviceState.NUM_ENTRIES)
-                .record(state);
+        RecordHistogram.recordEnumeratedHistogram(
+                "GCM.WebPushReceived.DeviceState", state, WebPushDeviceState.NUM_ENTRIES);
     }
 
     private static void onNativeLaunched(final Context context, final Runnable task) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/OWNERS b/chrome/android/java/src/org/chromium/chrome/browser/settings/OWNERS
index ed50038..751164a8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/OWNERS
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/OWNERS
@@ -1,11 +1,5 @@
-# Chrome settings:
 twellington@chromium.org
 bsazonov@chromium.org
 chouinard@chromium.org
 
-# Site settings:
-finnur@chromium.org
-hkamila@chromium.org
-andypaicu@chromium.org
-
 # COMPONENT: UI>Browser>Mobile>Settings
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/homepage/HomepageMetricsEnums.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/homepage/HomepageMetricsEnums.java
new file mode 100644
index 0000000..3084079
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/homepage/HomepageMetricsEnums.java
@@ -0,0 +1,59 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.settings.homepage;
+
+import androidx.annotation.IntDef;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Contains Homepage related enums used for metrics.
+ */
+public final class HomepageMetricsEnums {
+    private HomepageMetricsEnums() {}
+
+    /**
+     * Possible states for HomeButton. Used for Histogram
+     * Settings.ShowHomeButtonPreferenceStateManaged. Currently {@link
+     * HomeButtonPreferenceState.MANAGED_DISABLED } is not used.
+     *
+     * These values are persisted to logs, and should therefore never be renumbered nor reused.
+     */
+    @IntDef({HomeButtonPreferenceState.USER_DISABLED, HomeButtonPreferenceState.USER_ENABLED,
+            HomeButtonPreferenceState.MANAGED_DISABLED, HomeButtonPreferenceState.MANAGED_ENABLED})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface HomeButtonPreferenceState {
+        int USER_DISABLED = 0;
+        int USER_ENABLED = 1;
+        int MANAGED_DISABLED = 2;
+        int MANAGED_ENABLED = 3;
+
+        int NUM_ENTRIES = 4;
+    }
+
+    /**
+     * Possible location type for homepage. Used for Histogram "Settings.Homepage.LocationType"
+     * recorded in {@link HomepageManager#recordHomepageLocationType()}.
+     *
+     * These values are persisted to logs, and should therefore never be renumbered nor reused.
+     */
+    @IntDef({HomepageLocationType.POLICY_NTP, HomepageLocationType.POLICY_OTHER,
+            HomepageLocationType.PARTNER_PROVIDED_NTP, HomepageLocationType.PARTNER_PROVIDED_OTHER,
+            HomepageLocationType.USER_CUSTOMIZED_NTP, HomepageLocationType.USER_CUSTOMIZED_OTHER,
+            HomepageLocationType.DEFAULT_NTP})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface HomepageLocationType {
+        int POLICY_NTP = 0;
+        int POLICY_OTHER = 1;
+        int PARTNER_PROVIDED_NTP = 2;
+        int PARTNER_PROVIDED_OTHER = 3;
+        int USER_CUSTOMIZED_NTP = 4;
+        int USER_CUSTOMIZED_OTHER = 5;
+        int DEFAULT_NTP = 6;
+
+        int NUM_ENTRIES = 7;
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/homepage/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/homepage/HomepageSettings.java
index 09c9971..2c8d3f0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/homepage/HomepageSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/homepage/HomepageSettings.java
@@ -10,6 +10,7 @@
 
 import androidx.annotation.VisibleForTesting;
 
+import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.homepage.HomepagePolicyManager;
@@ -97,6 +98,8 @@
             });
         }
 
+        RecordUserAction.record("Settings.Homepage.Opened");
+
         // Update preference views and state.
         updatePreferenceState();
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/OWNERS b/chrome/android/java/src/org/chromium/chrome/browser/settings/website/OWNERS
deleted file mode 100644
index 23a80bc6..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/OWNERS
+++ /dev/null
@@ -1,3 +0,0 @@
-per-file CookieControls*=dullweber@chromium.org
-
-# COMPONENT: UI>Browser>Mobile>Settings
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/OWNERS b/chrome/android/java/src/org/chromium/chrome/browser/share/OWNERS
index fa50ad1..68f5ac8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/share/OWNERS
+++ b/chrome/android/java/src/org/chromium/chrome/browser/share/OWNERS
@@ -2,6 +2,7 @@
 
 per-file ShareSheet*=file://components/send_tab_to_self/OWNERS
 per-file ShareDelegate*=file://components/send_tab_to_self/OWNERS
+per-file ShareButtonController*=file://components/send_tab_to_self/OWNERS
 
 # COMPONENT: UI>Browser>Mobile>Share
 # OS: Android
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/AddExceptionPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/AddExceptionPreference.java
similarity index 89%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/AddExceptionPreference.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/AddExceptionPreference.java
index 9a5610f6..8cf9135 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/AddExceptionPreference.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/AddExceptionPreference.java
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
-import static org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge.SITE_WILDCARD;
+import static org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge.SITE_WILDCARD;
 
 import android.content.Context;
 import android.content.DialogInterface;
@@ -114,8 +114,8 @@
      * Show the dialog allowing the user to add a new website as an exception.
      */
     private void showAddExceptionDialog() {
-        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(
-                Context.LAYOUT_INFLATER_SERVICE);
+        LayoutInflater inflater =
+                (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         View view = inflater.inflate(R.layout.add_site_dialog, null);
         final EditText input = (EditText) view.findViewById(R.id.site);
         final CheckBox thirdPartyExceptionsBox =
@@ -149,13 +149,14 @@
 
         AlertDialog.Builder alert =
                 new AlertDialog.Builder(getContext(), R.style.Theme_Chromium_AlertDialog);
-        AlertDialog alertDialog = alert
-                .setTitle(R.string.website_settings_add_site_dialog_title)
-                .setMessage(mDialogMessage)
-                .setView(view)
-                .setPositiveButton(R.string.website_settings_add_site_add_button, onClickListener)
-                .setNegativeButton(R.string.cancel, onClickListener)
-                .create();
+        AlertDialog alertDialog =
+                alert.setTitle(R.string.website_settings_add_site_dialog_title)
+                        .setMessage(mDialogMessage)
+                        .setView(view)
+                        .setPositiveButton(
+                                R.string.website_settings_add_site_add_button, onClickListener)
+                        .setNegativeButton(R.string.cancel, onClickListener)
+                        .create();
         alertDialog.getDelegate().setHandleNativeActionModesEnabled(false);
         alertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
             @Override
@@ -190,9 +191,10 @@
                 // Vibrate when adding characters only, not when deleting them.
                 if (hasError && count != 0) {
                     if (Settings.System.getInt(getContext().getContentResolver(),
-                            Settings.System.HAPTIC_FEEDBACK_ENABLED, 1) == 1) {
-                        ((Vibrator) getContext().getSystemService(
-                                Context.VIBRATOR_SERVICE)).vibrate(50);
+                                Settings.System.HAPTIC_FEEDBACK_ENABLED, 1)
+                            == 1) {
+                        ((Vibrator) getContext().getSystemService(Context.VIBRATOR_SERVICE))
+                                .vibrate(50);
                     }
                 }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ChosenObjectInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChosenObjectInfo.java
similarity index 97%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/ChosenObjectInfo.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChosenObjectInfo.java
index 6369b007..158336a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ChosenObjectInfo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChosenObjectInfo.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import org.chromium.components.content_settings.ContentSettingsType;
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ChosenObjectSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChosenObjectSettings.java
similarity index 99%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/ChosenObjectSettings.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChosenObjectSettings.java
index 5418b1d..75226a6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ChosenObjectSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChosenObjectSettings.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.content.Context;
 import android.content.DialogInterface;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ClearWebsiteStorage.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ClearWebsiteStorage.java
similarity index 92%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/ClearWebsiteStorage.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/ClearWebsiteStorage.java
index ebf77e4..ea9ed3f0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ClearWebsiteStorage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ClearWebsiteStorage.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.content.Context;
 import android.support.v7.preference.DialogPreference;
@@ -12,7 +12,6 @@
  * Dialog that prompts the user to clear website storage on the device.
  */
 public class ClearWebsiteStorage extends DialogPreference {
-
     public ClearWebsiteStorage(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ClearWebsiteStorageDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ClearWebsiteStorageDialog.java
similarity index 95%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/ClearWebsiteStorageDialog.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/ClearWebsiteStorageDialog.java
index ddf61a70..26db47a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ClearWebsiteStorageDialog.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ClearWebsiteStorageDialog.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.os.Bundle;
 import android.support.v7.preference.Preference;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ContentSetting.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ContentSetting.java
similarity index 96%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/ContentSetting.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/ContentSetting.java
index 01bd4a2..2693232 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ContentSetting.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ContentSetting.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import androidx.annotation.Nullable;
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ContentSettingException.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ContentSettingException.java
similarity index 96%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/ContentSettingException.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/ContentSettingException.java
index beab4d82..cf172a46 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ContentSettingException.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ContentSettingException.java
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
-import static org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge.SITE_WILDCARD;
+import static org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge.SITE_WILDCARD;
 
 import androidx.annotation.IntDef;
 import androidx.annotation.Nullable;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ContentSettingsResources.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ContentSettingsResources.java
similarity index 98%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/ContentSettingsResources.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/ContentSettingsResources.java
index cd54ce2..914167a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ContentSettingsResources.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ContentSettingsResources.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.annotation.SuppressLint;
 import android.content.res.Resources;
@@ -249,8 +249,8 @@
     public static Drawable getDisabledIcon(int contentType, Resources resources) {
         Drawable icon = ApiCompatibilityUtils.getDrawable(resources, getIcon(contentType));
         icon.mutate();
-        int disabledColor = ApiCompatibilityUtils.getColor(resources,
-                R.color.primary_text_disabled_material_light);
+        int disabledColor = ApiCompatibilityUtils.getColor(
+                resources, R.color.primary_text_disabled_material_light);
         icon.setColorFilter(disabledColor, PorterDuff.Mode.SRC_IN);
         return icon;
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/CookieControlsBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/CookieControlsBridge.java
similarity index 98%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/CookieControlsBridge.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/CookieControlsBridge.java
index 9185e95..d685f8b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/CookieControlsBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/CookieControlsBridge.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.NativeMethods;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/CookieControlsServiceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.java
similarity index 98%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/CookieControlsServiceBridge.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.java
index 286156f7..2ef3485 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/CookieControlsServiceBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.NativeMethods;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/LocalStorageInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/LocalStorageInfo.java
similarity index 87%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/LocalStorageInfo.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/LocalStorageInfo.java
index 341bfc0..acbb66f9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/LocalStorageInfo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/LocalStorageInfo.java
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge.StorageInfoClearedCallback;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge.StorageInfoClearedCallback;
 
 import java.io.Serializable;
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/LocationCategory.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/LocationCategory.java
similarity index 97%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/LocationCategory.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/LocationCategory.java
index adbf97c3..d38418d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/LocationCategory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/LocationCategory.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ManageSpaceActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java
similarity index 98%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/ManageSpaceActivity.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java
index 91dc4d2..313469aa 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/ManageSpaceActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.annotation.SuppressLint;
 import android.annotation.TargetApi;
@@ -40,7 +40,7 @@
 import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider;
 import org.chromium.chrome.browser.settings.SettingsLauncher;
 import org.chromium.chrome.browser.settings.about.AboutChromeSettings;
-import org.chromium.chrome.browser.settings.website.Website.StoredDataClearedCallback;
+import org.chromium.chrome.browser.site_settings.Website.StoredDataClearedCallback;
 import org.chromium.chrome.browser.util.ConversionUtils;
 
 import java.util.Collection;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/NfcCategory.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/NfcCategory.java
similarity index 96%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/NfcCategory.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/NfcCategory.java
index 2ec4c03..984dca0b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/NfcCategory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/NfcCategory.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/NotificationCategory.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/NotificationCategory.java
similarity index 95%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/NotificationCategory.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/NotificationCategory.java
index 684bf2f..442527c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/NotificationCategory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/NotificationCategory.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.content.Context;
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/OWNERS b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/OWNERS
new file mode 100644
index 0000000..b8659d3
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/OWNERS
@@ -0,0 +1,7 @@
+finnur@chromium.org
+hkamila@chromium.org
+andypaicu@chromium.org
+
+per-file CookieControls*=dullweber@chromium.org
+
+# COMPONENT: UI>Browser>Mobile>Settings
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/PermissionInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/PermissionInfo.java
similarity index 99%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/PermissionInfo.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/PermissionInfo.java
index 4a6e8d57..fc6d446 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/PermissionInfo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/PermissionInfo.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import androidx.annotation.IntDef;
 import androidx.annotation.Nullable;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/README.md b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/README.md
similarity index 71%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/README.md
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/README.md
index 3ee1bab..cacf50b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/README.md
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/README.md
@@ -9,7 +9,7 @@
 
 *   [Site Settings](#Site-Settings) provides a link to `All Sites` and an
     overview of all content settings. Supported by the
-    [SiteSettings](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteSettings.java?g=0)
+    [SiteSettings](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteSettings.java?g=0)
     class.
 *   [Settings Category](#Settings-Category) displays a specific content setting
     in detail. This usually includes a toggle to enable/disable the content
@@ -17,13 +17,13 @@
     are `allowed`/`blocked`/`managed`. The same screen is used to display the
     `All Sites` category which displays all sites that have any content settings
     set. Supported by the
-    [SingleCategorySettings](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleCategorySettings.java?type=cs&g=0)
+    [SingleCategorySettings](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleCategorySettings.java?type=cs&g=0)
     class.
 *   [Website Settings](#Website-Settings) displays site-specific content
     settings information. It displays a list of content settings that the site
     is either allowed or blocked from and a button to reset all content settings
     state for this site. Supported by the
-    [SingleWebsiteSettings](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java?type=cs&g=0)
+    [SingleWebsiteSettings](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java?type=cs&g=0)
     class.
 
 All of these implement `PreferenceFragmentCompat` and use a layout xml to define
@@ -37,11 +37,11 @@
 [site_settings_preferences.xml](https://cs.chromium.org/chromium/src/chrome/android/java/res/xml/site_settings_preferences.xml?q=site_settings_preferences&sq=package:chromium&g=0&l=1)
 lists all preferences.
 
-[configurePreferences()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteSettings.java?type=cs&g=0&l=53)
+[configurePreferences()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteSettings.java?type=cs&g=0&l=53)
 will remove some preferences based on command line switches and feature
 availability.
 
-[updatePreferenceStates()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteSettings.java?type=cs&g=0&l=72)
+[updatePreferenceStates()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteSettings.java?type=cs&g=0&l=72)
 goes through all preferences and configures cool things like: title, summary,
 icon, and click listeners.
 
@@ -55,26 +55,26 @@
 category.
 
 The
-[mCategory](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleCategorySettings.java?type=cs&g=0)
+[mCategory](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleCategorySettings.java?type=cs&g=0)
 member holds which category needs to be displayed and is queried to dictate the
 customization of the page.
 
-[configureGlobalToggles()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleCategorySettings.java?type=cs&g=0&l=821)
+[configureGlobalToggles()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleCategorySettings.java?type=cs&g=0&l=821)
 handles most of the customization of the screen. It will go through all
 preferences and set their values, their visibility status as well as set up
 preference change listeners.
 
-[getInfoForOrigins()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleCategorySettings.java?type=cs&q=configureGlobalToggles&g=0&l=143)
+[getInfoForOrigins()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleCategorySettings.java?type=cs&q=configureGlobalToggles&g=0&l=143)
 is used to fetch websites information via a
-[WebsitePermissionsFetcher](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsitePermissionsFetcher.java).
+[WebsitePermissionsFetcher](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcher.java).
 When the data is available it rebuilds the screen and adds the websites to the
 `allowed`/`blocked`/`managed` lists.
 
-[onPreferenceChange()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleCategorySettings.java?type=cs&g=0&l=464)
+[onPreferenceChange()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleCategorySettings.java?type=cs&g=0&l=464)
 is the main listener of user input. When the user updates a preference, it will
 identify the changed preference, use bridges to call the native code that
 handles updating user content settings
-([WebsitePreferenceBridge](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsitePreferenceBridge.java)
+([WebsitePreferenceBridge](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsitePreferenceBridge.java)
 and
 [PrefServiceBridge](https://cs.chromium.org/chromium/src/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java?q=PrefServiceBridge&sq=package:chromium&g=0&l=18))
 and then update the screen to ensure the new preference value is taken into
@@ -82,9 +82,9 @@
 
 The `All Sites` list and the three `allowed`/`blocked`/`managed` lists are
 populated with the custom
-[WebsitePreference](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsitePreference.java)
+[WebsitePreference](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsitePreference.java)
 type of preference which allows clicks to navigate to the
-[SingleWebsiteSettings](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java)
+[SingleWebsiteSettings](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java)
 fragment.
 
 ## Website Settings
@@ -95,23 +95,23 @@
 outlines the layout of the screen.
 
 The underlying model object is a
-[Website](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/Website.java)
+[Website](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/Website.java)
 object: the
-[mSite](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java?l=108)
+[mSite](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java?l=108)
 member. This is either directly provided by the activity initiator, or
 alternately fetched via a
-[SingleWebsitePermissionsPopulator](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java?l=121)
+[SingleWebsitePermissionsPopulator](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java?l=121)
 based on the website address.
 
-[displaySitePermissions()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java?l=300)
+[displaySitePermissions()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java?l=300)
 is used to configure the screen and populate it with data from
-[mSite](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java?l=108),
+[mSite](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java?l=108),
 mostly by calling
-[setUpPreference()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java?g=0&l=332)
+[setUpPreference()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java?g=0&l=332)
 on every preference as well as specific custom setup functions.
 
-[onPreferenceChange()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java?g=0&l=879)
+[onPreferenceChange()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java?g=0&l=879)
 and
-[onPreferenceClick()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java?g=0&l=896)
+[onPreferenceClick()](https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java?g=0&l=896)
 are responsbile for listening to user input and updating the content settings
 accordingly.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SettingsNavigationSource.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SettingsNavigationSource.java
similarity index 94%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/SettingsNavigationSource.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/SettingsNavigationSource.java
index efbb5f7..6a31fbfe 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SettingsNavigationSource.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SettingsNavigationSource.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import androidx.annotation.IntDef;
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleCategorySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleCategorySettings.java
similarity index 99%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleCategorySettings.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleCategorySettings.java
index fc82646..697772b1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleCategorySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleCategorySettings.java
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import static org.chromium.chrome.browser.settings.SearchUtils.handleSearchNavigation;
-import static org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge.SITE_WILDCARD;
+import static org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge.SITE_WILDCARD;
 
 import android.content.Context;
 import android.content.DialogInterface;
@@ -52,7 +52,7 @@
 import org.chromium.chrome.browser.settings.ManagedPreferencesUtils;
 import org.chromium.chrome.browser.settings.SearchUtils;
 import org.chromium.chrome.browser.settings.SettingsUtils;
-import org.chromium.chrome.browser.settings.website.Website.StoredDataClearedCallback;
+import org.chromium.chrome.browser.site_settings.Website.StoredDataClearedCallback;
 import org.chromium.components.content_settings.ContentSettingsType;
 import org.chromium.components.embedder_support.util.UrlUtilities;
 import org.chromium.ui.widget.Toast;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java
similarity index 99%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java
index 63e57af3..f22ae45 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SingleWebsiteSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettings.java
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
-import static org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge.SITE_WILDCARD;
+import static org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge.SITE_WILDCARD;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteDataCleaner.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteDataCleaner.java
similarity index 95%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteDataCleaner.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteDataCleaner.java
index d56936e..a00f52f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteDataCleaner.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteDataCleaner.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 /**
  * Encapsulates clearing the data of {@link Website}s.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteSettings.java
similarity index 98%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteSettings.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteSettings.java
index 027d5e3..c4856dc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteSettings.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.os.Bundle;
 import android.support.v7.preference.Preference;
@@ -13,7 +13,7 @@
 import org.chromium.chrome.browser.preferences.Pref;
 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
 import org.chromium.chrome.browser.settings.SettingsUtils;
-import org.chromium.chrome.browser.settings.website.SiteSettingsCategory.Type;
+import org.chromium.chrome.browser.site_settings.SiteSettingsCategory.Type;
 import org.chromium.content_public.browser.ContentFeatureList;
 import org.chromium.content_public.common.ContentSwitches;
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteSettingsCategory.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteSettingsCategory.java
similarity index 97%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteSettingsCategory.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteSettingsCategory.java
index f74803b..867acb4a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteSettingsCategory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteSettingsCategory.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.app.Activity;
 import android.content.Context;
@@ -377,11 +377,11 @@
      * Returns the icon for permissions that have been disabled by Android.
      */
     Drawable getDisabledInAndroidIcon(Activity activity) {
-        Drawable icon = ApiCompatibilityUtils.getDrawable(activity.getResources(),
-                R.drawable.exclamation_triangle);
+        Drawable icon = ApiCompatibilityUtils.getDrawable(
+                activity.getResources(), R.drawable.exclamation_triangle);
         icon.mutate();
-        int disabledColor = ApiCompatibilityUtils.getColor(activity.getResources(),
-                R.color.pref_accent_color);
+        int disabledColor =
+                ApiCompatibilityUtils.getColor(activity.getResources(), R.color.pref_accent_color);
         icon.setColorFilter(disabledColor, PorterDuff.Mode.SRC_IN);
         return icon;
     }
@@ -509,7 +509,8 @@
     private boolean permissionOnInAndroid(String permission, Context context) {
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return true;
 
-        return PackageManager.PERMISSION_GRANTED == ApiCompatibilityUtils.checkPermission(
-                context, permission, Process.myPid(), Process.myUid());
+        return PackageManager.PERMISSION_GRANTED
+                == ApiCompatibilityUtils.checkPermission(
+                        context, permission, Process.myPid(), Process.myUid());
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteSettingsPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteSettingsPreference.java
similarity index 95%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteSettingsPreference.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteSettingsPreference.java
index a645749..832b3e2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/SiteSettingsPreference.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/SiteSettingsPreference.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.content.Context;
 import android.support.v7.preference.PreferenceViewHolder;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/StorageInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/StorageInfo.java
similarity index 83%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/StorageInfo.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/StorageInfo.java
index efabfb42..8d48143 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/StorageInfo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/StorageInfo.java
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge.StorageInfoClearedCallback;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge.StorageInfoClearedCallback;
 
 import java.io.Serializable;
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/TriStateSiteSettingsPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/TriStateSiteSettingsPreference.java
similarity index 98%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/TriStateSiteSettingsPreference.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/TriStateSiteSettingsPreference.java
index 17b784b2..11b83e0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/TriStateSiteSettingsPreference.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/TriStateSiteSettingsPreference.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.content.Context;
 import android.support.v7.preference.Preference;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/Website.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/Website.java
similarity index 97%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/Website.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/Website.java
index 3c574d55..3040d0c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/Website.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/Website.java
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
-import static org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge.SITE_WILDCARD;
+import static org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge.SITE_WILDCARD;
 
 import androidx.annotation.Nullable;
 
 import org.chromium.base.MathUtils;
 import org.chromium.base.metrics.RecordUserAction;
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge.StorageInfoClearedCallback;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge.StorageInfoClearedCallback;
 import org.chromium.components.content_settings.ContentSettingsType;
 
 import java.io.Serializable;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsiteAddress.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsiteAddress.java
similarity index 93%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsiteAddress.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsiteAddress.java
index 070d7aa..b368f43 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsiteAddress.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsiteAddress.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.net.Uri;
 
@@ -51,8 +51,8 @@
             String scheme = null;
             String host = originOrHostOrPattern.substring(ANY_SUBDOMAIN_PATTERN.length());
             boolean omitProtocolAndPort = true;
-            return new WebsiteAddress(originOrHostOrPattern, origin, scheme, host,
-                    omitProtocolAndPort);
+            return new WebsiteAddress(
+                    originOrHostOrPattern, origin, scheme, host, omitProtocolAndPort);
         }
 
         // Origin
@@ -69,8 +69,8 @@
         String origin = null;
         String scheme = null;
         boolean omitProtocolAndPort = true;
-        return new WebsiteAddress(originOrHostOrPattern, origin, scheme, originOrHostOrPattern,
-                omitProtocolAndPort);
+        return new WebsiteAddress(
+                originOrHostOrPattern, origin, scheme, originOrHostOrPattern, omitProtocolAndPort);
     }
 
     private WebsiteAddress(String originOrHostPattern, String origin, String scheme, String host,
@@ -171,9 +171,8 @@
             mAddress = mHost;
         }
         int endIndex = mAddress.indexOf(getDomainAndRegistry());
-        return --endIndex > startIndex
-                ? mAddress.substring(startIndex, endIndex).split("\\.")
-                : new String[0];
+        return --endIndex > startIndex ? mAddress.substring(startIndex, endIndex).split("\\.")
+                                       : new String[0];
     }
 
     private static String trimTrailingBackslash(String origin) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsitePermissionsFetcher.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcher.java
similarity index 98%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsitePermissionsFetcher.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcher.java
index c711cead..fe2594c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsitePermissionsFetcher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcher.java
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
-import static org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge.SITE_WILDCARD;
+import static org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge.SITE_WILDCARD;
 
 import android.util.Pair;
 
@@ -157,8 +157,8 @@
      * NB: you should call either this method or {@link #fetchAllPreferences} only once per
      * instance.
      */
-    public void fetchPreferencesForCategory(SiteSettingsCategory category,
-            WebsitePermissionsCallback callback) {
+    public void fetchPreferencesForCategory(
+            SiteSettingsCategory category, WebsitePermissionsCallback callback) {
         if (category.showSites(SiteSettingsCategory.Type.ALL_SITES)) {
             fetchAllPreferences(callback);
             return;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsitePreference.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsitePreference.java
similarity index 98%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsitePreference.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsitePreference.java
index 351fce9..8b0d6ee 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsitePreference.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsitePreference.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.content.Context;
 import android.content.res.Resources;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsitePreferenceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsitePreferenceBridge.java
similarity index 99%
rename from chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsitePreferenceBridge.java
rename to chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsitePreferenceBridge.java
index e452b82..25bcf9a0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/website/WebsitePreferenceBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/WebsitePreferenceBridge.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import androidx.annotation.VisibleForTesting;
 
@@ -181,8 +181,7 @@
             return exceptions;
         }
 
-        List<ContentSettingException> managedExceptions =
-                new ArrayList<ContentSettingException>();
+        List<ContentSettingException> managedExceptions = new ArrayList<ContentSettingException>();
         for (ContentSettingException exception : exceptions) {
             if (exception.getSource().equals("policy")) {
                 managedExceptions.add(exception);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java
index bc222b9..885f6462 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java
@@ -86,7 +86,7 @@
                 long dataSaved = DataReductionProxySettings.getInstance()
                                          .getContentLengthSavedInHistorySummary()
                         - mDataSavedOnStartPageLoad;
-                Tracker tracker = TrackerFactory.getTrackerForProfile(Profile.getLastUsedProfile());
+                Tracker tracker = TrackerFactory.getTrackerForProfile(((TabImpl) tab).getProfile());
                 if (dataSaved > 0L) tracker.notifyEvent(EventConstants.DATA_SAVED_ON_PAGE_LOAD);
                 if (Previews.isPreview(tab)) {
                     tracker.notifyEvent(EventConstants.PREVIEWS_PAGE_LOADED);
@@ -170,7 +170,10 @@
 
     @Override
     public void onScreenshotTaken() {
-        Tracker tracker = TrackerFactory.getTrackerForProfile(Profile.getLastUsedProfile());
+        // TODO (https://crbug.com/1048632): Use the current profile (i.e., regular profile or
+        // incognito profile) instead of always using regular profile. It works correctly now, but
+        // it is not safe.
+        Tracker tracker = TrackerFactory.getTrackerForProfile(Profile.getLastUsedRegularProfile());
         tracker.notifyEvent(EventConstants.SCREENSHOT_TAKEN_CHROME_IN_FOREGROUND);
 
         PostTask.postTask(UiThreadTaskTraits.DEFAULT, () -> {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/SplashController.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/SplashController.java
index a7dd5309..25c32853 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/SplashController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/SplashController.java
@@ -20,7 +20,7 @@
 import org.chromium.base.Log;
 import org.chromium.base.ObserverList;
 import org.chromium.base.TraceEvent;
-import org.chromium.base.metrics.CachedMetrics;
+import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.browserservices.trustedwebactivityui.TwaFinishHandler;
 import org.chromium.chrome.browser.compositor.CompositorView;
@@ -326,10 +326,7 @@
             method.invoke(mActivity);
         } catch (ReflectiveOperationException e) {
             // Method not found or threw an exception.
-            CachedMetrics.BooleanHistogramSample histogram =
-                    new CachedMetrics.BooleanHistogramSample(
-                            "Mobile.Splash.TranslucencyRemovalFailed");
-            histogram.record(true);
+            RecordHistogram.recordBooleanHistogram("Mobile.Splash.TranslucencyRemovalFailed", true);
             assert false : "Failed to remove activity translucency reflectively";
             Log.e(TAG, "Failed to remove activity translucency reflectively");
         }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/permissiondelegation/TrustedWebActivityPreferencesUiTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/permissiondelegation/TrustedWebActivityPreferencesUiTest.java
index 041524bb..6221ea97 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/permissiondelegation/TrustedWebActivityPreferencesUiTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/permissiondelegation/TrustedWebActivityPreferencesUiTest.java
@@ -23,12 +23,12 @@
 import org.chromium.chrome.browser.settings.ChromeImageViewPreference;
 import org.chromium.chrome.browser.settings.ExpandablePreferenceGroup;
 import org.chromium.chrome.browser.settings.SettingsActivity;
-import org.chromium.chrome.browser.settings.website.SingleCategorySettings;
-import org.chromium.chrome.browser.settings.website.SingleWebsiteSettings;
-import org.chromium.chrome.browser.settings.website.SiteSettingsCategory;
-import org.chromium.chrome.browser.settings.website.SiteSettingsTestUtils;
-import org.chromium.chrome.browser.settings.website.Website;
-import org.chromium.chrome.browser.settings.website.WebsiteAddress;
+import org.chromium.chrome.browser.site_settings.SingleCategorySettings;
+import org.chromium.chrome.browser.site_settings.SingleWebsiteSettings;
+import org.chromium.chrome.browser.site_settings.SiteSettingsCategory;
+import org.chromium.chrome.browser.site_settings.SiteSettingsTestUtils;
+import org.chromium.chrome.browser.site_settings.Website;
+import org.chromium.chrome.browser.site_settings.WebsiteAddress;
 import org.chromium.chrome.test.ChromeActivityTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.content_public.browser.test.util.Criteria;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/contextmenu/ContextMenuTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/contextmenu/ContextMenuTest.java
index 6e049db..bd4d70e 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/contextmenu/ContextMenuTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/contextmenu/ContextMenuTest.java
@@ -148,7 +148,6 @@
 
     @Test
     @MediumTest
-    @DisabledTest(message = "https://crbug.com/1056176")
     @Feature({"Browser"})
     @EnableFeatures({ChromeFeatureList.CONTEXT_MENU_SEARCH_WITH_GOOGLE_LENS})
     public void testSearchWithGoogleLensFiresIntent() throws Throwable {
@@ -166,7 +165,6 @@
 
     @Test
     @MediumTest
-    @DisabledTest(message = "https://crbug.com/1056176")
     @Feature({"Browser"})
     @CommandLineFlags.Add({"enable-features="
                     + ChromeFeatureList.CONTEXT_MENU_SEARCH_WITH_GOOGLE_LENS + "<FakeStudyName",
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/homepage/HomepagePolicyIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/homepage/HomepagePolicyIntegrationTest.java
index 1ff807254..1b11d98 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/homepage/HomepagePolicyIntegrationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/homepage/HomepagePolicyIntegrationTest.java
@@ -28,11 +28,12 @@
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
-import org.chromium.chrome.browser.partnercustomizations.HomepageManager.HomeButtonPreferenceState;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
 import org.chromium.chrome.browser.settings.ChromeSwitchPreference;
 import org.chromium.chrome.browser.settings.SettingsActivity;
+import org.chromium.chrome.browser.settings.homepage.HomepageMetricsEnums.HomeButtonPreferenceState;
+import org.chromium.chrome.browser.settings.homepage.HomepageMetricsEnums.HomepageLocationType;
 import org.chromium.chrome.browser.settings.homepage.HomepageSettings;
 import org.chromium.chrome.browser.toolbar.HomeButton;
 import org.chromium.chrome.browser.toolbar.ToolbarManager;
@@ -40,6 +41,7 @@
 import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
 import org.chromium.chrome.test.util.ChromeTabUtils;
 import org.chromium.chrome.test.util.browser.Features;
+import org.chromium.chrome.test.util.browser.Features.DisableFeatures;
 import org.chromium.chrome.test.util.browser.TabLoadObserver;
 import org.chromium.content_public.browser.test.util.Criteria;
 import org.chromium.content_public.browser.test.util.CriteriaHelper;
@@ -68,6 +70,7 @@
     private static final String METRICS_HOME_BUTTON_STATE_ENUM =
             "Settings.ShowHomeButtonPreferenceStateManaged";
     private static final String METRICS_HOMEPAGE_IS_CUSTOMIZED = "Settings.HomePageIsCustomized";
+    private static final String METRICS_HOMEPAGE_LOCATION_TYPE = "Settings.Homepage.LocationType";
 
     private EmbeddedTestServer mTestServer;
 
@@ -127,6 +130,11 @@
                 RecordHistogram.getHistogramValueCountForTesting(
                         METRICS_HOME_BUTTON_STATE_ENUM, HomeButtonPreferenceState.MANAGED_ENABLED));
 
+        // METRICS_HOMEPAGE_LOCATION_TYPE is recorded once in deferred start up tasks.
+        Assert.assertEquals("Settings.Homepage.LocationType should record POLICY_OTHER once.", 1,
+                RecordHistogram.getHistogramValueCountForTesting(
+                        METRICS_HOMEPAGE_LOCATION_TYPE, HomepageLocationType.POLICY_OTHER));
+
         // Start the page again. This time, the homepage should be set to what policy is.
         destroyAndRestartActivity();
 
@@ -170,6 +178,7 @@
     @Test
     @MediumTest
     @Feature({"Homepage"})
+    @DisableFeatures(ChromeFeatureList.HOMEPAGE_SETTINGS_UI_CONVERSION)
     public void testHomepagePreference() {
         // Launch homepage preference page
         SettingsActivity homepagePreferenceActivity =
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfobarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfobarTest.java
index 9311b11..ba75c19 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfobarTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfobarTest.java
@@ -17,8 +17,8 @@
 
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.PermissionInfo;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.PermissionInfo;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
 import org.chromium.chrome.test.util.ChromeTabUtils;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBarTest.java
index 49b1051..7b13776 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBarTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBarTest.java
@@ -21,8 +21,8 @@
 import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.SearchGeolocationDisclosureTabHelper;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.PermissionInfo;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.PermissionInfo;
 import org.chromium.chrome.test.ChromeActivityTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.util.InfoBarTestAnimationListener;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeIntentTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeIntentTest.java
index 3b3a969..93aa1b6 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeIntentTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeIntentTest.java
@@ -23,8 +23,8 @@
 import org.chromium.chrome.browser.document.ChromeLauncherActivity;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.settings.SettingsActivity;
-import org.chromium.chrome.browser.settings.website.SingleCategorySettings;
-import org.chromium.chrome.browser.settings.website.SingleWebsiteSettings;
+import org.chromium.chrome.browser.site_settings.SingleCategorySettings;
+import org.chromium.chrome.browser.site_settings.SingleWebsiteSettings;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.util.ActivityUtils;
 import org.chromium.content_public.browser.test.util.Criteria;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeTest.java
index f678b82..fb6c08a9 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeTest.java
@@ -42,7 +42,7 @@
 import org.chromium.chrome.browser.preferences.Pref;
 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
 import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.util.browser.TabTitleObserver;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationTestRule.java
index 1517efb..9451cb5 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationTestRule.java
@@ -8,8 +8,8 @@
 import org.junit.runner.Description;
 import org.junit.runners.model.Statement;
 
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.PermissionInfo;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.PermissionInfo;
 import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
 import org.chromium.chrome.test.util.browser.notifications.MockNotificationManagerProxy;
 import org.chromium.chrome.test.util.browser.notifications.MockNotificationManagerProxy.NotificationEntry;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/channels/SiteChannelsManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/channels/SiteChannelsManagerTest.java
index 7622f7d..58542729 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/channels/SiteChannelsManagerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/channels/SiteChannelsManagerTest.java
@@ -31,8 +31,8 @@
 import org.chromium.chrome.browser.notifications.NotificationManagerProxy;
 import org.chromium.chrome.browser.notifications.NotificationManagerProxyImpl;
 import org.chromium.chrome.browser.notifications.NotificationSettingsBridge;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.PermissionInfo;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.PermissionInfo;
 import org.chromium.chrome.test.ChromeBrowserTestRule;
 import org.chromium.content_public.browser.test.util.TestThreadUtils;
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/settings/NotificationSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/settings/NotificationSettingsTest.java
index 7b52153..5a49cf5 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/settings/NotificationSettingsTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/settings/NotificationSettingsTest.java
@@ -25,10 +25,10 @@
 import org.chromium.chrome.browser.settings.ChromeSwitchPreference;
 import org.chromium.chrome.browser.settings.SettingsActivity;
 import org.chromium.chrome.browser.settings.SettingsActivityTest;
-import org.chromium.chrome.browser.settings.website.ContentSettingsResources;
-import org.chromium.chrome.browser.settings.website.SingleCategorySettings;
-import org.chromium.chrome.browser.settings.website.SiteSettingsCategory;
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge;
+import org.chromium.chrome.browser.site_settings.ContentSettingsResources;
+import org.chromium.chrome.browser.site_settings.SingleCategorySettings;
+import org.chromium.chrome.browser.site_settings.SiteSettingsCategory;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge;
 import org.chromium.chrome.browser.test.ScreenShooter;
 import org.chromium.chrome.test.ChromeBrowserTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java
index 0e2211e..8869b0c4 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java
@@ -20,8 +20,8 @@
 import org.chromium.base.test.util.Feature;
 import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.PermissionInfo;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.PermissionInfo;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.test.ChromeActivityTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerHomepageUnitTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerHomepageUnitTest.java
index c99a462..46c4b45 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerHomepageUnitTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerHomepageUnitTest.java
@@ -20,6 +20,7 @@
 import org.junit.runner.RunWith;
 
 import org.chromium.base.metrics.RecordHistogram;
+import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.base.test.util.DisabledTest;
 import org.chromium.base.test.util.Feature;
 import org.chromium.base.test.util.RetryOnFailure;
@@ -56,6 +57,7 @@
     public void setUp() {
         mHomepageManager = HomepageManager.getInstance();
         RecordHistogram.setDisabledForTests(true);
+        RecordUserAction.setDisabledForTests(true);
         Assert.assertNotNull(mHomepageManager);
 
         Assert.assertNotSame(
@@ -66,6 +68,7 @@
     @After
     public void tearDown() {
         RecordHistogram.setDisabledForTests(false);
+        RecordUserAction.setDisabledForTests(false);
     }
 
     @Test
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/push_messaging/PushMessagingTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/push_messaging/PushMessagingTest.java
index 44e28e9..3f564f7 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/push_messaging/PushMessagingTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/push_messaging/PushMessagingTest.java
@@ -28,7 +28,7 @@
 import org.chromium.chrome.browser.infobar.InfoBar;
 import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
 import org.chromium.chrome.browser.notifications.NotificationTestRule;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.util.InfoBarUtil;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettingsTest.java
index 40c00de1..7d8530a 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettingsTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettingsTest.java
@@ -25,9 +25,9 @@
 import org.chromium.chrome.browser.settings.ManagedPreferenceDelegate;
 import org.chromium.chrome.browser.settings.SettingsActivity;
 import org.chromium.chrome.browser.settings.SettingsActivityTest;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.PermissionInfo;
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridgeJni;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.PermissionInfo;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridgeJni;
 import org.chromium.chrome.test.ChromeBrowserTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.util.ActivityUtils;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/homepage/HomepageSettingsFragmentTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/settings/homepage/HomepageSettingsFragmentTest.java
index 302c2be..616f7e6 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/homepage/HomepageSettingsFragmentTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/settings/homepage/HomepageSettingsFragmentTest.java
@@ -8,17 +8,15 @@
 import android.view.View;
 import android.widget.TextView;
 
-import org.junit.After;
 import org.junit.Assert;
-import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TestRule;
 import org.junit.runner.RunWith;
 
-import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.test.util.Feature;
 import org.chromium.base.test.util.Restriction;
+import org.chromium.base.test.util.UserActionTester;
 import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.flags.CachedFeatureFlags;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -29,6 +27,7 @@
 import org.chromium.chrome.browser.settings.ChromeSwitchPreference;
 import org.chromium.chrome.browser.settings.SettingsActivity;
 import org.chromium.chrome.browser.settings.TextMessagePreference;
+import org.chromium.chrome.browser.settings.homepage.HomepageMetricsEnums.HomepageLocationType;
 import org.chromium.chrome.test.ChromeActivityTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.util.browser.Features;
@@ -82,6 +81,11 @@
     private static final String ASSERT_MESSAGE_DUET_SWITCH_INVISIBLE =
             "Switch should not be visible when duet is enabled.";
 
+    private static final String ASSERT_HOMEPAGE_LOCATION_HISTOGRAM_COUNT =
+            "Count for user action <Settings.Homepage.LocationChanged> is different.";
+    private static final String ASSERT_HOMEPAGE_LOCATION_TYPE_MISMATCH =
+            "HomepageLocationType is different than test settings.";
+
     private static final String TEST_URL_FOO = "http://127.0.0.1:8000/foo.html";
     private static final String TEST_URL_BAR = "http://127.0.0.1:8000/bar.html";
     private static final String CHROME_NTP = UrlConstants.NTP_NON_NATIVE_URL;
@@ -104,16 +108,6 @@
     private RadioButtonWithDescription mChromeNtpRadioButton;
     private RadioButtonWithEditText mCustomUriRadioButton;
 
-    @Before
-    public void setup() {
-        RecordHistogram.setDisabledForTests(true);
-    }
-
-    @After
-    public void tearDown() {
-        RecordHistogram.setDisabledForTests(false);
-    }
-
     private void launchSettingsActivity() {
         SettingsActivity homepagePreferenceActivity =
                 mTestRule.startSettingsActivity(HomepageSettings.class.getName());
@@ -160,6 +154,9 @@
                 ASSERT_MESSAGE_RADIO_BUTTON_CUSTOMIZED_CHECK, mCustomUriRadioButton.isChecked());
         Assert.assertEquals(ASSERT_MESSAGE_EDIT_TEXT, TEST_URL_BAR,
                 mCustomUriRadioButton.getPrimaryText().toString());
+        Assert.assertEquals(ASSERT_HOMEPAGE_LOCATION_TYPE_MISMATCH,
+                HomepageLocationType.USER_CUSTOMIZED_NTP,
+                HomepageManager.getInstance().getHomepageLocationType());
     }
 
     @Test
@@ -185,6 +182,9 @@
                 ASSERT_MESSAGE_RADIO_BUTTON_CUSTOMIZED_CHECK, mCustomUriRadioButton.isChecked());
         Assert.assertEquals(ASSERT_MESSAGE_EDIT_TEXT, TEST_URL_BAR,
                 mCustomUriRadioButton.getPrimaryText().toString());
+        Assert.assertEquals(ASSERT_HOMEPAGE_LOCATION_TYPE_MISMATCH,
+                HomepageLocationType.USER_CUSTOMIZED_NTP,
+                HomepageManager.getInstance().getHomepageLocationType());
 
         HomepageSettings.setIsHomeButtonOnBottomToolbar(false);
     }
@@ -209,6 +209,9 @@
                 ASSERT_MESSAGE_RADIO_BUTTON_CUSTOMIZED_CHECK, mCustomUriRadioButton.isChecked());
         Assert.assertEquals(ASSERT_MESSAGE_EDIT_TEXT, TEST_URL_BAR,
                 mCustomUriRadioButton.getPrimaryText().toString());
+        Assert.assertEquals(ASSERT_HOMEPAGE_LOCATION_TYPE_MISMATCH,
+                HomepageLocationType.USER_CUSTOMIZED_OTHER,
+                HomepageManager.getInstance().getHomepageLocationType());
     }
 
     @Test
@@ -240,6 +243,9 @@
         Assert.assertFalse(
                 "Managed text message preference should be in visible when duet is disabled.",
                 mManagedText.isVisible());
+        Assert.assertEquals(ASSERT_HOMEPAGE_LOCATION_TYPE_MISMATCH,
+                HomepageLocationType.POLICY_OTHER,
+                HomepageManager.getInstance().getHomepageLocationType());
 
         // Reset policy
         CachedFeatureFlags.setForTesting(ChromeFeatureList.HOMEPAGE_LOCATION_POLICY, null);
@@ -270,6 +276,8 @@
         Assert.assertFalse(
                 "Managed text message preference should be invisible when duet is disabled.",
                 mManagedText.isVisible());
+        Assert.assertEquals(ASSERT_HOMEPAGE_LOCATION_TYPE_MISMATCH, HomepageLocationType.POLICY_NTP,
+                HomepageManager.getInstance().getHomepageLocationType());
 
         // Reset policy and feature flags
         CachedFeatureFlags.setForTesting(ChromeFeatureList.HOMEPAGE_LOCATION_POLICY, null);
@@ -305,6 +313,9 @@
                 mManagedText.isVisible());
         Assert.assertFalse(
                 "Managed text message preference should be disabled.", mManagedText.isEnabled());
+        Assert.assertEquals(ASSERT_HOMEPAGE_LOCATION_TYPE_MISMATCH,
+                HomepageLocationType.POLICY_OTHER,
+                HomepageManager.getInstance().getHomepageLocationType());
 
         // Reset policy
         CachedFeatureFlags.setForTesting(ChromeFeatureList.HOMEPAGE_LOCATION_POLICY, null);
@@ -334,6 +345,10 @@
         Assert.assertEquals(ASSERT_MESSAGE_EDIT_TEXT, TEST_URL_FOO,
                 mCustomUriRadioButton.getPrimaryText().toString());
 
+        Assert.assertEquals(ASSERT_HOMEPAGE_LOCATION_TYPE_MISMATCH,
+                HomepageLocationType.PARTNER_PROVIDED_OTHER,
+                HomepageManager.getInstance().getHomepageLocationType());
+
         // Reset partner provided information
         PartnerBrowserCustomizations.setHomepageForTests(origPartnerHomepage);
     }
@@ -356,6 +371,10 @@
         Assert.assertFalse(
                 ASSERT_MESSAGE_RADIO_BUTTON_CUSTOMIZED_CHECK, mCustomUriRadioButton.isChecked());
 
+        Assert.assertEquals(ASSERT_HOMEPAGE_LOCATION_TYPE_MISMATCH,
+                HomepageLocationType.DEFAULT_NTP,
+                HomepageManager.getInstance().getHomepageLocationType());
+
         // When no default homepage provided, the string should just be empty.
         Assert.assertEquals(
                 ASSERT_MESSAGE_EDIT_TEXT, "", mCustomUriRadioButton.getPrimaryText().toString());
@@ -397,6 +416,7 @@
         mHomepageTestRule.useChromeNTPForTest();
 
         launchSettingsActivity();
+        LocationChangedCounter actionCounter = new LocationChangedCounter();
 
         Assert.assertTrue(ASSERT_MESSAGE_SWITCH_ENABLE, mSwitch.isEnabled());
         Assert.assertTrue(ASSERT_MESSAGE_TITLE_ENABLED, mTitleTextView.isEnabled());
@@ -441,6 +461,11 @@
                 ASSERT_MESSAGE_RADIO_BUTTON_CUSTOMIZED_CHECK, mCustomUriRadioButton.isChecked());
         Assert.assertEquals(ASSERT_MESSAGE_EDIT_TEXT, TEST_URL_FOO,
                 mCustomUriRadioButton.getPrimaryText().toString());
+
+        Assert.assertEquals(
+                "Histogram for location change should not change when toggling switch preference.",
+                0, actionCounter.locationChangedCount);
+        actionCounter.tearDown();
     }
 
     /**
@@ -452,6 +477,7 @@
     public void testCheckRadioButtons() {
         mHomepageTestRule.useCustomizedHomepageForTest(TEST_URL_FOO);
         launchSettingsActivity();
+        LocationChangedCounter counter = new LocationChangedCounter();
 
         // Initial state check
         Assert.assertTrue(ASSERT_MESSAGE_SWITCH_CHECK, mSwitch.isChecked());
@@ -464,6 +490,8 @@
                 mCustomUriRadioButton.getPrimaryText().toString());
         Assert.assertEquals(
                 ASSERT_HOMEPAGE_MANAGER_SETTINGS, TEST_URL_FOO, HomepageManager.getHomepageUri());
+        Assert.assertEquals(
+                ASSERT_HOMEPAGE_LOCATION_HISTOGRAM_COUNT, 0, counter.locationChangedCount);
 
         // Check radio button to select NTP as homepage
         checkRadioButtonAndWait(mChromeNtpRadioButton);
@@ -474,6 +502,8 @@
                 mCustomUriRadioButton.getPrimaryText().toString());
         Assert.assertTrue(ASSERT_HOMEPAGE_MANAGER_SETTINGS,
                 NewTabPage.isNTPUrl(HomepageManager.getHomepageUri()));
+        Assert.assertEquals(
+                ASSERT_HOMEPAGE_LOCATION_HISTOGRAM_COUNT, 1, counter.locationChangedCount);
 
         // Check back to customized radio button
         checkRadioButtonAndWait(mCustomUriRadioButton);
@@ -484,6 +514,8 @@
                 mCustomUriRadioButton.getPrimaryText().toString());
         Assert.assertEquals(
                 ASSERT_HOMEPAGE_MANAGER_SETTINGS, TEST_URL_FOO, HomepageManager.getHomepageUri());
+        Assert.assertEquals(
+                ASSERT_HOMEPAGE_LOCATION_HISTOGRAM_COUNT, 2, counter.locationChangedCount);
     }
 
     /**
@@ -495,6 +527,7 @@
     public void testChangeCustomized() {
         mHomepageTestRule.useChromeNTPForTest();
         launchSettingsActivity();
+        LocationChangedCounter actionCounter = new LocationChangedCounter();
 
         // Initial state check
         Assert.assertTrue(ASSERT_MESSAGE_SWITCH_CHECK, mSwitch.isChecked());
@@ -505,6 +538,8 @@
                 ASSERT_MESSAGE_EDIT_TEXT, "", mCustomUriRadioButton.getPrimaryText().toString());
         Assert.assertTrue(ASSERT_HOMEPAGE_MANAGER_SETTINGS,
                 NewTabPage.isNTPUrl(HomepageManager.getHomepageUri()));
+        Assert.assertEquals(
+                ASSERT_HOMEPAGE_LOCATION_HISTOGRAM_COUNT, 0, actionCounter.locationChangedCount);
 
         // Update the text box. To do this, request focus for customized radio button so that the
         // checked option will be changed.
@@ -526,12 +561,18 @@
                 ASSERT_MESSAGE_RADIO_BUTTON_CUSTOMIZED_CHECK, mCustomUriRadioButton.isChecked());
         Assert.assertEquals(
                 ASSERT_HOMEPAGE_MANAGER_SETTINGS, TEST_URL_FOO, HomepageManager.getHomepageUri());
+        Assert.assertEquals(
+                ASSERT_HOMEPAGE_LOCATION_HISTOGRAM_COUNT, 1, actionCounter.locationChangedCount);
 
         // Update the text box, homepage should change accordingly.
         TestThreadUtils.runOnUiThreadBlocking(
                 () -> mCustomUriRadioButton.setPrimaryText(TEST_URL_BAR));
         Assert.assertEquals(
                 ASSERT_HOMEPAGE_MANAGER_SETTINGS, TEST_URL_BAR, HomepageManager.getHomepageUri());
+        Assert.assertEquals(
+                ASSERT_HOMEPAGE_LOCATION_HISTOGRAM_COUNT, 2, actionCounter.locationChangedCount);
+
+        actionCounter.tearDown();
     }
 
     private void checkRadioButtonAndWait(RadioButtonWithDescription radioButton) {
@@ -539,4 +580,16 @@
                 () -> { TouchCommon.singleClickView(radioButton, 5, 5); });
         CriteriaHelper.pollUiThread(radioButton::isChecked, "Radio button is never checked.");
     }
+
+    /**
+     * Record user action "Settings.Homepage.LocationChanged"
+     */
+    private static class LocationChangedCounter extends UserActionTester {
+        public int locationChangedCount;
+
+        @Override
+        public void onActionRecorded(String action) {
+            if (action.equals("Settings.Homepage.LocationChanged")) ++locationChangedCount;
+        }
+    }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/OWNERS b/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/OWNERS
deleted file mode 100644
index c3126065..0000000
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-file://chrome/android/java/src/org/chromium/chrome/browser/settings/website/OWNERS
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/CookieControlsBridgeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/CookieControlsBridgeTest.java
similarity index 99%
rename from chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/CookieControlsBridgeTest.java
rename to chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/CookieControlsBridgeTest.java
index 3d950ab7..279653a 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/CookieControlsBridgeTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/CookieControlsBridgeTest.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.SmallTest;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/CookieControlsServiceBridgeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridgeTest.java
similarity index 98%
rename from chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/CookieControlsServiceBridgeTest.java
rename to chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridgeTest.java
index 81018dd..97ce735 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/CookieControlsServiceBridgeTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridgeTest.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.SmallTest;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/ManageSpaceActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivityTest.java
similarity index 98%
rename from chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/ManageSpaceActivityTest.java
rename to chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivityTest.java
index b8dc0fc..f3b611a 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/ManageSpaceActivityTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivityTest.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.annotation.TargetApi;
 import android.content.Intent;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/OWNERS b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/OWNERS
new file mode 100644
index 0000000..b889d5b
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/OWNERS
@@ -0,0 +1 @@
+file://chrome/android/java/src/org/chromium/chrome/browser/site_settings/OWNERS
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/PermissionInfoTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/PermissionInfoTest.java
similarity index 99%
rename from chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/PermissionInfoTest.java
rename to chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/PermissionInfoTest.java
index 87e78f26..e6d0eb4 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/PermissionInfoTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/PermissionInfoTest.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.support.test.filters.SmallTest;
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/SiteSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
similarity index 99%
rename from chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/SiteSettingsTest.java
rename to chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
index 5b803a2..a277e2c 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/SiteSettingsTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
-import static org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge.SITE_WILDCARD;
+import static org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge.SITE_WILDCARD;
 
 import android.content.Intent;
 import android.os.Build;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/SiteSettingsTestUtils.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTestUtils.java
similarity index 97%
rename from chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/SiteSettingsTestUtils.java
rename to chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTestUtils.java
index 46ff0bd7..1a2294d 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/SiteSettingsTestUtils.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTestUtils.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.content.Intent;
 import android.os.Bundle;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/WebsiteAddressTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsiteAddressTest.java
similarity index 79%
rename from chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/WebsiteAddressTest.java
rename to chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsiteAddressTest.java
index 8d6af81..349a0f0 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/WebsiteAddressTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsiteAddressTest.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
 import android.support.test.filters.SmallTest;
 
@@ -60,23 +60,18 @@
     @SmallTest
     @Feature({"Preferences"})
     public void testEqualsHashCodeCompareTo() {
-        Object[][] testData = {
-            { 0, "http://google.com", "http://google.com" },
-            { -1, "[*.]google.com", "http://google.com" },
-            { -1, "[*.]google.com", "http://a.google.com" },
-            { -1, "[*.]a.com", "[*.]b.com" },
-            { 0, "[*.]google.com", "google.com" },
-            { -1, "[*.]google.com", "a.google.com" },
-            { -1, "http://google.com", "http://a.google.com" },
-            { -1, "http://a.google.com", "http://a.a.google.com" },
-            { -1, "http://a.a.google.com", "http://a.b.google.com" },
-            { 1, "http://a.b.google.com", "http://google.com" },
-            { -1, "http://google.com", "https://google.com" },
-            { -1, "http://google.com", "https://a.google.com" },
-            { 1, "https://b.google.com", "https://a.google.com" },
-            { -1, "http://a.com", "http://b.com" },
-            { -1, "http://a.com", "http://a.b.com" }
-        };
+        Object[][] testData = {{0, "http://google.com", "http://google.com"},
+                {-1, "[*.]google.com", "http://google.com"},
+                {-1, "[*.]google.com", "http://a.google.com"}, {-1, "[*.]a.com", "[*.]b.com"},
+                {0, "[*.]google.com", "google.com"}, {-1, "[*.]google.com", "a.google.com"},
+                {-1, "http://google.com", "http://a.google.com"},
+                {-1, "http://a.google.com", "http://a.a.google.com"},
+                {-1, "http://a.a.google.com", "http://a.b.google.com"},
+                {1, "http://a.b.google.com", "http://google.com"},
+                {-1, "http://google.com", "https://google.com"},
+                {-1, "http://google.com", "https://a.google.com"},
+                {1, "https://b.google.com", "https://a.google.com"},
+                {-1, "http://a.com", "http://b.com"}, {-1, "http://a.com", "http://a.b.com"}};
 
         for (int i = 0; i < testData.length; ++i) {
             Object[] testRow = testData[i];
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/WebsitePermissionsFetcherTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcherTest.java
similarity index 81%
rename from chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/WebsitePermissionsFetcherTest.java
rename to chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcherTest.java
index e4e940b..52e849c 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/settings/website/WebsitePermissionsFetcherTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcherTest.java
@@ -3,9 +3,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.settings.website;
+package org.chromium.chrome.browser.site_settings;
 
-import static org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge.SITE_WILDCARD;
+import static org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge.SITE_WILDCARD;
 
 import android.support.test.filters.SmallTest;
 import android.util.Pair;
@@ -40,72 +40,198 @@
     public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule();
 
     private static final String[] PERMISSION_URLS = {
-            "http://www.google.com/", "http://www.youtube.com/", "http://www.facebook.com/",
-            "http://www.baidu.com/", "http://www.wikipedia.org/", "http://www.yahoo.com/",
-            "http://www.google.co.in/", "http://www.reddit.com/", "http://www.qq.com/",
-            "http://www.taobao.com/", "http://www.google.co.jp/", "http://www.amazon.com/",
-            "http://www.twitter.com/", "http://www.live.com/", "http://www.instagram.com/",
-            "http://www.weibo.com/", "http://www.google.de/", "http://www.google.co.uk/",
-            "http://www.google.com.br/", "http://www.google.fr/", "http://www.google.ru/",
-            "http://www.linkedin.com/", "http://www.google.com.hk/", "http://www.yandex.ru/",
-            "http://www.google.it/", "http://www.netflix.com/", "http://www.yahoo.co.jp/",
-            "http://www.google.es/", "http://www.t.co/", "http://www.google.com.mx/",
-            "http://www.google.ca/", "http://www.ebay.com/", "http://www.alipay.com/",
-            "http://www.bing.com/", "http://www.imgur.com/", "http://www.twitch.tv/",
-            "http://www.msn.com/", "http://www.apple.com/", "http://www.aliexpress.com/",
-            "http://www.microsoft.com/", "http://www.wordpress.com/", "http://www.office.com/",
-            "http://www.mail.ru/", "http://www.tumblr.com/", "http://www.stackoverflow.com/",
-            "http://www.microsoftonline.com/", "http://www.imdb.com/", "http://www.github.com/",
-            "http://www.blogspot.com/", "http://www.amazon.co.jp/", "http://www.google.com.au/",
-            "http://www.google.com.tw/", "http://www.google.com.tr/", "http://www.paypal.com/",
-            "http://www.google.pl/", "http://www.wikia.com/", "http://www.pinterest.com/",
-            "http://www.whatsapp.com/", "http://www.google.co.id/", "http://www.espn.com/",
-            "http://www.adobe.com/", "http://www.google.com.ar/",
-            "http://www.googleusercontent.com/", "http://www.amazon.in/", "http://www.dropbox.com/",
-            "http://www.amazon.de/", "http://www.google.com.ua/", "http://www.so.com/",
-            "http://www.google.com.pk/", "http://www.cnn.com/", "http://www.amazon.co.uk/",
-            "http://www.bbc.co.uk/", "http://www.google.com.sa/", "http://www.craigslist.org/",
-            "http://www.bbc.com/", "http://www.google.co.th/", "http://www.google.com.eg/",
-            "http://www.google.nl/", "http://www.amazonaws.com/", "http://www.soundcloud.com/",
-            "http://www.ask.com/", "http://www.google.co.za/", "http://www.booking.com/",
-            "http://www.nytimes.com/", "http://www.google.co.ve/", "http://www.google.co.kr/",
-            "http://www.quora.com/", "http://www.mozilla.org/", "http://www.dailymotion.com/",
-            "http://www.stackexchange.com/", "http://www.salesforce.com/", "http://www.detik.com/",
-            "http://www.blogger.com/", "http://www.ebay.de/", "http://www.vimeo.com/",
-            "http://www.theguardian.com/", "http://www.tribunnews.com/",
-            "http://www.google.com.sg/", "http://www.google.gr/", "http://www.flipkart.com/",
-            "http://www.spotify.com/", "http://www.slideshare.net/", "http://www.chase.com/",
-            "http://www.google.com.ph/", "http://www.ebay.co.uk/", "http://www.google.se/",
-            "http://www.cnet.com/", "http://www.google.be/", "http://www.nih.gov/",
-            "http://www.google.cn/", "http://www.steamcommunity.com/", "http://www.mediafire.com/",
-            "http://www.xinhuanet.com/", "http://www.google.az/", "http://www.vice.com/",
-            "http://www.alibaba.com/", "http://www.dailymail.co.uk/", "http://www.google.com.co/",
-            "http://www.buzzfeed.com/", "http://www.doubleclick.net/", "http://www.google.com.ng/",
-            "http://www.google.co.ao/", "http://www.google.at/", "http://www.uol.com.br/",
-            "http://www.redd.it/", "http://www.deviantart.com/", "http://www.washingtonpost.com/",
-            "http://www.twimg.com/", "http://www.w3schools.com/", "http://www.godaddy.com/",
-            "http://www.wikihow.com/", "http://www.etsy.com/", "http://www.slack.com/",
-            "http://www.google.cz/", "http://www.google.ch/", "http://www.amazon.it/",
-            "http://www.steampowered.com/", "http://www.google.com.vn/", "http://www.walmart.com/",
-            "http://www.messenger.com/", "http://www.discordapp.com/", "http://www.google.cl/",
-            "http://www.amazon.fr/", "http://www.yelp.com/", "http://www.google.no/",
-            "http://www.google.pt/", "http://www.google.ae/", "http://www.weather.com/",
-            "http://www.mercadolivre.com.br/", "http://www.google.ro/",
-            "http://www.bankofamerica.com/", "http://www.blogspot.co.id/", "http://www.trello.com/",
-            "http://www.gfycat.com/", "http://www.ikea.com/", "http://www.scribd.com/",
-            "http://www.china.com.cn/", "http://www.forbes.com/", "http://www.wellsfargo.com/",
-            "http://www.indiatimes.com/", "http://www.cnblogs.com/", "http://www.gamepedia.com/",
-            "http://www.outbrain.com/", "http://www.9gag.com/", "http://www.google.ie/",
-            "http://www.gearbest.com/", "http://www.files.wordpress.com/",
-            "http://www.huffingtonpost.com/", "http://www.speedtest.net/", "http://www.google.dk/",
-            "http://www.google.fi/", "http://www.wikimedia.org/", "http://www.thesaurus.com/",
-            "http://www.livejournal.com/", "http://www.nfl.com/", "http://www.zillow.com/",
-            "http://www.foxnews.com/", "http://www.researchgate.net/", "http://www.amazon.cn/",
-            "http://www.google.hu/", "http://www.google.co.il/", "http://www.amazon.es/",
-            "http://www.wordreference.com/", "http://www.blackboard.com/", "http://www.google.dz/",
-            "http://www.tripadvisor.com/", "http://www.shutterstock.com/",
-            "http://www.cloudfront.net/", "http://www.aol.com/", "http://www.weebly.com/",
-            "http://www.battle.net/", "http://www.archive.org/",
+            "http://www.google.com/",
+            "http://www.youtube.com/",
+            "http://www.facebook.com/",
+            "http://www.baidu.com/",
+            "http://www.wikipedia.org/",
+            "http://www.yahoo.com/",
+            "http://www.google.co.in/",
+            "http://www.reddit.com/",
+            "http://www.qq.com/",
+            "http://www.taobao.com/",
+            "http://www.google.co.jp/",
+            "http://www.amazon.com/",
+            "http://www.twitter.com/",
+            "http://www.live.com/",
+            "http://www.instagram.com/",
+            "http://www.weibo.com/",
+            "http://www.google.de/",
+            "http://www.google.co.uk/",
+            "http://www.google.com.br/",
+            "http://www.google.fr/",
+            "http://www.google.ru/",
+            "http://www.linkedin.com/",
+            "http://www.google.com.hk/",
+            "http://www.yandex.ru/",
+            "http://www.google.it/",
+            "http://www.netflix.com/",
+            "http://www.yahoo.co.jp/",
+            "http://www.google.es/",
+            "http://www.t.co/",
+            "http://www.google.com.mx/",
+            "http://www.google.ca/",
+            "http://www.ebay.com/",
+            "http://www.alipay.com/",
+            "http://www.bing.com/",
+            "http://www.imgur.com/",
+            "http://www.twitch.tv/",
+            "http://www.msn.com/",
+            "http://www.apple.com/",
+            "http://www.aliexpress.com/",
+            "http://www.microsoft.com/",
+            "http://www.wordpress.com/",
+            "http://www.office.com/",
+            "http://www.mail.ru/",
+            "http://www.tumblr.com/",
+            "http://www.stackoverflow.com/",
+            "http://www.microsoftonline.com/",
+            "http://www.imdb.com/",
+            "http://www.github.com/",
+            "http://www.blogspot.com/",
+            "http://www.amazon.co.jp/",
+            "http://www.google.com.au/",
+            "http://www.google.com.tw/",
+            "http://www.google.com.tr/",
+            "http://www.paypal.com/",
+            "http://www.google.pl/",
+            "http://www.wikia.com/",
+            "http://www.pinterest.com/",
+            "http://www.whatsapp.com/",
+            "http://www.google.co.id/",
+            "http://www.espn.com/",
+            "http://www.adobe.com/",
+            "http://www.google.com.ar/",
+            "http://www.googleusercontent.com/",
+            "http://www.amazon.in/",
+            "http://www.dropbox.com/",
+            "http://www.amazon.de/",
+            "http://www.google.com.ua/",
+            "http://www.so.com/",
+            "http://www.google.com.pk/",
+            "http://www.cnn.com/",
+            "http://www.amazon.co.uk/",
+            "http://www.bbc.co.uk/",
+            "http://www.google.com.sa/",
+            "http://www.craigslist.org/",
+            "http://www.bbc.com/",
+            "http://www.google.co.th/",
+            "http://www.google.com.eg/",
+            "http://www.google.nl/",
+            "http://www.amazonaws.com/",
+            "http://www.soundcloud.com/",
+            "http://www.ask.com/",
+            "http://www.google.co.za/",
+            "http://www.booking.com/",
+            "http://www.nytimes.com/",
+            "http://www.google.co.ve/",
+            "http://www.google.co.kr/",
+            "http://www.quora.com/",
+            "http://www.mozilla.org/",
+            "http://www.dailymotion.com/",
+            "http://www.stackexchange.com/",
+            "http://www.salesforce.com/",
+            "http://www.detik.com/",
+            "http://www.blogger.com/",
+            "http://www.ebay.de/",
+            "http://www.vimeo.com/",
+            "http://www.theguardian.com/",
+            "http://www.tribunnews.com/",
+            "http://www.google.com.sg/",
+            "http://www.google.gr/",
+            "http://www.flipkart.com/",
+            "http://www.spotify.com/",
+            "http://www.slideshare.net/",
+            "http://www.chase.com/",
+            "http://www.google.com.ph/",
+            "http://www.ebay.co.uk/",
+            "http://www.google.se/",
+            "http://www.cnet.com/",
+            "http://www.google.be/",
+            "http://www.nih.gov/",
+            "http://www.google.cn/",
+            "http://www.steamcommunity.com/",
+            "http://www.mediafire.com/",
+            "http://www.xinhuanet.com/",
+            "http://www.google.az/",
+            "http://www.vice.com/",
+            "http://www.alibaba.com/",
+            "http://www.dailymail.co.uk/",
+            "http://www.google.com.co/",
+            "http://www.buzzfeed.com/",
+            "http://www.doubleclick.net/",
+            "http://www.google.com.ng/",
+            "http://www.google.co.ao/",
+            "http://www.google.at/",
+            "http://www.uol.com.br/",
+            "http://www.redd.it/",
+            "http://www.deviantart.com/",
+            "http://www.washingtonpost.com/",
+            "http://www.twimg.com/",
+            "http://www.w3schools.com/",
+            "http://www.godaddy.com/",
+            "http://www.wikihow.com/",
+            "http://www.etsy.com/",
+            "http://www.slack.com/",
+            "http://www.google.cz/",
+            "http://www.google.ch/",
+            "http://www.amazon.it/",
+            "http://www.steampowered.com/",
+            "http://www.google.com.vn/",
+            "http://www.walmart.com/",
+            "http://www.messenger.com/",
+            "http://www.discordapp.com/",
+            "http://www.google.cl/",
+            "http://www.amazon.fr/",
+            "http://www.yelp.com/",
+            "http://www.google.no/",
+            "http://www.google.pt/",
+            "http://www.google.ae/",
+            "http://www.weather.com/",
+            "http://www.mercadolivre.com.br/",
+            "http://www.google.ro/",
+            "http://www.bankofamerica.com/",
+            "http://www.blogspot.co.id/",
+            "http://www.trello.com/",
+            "http://www.gfycat.com/",
+            "http://www.ikea.com/",
+            "http://www.scribd.com/",
+            "http://www.china.com.cn/",
+            "http://www.forbes.com/",
+            "http://www.wellsfargo.com/",
+            "http://www.indiatimes.com/",
+            "http://www.cnblogs.com/",
+            "http://www.gamepedia.com/",
+            "http://www.outbrain.com/",
+            "http://www.9gag.com/",
+            "http://www.google.ie/",
+            "http://www.gearbest.com/",
+            "http://www.files.wordpress.com/",
+            "http://www.huffingtonpost.com/",
+            "http://www.speedtest.net/",
+            "http://www.google.dk/",
+            "http://www.google.fi/",
+            "http://www.wikimedia.org/",
+            "http://www.thesaurus.com/",
+            "http://www.livejournal.com/",
+            "http://www.nfl.com/",
+            "http://www.zillow.com/",
+            "http://www.foxnews.com/",
+            "http://www.researchgate.net/",
+            "http://www.amazon.cn/",
+            "http://www.google.hu/",
+            "http://www.google.co.il/",
+            "http://www.amazon.es/",
+            "http://www.wordreference.com/",
+            "http://www.blackboard.com/",
+            "http://www.google.dz/",
+            "http://www.tripadvisor.com/",
+            "http://www.shutterstock.com/",
+            "http://www.cloudfront.net/",
+            "http://www.aol.com/",
+            "http://www.weebly.com/",
+            "http://www.battle.net/",
+            "http://www.archive.org/",
     };
 
     private static class WebsitePermissionsWaiter
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserDialogTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserDialogTest.java
index f2686e1..8a82f1e 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserDialogTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserDialogTest.java
@@ -26,8 +26,8 @@
 import org.chromium.base.test.util.Feature;
 import org.chromium.base.test.util.Restriction;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.PermissionInfo;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.PermissionInfo;
 import org.chromium.chrome.browser.vr.rules.ChromeTabbedActivityVrTestRule;
 import org.chromium.chrome.browser.vr.util.NativeUiUtils;
 import org.chromium.chrome.browser.vr.util.RenderTestUtils;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserTransitionTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserTransitionTest.java
index 8851d48..b249c56 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserTransitionTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserTransitionTest.java
@@ -40,7 +40,7 @@
 import org.chromium.chrome.browser.ntp.IncognitoNewTabPage;
 import org.chromium.chrome.browser.settings.SettingsActivity;
 import org.chromium.chrome.browser.settings.SettingsLauncher;
-import org.chromium.chrome.browser.settings.website.SingleWebsiteSettings;
+import org.chromium.chrome.browser.site_settings.SingleWebsiteSettings;
 import org.chromium.chrome.browser.vr.mock.MockVrDaydreamApi;
 import org.chromium.chrome.browser.vr.rules.ChromeTabbedActivityVrTestRule;
 import org.chromium.chrome.browser.vr.util.NativeUiUtils;
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/ChromeActionModeCallbackTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/ChromeActionModeCallbackTest.java
index ac910a1..b7e1e5ce 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/ChromeActionModeCallbackTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/ChromeActionModeCallbackTest.java
@@ -5,20 +5,29 @@
 package org.chromium.chrome.browser;
 
 import android.app.Activity;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.ResolveInfo;
 import android.view.ActionMode;
 import android.view.Menu;
 import android.view.MenuItem;
 
 import org.junit.After;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
+import org.robolectric.fakes.RoboMenu;
+import org.robolectric.shadows.ShadowPackageManager;
 
 import org.chromium.base.Callback;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.base.test.BaseRobolectricTestRunner;
 import org.chromium.chrome.browser.firstrun.FirstRunStatus;
@@ -29,6 +38,12 @@
 import org.chromium.content_public.browser.ActionModeCallbackHelper;
 import org.chromium.content_public.browser.WebContents;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Random;
+
 /**
  * Unit tests for the {@link ChromeActionModeCallback}.
  */
@@ -117,4 +132,77 @@
 
         Mockito.verify(localeManager).showSearchEnginePromoIfNeeded(Mockito.any(), Mockito.any());
     }
+
+    @Test
+    public void testSelectActionMenuTextProcessingMenus() {
+        ShadowPackageManager packageManager =
+                Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager());
+        List<String> browserPackageNames = new ArrayList<>();
+        List<String> launcherPackageNames = new ArrayList<>();
+        List<String> otherPackageNames = new ArrayList<>();
+        List<ResolveInfo> browsersList = new LinkedList<>();
+        List<ResolveInfo> launchersList = new LinkedList<>();
+        for (int i = 0; i < 5; i++) {
+            browserPackageNames.add("foo " + i);
+            browsersList.add(createResolveInfo(browserPackageNames.get(i)));
+            launcherPackageNames.add("bar " + i);
+            launchersList.add(createResolveInfo(launcherPackageNames.get(i)));
+            otherPackageNames.add("baz " + i);
+        }
+
+        // Mock intent for querying web browsers.
+        packageManager.addResolveInfoForIntent(
+                PackageManagerUtils.getQueryInstalledBrowsersIntent(), browsersList);
+
+        // Mock intent for querying home launchers.
+        packageManager.addResolveInfoForIntent(
+                PackageManagerUtils.getQueryInstalledHomeLaunchersIntent(), launchersList);
+
+        RoboMenu menu = new RoboMenu(RuntimeEnvironment.application);
+
+        List<String> allNames = new LinkedList<>();
+        allNames.addAll(browserPackageNames);
+        allNames.addAll(launcherPackageNames);
+        allNames.addAll(otherPackageNames);
+        // Shuffle the list to get it closer to the reality.
+        Collections.shuffle(allNames, new Random(42));
+        for (int i = 0; i < allNames.size(); i++) {
+            addMenuItem(menu, i, allNames.get(i));
+        }
+
+        mActionModeCallback.onPrepareActionMode(mActionMode, menu);
+
+        // Verify that some menu items have been made invisible.
+        for (int i = 0; i < menu.size(); i++) {
+            MenuItem item = menu.getItem(i);
+            if (item.getIntent() == null || item.getIntent().getComponent() == null) continue;
+            String packageName = item.getIntent().getComponent().getPackageName();
+            if (browserPackageNames.contains(packageName)
+                    || launcherPackageNames.contains(packageName)) {
+                Assert.assertFalse("Browser or home launcher application should be filtered out",
+                        item.isVisible());
+            } else {
+                Assert.assertTrue(
+                        "Actions other than browsers or home launchers should not be filtered out",
+                        item.isVisible());
+            }
+        }
+    }
+
+    private ResolveInfo createResolveInfo(String packageName) {
+        ResolveInfo resolveInfo = new ResolveInfo();
+        ActivityInfo activityInfo = new ActivityInfo();
+        activityInfo.packageName = packageName;
+        resolveInfo.activityInfo = activityInfo;
+        return resolveInfo;
+    }
+
+    private void addMenuItem(Menu menu, int order, String packageName) {
+        menu.add(R.id.select_action_menu_text_processing_menus, Menu.NONE, order, "title")
+                .setIntent(new Intent()
+                                   .setAction(Intent.ACTION_PROCESS_TEXT)
+                                   .setType("text/plain")
+                                   .putExtra(Intent.EXTRA_PROCESS_TEXT_READONLY, true)
+                                   .setClassName(packageName, "foo"));
+    }
 }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java
index 49d9291..a737175 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java
@@ -32,9 +32,9 @@
 import org.chromium.base.test.util.JniMocker;
 import org.chromium.chrome.browser.omnibox.geo.VisibleNetworks.VisibleCell;
 import org.chromium.chrome.browser.omnibox.geo.VisibleNetworks.VisibleWifi;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge;
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridgeJni;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridgeJni;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.test.util.browser.Features;
 import org.chromium.components.embedder_support.util.UrlUtilities;
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilderUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilderUnitTest.java
index d291f8d9..1c06daa 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilderUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilderUnitTest.java
@@ -36,9 +36,9 @@
 import org.chromium.base.test.util.JniMocker;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
-import org.chromium.chrome.browser.settings.website.ContentSettingValues;
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridge;
-import org.chromium.chrome.browser.settings.website.WebsitePreferenceBridgeJni;
+import org.chromium.chrome.browser.site_settings.ContentSettingValues;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridge;
+import org.chromium.chrome.browser.site_settings.WebsitePreferenceBridgeJni;
 import org.chromium.chrome.test.util.browser.Features;
 import org.chromium.chrome.test.util.browser.LocationSettingsTestUtil;
 import org.chromium.components.content_settings.ContentSettingsType;
diff --git a/chrome/android/webapk/shell_apk/request_update_for_version.gni b/chrome/android/webapk/shell_apk/request_update_for_version.gni
index f0410c1..8d5127d 100644
--- a/chrome/android/webapk/shell_apk/request_update_for_version.gni
+++ b/chrome/android/webapk/shell_apk/request_update_for_version.gni
@@ -6,4 +6,4 @@
 # if the WebAPK's ShellAPK version is less than
 # |request_update_for_shell_apk_version|. The version should be incremented
 # after a new ShellAPK has been uploaded to the WebAPK Minting Server.
-request_update_for_shell_apk_version = 116
+request_update_for_shell_apk_version = 122
diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc
index 992d94d..80de4b7 100644
--- a/chrome/app/chrome_main_delegate.cc
+++ b/chrome/app/chrome_main_delegate.cc
@@ -65,7 +65,6 @@
 #include "printing/buildflags/buildflags.h"
 #include "services/service_manager/embedder/switches.h"
 #include "services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/base/ui_base_switches.h"
 
@@ -1022,7 +1021,6 @@
     base::i18n::SetICUDefaultLocale(locale);
     const std::string loaded_locale = locale;
 #else
-    ui::MaterialDesignController::Initialize();
     const std::string loaded_locale =
         ui::ResourceBundle::InitSharedInstanceWithLocale(
             locale, NULL, ui::ResourceBundle::LOAD_COMMON_RESOURCES);
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp
index ae23a51..1cb37e4 100644
--- a/chrome/app/chromeos_strings.grdp
+++ b/chrome/app/chromeos_strings.grdp
@@ -1170,7 +1170,7 @@
     Low-power charger connected
   </message>
   <message name="IDS_WILCO_LOW_POWER_CHARGER_MESSAGE" desc="The message body of a notification indicating that a low-power USB charger has been connected, short version.">
-    Your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> may not charge while it is turned on.
+    Your Chromebook may not charge while it is turned on.
   </message>
   <message name="IDS_WILCO_NOTIFICATION_LEARN_MORE" desc="Label on button in various Wilco notification.">
     Learn More
diff --git a/chrome/app/resources/chromium_strings_af.xtb b/chrome/app/resources/chromium_strings_af.xtb
index 35609f7..30c1cdc 100644
--- a/chrome/app/resources/chromium_strings_af.xtb
+++ b/chrome/app/resources/chromium_strings_af.xtb
@@ -94,6 +94,7 @@
 <translation id="4708774505295300557">Iemand het voorheen op hierdie rekenaar as <ph name="ACCOUNT_EMAIL_LAST" /> by Chromium aangemeld. Skep asseblief 'n nuwe Chromium-gebruiker om jou inligting apart te hou.</translation>
 <translation id="4746050847053251315">Verlaat Chromium in elk geval?</translation>
 <translation id="4748217263233248895">'n Spesiale sekuriteitopdatering vir Chromium is sopas toegepas. Herbegin nou en ons sal jou oortjies teruglaai.</translation>
+<translation id="4750035648288509542">Amper op datum! Herbegin Chromium om opdatering te voltooi. Incognitovensters sal nie weer oopgemaak word nie.</translation>
 <translation id="479167709087336770">Dit gebruik dieselfde speltoetser wat in Google-soektog gebruik word. Teks wat jy in die blaaier tik, word na Google toe gestuur. Jy kan altyd hierdie gedrag in instellings verander.</translation>
 <translation id="4888717733111232871">Inkomende reël vir Chromium om mDNS-verkeer toe te laat.</translation>
 <translation id="4943838377383847465">Chromium is in agtergrondmodus.</translation>
diff --git a/chrome/app/resources/chromium_strings_am.xtb b/chrome/app/resources/chromium_strings_am.xtb
index 6120062..0fa6b0b 100644
--- a/chrome/app/resources/chromium_strings_am.xtb
+++ b/chrome/app/resources/chromium_strings_am.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">Chromium ይበልጥ ደህንነቱ የተጠበቀ እንዲሆን ለማድረግ፣ በ<ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ውስጥ ያልተጠቀሱ እና እርስዎ ሳያውቋቸው የታከሉ ሊሆኑ የሚችሉ የተወሰኑ ዝርዝሮችን አሰናክለናል።</translation>
 <translation id="1808667845054772817">Chromiumን ዳግም ጫን</translation>
 <translation id="1881322772814446296">በሚተዳደር መለያ እየገቡ ነው፣ እና አስተዳዳሪው በእርስዎ Chromium መገለጫ ላይ ቁጥጥር እየሰጡት ነው። እንደ እርስዎ መተግበሪያዎች፣ ዕልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ሌሎች ቅንብሮች ያሉ የእርስዎ Chromium ውሂብ እስከ መጨረሻው ከ<ph name="USER_NAME" /> ጋር የተያያዙ ይሆናሉ። ይህን ውሂብ በGoogle የመለያዎች Dashboard አማካኝነት ሊሰርዙት ይችላሉ፣ ነገር ግን ይህን ውሂብ ከሌላ መለያ ጋር ሊያጎዳኙት አይችሉም። ነባሩ የእርስዎ Chromium ውሂብ ለይተው ለማስቀመጥም አዲስ መገለጫ እንደ አማራጭ መፍጠር ይችላሉ። <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium ሁሉንም የእርስዎ የይለፍ ቃላት መፈተሽ አይችልም። ከ24 ሰዓቶች በኋላ እንደገና ይሞክሩ።</translation>
 <translation id="1911763535808217981">ይህንን በማጥፋት፣ እንደ Gmail ወደ መሰሉ የGoogle ጣቢያዎች ወደ Chromium በመለያ ሳይገቡ መግባት ይችላሉ</translation>
 <translation id="1929939181775079593">Chromium መልስ አይሰጥም። አሁን ዳግም ይጀምር?</translation>
 <translation id="1966382378801805537">Chromium ነባሪ አሳሹን ማወቅ ወይም ማቀናበር አልቻለም</translation>
 <translation id="2008474315282236005">ይሄ 1 ንጥል ከዚህ መሣሪያ ይሰርዛል። ውሂብዎን በኋላ ላይ ሰርስረው ለማውጣት እንደ <ph name="USER_EMAIL" /> ሆነው ወደ Chromium ይግቡ።</translation>
 <translation id="2147976119693222405">Chromium OS የእርስዎን ውሂብ ማስመር አልቻለም። አሁኑኑ ያስተካክሉ።</translation>
+<translation id="2185166961232948079">Chromium - በአውታረ መረብ ወደ መለያ መግባት - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">ኮምፒውተር የሚጋሩ ከሆኑ ጓደኛዎች እና ቤተሰብ ተለይተው ሊያስሱ እና Chromiumን በሚፈልጉበት መንገድ ማዋቀር ይችላሉ።</translation>
 <translation id="2347108572062610441">ይህ ቅጥያ Chromiumን ሲጀምሩት የሚታየውን ገጽ ቀይሮታል።</translation>
 <translation id="2396765026452590966">ይህ «<ph name="EXTENSION_NAME" />» ቅጥያ Chromiumን ሲጀምሩት የሚታየውን ገጽ ቀይሮታል።</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">ከተፈለገ፦ የአጠቃቀም ስታትስቲክስ እና የብልሽት ሪፖርቶችን ወደ Google በራስ-ሰር በመላክ Chromium የተሻለ እንዲሆን ያግዙ።</translation>
 <translation id="2910007522516064972">ስለ &amp;Chromium</translation>
 <translation id="2977470724722393594">Chromium የተዘመነ ነው</translation>
+<translation id="3032706164202344641">Chromium የእርስዎን የይለፍ ቃላት መፈተሽ አይችልም። ቆይተው እንደገና ይሞክሩ።</translation>
 <translation id="3032787606318309379">ወደ Chromium በማከል ላይ...</translation>
 <translation id="3068515742935458733">የብልሽት ሪፖርቶችን እና <ph name="UMA_LINK" /> ወደ Google በመላክ Chromiumን የተሻለ ለማድረግ እገዛ ያድርጉ</translation>
 <translation id="3103660991484857065">ጫኚው መዝገቡን መበተን አልቻለም። እባክዎ Chromiumን እንደገና ያውርዱት።</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Chromium የይለፍ ቃላትን ለመቅዳት እየሞከረ ነው። ይህንን ለመፍቀድ የWindows የይለፍ ቃልዎን ይተይቡ።</translation>
 <translation id="4036079820698952681"><ph name="BEGIN_LINK" />የአሁኖቹን ቅንብሮች<ph name="END_LINK" /> ሪፖርት በማድረግ Chromium የተሻለ እንዲሆን ያግዙ</translation>
 <translation id="4050175100176540509">አስፈላጊ የደህንነት ማሻሻያዎች እና አዲስ ባህሪያት በቅርብ ጊዜው ስሪቱ ላይ ይገኛሉ።</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - በአውታረ መረብ ወደ መለያ መግባት - Chromium</translation>
 <translation id="421369550622382712">ለChromium ምርጥ መተግበሪያዎችን፣ ጨዋታዎችን፣ ቅጥያዎችን እና ገጽታዎችን ያግኙ።</translation>
 <translation id="4216212958613226427">ይህ ቋንቋ የChromium ዩአይን ለማሳየት ስራ ላይ ይውላል</translation>
 <translation id="4230135487732243613">የChromium ውሂዎ ከዚህ መለያ ጋር ይገናኝ?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">የሆነው ሆኖ ከChromium ይወጣ?</translation>
 <translation id="4415566066719264597">Chromium በበስተጀርባ ላይ ያሂድ</translation>
 <translation id="4423735387467980091">Chromiumን ያብጁ እና ይቆጣጠሩ</translation>
+<translation id="4544142686420020088">Chromium አልተዘመነም፣ የሆነ ችግር ተፈጥሯል። <ph name="BEGIN_LINK" />የChrome ዝማኔ ችግሮችን እና ያልተሳኩ ዝማኔዎችን ያስተካክሉ።<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">እንደ <ph name="USER_EMAIL_ADDRESS" /> ሆነው ገብተዋል። አሁን የእርስዎን ዕልባቶች፣ ታሪክ እና ሌሎች ቅንብሮች በመለያ በገቡ ሁሉም መሣሪያዎችዎ ላይ መድረስ ይችላሉ።</translation>
 <translation id="459535195905078186">የChromium መተግበሪያዎች</translation>
 <translation id="4677944499843243528">መገለጫው በሌላ ኮምፒውተር (<ph name="HOST_NAME" />) ላይ በሌላ የChromium ሂደት (<ph name="PROCESS_ID" />) የተያዘ ይመስላል። Chromium መገለጫው እንዳይበላሽ ቆልፎታል።  ሌሎች ሂደቶች ይህን መገለጫ እየተጠቀሙበት እንዳልሆኑ እርግጠኛ ከሆኑ መገለጫውን አስከፍተው Chromiumን ዳግም ማስጀመር ይችላሉ።</translation>
@@ -89,6 +94,7 @@
 <translation id="4708774505295300557">የሆነ ሰው ከዚህ ቀደም በዚህ ኮምፒውተር ላይ እንደ <ph name="ACCOUNT_EMAIL_LAST" /> ሆነው ገብተዋል። የእርስዎን መረጃ ለይተው ለማስቀመጥ እባክዎ አዲስ የChromium ተጠቃሚ ይፍጠሩ።</translation>
 <translation id="4746050847053251315">የሆነው ሆኖ Chromium ይቁም?</translation>
 <translation id="4748217263233248895">ለChromium ልዩ የደህንነት ዝማኔ ተፈጻሚ ተደርጓል። አሁን ዳግም ያስጀምሩ እና የእርስዎን ትሮች ወደ ነበሩበት እንመልሳለን።</translation>
+<translation id="4750035648288509542">ሊዘመን ጥቂት ቀርቶታል! ማዘመን ለማጠናቀቅ Chromiumን ዳግም ያስጀምሩት። ማንነት የማያሳውቁ መስኮቶች ዳግም አይከፈቱም።</translation>
 <translation id="479167709087336770">ይህ በ Google ፍለጋ ውስጥ ጥቅም ላይ ጋር ተመሳሳይ የፊደል አራሚ ይጠቀማል። በአሳሽ ውስጥ የሚተይቡት ጽሑፍ ወደ Google ይላካል። ይህን ባህሪ ሁልጊዜ በቅንብሮች ውስጥ መለወጥ ይችላሉ።</translation>
 <translation id="4888717733111232871">Chromium ለmDNS ትራፊክ ለመፍቀድ የውስጥ ደንብ።</translation>
 <translation id="4943838377383847465">Chromium በጀርባ ሁነታ ላይ ነው።</translation>
@@ -114,6 +120,7 @@
 <translation id="5820394555380036790">Chromium ስርዓተ ክወና</translation>
 <translation id="5862307444128926510">ወደ Chromium እንኳን በደህና መጡ</translation>
 <translation id="5895138241574237353">እንደገና ጀምር</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - በአውታረ መረብ ወደ መለያ መግባት</translation>
 <translation id="5987687638152509985">ስምረትን ለመጀመር Chromiumን ያዘምኑ</translation>
 <translation id="6013050204643758987">Chromium OS ልክ እንደ <ph name="BEGIN_LINK_LINUX_OSS" />Linux (ቅድመ-ይሁንታ)<ph name="END_LINK_LINUX_OSS" /> ሊሠሩ የቻሉት በተጨማሪ <ph name="BEGIN_LINK_CROS_OSS" />የክፍት ምንጭ ሶፍትዌር<ph name="END_LINK_CROS_OSS" /> ነው።</translation>
 <translation id="6055895534982063517">አዲስ የChromium ስሪት ይገኛል፣ እና ከመቼውም በበለጠ ፈጣን ሆኗል።</translation>
@@ -153,6 +160,7 @@
 <translation id="6893813176749746474">Chromium ተዘምኗል፣ ግን ቢያንስ ለ30 ቀኖች አልተጠቀሙበትም።</translation>
 <translation id="6964305034639999644">አገናኙን በChromium ማን&amp;ነትን በማያሳውቅ መስኮት ውስጥ ክፈት</translation>
 <translation id="6990124437352146030">Chromium ለዚህ ጣቢያ የእርስዎን ማይክሮፎን ለመድረስ ፈቃድ ያስፈልገዋል</translation>
+<translation id="701244094609242530">Chromium የእርስዎን ቅጥያዎች መፈተሽ አይችልም። ቆይተው እንደገና ይሞክሩ።</translation>
 <translation id="705851970750939768">Chromiumን አዘምን</translation>
 <translation id="7066436765290594559">Chromium OS የእርስዎን ውሂብ ማመሳሰል አልቻለም። የእርስዎን የማመሳሰያ የይለፍ ሐረግ እባክዎ ያዘምኑ።</translation>
 <translation id="7067091210845072982">አንድ ምስል ጠቃሚ መግለጫ ከሌለው Chromium ለእርስዎ አንድ ለማቅረብ ይሞክራል። ዝርዝር መግለጫዎችን ለመፍጠር፣ ምስሎች ወደ Google ይላካሉ።</translation>
@@ -195,6 +203,7 @@
 <translation id="8013436988911883588">አንዴ Chromium መዳረሻ ከኖረው በኋላ ድር ጣቢያዎች እርስዎን መዳረሻ መጠየቅ ይችላሉ።</translation>
 <translation id="81770708095080097">ይህ ፋይል አደገኛ ስለሆነ Chromium አግዶታል።</translation>
 <translation id="8248265253516264921">አንድ ምስል ጠቃሚ መግለጫ ከሌለው Chromium ለእርስዎ አንድ ለማቅረብ ይሞክራል። ዝርዝር መግለጫዎችን ለመፍጠር፣ ምስሎች ወደ Google ይላካሉ። ይህን በማንኛውም ጊዜ በቅንብሮች ውስጥ ሊያጠፉት ይችላሉ።</translation>
+<translation id="8266560134891435528">እርስዎ በመለያ ስላልገቡ ስለሆኑ Chromium የይለፍ ቃላትዎን መፈተሽ አይችልም</translation>
 <translation id="8276522524898344151">Chromium የይለፍ ቃላትን ለመቅዳት እየሞከረ ነው።</translation>
 <translation id="8290862415967981663">ይህ ፋይል አደገኛ ሊሆን ስለሚችል Chromium አግዶታል።</translation>
 <translation id="8330519371938183845">Chromiumን በመላ መሣሪያዎችዎ ላይ ለማሳመር እና ግላዊነት ለማላበስ</translation>
diff --git a/chrome/app/resources/chromium_strings_az.xtb b/chrome/app/resources/chromium_strings_az.xtb
index 47a474b..f6d85fa 100644
--- a/chrome/app/resources/chromium_strings_az.xtb
+++ b/chrome/app/resources/chromium_strings_az.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">Chromium'u güvənli etmək üçün,  <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> siyahısında olmayan və xəbəriniz olmadan əlavə edilən bəzi artırmaları deaktiv etdik.</translation>
 <translation id="1808667845054772817">Chromium'u yenidən quraşdırın</translation>
 <translation id="1881322772814446296">Nəzarət olunan hesabla daxil olursunuz və hesabın administratoruna Chromium profiliniz üzərində nəzarət etmək imkanı verirsiniz. Tətbiqləriniz, əlfəcinləriniz, tarixçəniz, parollarınız və digər ayarlarınız <ph name="USER_NAME" /> adına həmişəlik bağlı qalacaq. Bu datanı Google Hesab İdarə Paneli vasitəsilə silə biləcəksiniz, lakin bu datanı digər hesabla əlaqələndirə bilməyəcəksiniz. Mövcud Chromium datanızı ayrı saxlamaq üçün yeni profil yarada bilərsiniz. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium bütün parollarınızı yoxlaya bilmir. 24 saat sonra yenidən cəhd edin.</translation>
 <translation id="1911763535808217981">Bunu deaktiv etməklə Chromium'a giriş etmədən Gmail kimi Google saytlarına daxil ola bilərsiniz</translation>
 <translation id="1929939181775079593">Chromium cavab vermir. İndi yenidən başladılsın?</translation>
 <translation id="1966382378801805537">Chromium defolt brauzeri müəyyən edə və ya ayarlaya bilmir</translation>
 <translation id="2008474315282236005">1 element cihazdan silinəcək. Sonradan datanızı bərpa etmək üçün <ph name="USER_EMAIL" /> kimi Chromiuma daxil olun.</translation>
 <translation id="2147976119693222405">Chromium OS datanızı sinxronizasiya edə bilmədi. İndi düzəliş edin.</translation>
+<translation id="2185166961232948079">Chromium - Şəbəkəyə Giriş - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">Paylaşılan kompüteriniz varsa, kompüterin paylaşıldığı şəxslər ayrı-ayrılıqda istifadə edə və Chromium'u istədikləri kimi quraşdıra bilər.</translation>
 <translation id="2347108572062610441">Bu artırma Chromium'u başlatdığınız zaman hansı səhifənin göstərildiyini dəyişdi.</translation>
 <translation id="2396765026452590966">"<ph name="EXTENSION_NAME" />" artırması Chromium'u başlatdığınız zaman hansı səhifənin göstərildiyini dəyişdi.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">Seçimə görə: İstifadə statistikası və xəta hesabatlarını avtomatik Google'a göndərməklə Chromium tətbiqini təkmilləşdirin.</translation>
 <translation id="2910007522516064972">Chromium haqqında</translation>
 <translation id="2977470724722393594">Chromium güncəldir</translation>
+<translation id="3032706164202344641">Chromium parollarınızı yoxlaya bilmir. Sonra yenidən cəhd edin.</translation>
 <translation id="3032787606318309379">Xrom durub ...</translation>
 <translation id="3068515742935458733">Qəza raportlarını və <ph name="UMA_LINK" /> linkini Google'a göndərməklə Chromium'un daha keyfiyyətli olmasına yardım olun</translation>
 <translation id="3103660991484857065">Quraşdırıcı arxivi dekompres edə bilmədi. Chromium'u yenidən endirməyiniz xahiş olunur.</translation>
@@ -72,6 +75,7 @@
 <translation id="3945058413678539331">Chromium parolları kopyalamağa çalışır. Buna icazə vermək üçün Windows parolunuzu yazın.</translation>
 <translation id="4036079820698952681"><ph name="BEGIN_LINK" />Cari ayarları<ph name="END_LINK" /> bildirməklə Chormium'u təkmilləşdirməyə kömək edin</translation>
 <translation id="4050175100176540509">Mühüm təhlükəsizlik təkmilləşdirilmələri və yeni funksiyalar son versiyada əlçatandır.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - Şəbəkəyə Giriş - Chromium</translation>
 <translation id="421369550622382712">Chromium üçün möhtəşəm tətbiqlər, oyunlar, artırmalar və temalar kəşf edin.</translation>
 <translation id="4216212958613226427">Bu dil Chromium UI-ni göstərmək üçün istifadə edilir</translation>
 <translation id="4230135487732243613">Chromium datanız bu hesab ilə birləşdirilsin?</translation>
@@ -80,6 +84,7 @@
 <translation id="4407044323746248786">Chromium'dan istənilən halda çıxılsın?</translation>
 <translation id="4415566066719264597">Chromium'a Arxa Fonda İşləmək İcazəsi Verin</translation>
 <translation id="4423735387467980091">Fərdiləşdirin və Chromium'u kontrol edin</translation>
+<translation id="4544142686420020088">Chromium güncəllənmədi, xəta baş verdi. <ph name="BEGIN_LINK" />Chrome'un güncəllənmə problemlərini və alınmayan güncəllənmələri həll edin.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812"><ph name="USER_EMAIL_ADDRESS" /> kimi daxil olmusunuz. İndi bütün daxil olan cihazlarınızdan əlfəcin, tarixçə və digər ayarlara daxil ola bilərsiniz.</translation>
 <translation id="459535195905078186">Chromium Tətbiqləri</translation>
 <translation id="4677944499843243528">Profil başqa kompüterdə başqa Chromium prosesi tərəfindən (<ph name="PROCESS_ID" />)istifadə olunur (<ph name="HOST_NAME" />). Chromium profili xəta almaması üçün qapadıb. Əgər bu profilin başqa proseslər tərəfindən istifadə olunmadığına əminsinizsə, profili blokdan çıxarın və Chromium'u yenidən başladın.</translation>
@@ -112,6 +117,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Chromium'a xoş gəlmisiniz</translation>
 <translation id="5895138241574237353">Yenidən başladın</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Şəbəkəyə Giriş</translation>
 <translation id="5987687638152509985">Sinxronizasiyanı başlatmaq üçün Chromium'u güncəlləyin</translation>
 <translation id="6013050204643758987">Chromium OS <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" /> kimi <ph name="BEGIN_LINK_CROS_OSS" />açıq mənbə proqramında<ph name="END_LINK_CROS_OSS" /> dəstəklənir.</translation>
 <translation id="6055895534982063517">Chromium'um yeni versiyası əlçatandır və həmişəkindən daha sürətlidir.</translation>
@@ -151,6 +157,7 @@
 <translation id="6893813176749746474">Xrom yeniləndi, lakin ən azı 30 gün üçün istifadə etməmişlər.</translation>
 <translation id="6964305034639999644">Linki gizli Chromium pəncərəsində açın</translation>
 <translation id="6990124437352146030">Chromium bu sayt üçün mikrofona giriş tələb edir</translation>
+<translation id="701244094609242530">Chromium artırmalarınızı yoxlaya bilmir. Sonra yenidən cəhd edin.</translation>
 <translation id="705851970750939768">Chromium'u güncəlləşdirin</translation>
 <translation id="7066436765290594559">Chromium OS datanızı sinxronizasiya edə bilmədi. Lütfən, Sinxronizasiya parol sözünü güncəlləşdirin.</translation>
 <translation id="7067091210845072982">Şəklin təsviri faydalı deyilsə, Chromium Sizin üçün təsviri təmin etməyə çalışacaq. Təsvir yaratmaq üçün şəkillər Google'a göndərilir.</translation>
@@ -191,6 +198,7 @@
 <translation id="8013436988911883588">Chromium'un giriş imkanı olduqda veb saytlar giriş üçün Sizdən icazə istəyəcək.</translation>
 <translation id="81770708095080097">Bu fayl təklükəlidir, bu səbəbdən Chromium onu blok etdi.</translation>
 <translation id="8248265253516264921">Şəklin təsviri faydalı deyilsə, Chromium Sizin üçün təsviri təmin etməyə çalışacaq. Təsvir yaratmaq üçün şəkillər Google'a göndərilir. Bunu istənilən vaxt ayarlardan deaktiv edə bilərsiniz.</translation>
+<translation id="8266560134891435528">Hesaba daxil olmadığınız üçün Chromium parollarınızı yoxlaya bilmir</translation>
 <translation id="8276522524898344151">Chromium parolları kopyalamağa çalışır.</translation>
 <translation id="8290862415967981663">Bu fayl təklükəli ola bilər, bu səbəbdən Chromium onu blok etdi.</translation>
 <translation id="8330519371938183845">Chromium'u cihazlarda sinxronizasiya etmək və fərdiləşdirmək üçün daxil olun</translation>
diff --git a/chrome/app/resources/chromium_strings_be.xtb b/chrome/app/resources/chromium_strings_be.xtb
index 7aea829..6032b4c 100644
--- a/chrome/app/resources/chromium_strings_be.xtb
+++ b/chrome/app/resources/chromium_strings_be.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">У мэтах бяспекі Chromium мы выключылі некаторыя пашырэнні, якія не значацца ў спісе <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> і маглі быць дададзены без вашага ведама.</translation>
 <translation id="1808667845054772817">Пераўсталяваць Chromium</translation>
 <translation id="1881322772814446296">Вы ўваходзіце праз уліковы запіс пад кіраваннем, што дае адміністратару кантроль над вашым профілем у браўзеры Chromium. Даныя Chromium (праграмы, закладкі, гісторыя, паролі і іншыя налады) будуць назаўсёды прывязаны да ўліковага запісу <ph name="USER_NAME" />. Вы зможаце выдаліць гэтыя даныя праз панэль кіравання Уліковымі запісамі Google, але іх нельга будзе звязаць з іншым уліковым запісам. Вы можаце стварыць новы профіль, каб захаваць існуючыя даныя Chromium асобна. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Браўзеру Chromium не ўдаецца праверыць усе паролі. Паўтарыце спробу праз 24 гадзіны</translation>
 <translation id="1911763535808217981">Выключыўшы гэта, вы зможаце ўваходзіць на сайты Google, такія як Gmail, не ўваходзячы ў Chromium</translation>
 <translation id="1929939181775079593">Chromium не адказвае. Перазапусціць яго?</translation>
 <translation id="1966382378801805537">Chromium не можа вызначыць або задаць стандартны браўзер</translation>
 <translation id="2008474315282236005">Будзе выдалены 1 элемент з гэтай прылады. Каб потым атрымаць свае даныя, увайдзіце ва ўліковы запіс Chromium як <ph name="USER_EMAIL" />.</translation>
 <translation id="2147976119693222405">Сістэме Chromium OS не ўдалося сінхранізаваць даныя. Вырашыце праблему.</translation>
+<translation id="2185166961232948079">Chromium – Уваход у сетку – <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">Калі камп'ютар выкарыстоўваюць некалькі чалавек, кожны з іх можа наладзіць Chromium для сябе і праглядаць старонкі асобна ад іншых.</translation>
 <translation id="2347108572062610441">Гэта пашырэнне змяніла старонку, якая паказваецца пры запуску Chromium.</translation>
 <translation id="2396765026452590966">Пашырэнне "<ph name="EXTENSION_NAME" />" змяніла старонку, якая паказваецца пры запуску Chromium.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">(Неабавязкова.) Дапамажыце палепшыць Chromium, дазволіўшы аўтаматычна адпраўляць у Google статыстыку выкарыстання і справаздачы аб збоях.</translation>
 <translation id="2910007522516064972">Пра &amp;Chromium</translation>
 <translation id="2977470724722393594">Chromium абноўлены</translation>
+<translation id="3032706164202344641">Браўзеру Chromium не ўдаецца праверыць паролі. Паўтарыце спробу пазней.</translation>
 <translation id="3032787606318309379">Дадаецца ў Chromium...</translation>
 <translation id="3068515742935458733">Дапамагаць палепшыць Chromium, адпраўляючы ў Google справаздачы аб збоях і <ph name="UMA_LINK" /></translation>
 <translation id="3103660991484857065">Усталёўшчык не змог распакаваць архіў. Спампуйце Chromium зноў.</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Chromium спрабуе скапіраваць паролі. Каб дазволіць гэта, увядзіце пароль Windows.</translation>
 <translation id="4036079820698952681">Дапамажыце палепшыць Chromium, паведаміўшы <ph name="BEGIN_LINK" />бягучыя налады<ph name="END_LINK" /></translation>
 <translation id="4050175100176540509">У апошняй версіі з'явіліся важныя паляпшэнні сістэмы бяспекі і новыя функцыі.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> – Уваход у сетку – Chromium</translation>
 <translation id="421369550622382712">Адкрывайце для сябе выдатныя праграмы, гульні, пашырэнні і тэмы для Chromium.</translation>
 <translation id="4216212958613226427">На гэтай мове паказваецца карыстальніцкі інтэрфейс Chromium</translation>
 <translation id="4230135487732243613">Звязаць вашы даныя Chromium з гэтым уліковым запісам?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">Усё роўна выйсці з Chromium?</translation>
 <translation id="4415566066719264597">Дазволіць браўзеру Chromium працаваць у фоне</translation>
 <translation id="4423735387467980091">Наладка і кіраванне Chromium</translation>
+<translation id="4544142686420020088">Chromium не абнавіўся. Нешта пайшло не так. <ph name="BEGIN_LINK" />Выправіце праблемы з абнаўленнем Chromium і памылкі абнаўлення.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">Вы ўвайшлі як <ph name="USER_EMAIL_ADDRESS" /> і цяпер маеце доступ да закладак, гісторыі і іншых налад на ўсіх прыладах, дзе выкананы ўваход.</translation>
 <translation id="459535195905078186">Праграмы Chromium</translation>
 <translation id="4677944499843243528">Здаецца, профіль выкарыстоўваецца іншым працэсам Chromium (<ph name="PROCESS_ID" />) на іншым камп'ютары (<ph name="HOST_NAME" />). Chromium заблакіраваў профіль, каб яго нельга было пашкодзіць. Калі вы ўпэўненыя, што іншыя працэсы гэты профіль не выкарыстоўваюць, можна разблакіраваць профіль і перазапусціць Chromium.</translation>
@@ -114,6 +119,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Вас вітае Chromium</translation>
 <translation id="5895138241574237353">Перазапусціць</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Уваход у сетку</translation>
 <translation id="5987687638152509985">Абнавіце Chromium, каб пачаць сінхранізацыю</translation>
 <translation id="6013050204643758987">Chromium OS працуе дзякуючы дадатковаму <ph name="BEGIN_LINK_CROS_OSS" />праграмнаму забеспячэнню з адкрытым зыходным кодам<ph name="END_LINK_CROS_OSS" />, як і <ph name="BEGIN_LINK_LINUX_OSS" />Linux (бэта-версія)<ph name="END_LINK_LINUX_OSS" />.</translation>
 <translation id="6055895534982063517">Даступная новая версія Chromium. Яшчэ хутчэйшая.</translation>
@@ -153,6 +159,7 @@
 <translation id="6893813176749746474">Chromium быў абноўлены, але вы не выкарыстоўвалі яго на працягу як мінімум 30 дзён.</translation>
 <translation id="6964305034639999644">Адкрыць спасылку ў акне інко&amp;гніта ў Chromium</translation>
 <translation id="6990124437352146030">Chromium запытвае дазвол на доступ да мікрафона для гэтага сайта</translation>
+<translation id="701244094609242530">Браўзеру Chromium не ўдаецца праверыць пашырэнні. Паўтарыце спробу пазней.</translation>
 <translation id="705851970750939768">Абнавіць Chromium</translation>
 <translation id="7066436765290594559">Сістэме Chromium OS не ўдалося сінхранізаваць даныя. Абнавіце фразу-пароль для сінхранізацыі.</translation>
 <translation id="7067091210845072982">Калі відарыс не мае прыдатнага апісання, Chromium паспрабуе дадаць яго для вас. Каб стварыць апісанні, відарысы адпраўляюцца ў Google.</translation>
@@ -195,6 +202,7 @@
 <translation id="8013436988911883588">Як толькі Chromium атрымае дазвол, вэб-сайты змогуць запытваць у вас доступ.</translation>
 <translation id="81770708095080097">Файл небяспечны, таму Chromium заблакіраваў яго.</translation>
 <translation id="8248265253516264921">Калі відарыс не мае прыдатнага апісання, Chromium паспрабуе дадаць яго для вас. Каб стварыць апісанні, відарысы адпраўляюцца ў Google. Гэты параметр можна адключыць у наладах у любы час.</translation>
+<translation id="8266560134891435528">Chromium не можа праверыць вашы паролі, пакуль вы не ўвойдзеце ва ўліковы запіс</translation>
 <translation id="8276522524898344151">Chromium спрабуе скапіраваць паролі.</translation>
 <translation id="8290862415967981663">Файл можа быць небяспечным, таму Chromium заблакіраваў яго.</translation>
 <translation id="8330519371938183845">Увайдзіце ў Chromium, каб сінхранізаваць і персаналізаваць яго на сваіх прыладах</translation>
diff --git a/chrome/app/resources/chromium_strings_bg.xtb b/chrome/app/resources/chromium_strings_bg.xtb
index f821a2f..3eacf70 100644
--- a/chrome/app/resources/chromium_strings_bg.xtb
+++ b/chrome/app/resources/chromium_strings_bg.xtb
@@ -90,6 +90,7 @@
 <translation id="4708774505295300557">По-рано някой влезе в Chromium на този компютър като <ph name="ACCOUNT_EMAIL_LAST" />. Моля, създайте нов потребител в браузъра, така че информацията ви да се съхранява отделно.</translation>
 <translation id="4746050847053251315">Искате ли да затворите Chromium въпреки това?</translation>
 <translation id="4748217263233248895">Току-що бе приложена специална актуализация за сигурност за Chromium. Рестартирайте сега – ще възстановим разделите ви.</translation>
+<translation id="4750035648288509542">Почти приключихме! Стартирайте отново Chromium, за да завършите актуализирането. Прозорците в режим „инкогнито“ няма да бъдат отворени отново.</translation>
 <translation id="479167709087336770">Използва се същата услуга за проверка на правописа като в Google Търсене. Текстът, който въвеждате в браузъра, се изпраща до Google. Винаги можете да промените това поведение от настройките.</translation>
 <translation id="4888717733111232871">Правило за Chromium за допускане на входящия трафик за mDNS.</translation>
 <translation id="4943838377383847465">Chromium работи на заден план.</translation>
diff --git a/chrome/app/resources/chromium_strings_bs.xtb b/chrome/app/resources/chromium_strings_bs.xtb
index 2b09ef8..e2b9d34 100644
--- a/chrome/app/resources/chromium_strings_bs.xtb
+++ b/chrome/app/resources/chromium_strings_bs.xtb
@@ -94,6 +94,7 @@
 <translation id="4708774505295300557">Neko se prethodno prijavio na Chromium s ovog računara kao <ph name="ACCOUNT_EMAIL_LAST" />. Kreirajte novog korisnika za Chromium da odvojite svoje informacije.</translation>
 <translation id="4746050847053251315">Ipak napustiti Chromium?</translation>
 <translation id="4748217263233248895">Upravo je primijenjeno posebno sigurnosno ažuriranje za Chromium. Ponovo pokrenite sustav i vratit ćemo vaše kartice.</translation>
+<translation id="4750035648288509542">Još malo pa je ažurirano! Ponovo pokrenite Chromium da završite ažuriranje. Anonimni prozori se neće ponovo otvoriti.</translation>
 <translation id="479167709087336770">Ova usluga koristi isti alat za provjeru pravopisa koji se koristi u Google Pretraživanju. Tekst koji pišete u pregledniku šalje se Googleu. Ovo ponašanje možete uvijek promijeniti u postavkama.</translation>
 <translation id="4888717733111232871">Ulazno pravilo kako bi Chromium dopustio mDNS promet.</translation>
 <translation id="4943838377383847465">Chromium je u pozadinskom načinu rada.</translation>
diff --git a/chrome/app/resources/chromium_strings_ca.xtb b/chrome/app/resources/chromium_strings_ca.xtb
index 8c55f5c..7d841ba7 100644
--- a/chrome/app/resources/chromium_strings_ca.xtb
+++ b/chrome/app/resources/chromium_strings_ca.xtb
@@ -92,6 +92,7 @@
 <translation id="4708774505295300557">Algú ha iniciat anteriorment la sessió a Chromium en aquest ordinador com a <ph name="ACCOUNT_EMAIL_LAST" />. Crea un usuari de Chromium per mantenir la informació separada.</translation>
 <translation id="4746050847053251315">Vols sortir de Chromium igualment?</translation>
 <translation id="4748217263233248895">S'acaba d'aplicar una actualització de seguretat especial per a Chromium. Reinicia el navegador i restaurarem les pestanyes.</translation>
+<translation id="4750035648288509542">Gairebé has acabat amb l'actualització. Reinicia Chromium per completar-la. Les finestres d'incògnit no es tornaran a obrir.</translation>
 <translation id="479167709087336770">Fa servir el mateix corrector ortogràfic que s'utilitza a la Cerca de Google. El text que escrius al navegador s'envia a Google. Pots canviar aquest comportament sempre que vulguis a la configuració.</translation>
 <translation id="4888717733111232871">Regla d'entrada de Chromium per permetre el trànsit de mDNS.</translation>
 <translation id="4943838377383847465">Chromium està en mode de segon pla.</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb
index 5fdbb52..e04fb9c 100644
--- a/chrome/app/resources/chromium_strings_cs.xtb
+++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -18,11 +18,13 @@
 <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>
 <translation id="1881322772814446296">Přihlašujete se pomocí spravovaného účtu a poskytujete jeho správci kontrolu nad vaším profilem prohlížeče Chromium. Vaše údaje prohlížeče Chromium, například aplikace, záložky, historie, hesla a jiná nastavení, budou trvale přidružena k účtu <ph name="USER_NAME" />. Tyto údaje budete moci smazat pomocí stránky Dashboard služby Účty Google, ale nebudete je moci přidružit k jinému účtu. Pokud chcete uchovat existující údaje prohlížeče Chromium odděleně, můžete vytvořit nový profil. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium nemůže zkontrolovat všechna vaše hesla. Zkuste to znovu za 24 hodin.</translation>
 <translation id="1911763535808217981">Pokud tuto možnost vypnete, budete se moci přihlásit k většině webů Google, jako je Gmail, aniž byste se přihlásili do prohlížeče Chromium</translation>
 <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="2147976119693222405">Chromium OS vaše data nemohl synchronizovat. Vyřešit.</translation>
+<translation id="2185166961232948079">Chromium – přihlášení k síti – <ph name="PAGE_TITLE" /></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>
 <translation id="2396765026452590966">Rozšíření <ph name="EXTENSION_NAME" /> změnilo stránku, která se zobrazí při spuštění prohlížeče Chromium.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">Volitelné: Pomozte Chromium zlepšit – posílejte automaticky společnosti Google statistiky o využívání a zprávy o selhání aplikace.</translation>
 <translation id="2910007522516064972">O prohlížeči &amp;Chromium</translation>
 <translation id="2977470724722393594">Chromium je aktuální</translation>
+<translation id="3032706164202344641">Chromium nemůže zkontrolovat hesla. Zkuste to později.</translation>
 <translation id="3032787606318309379">Přidávání do prohlížeče Chromium...</translation>
 <translation id="3068515742935458733">Pomozte aplikaci Chromium zlepšovat tím, že budete společnosti Google zasílat zprávy o selhání a <ph name="UMA_LINK" />.</translation>
 <translation id="3103660991484857065">Instalačnímu programu se nepodařilo rozbalit archiv. Stáhněte prosím Chromium znovu.</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Chromium se pokouší zkopírovat hesla. Tato akce vyžaduje zadání hesla systému Windows.</translation>
 <translation id="4036079820698952681">Pomozte s vylepšováním prohlížeče Chromium tím, že nahlásíte <ph name="BEGIN_LINK" />aktuální nastavení<ph name="END_LINK" /></translation>
 <translation id="4050175100176540509">V nejnovější verzi jsou k dispozici důležitá vylepšení zabezpečení a nové funkce.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> – přihlášení k síti – Chromium</translation>
 <translation id="421369550622382712">Objevte skvělé aplikace, hry, rozšíření a motivy prohlížeče Chromium.</translation>
 <translation id="4216212958613226427">V tomto jazyce se zobrazuje uživatelské rozhraní prohlížeče Chromium</translation>
 <translation id="4230135487732243613">Opravdu chcete propojit údaje prohlížeče Chromium s tímto účtem?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">Přesto Chromium ukončit?</translation>
 <translation id="4415566066719264597">Nechat Chromium běžet na pozadí</translation>
 <translation id="4423735387467980091">Přizpůsobit a ovládat Chromium</translation>
+<translation id="4544142686420020088">Prohlížeč Chromium se neaktualizoval, něco se pokazilo. <ph name="BEGIN_LINK" />Vyřešte problémy se stahováním aktualizací prohlížeče Chromium a neúspěšnými aktualizacemi.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">Jste přihlášeni pomocí účtu <ph name="USER_EMAIL_ADDRESS" />. Nyní můžete přistupovat ke všem svým záložkám, historii a dalším nastavením ve všech přihlášených zařízeních.</translation>
 <translation id="459535195905078186">Aplikace Chromium</translation>
 <translation id="4677944499843243528">Profil je zřejmě využíván jiným procesem aplikace Chromium (<ph name="PROCESS_ID" />) nebo v jiném počítači (<ph name="HOST_NAME" />). Aplikace Chromium profil uzamkla, aby nedošlo k jeho poškození. Pokud jste si jisti, že žádný jiný proces tento profil nevyužívá, můžete jej odemknout a aplikaci Chromium znovu spustit.</translation>
@@ -114,6 +119,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Vítejte v prohlížeči Chromium</translation>
 <translation id="5895138241574237353">Restartovat</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – přihlášení k síti</translation>
 <translation id="5987687638152509985">Chcete-li zahájit synchronizaci, aktualizujte Chromium</translation>
 <translation id="6013050204643758987">Systém Chromium OS by nemohl existovat bez dalšího <ph name="BEGIN_LINK_CROS_OSS" />softwaru s otevřeným zdrojovým kódem<ph name="END_LINK_CROS_OSS" />, jako je <ph name="BEGIN_LINK_LINUX_OSS" />Linux (beta)<ph name="END_LINK_LINUX_OSS" />.</translation>
 <translation id="6055895534982063517">K dispozici je nová verze prohlížeče Chromium, ještě rychlejší než ty předchozí.</translation>
@@ -153,6 +159,7 @@
 <translation id="6893813176749746474">Prohlížeč Chromium byl aktualizován, ale minimálně po 30 dnů jste jej nepoužili.</translation>
 <translation id="6964305034639999644">Otevřít odkaz v &amp;anonymním okně prohlížeče Chromium</translation>
 <translation id="6990124437352146030">Chromium pro tento web potřebuje oprávnění k přístupu k mikrofonu</translation>
+<translation id="701244094609242530">Chromium nemůže zkontrolovat vaše rozšíření. Zkuste to později.</translation>
 <translation id="705851970750939768">Aktualizovat Chromium</translation>
 <translation id="7066436765290594559">Chromium OS vaše data nemohl synchronizovat. Aktualizujte prosím heslovou frázi pro synchronizaci.</translation>
 <translation id="7067091210845072982">Pokud obrázek nemá užitečný popis, Chromium se vám jej pokusí poskytnout. Za účelem vytváření popisů jsou obrázky odesílány do Googlu.</translation>
@@ -194,6 +201,7 @@
 <translation id="8013436988911883588">Až bude mít Chromium přístup, budou vás weby moci požádat o přístup.</translation>
 <translation id="81770708095080097">Tento soubor je nebezpečný, proto jej prohlížeč Chromium zablokoval.</translation>
 <translation id="8248265253516264921">Pokud obrázek nemá užitečný popis, Chromium se vám jej pokusí poskytnout. Za účelem vytváření popisů jsou obrázky odesílány do Googlu. Tuto funkci můžete kdykoliv vypnout v nastavení.</translation>
+<translation id="8266560134891435528">Chromium nemůže zkontrolovat vaše hesla, protože nejste přihlášeni</translation>
 <translation id="8276522524898344151">Chromium se pokouší zkopírovat hesla.</translation>
 <translation id="8290862415967981663">Tento soubor může být nebezpečný, proto jej prohlížeč Chromium zablokoval.</translation>
 <translation id="8330519371938183845">Po přihlášení si budete moci Chromium synchronizovat a upravit na různých zařízeních</translation>
diff --git a/chrome/app/resources/chromium_strings_da.xtb b/chrome/app/resources/chromium_strings_da.xtb
index 44e5983..95ad78f 100644
--- a/chrome/app/resources/chromium_strings_da.xtb
+++ b/chrome/app/resources/chromium_strings_da.xtb
@@ -92,6 +92,7 @@
 <translation id="4708774505295300557">Nogen har tidligere logget ind på Chromium på denne computer som <ph name="ACCOUNT_EMAIL_LAST" />. Opret en ny Chromium-bruger for at holde dine oplysninger adskilt.</translation>
 <translation id="4746050847053251315">Vil du slutte Chromium alligevel?</translation>
 <translation id="4748217263233248895">En særlig sikkerhedsopdatering til Chromium blev netop anvendt. Genstart nu, hvorefter vi gendanner dine faner.</translation>
+<translation id="4750035648288509542">Næsten opdateret Genstart Chromium for at fuldføre opdateringen. Inkognitovinduer åbnes ikke igen.</translation>
 <translation id="479167709087336770">Dette anvender den samme stavekontrol, som anvendes i Google Søgning. Tekst, som du angiver i browseren, sendes til Google. Du kan altid ændre denne adfærd i indstillingerne.</translation>
 <translation id="4888717733111232871">Indgående regel for Chromium om at tillade mDNS-trafik.</translation>
 <translation id="4943838377383847465">Chromium kører i baggrunden.</translation>
diff --git a/chrome/app/resources/chromium_strings_de.xtb b/chrome/app/resources/chromium_strings_de.xtb
index 44e822f..825640e 100644
--- a/chrome/app/resources/chromium_strings_de.xtb
+++ b/chrome/app/resources/chromium_strings_de.xtb
@@ -16,11 +16,13 @@
 <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>
 <translation id="1881322772814446296">Sie melden sich mit einem verwalteten Konto an und ermöglichen dessen Administrator Zugriff auf Ihr Chromium-Profil. Ihre Chromium-Daten, wie Apps, Lesezeichen, Verlauf, Passwörter und andere Einstellungen, werden dauerhaft mit <ph name="USER_NAME" /> verknüpft. Sie können diese Daten über das Google Konten-Dashboard löschen, aber nicht mit einem anderen Konto verknüpfen. Wenn Sie Ihre bestehenden Chromium-Daten getrennt verwenden möchten, können Sie ein neues Profil erstellen. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium kann nicht alle Ihre Passwörter prüfen. Bitte versuchen Sie es in 24 Stunden noch einmal.</translation>
 <translation id="1911763535808217981">Wenn Sie diese Einstellung deaktivieren, können Sie sich auf Websites von Google wie beispielsweise Gmail anmelden, ohne sich auch in Chromium anmelden zu müssen</translation>
 <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="2147976119693222405">Chromium OS konnte Ihre Daten nicht synchronisieren. Jetzt beheben.</translation>
+<translation id="2185166961232948079">Chromium – Netzwerkanmeldung – <ph name="PAGE_TITLE" /></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>
 <translation id="2396765026452590966">Die beim Start von Chromium angezeigte Seite wurde durch die Erweiterung <ph name="EXTENSION_NAME" /> geändert.</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">Optional: Unterstützen Sie Google bei der Verbesserung von Chromium durch automatisches Senden von Nutzungsstatistiken und Absturzberichten.</translation>
 <translation id="2910007522516064972">Über &amp;Chromium</translation>
 <translation id="2977470724722393594">Chromium ist auf dem neuesten Stand</translation>
+<translation id="3032706164202344641">Chromium kann Ihre Passwörter nicht prüfen. Versuchen Sie es später noch einmal.</translation>
 <translation id="3032787606318309379">Wird zu Chromium hinzugefügt...</translation>
 <translation id="3068515742935458733">Absturzberichte und <ph name="UMA_LINK" /> zur Verbesserung von Chromium an Google senden</translation>
 <translation id="3103660991484857065">Das Installationsprogramm konnte das Archiv nicht dekomprimieren. Bitte laden Sie Chromium erneut herunter.</translation>
@@ -72,6 +75,7 @@
 <translation id="3945058413678539331">Chromium versucht, Passwörter zu kopieren. Geben Sie Ihr Windows-Passwort ein, um dies zuzulassen.</translation>
 <translation id="4036079820698952681">Helfen Sie uns mit Ihrem Feedback zu den <ph name="BEGIN_LINK" />aktuellen Einstellungen<ph name="END_LINK" /> bei der Verbesserung von Chromium</translation>
 <translation id="4050175100176540509">Wichtige Sicherheitsverbesserungen und neue Funktionen sind in der aktuellen Version verfügbar.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> – Netzwerkanmeldung – Chromium</translation>
 <translation id="421369550622382712">Entdecken Sie tolle Apps, Spiele, Erweiterungen und Designs für Chromium.</translation>
 <translation id="4216212958613226427">Diese Sprache wird für die Chromium-UI verwendet</translation>
 <translation id="4230135487732243613">Ihre Chromium-Daten mit diesem Konto verknüpfen?</translation>
@@ -80,6 +84,7 @@
 <translation id="4407044323746248786">Chromium trotzdem beenden?</translation>
 <translation id="4415566066719264597">Chromium im Hintergrund ausführen</translation>
 <translation id="4423735387467980091">Chromium anpassen und einstellen</translation>
+<translation id="4544142686420020088">Chrome wurde aufgrund eines Fehlers nicht aktualisiert. Wie Sie Updateprobleme und Fehler bei der Aktualisierung von Chromium beheben, <ph name="BEGIN_LINK" />erfahren Sie hier<ph name="END_LINK" />.</translation>
 <translation id="4567424176335768812">Sie sind als <ph name="USER_EMAIL_ADDRESS" /> angemeldet. Auf allen Geräten, auf denen Sie angemeldet sind, sind nun Ihre Lesezeichen, Ihr Verlauf und andere Einstellungen verfügbar.</translation>
 <translation id="459535195905078186">Chromium-Apps</translation>
 <translation id="4677944499843243528">Das Profil wird offenbar gerade von einem Chromium-Prozess (<ph name="PROCESS_ID" />) auf einem anderen Computer (<ph name="HOST_NAME" />) verwendet. Das Profil wurde von Chromium gesperrt, damit es nicht beschädigt wird. Wenn Sie sicher sind, dass das Profil nicht von anderen Prozessen verwendet wird, können Sie das Profil entsperren und Chromium neu starten.</translation>
@@ -112,6 +117,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Willkommen bei Chromium</translation>
 <translation id="5895138241574237353">Neu starten</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Netzwerkanmeldung</translation>
 <translation id="5987687638152509985">Aktualisieren Sie Chromium, um die Synchronisierung zu starten</translation>
 <translation id="6013050204643758987">Chromium OS und <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" /> werden durch zusätzliche <ph name="BEGIN_LINK_CROS_OSS" />Open-Source-Software<ph name="END_LINK_CROS_OSS" /> möglich gemacht.</translation>
 <translation id="6055895534982063517">Es gibt eine neue Version von Chromium, die schneller ist als je zuvor.</translation>
@@ -151,6 +157,7 @@
 <translation id="6893813176749746474">Chromium wurde aktualisiert, Sie haben den Browser jedoch mindestens 30 Tage nicht verwendet.</translation>
 <translation id="6964305034639999644">Link in Chromium-Inkognitofenster öffnen</translation>
 <translation id="6990124437352146030">Chromium benötigt für diese Website die Berechtigung, auf Ihr Mikrofon zuzugreifen</translation>
+<translation id="701244094609242530">Chromium kann Ihre Erweiterungen nicht prüfen. Versuchen Sie es später noch einmal.</translation>
 <translation id="705851970750939768">Chromium aktualisieren</translation>
 <translation id="7066436765290594559">Chromium OS konnte Ihre Daten nicht synchronisieren. Bitte aktualisieren Sie Ihre Passphrase für die Synchronisierung.</translation>
 <translation id="7067091210845072982">Wenn ein Bild keine brauchbare Beschreibung hat, versucht Chromium, eine für Sie zu finden. Damit entsprechende Beschreibungen erstellt werden können, werden die Bilder an Google gesendet.</translation>
@@ -192,6 +199,7 @@
 <translation id="8013436988911883588">Sobald Chromium Zugriff hat, können Websites Sie um Zugriff bitten.</translation>
 <translation id="81770708095080097">Diese Datei ist schädlich und wurde von Chromium blockiert.</translation>
 <translation id="8248265253516264921">Wenn ein Bild keine brauchbare Beschreibung hat, versucht Chromium, eine für Sie zu finden. Damit entsprechende Beschreibungen erstellt werden können, werden die Bilder an Google gesendet. Sie können dies jederzeit in den Einstellungen deaktivieren.</translation>
+<translation id="8266560134891435528">Chromium kann Ihre Passwörter nicht prüfen, da Sie nicht angemeldet sind</translation>
 <translation id="8276522524898344151">Chromium versucht, Passwörter zu kopieren.</translation>
 <translation id="8290862415967981663">Diese Datei ist eventuell schädlich und wurde von Chromium blockiert.</translation>
 <translation id="8330519371938183845">Wenn Sie sich anmelden, wird Chromium auf allen Ihren Geräten synchronisiert und personalisiert</translation>
diff --git a/chrome/app/resources/chromium_strings_el.xtb b/chrome/app/resources/chromium_strings_el.xtb
index 9635012..4f4b6dd 100644
--- a/chrome/app/resources/chromium_strings_el.xtb
+++ b/chrome/app/resources/chromium_strings_el.xtb
@@ -92,6 +92,7 @@
 <translation id="4708774505295300557">Κάποιο άτομο συνδέθηκε προηγουμένως στο Chromium σε αυτόν τον υπολογιστή ως <ph name="ACCOUNT_EMAIL_LAST" />. Δημιουργήστε έναν νέο χρήστη του Chromium, για να διατηρείτε τις πληροφορίες σας ξεχωριστά.</translation>
 <translation id="4746050847053251315">Να τερματιστεί η λειτουργία του Chromium ούτως ή άλλως;</translation>
 <translation id="4748217263233248895">Μόλις εφαρμόστηκε μια ειδική ενημέρωση ασφαλείας για το Chromium. Επανεκκινήστε τώρα και θα γίνει επαναφορά των καρτελών σας.</translation>
+<translation id="4750035648288509542">Η ενημέρωση έχει σχεδόν ολοκληρωθεί! Επανεκκινήστε το Chromium για ολοκλήρωση της διαδικασίας ενημέρωσης. Τα παράθυρα για ανώνυμη περιήγηση δεν θα ανοίξουν ξανά.</translation>
 <translation id="479167709087336770">Αυτό χρησιμοποιεί τον ίδιο ορθογραφικό έλεγχο που χρησιμοποιείται στην Αναζήτηση Google. Το κείμενο που πληκτρολογείτε στο πρόγραμμα περιήγησης αποστέλλεται στην Google. Μπορείτε ανά πάσα στιγμή να αλλάξετε αυτήν τη συμπεριφορά στις ρυθμίσεις.</translation>
 <translation id="4888717733111232871">Εισερχόμενος κανόνας για το Chromium για να επιτρέπεται η κυκλοφορία του mDNS.</translation>
 <translation id="4943838377383847465">Το Chromium εκτελείται στο παρασκήνιο.</translation>
diff --git a/chrome/app/resources/chromium_strings_en-GB.xtb b/chrome/app/resources/chromium_strings_en-GB.xtb
index 0c38a549..6a24dd0 100644
--- a/chrome/app/resources/chromium_strings_en-GB.xtb
+++ b/chrome/app/resources/chromium_strings_en-GB.xtb
@@ -94,6 +94,7 @@
 <translation id="4708774505295300557">Someone previously signed in to Chromium on this computer as <ph name="ACCOUNT_EMAIL_LAST" />. Please create a new Chromium user to keep your information separate.</translation>
 <translation id="4746050847053251315">Quit Chromium anyway?</translation>
 <translation id="4748217263233248895">A special security update for Chromium was just applied. Restart now and we'll restore your tabs.</translation>
+<translation id="4750035648288509542">Nearly up to date! Relaunch Chromium to finish updating. Incognito windows won't reopen.</translation>
 <translation id="479167709087336770">This uses the same spell checker that's used in Google search. Text that you type in the browser is sent to Google. You can always change this behaviour in settings.</translation>
 <translation id="4888717733111232871">Inbound rule for Chromium to allow mDNS traffic.</translation>
 <translation id="4943838377383847465">Chromium is in background mode.</translation>
diff --git a/chrome/app/resources/chromium_strings_es-419.xtb b/chrome/app/resources/chromium_strings_es-419.xtb
index 8dcbc5d6..4e737b22 100644
--- a/chrome/app/resources/chromium_strings_es-419.xtb
+++ b/chrome/app/resources/chromium_strings_es-419.xtb
@@ -16,11 +16,13 @@
 <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>
 <translation id="1881322772814446296">Estás por acceder con una cuenta administrada, lo que significa que proporcionarás al administrador el control sobre tu perfil de Chromium. Tus datos de Chromium, como las aplicaciones, los favoritos, el historial, las contraseñas y otros parámetros de configuración quedarán vinculados a <ph name="USER_NAME" /> de forma permanente. Podrás eliminar estos datos a través del Panel de control de Cuentas de Google, pero no podrás asociarlos a otra cuenta. También puedes crear un perfil para mantener separados tus datos de Chromium. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium no puede revisar todas las contraseñas. Vuelve a intentarlo después de 24 horas.</translation>
 <translation id="1911763535808217981">Si desactivas esta preferencia, podrás acceder a sitios de Google (como Gmail) sin tener que acceder a Chromium</translation>
 <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="2147976119693222405">El Sistema operativo Chromium no pudo sincronizar los datos. Soluciona el problema ahora.</translation>
+<translation id="2185166961232948079">Chromium: Acceso a la red - <ph name="PAGE_TITLE" /></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>
 <translation id="2396765026452590966">La extensión "<ph name="EXTENSION_NAME" />" cambió la página que se muestra al iniciar Chromium.</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">Opcional: Ayúdanos a mejorar Chromium enviando estadísticas de uso e informes de errores a Google de manera automática.</translation>
 <translation id="2910007522516064972">Acerca de &amp;Chromium</translation>
 <translation id="2977470724722393594">Chromium está actualizado.</translation>
+<translation id="3032706164202344641">Chromium no puede revisar las contraseñas. Vuelve a intentarlo más tarde.</translation>
 <translation id="3032787606318309379">Agregar a Chromium...</translation>
 <translation id="3068515742935458733">Envía a Google informes de fallos y <ph name="UMA_LINK" /> para ayudar a mejorar Chromium.</translation>
 <translation id="3103660991484857065">El instalador no pudo descomprimir el archivo. Descarga Chromium nuevamente.</translation>
@@ -70,6 +73,7 @@
 <translation id="3945058413678539331">Chromium está intentando copiar contraseñas. Para permitirlo, ingresa tu contraseña de Windows.</translation>
 <translation id="4036079820698952681">Informa tu <ph name="BEGIN_LINK" />configuración actual<ph name="END_LINK" /> para ayudarnos a mejorar Chromium</translation>
 <translation id="4050175100176540509">La última versión proporciona importantes mejoras de seguridad y nuevas funciones.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" />: Acceso a la red - Chromium</translation>
 <translation id="421369550622382712">Descubre aplicaciones, juegos, extensiones y temas increíbles para Chromium.</translation>
 <translation id="4216212958613226427">Este idioma se usa para mostrar la IU de Chromium</translation>
 <translation id="4230135487732243613">¿Quieres vincular los datos de Chromium a esta cuenta?</translation>
@@ -78,6 +82,7 @@
 <translation id="4407044323746248786">¿Deseas salir de Chromium de todos modos?</translation>
 <translation id="4415566066719264597">Permitir que Chromium se ejecute en segundo plano</translation>
 <translation id="4423735387467980091">Personaliza y controla Chromium</translation>
+<translation id="4544142686420020088">No se actualizó Chromium porque se produjo un error. <ph name="BEGIN_LINK" />Soluciona los problemas de actualización y las actualizaciones con error de Chromium.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">Accediste como <ph name="USER_EMAIL_ADDRESS" />. Ahora puedes ir a los favoritos, al historial y a otras opciones en todos los dispositivos en los que hayas accedido.</translation>
 <translation id="459535195905078186">Aplicaciones de Chromium</translation>
 <translation id="4677944499843243528">Parece que otro proceso de Chromium (<ph name="PROCESS_ID" />) está utilizando el perfil en otra computadora (<ph name="HOST_NAME" />). Chromium bloqueó el perfil para que no se dañe. Si puedes confirmar que ningún otro proceso está utilizando este perfil, puedes desbloquearlo y volver a iniciar Chromium.</translation>
@@ -110,6 +115,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Bienvenido a Chromium</translation>
 <translation id="5895138241574237353">Reiniciar</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" />: Acceso a la red</translation>
 <translation id="5987687638152509985">Actualiza Chromium para iniciar la sincronización</translation>
 <translation id="6013050204643758987">Chromium OS es posible gracias al <ph name="BEGIN_LINK_CROS_OSS" />software adicional de código abierto<ph name="END_LINK_CROS_OSS" />, como <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation>
 <translation id="6055895534982063517">Hay una nueva versión de Chromium disponible, y es más rápida que nunca.</translation>
@@ -147,6 +153,7 @@
 <translation id="6893813176749746474">Chromium fue actualizado, pero no lo has utilizado en los últimos 30 días.</translation>
 <translation id="6964305034639999644">Abrir vínculo en una ventana de navegación de incó&amp;gnito de Chromium</translation>
 <translation id="6990124437352146030">Chromium necesita permiso para acceder a tu micrófono para este sitio</translation>
+<translation id="701244094609242530">Chromium no puede revisar las extensiones. Vuelve a intentarlo más tarde.</translation>
 <translation id="705851970750939768">Actualizar Chromium</translation>
 <translation id="7066436765290594559">El Sistema operativo Chromium no pudo sincronizar los datos. Actualiza la frase de contraseña de sincronización.</translation>
 <translation id="7067091210845072982">Si una imagen no tiene una descripción útil, Chromium intentará proporcionarte una. Para crear descripciones, se envían las imágenes a Google.</translation>
@@ -187,6 +194,7 @@
 <translation id="8013436988911883588">Una vez que Chromium tenga acceso, los sitios web podrán solicitarte acceso.</translation>
 <translation id="81770708095080097">Chromium bloqueó este archivo porque es peligroso.</translation>
 <translation id="8248265253516264921">Si una imagen no tiene una descripción útil, Chromium intentará proporcionarte una. Para crear descripciones, se envían las imágenes a Google. Puedes desactivar esta opción en la configuración en cualquier momento.</translation>
+<translation id="8266560134891435528">Chromium no puede revisar las contraseñas porque no accediste a tu cuenta</translation>
 <translation id="8276522524898344151">Chromium está intentando copiar contraseñas.</translation>
 <translation id="8290862415967981663">Chromium bloqueó este archivo porque podría ser peligroso.</translation>
 <translation id="8330519371938183845">Accede para sincronizar y personalizar Chromium en todos tus dispositivos</translation>
diff --git a/chrome/app/resources/chromium_strings_et.xtb b/chrome/app/resources/chromium_strings_et.xtb
index 1cc4ed44..1121edd9 100644
--- a/chrome/app/resources/chromium_strings_et.xtb
+++ b/chrome/app/resources/chromium_strings_et.xtb
@@ -92,6 +92,7 @@
 <translation id="4708774505295300557">Keegi on varem selles arvutis Chromiumi sisse loginud kasutajana <ph name="ACCOUNT_EMAIL_LAST" />. Looge uus Chromiumi kasutaja, et oma teave eraldi hoida.</translation>
 <translation id="4746050847053251315">Kas väljuda Chromiumist ikkagi?</translation>
 <translation id="4748217263233248895">Äsja rakendati Chromiumi spetsiaalne turvavärskendus. Taaskäivitage brauser, misjärel teie vahelehed taastatakse.</translation>
+<translation id="4750035648288509542">Peaaegu värskendatud! Värskendamise lõpuleviimiseks taaskäivitage Chromium. Inkognito aknaid ei avata uuesti.</translation>
 <translation id="479167709087336770">See kasutab sama õigekirjakontrolli, mida kasutatakse Google'i otsingus. Brauseris sisestatav tekst saadetakse Google'ile. Seda käitumist saab seadetes alati muuta.</translation>
 <translation id="4888717733111232871">Sissetuleku reegel Chromiumile mDNS-liikluse lubamiseks.</translation>
 <translation id="4943838377383847465">Chromium on taustarežiimis.</translation>
diff --git a/chrome/app/resources/chromium_strings_eu.xtb b/chrome/app/resources/chromium_strings_eu.xtb
index 09019731b..d60099d 100644
--- a/chrome/app/resources/chromium_strings_eu.xtb
+++ b/chrome/app/resources/chromium_strings_eu.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">Chromium seguruagoa izan dadin, zuk jakin gabe gehitu izan dituzten eta <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> dendan zerrendatu gabe dauden luzapen batzuk desgaitu ditugu.</translation>
 <translation id="1808667845054772817">Instalatu berriro Chromium</translation>
 <translation id="1881322772814446296">Kontu kudeatu batekin hasten ari zara saioa eta kontuaren administratzaileari zure Chromium profila kontrolatzeko ahalmena ematera zoaz. Chromium aplikazioan dituzun datuak, esaterako, aplikazioak, laster-markak, historia, pasahitzak eta beste ezarpen batzuk behin betiko lotuko zaizkio <ph name="USER_NAME" /> erabiltzaileari. Google kontuetako Panelaren bidez ezabatu ahalko dituzu datu horiek, baina ezingo dituzu beste kontu batekin lotu. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium-ek ezin ditu egiaztatu pasahitza guztiak. Saiatu berriro 24 orduren buruan.</translation>
 <translation id="1911763535808217981">Aukera hau desaktibatzen baduzu, Google-ren webguneetan saioa hasi ahalko duzu (adibidez, Gmail-en) Chromium-en saioa hasi beharrik gabe</translation>
 <translation id="1929939181775079593">Chromium-ek ez du eranzuten. Berrabiarazi nahi duzu?</translation>
 <translation id="1966382378801805537">Chromium-ek ezin du ezarri edo zehaztu arakatzaile lehenetsia</translation>
 <translation id="2008474315282236005">Gailuko elementu bat ezabatuko da. Geroago datuak eskuratu nahi izanez gero, hasi saioa Chromium-en <ph name="USER_EMAIL" /> gisa.</translation>
 <translation id="2147976119693222405">Chromium OS sistema eragileak ezin izan ditu sinkronizatu datuak. Konpondu arazoa.</translation>
+<translation id="2185166961232948079">Chromium - Hasi saioa sarean - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">Ordenagailua partekatzen baduzu, lagunek eta familiako kideek euren kontuak erabilita ibil daitezke Interneten, nahi duten moduan.</translation>
 <translation id="2347108572062610441">Luzapenak aldatu egin du Chromium abiarazten duzunean agertzen den orria.</translation>
 <translation id="2396765026452590966"><ph name="EXTENSION_NAME" /> luzapenak aldatu egin du Chromium abiarazten duzunean agertzen den orria.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">Aukerakoa: lagundu Chromium hobetzen Google-ra erabilera-estatistikak eta hutsegite-txostenak automatikoki bidalita.</translation>
 <translation id="2910007522516064972">&amp;Chromium arakatzaileari buruz</translation>
 <translation id="2977470724722393594">Eguneratuta dago Chromium</translation>
+<translation id="3032706164202344641">Chromium-ek ezin ditu egiaztatu pasahitzak. Saiatu geroago.</translation>
 <translation id="3032787606318309379">Chromium-era gehitzen…</translation>
 <translation id="3068515742935458733">Lagundu Chromium hobetzen hutsegite-txostenak eta <ph name="UMA_LINK" /> Google-ra bidalita</translation>
 <translation id="3103660991484857065">Instalatzaileak ezin izan du artxiboa deskonprimitu. Deskargatu berriro Chromium.</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Pasahitzak kopiatzen saiatzen ari da Chromium. Hori baimentzeko, idatzi Windows-eko pasahitza.</translation>
 <translation id="4036079820698952681">Lagundu Chromium hobetzen <ph name="BEGIN_LINK" />uneko ezarpenen<ph name="END_LINK" /> berri emanda</translation>
 <translation id="4050175100176540509">Segurtasun-hobekuntza garrantzitsuak eta eginbide berriak dituzu erabilgarri azken bertsioan.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - Hasi saioa sarean - Chromium</translation>
 <translation id="421369550622382712">Ezagutu Chromium-erako aplikazio, joko, luzapen eta gai bikainak.</translation>
 <translation id="4216212958613226427">Hizkuntza honetan dago Chromium-en erabiltzaile-interfazea</translation>
 <translation id="4230135487732243613">Chromium datuak kontu honekin lotu nahi dituzu?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">Chromium-etik irten nahi duzu hala ere?</translation>
 <translation id="4415566066719264597">Onartu Chromium atzeko planoan abiaraztea</translation>
 <translation id="4423735387467980091">Pertsonalizatu eta kontrolatu Chromium</translation>
+<translation id="4544142686420020088">Chromium ez da eguneratu arazoren bat izan delako. <ph name="BEGIN_LINK" />Konpondu Chromium eguneratzeko arazoak eta huts egindako eguneratzeak.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812"><ph name="USER_EMAIL_ADDRESS" /> gisa hasi duzu saioa. Laster-markak, historia eta bestelako ezarpenak atzi ditzakezu saioa hasita daukaten gailu guztien bidez.</translation>
 <translation id="459535195905078186">Chromium aplikazioak</translation>
 <translation id="4677944499843243528">Beste Chromium prozesu bat (<ph name="PROCESS_ID" />) beste ordenagailu batean (<ph name="HOST_NAME" />) profila erabiltzen ari dela dirudi. Chromium-ek profila blokeatu du honda ez dadin. Ziur badakizu ez dela beste inongo prozesurik profila erabiltzen ari, profila desblokea dezakezu eta Chromium berrabiarazi.</translation>
@@ -114,6 +119,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Ongi etorri Chromium-era</translation>
 <translation id="5895138241574237353">Berrabiarazi</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Hasi saioa sarean</translation>
 <translation id="5987687638152509985">Eguneratu Chromium sinkronizatzen hasteko</translation>
 <translation id="6013050204643758987"><ph name="BEGIN_LINK_LINUX_OSS" />Linux (beta)<ph name="END_LINK_LINUX_OSS" /> eta <ph name="BEGIN_LINK_CROS_OSS" />kode irekiko antzeko software<ph name="END_LINK_CROS_OSS" /> gehigarriei esker da posible Chromium OS.</translation>
 <translation id="6055895534982063517">Chromium-en bertsio berri bat erabilgarri dago; inoiz baino bizkorragoa da.</translation>
@@ -153,6 +159,7 @@
 <translation id="6893813176749746474">Chromium eguneratu da baina ez duzu erabili 30 egunetan gutxienez.</translation>
 <translation id="6964305034639999644">Ireki esteka Chromium-eko &amp;ezkutuko moduko leiho batean</translation>
 <translation id="6990124437352146030">Chromium-ek webgune honen izenean mikrofonoa atzitzeko baimena behar du</translation>
+<translation id="701244094609242530">Chromium-ek ezin ditu egiaztatu luzapenak. Saiatu geroago.</translation>
 <translation id="705851970750939768">Eguneratu Chromium</translation>
 <translation id="7066436765290594559">Chromium OS sistema eragileak ezin izan ditu sinkronizatu zure datuak. Eguneratu sinkronizatzeko pasaesaldia.</translation>
 <translation id="7067091210845072982">Irudiren batek ez badu azalpen lagungarririk, halako bat lortzen ahaleginduko da Chromium. Azalpen horiek sortzeko, irudiak Google-ri bidaltzen zaizkio.</translation>
@@ -195,6 +202,7 @@
 <translation id="8013436988911883588">Chromium-ek sarbidea duenean, webguneek sarbidea eskatuko dizute.</translation>
 <translation id="81770708095080097">Fitxategia arriskutsua da; horregatik, blokeatu egin du Chromium-ek.</translation>
 <translation id="8248265253516264921">Irudiren batek ez badu azalpen lagungarririk, halako bat lortzen ahaleginduko da Chromium. Azalpen horiek sortzeko, irudiak Google-ri bidaltzen zaizkio. Aukera hori desaktibatu nahi baduzu, joan ezarpenetara.</translation>
+<translation id="8266560134891435528">Chromium-ek ezin ditu egiaztatu pasahitzak saioa hasi ez duzulako</translation>
 <translation id="8276522524898344151">Pasahitzak kopiatzen saiatzen ari da Chromium.</translation>
 <translation id="8290862415967981663">Baliteke fitxategia arriskutsua izatea; horregatik, blokeatu egin du Chromium-ek.</translation>
 <translation id="8330519371938183845">Hasi saioa Chromium gailu guztietan sinkronizatu eta pertsonalizatzeko</translation>
diff --git a/chrome/app/resources/chromium_strings_fa.xtb b/chrome/app/resources/chromium_strings_fa.xtb
index f72f044..8c0003fd 100644
--- a/chrome/app/resources/chromium_strings_fa.xtb
+++ b/chrome/app/resources/chromium_strings_fa.xtb
@@ -16,11 +16,13 @@
 <translation id="1779356040007214683">‏برای ایمن‌تر کردن Chromium، برخی از افزونه‌هایی را که در <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> فهرست شده‌اند و ممکن است بدون اطلاع شما اضافه شده باشند، غیرفعال کردیم.</translation>
 <translation id="1808667845054772817">‏نصب مجدد Chromium</translation>
 <translation id="1881322772814446296">‏شما با حساب مدیریت‌شده وارد سیستم می‌شوید و به سرپرست آن اجازه کنترل بر نمایه Chromium خود را می‌دهید. داده‌های Chromium شما شامل برنامه‌ها، نشانک‌ها، سابقه، گذرواژه‌ها و سایر تنظیمات برای همیشه به <ph name="USER_NAME" /> مرتبط خواهد شد. می‌توانید این داده‌ها را از طریق داشبورد حساب‌های Google حذف کنید اما نمی‌توانید این داده‌ها را به حساب دیگری مرتبط سازید. در صورت تمایل برای ذخیره داده‌های Chromium موجود به صورت جداگانه می‌توانید نمایه جدیدی ایجاد کنید. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">‏Chromium نمی‌تواند همه گذرواژه‌هایتان را بررسی کند. بعد از ۲۴ ساعت دوباره امتحان کنید.</translation>
 <translation id="1911763535808217981">‏با خاموش کردن این گزینه، می‌توانید بدون ورود به سیستم Chromium به سیستم سایت‌های Google مانند Gmail وارد شوید</translation>
 <translation id="1929939181775079593">‏Chromium پاسخ نمی‌دهد. مجدداً راه‌اندازی شود؟</translation>
 <translation id="1966382378801805537">‏Chromium نمی‌تواند مرورگر پیش‌فرض را تعیین یا تنظیم کند</translation>
 <translation id="2008474315282236005">‏این کار یک مورد را از این دستگاه حذف می‌کند. برای بازیابی داده‌هایتان در فرصتی دیگر، با <ph name="USER_EMAIL" /> به سیستم Chromium وارد شوید.</translation>
 <translation id="2147976119693222405">‏سیستم‌عامل Chromium نتوانست داده‌هایتان را همگام‌سازی کند. اکنون مشکل رفع شود.</translation>
+<translation id="2185166961232948079">‏Chromium - ورود به سیستم شبکه - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">‏اگر رایانه‌ای را به صورت مشترک استفاده می‌کنید، دوستان و خانواده می‌توانند به صورت جداگانه مرور کنند و Chromium را به صورتی که مایلند تنظیم کنند.</translation>
 <translation id="2347108572062610441">‏این افزونه، صفحه‌ای را تغییر داده است که هنگام راه‌اندازی Chromium نشان داده می‌شود.</translation>
 <translation id="2396765026452590966">‏افزونه «<ph name="EXTENSION_NAME" />»، صفحه‌ای را تغییر داده است که هنگام راه‌اندازی Chromium نشان داده می‌شود.</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">‏اختیاری: با ارسال خودکار آمار کاربرد و گزارش‌های خرابی برنامه به Chromium، به پیشرفت Chrome کمک کنید.</translation>
 <translation id="2910007522516064972">‏درباره &amp;Chromium</translation>
 <translation id="2977470724722393594">‏Chromium به‌روز است</translation>
+<translation id="3032706164202344641">‏Chromium نمی‌تواند گذرواژه‌هایتان را بررسی کند. بعداً دوباره امتحان کنید.</translation>
 <translation id="3032787606318309379">‏افزودن به Chromium…</translation>
 <translation id="3068515742935458733">‏با ارسال گزارش‌های خرابی و <ph name="UMA_LINK" /> به Google، به بهبود Google کمک کنید</translation>
 <translation id="3103660991484857065">‏نصب‌کننده در خارج کردن بایگانی از حالت فشرده ناموفق بود. لطفاً دوباره Chromium را بارگیری کنید.</translation>
@@ -71,6 +74,7 @@
 <translation id="3945058413678539331">‏Chromium می‌خواهد گذرواژه‌ها را کپی کند. برای اینکه اجازه دهید این کار انجام شود، گذرواژه Windows خود را تایپ کنید.</translation>
 <translation id="4036079820698952681">‏با گزارش <ph name="BEGIN_LINK" />تنظیمات کنونی<ph name="END_LINK" />، به بهتر شدن Chromium کمک کنید</translation>
 <translation id="4050175100176540509">بهبودهای امنیتی مهم و ویژگی‌های جدید در جدیدترین نسخه در دسترس است.</translation>
+<translation id="419998258129752635">‏<ph name="PAGE_TITLE" /> - ورود به سیستم شبکه - Chromium</translation>
 <translation id="421369550622382712">‏برنامه‌ها، بازی‌ها، افزونه‌ها و طرح‌های زمینه Chromium را کشف کنید.</translation>
 <translation id="4216212958613226427">‏از این زبان برای نمایش رابط کاربری Chromium استفاده می‌شود</translation>
 <translation id="4230135487732243613">‏داده‌های Chromium به این حساب مرتبط شود؟</translation>
@@ -79,6 +83,7 @@
 <translation id="4407044323746248786">‏درهرصورت از Chromium خارج می‌شوید؟</translation>
 <translation id="4415566066719264597">‏اجازه به Chromium برای اجرا در پس‌زمینه</translation>
 <translation id="4423735387467980091">‏سفارشی کردن و کنترل Chromium</translation>
+<translation id="4544142686420020088">‏Chromium به‌روزرسانی نشد؛ مشکلی پیش آمد. <ph name="BEGIN_LINK" />مشکلات به‌روزرسانی Chromium و به‌روزرسانی‌های ناموفق را برطرف کنید.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">با حساب <ph name="USER_EMAIL_ADDRESS" /> وارد سیستم شده‌اید. اکنون در همه دستگاه‌هایی که با آنها به سیستم وارد شده‌اید می‌توانید به نشانک‌ها، سابقه و دیگر تنظیماتتان دسترسی داشته باشید.</translation>
 <translation id="459535195905078186">‏برنامه‌های Chromium</translation>
 <translation id="4677944499843243528">‏ظاهراً نمایه توسط فرآیند Chromium دیگری (<ph name="PROCESS_ID" />) در رایانه‌ای دیگر (<ph name="HOST_NAME" />) در حال استفاده است. Chromium نمایه را قفل کرده است تا خراب نشود. اگر مطمئنید فرآیندهای دیگری از این نمایه استفاده نمی‌کنند، می‌توانید قفل نمایه را باز کنید و Chromium را مجدداً راه‌اندازی نمایید.</translation>
@@ -111,6 +116,7 @@
 <translation id="5820394555380036790">‏سیستم عامل Chromium </translation>
 <translation id="5862307444128926510">‏به Chromium خوش آمدید</translation>
 <translation id="5895138241574237353">راه‌اندازی مجدد</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ورود به سیستم شبکه</translation>
 <translation id="5987687638152509985">‏به‌روزرسانی Chromium برای شروع همگام‌سازی</translation>
 <translation id="6013050204643758987">‏ساخت سیستم‌عامل Chromium به‌کمک <ph name="BEGIN_LINK_CROS_OSS" />نرم‌افزار منبع آزاد<ph name="END_LINK_CROS_OSS" /> دیگری، مثل <ph name="BEGIN_LINK_LINUX_OSS" />Linux (بتا)<ph name="END_LINK_LINUX_OSS" />، امکان‌پذیر شده است.</translation>
 <translation id="6055895534982063517">‏نسخه جدیدی از Chromium وجود دارد که سریع‌تر از همیشه است.</translation>
@@ -150,6 +156,7 @@
 <translation id="6893813176749746474">‏Chromium به‌روز شده است اما حداقل ۳۰ روز از آن استفاده نکرده‌اید.</translation>
 <translation id="6964305034639999644">‏باز کردن پیوند در پنجره &amp;ناشناس Chromium</translation>
 <translation id="6990124437352146030">‏Chromium برای این سایت به مجوز دسترسی به میکروفون نیاز دارد</translation>
+<translation id="701244094609242530">‏Chromium نمی‌تواند افزونه‌هایتان را بررسی کند. بعداً دوباره امتحان کنید.</translation>
 <translation id="705851970750939768">‏به‌روزرسانی Chromium</translation>
 <translation id="7066436765290594559">‏سیستم‌عامل Chromium قادر به همگام‌سازی داده‌های شما نبود. لطفاً رمز عبارتی همگام‌سازی خود را به‌روز کنید.</translation>
 <translation id="7067091210845072982">‏اگر تصویری توضیح مفیدی نداشته باشد، Chromium توضیحی برای شما ارائه خواهد کرد. برای ایجاد توضیحات، تصاویر به Google ارسال می‌شود.</translation>
@@ -191,6 +198,7 @@
 <translation id="8013436988911883588">‏وقتی Chromium دسترسی داشته باشد، وب‌سایت‌ها می‌توانند مجوز دسترسی درخواست کنند.</translation>
 <translation id="81770708095080097">‏این فایل خطرناک است، بنابراین Chromium آن را مسدود کرده است.</translation>
 <translation id="8248265253516264921">‏اگر تصویری توضیح مفیدی نداشته باشد، Chromium توضیحی برای شما ارائه خواهد کرد. برای ایجاد توضیحات، تصاویر به Google ارسال می‌شود. هروقت خواستید می‌توانید این گزینه را در تنظیمات خاموش کنید.</translation>
+<translation id="8266560134891435528">‏چون به سیستم وارد نشده‌اید، Chromium نمی‌تواند گذرواژه‌هایتان را بررسی کند</translation>
 <translation id="8276522524898344151">‏Chromium می‌خواهد گذرواژه‌ها را کپی کند.</translation>
 <translation id="8290862415967981663">‏این فایل ممکن است خطرناک باشد، بنابراین Chromium آن را مسدود کرده است.</translation>
 <translation id="8330519371938183845">‏برای همگام‌سازی و شخصی‌سازی Chromium در همه دستگاه‌هایتان، به سیستم وارد شوید</translation>
diff --git a/chrome/app/resources/chromium_strings_fi.xtb b/chrome/app/resources/chromium_strings_fi.xtb
index f9d8d6e..b2cecd0 100644
--- a/chrome/app/resources/chromium_strings_fi.xtb
+++ b/chrome/app/resources/chromium_strings_fi.xtb
@@ -92,6 +92,7 @@
 <translation id="4708774505295300557">Joku on jo kirjautunut tällä tietokoneella Chromiumiin käyttäjätilillä <ph name="ACCOUNT_EMAIL_LAST" />. Luo uusi Chromium-käyttäjä, jos haluat pitää tiedot erillään.</translation>
 <translation id="4746050847053251315">Suljetaanko Chromium silti?</translation>
 <translation id="4748217263233248895">Chromiumin tärkeä tietoturvapäivitys on asennettu. Käynnistä selain uudelleen – palautamme avoimet välilehdet.</translation>
+<translation id="4750035648288509542">Melkein ajan tasalla. Viimeistele päivitys käynnistämällä Chromium uudelleen. Incognito-ikkunoita ei avata uudelleen.</translation>
 <translation id="479167709087336770">Tämä käyttää samaa oikeinkirjoituksen tarkistusta kuin Google Haku. Selaimeen kirjoittamasi teksti lähetetään Googlelle. Voit muuttaa tätä milloin tahansa asetuksista.</translation>
 <translation id="4888717733111232871">Chromiumin saapuvien yhteyksien sääntö, joka sallii mDNS-liikenteen.</translation>
 <translation id="4943838377383847465">Chromium on käynnissä taustalla</translation>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb
index dda318fd..8a6ab170 100644
--- a/chrome/app/resources/chromium_strings_fil.xtb
+++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -18,11 +18,13 @@
 <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>
 <translation id="1881322772814446296">Nagsa-sign in ka gamit ang isang pinamamahalaang account at nagbibigay sa administrator nito ng kontrol sa iyong profile sa Chromium. Permanenteng mauugnay ang iyong data sa Chromium, gaya ng iyong apps, mga bookmark, kasaysayan, password, at iba pang mga setting sa <ph name="USER_NAME" />. Matatanggal mo ang data na ito sa Google Accounts Dashboard, ngunit hindi mo maiuugnay ang data na ito sa isa pang account. Maaari ka ring gumawa ng bagong profile upang ihiwalay ang iyong umiiral na data sa Chromium. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Hindi masusuri ng Chromium ang lahat ng iyong password. Subukan ulit pagkalipas ng 24 na oras.</translation>
 <translation id="1911763535808217981">Kapag na-off ito, maaari kang mag-sign in sa mga site ng Google tulad ng Gmail nang hindi nagsa-sign in sa Chromium</translation>
 <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="2147976119693222405">Hindi ma-sync ng Chromium OS ang iyong data. Ayusin ngayon.</translation>
+<translation id="2185166961232948079">Chromium - Pag-sign in sa Network - <ph name="PAGE_TITLE" /></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>
 <translation id="2396765026452590966">Binago ng extension na "<ph name="EXTENSION_NAME" />" ang ipinapakitang page kapag sinimulan mo ang Chromium.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">Opsyonal: Tumulong na pahusayin ang Chromium sa pamamagitan ng awtomatikong pagpapadala sa Google ng mga istatistika ng paggamit at mga ulat ng pag-crash.</translation>
 <translation id="2910007522516064972">Tungkol sa &amp;Chromium</translation>
 <translation id="2977470724722393594">Napapanahon ang Chromium</translation>
+<translation id="3032706164202344641">Hindi masuri ng Chromium ang iyong mga password. Subukan ulit sa ibang pagkakataon.</translation>
 <translation id="3032787606318309379">Idinaragdag sa Chromium...</translation>
 <translation id="3068515742935458733">Tumulong na gawing mas mahusay ang Chromium sa pamamagitan ng pagpapadala ng mga ulat ng pag-crash at <ph name="UMA_LINK" /> sa Google</translation>
 <translation id="3103660991484857065">Nabigong i-uncompress ng installer ang archive. Mangyaring i-download muli ang Chromium.</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Sinusubukan ng Chromium na kopyahin ang mga password. I-type ang iyong password sa Windows para payagan ito.</translation>
 <translation id="4036079820698952681">Tulungang pahusayin ang Chromium sa pamamagitan ng pag-ulat sa <ph name="BEGIN_LINK" />mga kasalukuyang setting<ph name="END_LINK" /></translation>
 <translation id="4050175100176540509">May available na mahahalagang pagpapahusay sa seguridad at mga bagong feature sa pinakabagong bersyon.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - Pag-sign in sa Network - Chromium</translation>
 <translation id="421369550622382712">Tumuklas ng mahuhusay na app, laro, extension at tema para sa Chromium.</translation>
 <translation id="4216212958613226427">Ginagamit ang wikang ito para ipakita ang Chromium UI</translation>
 <translation id="4230135487732243613">I-link ang iyong data sa Chromium sa account na ito?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">Lumabas pa rin sa Chromium?</translation>
 <translation id="4415566066719264597">Hayaang Tumakbo ang Chromium sa Background</translation>
 <translation id="4423735387467980091">I-customize at kontrolin ang Chromium</translation>
+<translation id="4544142686420020088">Hindi na-update ang Chromium, nagkaproblema. <ph name="BEGIN_LINK" />Ayusin ang mga problema sa pag-update ng Chromium at ang mga hindi naisagawang pag-update dito.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">Naka-sign in ka bilang <ph name="USER_EMAIL_ADDRESS" />. Maaari mo na ngayong i-access ang iyong mga bookmark, kasaysayan, at iba pang setting sa lahat ng iyong device na naka-sign in.</translation>
 <translation id="459535195905078186">Chromium Apps</translation>
 <translation id="4677944499843243528">Mukhang ginagamit ang profile ng iba pang proseso ng Chromium (<ph name="PROCESS_ID" />) sa iba pang computer (<ph name="HOST_NAME" />).  Ni-lock ng Chromium ang profile upang hindi ito ma-corrupt.  Kung nakakatiyak ka na walang ibang mga proseso ang gumagamit sa profile na ito, maaari mong i-unlock ang profile at ilunsad muli ang Chromium.</translation>
@@ -114,6 +119,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Maligayang Pagdating sa Chromium</translation>
 <translation id="5895138241574237353">I-restart</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Pag-sign in sa Network</translation>
 <translation id="5987687638152509985">I-update ang Chromium upang simulan ang pag-sync</translation>
 <translation id="6013050204643758987">Ang Chromium OS ay ginagawang posible ng karagdagang <ph name="BEGIN_LINK_CROS_OSS" />open source na software<ph name="END_LINK_CROS_OSS" />, gayundin ng <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation>
 <translation id="6055895534982063517">May available na bagong bersyon ng Chromium, at mas mabilis ito kaysa sa dati.</translation>
@@ -153,6 +159,7 @@
 <translation id="6893813176749746474">Na-update na ang Chromium, ngunit hindi mo pa ito nagagamit sa loob ng hindi bababa sa 30 araw.</translation>
 <translation id="6964305034639999644">Buksan ang link sa inco&amp;gnito window ng Chromium</translation>
 <translation id="6990124437352146030">Kailangan ng Chromium ng pahintulot na i-access ang iyong mikropono para sa site na ito</translation>
+<translation id="701244094609242530">Hindi masuri ng Chromium ang iyong mga extension. Subukan ulit sa ibang pagkakataon.</translation>
 <translation id="705851970750939768">I-update ang Chromium</translation>
 <translation id="7066436765290594559">Hindi ma-sync ng Chromium OS ang iyong data. Paki-update ang iyong Passphrase sa pag-sync.</translation>
 <translation id="7067091210845072982">Kung hindi sapat ang deskripsyon ng isang larawan, susubukan ng Chromium na ayusin ito para sa iyo. Para gumawa ng mga deskripsyon, ipinapadala ang mga larawan sa Google.</translation>
@@ -195,6 +202,7 @@
 <translation id="8013436988911883588">Kapag mayroon nang access ang Chromium, makakahingi na ang mga website ng access sa iyo.</translation>
 <translation id="81770708095080097">Mapanganib ang file na ito, kaya na-block ito ng Chromium.</translation>
 <translation id="8248265253516264921">Kung hindi sapat ang deskripsyon ng isang larawan, susubukan ng Chromium na ayusin ito para sa iyo. Para gumawa ng mga deskripsyon, ipinapadala ang mga larawan sa Google. Puwede mo itong i-off sa mga setting anumang oras.</translation>
+<translation id="8266560134891435528">Hindi masusuri ng Chromium ang iyong mga password dahil hindi ka naka-sign in</translation>
 <translation id="8276522524898344151">Sinusubukan ng Chromium na kopyahin ang mga password.</translation>
 <translation id="8290862415967981663">Maaaring mapanganib ang file na ito, kaya na-block ito ng Chromium.</translation>
 <translation id="8330519371938183845">Mag-sign in para i-sync at i-personalize ang Chromium sa lahat ng iyong device</translation>
diff --git a/chrome/app/resources/chromium_strings_fr-CA.xtb b/chrome/app/resources/chromium_strings_fr-CA.xtb
index 72b92e7..434e64c 100644
--- a/chrome/app/resources/chromium_strings_fr-CA.xtb
+++ b/chrome/app/resources/chromium_strings_fr-CA.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">Afin de rendre Chromium plus sûr, nous avons désactivé certaines extensions qui ne sont pas répertoriées dans la boutique <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> et qui ont pu être ajoutées à votre insu.</translation>
 <translation id="1808667845054772817">Réinstaller Chromium</translation>
 <translation id="1881322772814446296">Vous vous connectez avec un compte géré et rendez son administrateur maître de votre profil Chromium. Vos données de Chromium, comme vos applications, vos favoris, votre historique, vos mots de passe et vos autres paramètres, vont être associées de manière permanente à <ph name="USER_NAME" />. Vous pourrez supprimer ces données à l'aide du tableau de bord des comptes Google, mais vous ne pourrez pas les associer à un autre compte. Vous pouvez également créer un nouveau profil pour maintenir vos données Chromium séparées. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium ne peut pas vérifier tous vos mots de passe. Réessayez dans 24 heures.</translation>
 <translation id="1911763535808217981">En désactivant cette option, vous pouvez vous connecter aux sites Google tels que Gmail sans vous connecter à Chromium</translation>
 <translation id="1929939181775079593">Chromium ne répond pas. Voulez-vous le relancer maintenant?</translation>
 <translation id="1966382378801805537">Chromium ne parvient pas à déterminer quel est le navigateur par défaut ou à le définir</translation>
 <translation id="2008474315282236005">Cette action entraînera la suppression d'un élément de cet appareil. Pour récupérer vos données plus tard, connectez-vous à Chromium en tant que <ph name="USER_EMAIL" />.</translation>
 <translation id="2147976119693222405">Chromium OS n'a pas pu synchroniser vos données. Corrigez le problème maintenant.</translation>
+<translation id="2185166961232948079">Chromium – Connexion au réseau – <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">Si vous partagez un ordinateur avec vos proches, ceux-ci peuvent configurer Google Chrome 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 au démarrage de Chromium.</translation>
 <translation id="2396765026452590966">L'extension « <ph name="EXTENSION_NAME" /> » a modifié la page qui s'affiche au démarrage de Chromium.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">Facultatif : aidez-nous à améliorer Chromium en envoyant automatiquement des statistiques d'utilisation et des rapports d'erreur à Google.</translation>
 <translation id="2910007522516064972">À propos de &amp;Chromium</translation>
 <translation id="2977470724722393594">Chromium est à jour</translation>
+<translation id="3032706164202344641">Chromium ne peut pas vérifier vos mots de passe. Réessayez plus tard.</translation>
 <translation id="3032787606318309379">Ajout à Chromium en cours...</translation>
 <translation id="3068515742935458733">Aidez-nous à améliorer Chromium en nous envoyant des rapports d'erreur et des <ph name="UMA_LINK" />.</translation>
 <translation id="3103660991484857065">Le programme d'installation n'a pas réussi à décompresser l'archive. Veuillez télécharger Chromium de nouveau.</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Chromium essaie de copier des mots de passe. Pour autoriser cette action, entrez votre mot de passe Windows.</translation>
 <translation id="4036079820698952681">Aidez-nous à améliorer Chromium en nous signalant les <ph name="BEGIN_LINK" />paramètres actuels<ph name="END_LINK" /></translation>
 <translation id="4050175100176540509">La dernière version propose d'importantes améliorations de la sécurité ainsi que de nouvelles fonctionnalités.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> – Connexion au réseau – Chromium</translation>
 <translation id="421369550622382712">Découvrez des applications, des jeux, des extensions et des thèmes exceptionnels conçus pour Chromium.</translation>
 <translation id="4216212958613226427">Cette langue est utilisée pour afficher l'IU de Chromium</translation>
 <translation id="4230135487732243613">Associer vos données de Chromium à ce compte?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">Quitter Chromium quand même?</translation>
 <translation id="4415566066719264597">Laisser Chromium s'exécuter en arrière-plan</translation>
 <translation id="4423735387467980091">Personnaliser et commander Chrome</translation>
+<translation id="4544142686420020088">La mise à jour de Chromium n'a pas été installée. Une erreur s'est produite. <ph name="BEGIN_LINK" />Découvrez comment résoudre les problèmes de mise à jour de Chromium.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">Vous êtes connecté avec l'adresse de courriel <ph name="USER_EMAIL_ADDRESS" />. Vous pouvez maintenant accéder à vos favoris, à votre historique et à vos paramètres sur tous les appareils sur lesquels vous êtes connecté.</translation>
 <translation id="459535195905078186">Applications de Chromium</translation>
 <translation id="4677944499843243528">Le profil semble être utilisé par un autre processus de Chromium (<ph name="PROCESS_ID" />) sur un autre ordinateur (<ph name="HOST_NAME" />). Chromium a verrouillé ce profil pour éviter qu'il ne soit endommagé. Si vous êtes sûr qu'aucun autre processus n'utilise ce profil, vous pouvez le déverrouiller et relancer Chromium.</translation>
@@ -114,6 +119,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Bienvenue dans Chromium</translation>
 <translation id="5895138241574237353">Redémarrer</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Connexion au réseau</translation>
 <translation id="5987687638152509985">Mettez Chromium à jour pour commencer la synchronisation</translation>
 <translation id="6013050204643758987">Chromium OS fonctionne grâce à d'autres <ph name="BEGIN_LINK_CROS_OSS" />logiciels libres<ph name="END_LINK_CROS_OSS" />, tout comme <ph name="BEGIN_LINK_LINUX_OSS" />Linux (bêta)<ph name="END_LINK_LINUX_OSS" />.</translation>
 <translation id="6055895534982063517">Une nouvelle version de Google Chrome est maintenant offerte. Il est plus rapide que jamais.</translation>
@@ -153,6 +159,7 @@
 <translation id="6893813176749746474">Chrome a été mis à jour, mais vous ne l'avez pas utilisé depuis au moins 30 jours.</translation>
 <translation id="6964305034639999644">Ouvrir le lien dans une fenêtre de navi&amp;gation privée Chromium</translation>
 <translation id="6990124437352146030">Chromium a besoin de votre autorisation pour accéder à votre micro pour ce site</translation>
+<translation id="701244094609242530">Chromium ne peut pas vérifier vos extensions. Réessayez plus tard.</translation>
 <translation id="705851970750939768">Mettre à jour Chromium</translation>
 <translation id="7066436765290594559">Échec de synchronisation de vos données dans Chromium OS. Veuillez mettre à jour votre phrase de passe de synchronisation.</translation>
 <translation id="7067091210845072982">Si une image n'est pas accompagnée d'une description utile, Chromium essaiera de vous en proposer une. Pour créer des descriptions, les images sont envoyées à Google.</translation>
@@ -194,6 +201,7 @@
 <translation id="8013436988911883588">Lorsque Chromium y aura accès, les sites Web pourront vous demander l'accès.</translation>
 <translation id="81770708095080097">Chromium a bloqué ce fichier, car il est dangereux.</translation>
 <translation id="8248265253516264921">Si une image n'est pas accompagnée d'une description utile, Chromium essaiera de vous en proposer une. Pour créer des descriptions, les images sont envoyées à Google. Vous pouvez désactiver cette option dans les paramètres à tout moment.</translation>
+<translation id="8266560134891435528">Chromium ne peut pas vérifier vos mots de passe, parce que vous n'êtes pas connecté.</translation>
 <translation id="8276522524898344151">Chromium essaie de copier des mots de passe.</translation>
 <translation id="8290862415967981663">Chromium a bloqué ce fichier, car il peut être dangereux.</translation>
 <translation id="8330519371938183845">Se connecter pour synchroniser et personnaliser Chromium sur vos appareils</translation>
diff --git a/chrome/app/resources/chromium_strings_fr.xtb b/chrome/app/resources/chromium_strings_fr.xtb
index 043c742..9f0d3480 100644
--- a/chrome/app/resources/chromium_strings_fr.xtb
+++ b/chrome/app/resources/chromium_strings_fr.xtb
@@ -17,11 +17,13 @@
 <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>
 <translation id="1881322772814446296">Vous vous connectez avec un compte géré et donnez le contrôle de votre profil Chromium à son administrateur. Vos données Chromium, telles que les applications, les favoris, l'historique, les mots de passe et les autres paramètres, vont être définitivement associées à <ph name="USER_NAME" />. Vous pouvez supprimer ces données via le tableau de bord des comptes Google, mais vous ne pouvez pas les associer à un autre compte. Vous pouvez éventuellement créer un nouveau profil pour maintenir vos données Chromium séparées. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium ne parvient pas à vérifier tous vos mots de passe. Réessayez dans 24 heures.</translation>
 <translation id="1911763535808217981">Désactiver cette option vous permet de vous connecter à des sites Google tels que Gmail sans vous connecter à Chromium</translation>
 <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="2147976119693222405">Impossible de synchroniser vos données dans Chromium OS. Corrigez le problème maintenant.</translation>
+<translation id="2185166961232948079">Chromium - Connexion au réseau - <ph name="PAGE_TITLE" /></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>
 <translation id="2396765026452590966">L'extension <ph name="EXTENSION_NAME" /> a modifié la page qui s'affiche lorsque vous démarrez Chromium.</translation>
@@ -42,6 +44,7 @@
 <translation id="2886012850691518054">Facultatif : aidez-nous à améliorer Chromium en envoyant automatiquement des statistiques d'utilisation et des rapports d'erreur à Google.</translation>
 <translation id="2910007522516064972">À propos de &amp;Chromium</translation>
 <translation id="2977470724722393594">Chromium est à jour</translation>
+<translation id="3032706164202344641">Chromium ne parvient pas à vérifier vos mots de passe. Réessayez plus tard.</translation>
 <translation id="3032787606318309379">Ajout à Chromium en cours…</translation>
 <translation id="3068515742935458733">Aidez-nous à améliorer Chromium en nous envoyant des rapports d'erreur et des <ph name="UMA_LINK" />.</translation>
 <translation id="3103660991484857065">Échec de la décompression de l'archive par le programme d'installation. Veuillez télécharger Chromium à nouveau.</translation>
@@ -73,6 +76,7 @@
 <translation id="3945058413678539331">Chromium tente de copier les mots de passe. Saisissez votre mot de passe Windows pour autoriser cette opération.</translation>
 <translation id="4036079820698952681">Aidez-nous à améliorer Chromium en nous signalant vos <ph name="BEGIN_LINK" />paramètres actuels<ph name="END_LINK" /></translation>
 <translation id="4050175100176540509">La dernière version propose d'importantes améliorations de la sécurité ainsi que de nouvelles fonctionnalités.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - Connexion au réseau - Chromium</translation>
 <translation id="421369550622382712">Découvrez des applications, des jeux, des extensions et des thèmes exceptionnels pour Chromium.</translation>
 <translation id="4216212958613226427">Cette langue est utilisée pour l'UI Chromium</translation>
 <translation id="4230135487732243613">Associer vos données Chromium à ce compte ?</translation>
@@ -81,6 +85,7 @@
 <translation id="4407044323746248786">Quitter Chromium quand même ?</translation>
 <translation id="4415566066719264597">Laisser Chromium s'exécuter en arrière-plan</translation>
 <translation id="4423735387467980091">Personnaliser et contrôler Chromium</translation>
+<translation id="4544142686420020088">Échec de la mise à jour de Chromium en raison d'une erreur. <ph name="BEGIN_LINK" />Découvrez comment résoudre ce type de problème.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">Vous êtes connecté avec l'adresse e-mail <ph name="USER_EMAIL_ADDRESS" />. Vous pouvez maintenant accéder à vos favoris, à l'historique et aux autres paramètres sur tous les appareils sur lesquels vous êtes connecté.</translation>
 <translation id="459535195905078186">Applications Chromium</translation>
 <translation id="4677944499843243528">Le profil semble être utilisé dans le cadre d'un autre processus Chromium (<ph name="PROCESS_ID" />) sur un autre ordinateur (<ph name="HOST_NAME" />). Ce profil a été verrouillé de sorte qu'il ne soit pas endommagé. Si vous êtes sûr que le profil n'est utilisé dans le cadre d'aucun autre processus, vous pouvez le déverrouiller et relancer Chromium.</translation>
@@ -113,6 +118,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Bienvenue dans Chromium</translation>
 <translation id="5895138241574237353">Redémarrer</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Connexion au réseau</translation>
 <translation id="5987687638152509985">Mettre à jour Chromium pour lancer la synchronisation</translation>
 <translation id="6013050204643758987">Chromium OS a été créé à partir d'autres <ph name="BEGIN_LINK_CROS_OSS" />logiciels Open Source<ph name="END_LINK_CROS_OSS" />, tout comme <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Bêta)<ph name="END_LINK_LINUX_OSS" />.</translation>
 <translation id="6055895534982063517">Une nouvelle version de Chromium encore plus rapide est disponible.</translation>
@@ -152,6 +158,7 @@
 <translation id="6893813176749746474">Chromium a été mis à jour, mais vous ne l'avez pas utilisé pendant au moins 30 jours.</translation>
 <translation id="6964305034639999644">Ouvrir le lien dans la fenêtre de navi&amp;gation privée Chromium</translation>
 <translation id="6990124437352146030">Chromium a besoin de votre autorisation pour accéder à votre micro pour ce site</translation>
+<translation id="701244094609242530">Chromium ne parvient pas à vérifier vos extensions. Réessayez plus tard.</translation>
 <translation id="705851970750939768">Mettre à jour Chromium</translation>
 <translation id="7066436765290594559">Impossible de synchroniser vos données dans Chromium OS. Veuillez mettre à jour votre phrase secrète de synchronisation.</translation>
 <translation id="7067091210845072982">Si une image n'est pas accompagnée d'une description utile, Chromium essaiera de vous en proposer une. Pour nous permettre de créer des descriptions, les images sont envoyées à Google.</translation>
@@ -193,6 +200,7 @@
 <translation id="8013436988911883588">Une fois l'accès à une ressource accordé à Chromium, les sites Web sont également en mesure de vous demander l'accès.</translation>
 <translation id="81770708095080097">Chromium a bloqué ce fichier, car ce dernier est dangereux.</translation>
 <translation id="8248265253516264921">Si une image n'est pas accompagnée d'une description utile, Chromium essaiera de vous en proposer une. Pour nous permettre de créer des descriptions, les images sont envoyées à Google. Vous pouvez désactiver à tout moment cette option dans les paramètres.</translation>
+<translation id="8266560134891435528">Chromium ne peut pas vérifier vos mots de passe, car vous n'êtes pas connecté</translation>
 <translation id="8276522524898344151">Chromium tente de copier les mots de passe.</translation>
 <translation id="8290862415967981663">Chromium a bloqué ce fichier, car ce dernier peut être dangereux.</translation>
 <translation id="8330519371938183845">Se connecter pour synchroniser et personnaliser Chromium sur vos appareils</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb
index cc1187a7..df6d35b 100644
--- a/chrome/app/resources/chromium_strings_hr.xtb
+++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -92,6 +92,7 @@
 <translation id="4708774505295300557">Netko se prethodno prijavio na Chromium na ovom računalu kao <ph name="ACCOUNT_EMAIL_LAST" />. Izradite novog korisnika Chromiuma kako bi vaši podaci bili odvojeni.</translation>
 <translation id="4746050847053251315">Želite li ipak zatvoriti Chromium?</translation>
 <translation id="4748217263233248895">Upravo je primijenjeno posebno sigurnosno ažuriranje za Chromium. Ponovo pokrenite sustav i vratit ćemo vaše kartice.</translation>
+<translation id="4750035648288509542">Uskoro će biti ažuran! Ponovo pokrenite Chromium da biste završili ažuriranje. Anonimni prozori neće se ponovno otvoriti.</translation>
 <translation id="479167709087336770">Upotrebljava istu provjeru pravopisa koja se upotrebljava na Google pretraživanju. Tekst koji unesete u preglednik šalje se Googleu. To ponašanje možete promijeniti u postavkama kad god želite.</translation>
 <translation id="4888717733111232871">Ulazno pravilo kako bi Chromium dopustio mDNS promet.</translation>
 <translation id="4943838377383847465">Chromium radi u pozadini.</translation>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb
index 057f2c9..c6df99b54 100644
--- a/chrome/app/resources/chromium_strings_hu.xtb
+++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -92,6 +92,7 @@
 <translation id="4708774505295300557">Valaki korábban <ph name="ACCOUNT_EMAIL_LAST" /> néven bejelentkezett a Chromiumba erről a számítógépről. Az adatai elkülönítéséhez hozzon létre új Chromium-felhasználót.</translation>
 <translation id="4746050847053251315">Biztosan kilép a Chromiumból?</translation>
 <translation id="4748217263233248895">A rendszer egy speciális biztonsági frissítést alkalmazott a Chromiumon. Indítsa újra a számítógépet, a lapokat majd mi visszaállítjuk.</translation>
+<translation id="4750035648288509542">Már majdnem naprakész! Indítsa újra a Chromiumot a frissítés befejezéséhez. Az inkognitóablakok nem fognak újra megnyílni.</translation>
 <translation id="479167709087336770">A szolgáltatás ugyanazt a helyesírás-ellenőrzést használja, mint a Google Keresés. A begépelt szöveget a böngésző elküldi a Google-nak. A beállítások között ezt bármikor módosíthatja.</translation>
 <translation id="4888717733111232871">Bejövő szabály a Chromiumhoz az mDNS forgalom engedélyezése céljából.</translation>
 <translation id="4943838377383847465">A Chromium háttérmódban van.</translation>
diff --git a/chrome/app/resources/chromium_strings_id.xtb b/chrome/app/resources/chromium_strings_id.xtb
index b69ca62..5356683 100644
--- a/chrome/app/resources/chromium_strings_id.xtb
+++ b/chrome/app/resources/chromium_strings_id.xtb
@@ -16,11 +16,13 @@
 <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>
 <translation id="1881322772814446296">Anda masuk dengan akun terkelola dan memberikan administratornya kontrol atas profil Chromium Anda. Data Chromium Anda, seperti aplikasi, bookmark, histori, sandi, dan setelan lain selamanya akan dikaitkan ke <ph name="USER_NAME" />. Anda dapat menghapus data ini melalui Dasbor Akun Google, namun Anda tidak akan dapat mengaitkan data ini dengan akun yang lain. Secara opsional, Anda dapat membuat profil untuk menjaga data Chromium Anda yang sudah ada tetap terpisah. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium tidak dapat memeriksa semua sandi Anda. Coba lagi setelah 24 jam.</translation>
 <translation id="1911763535808217981">Dengan menonaktifkan ini, Anda dapat login ke situs Google seperti Gmail tanpa harus login ke Chromium</translation>
 <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="2147976119693222405">Chromium OS tidak dapat menyinkronkan data Anda. Perbaiki sekarang.</translation>
+<translation id="2185166961232948079">Chromium - Login Jaringan - <ph name="PAGE_TITLE" /></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>
 <translation id="2396765026452590966">Ekstensi "<ph name="EXTENSION_NAME" />" telah mengubah apa yang ditampilkan oleh halaman saat Anda memulai Chromium.</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">Opsional: Bantu menjadikan Chrome lebih baik dengan mengirim statistik penggunaan dan laporan kerusakan secara otomatis ke Google.</translation>
 <translation id="2910007522516064972">Tentang &amp;Chromium</translation>
 <translation id="2977470724722393594">Chromium sudah diperbarui</translation>
+<translation id="3032706164202344641">Chromium tidak dapat memeriksa sandi Anda. Coba lagi nanti.</translation>
 <translation id="3032787606318309379">Menambahkan Chromium...</translation>
 <translation id="3068515742935458733">Bantu Chromium menjadi lebih baik dengan mengirim laporan kerusakan dan <ph name="UMA_LINK" /> ke Google</translation>
 <translation id="3103660991484857065">Pemasang gagal membatalkan kompresi arsip. Download Chromium lagi.</translation>
@@ -72,6 +75,7 @@
 <translation id="3945058413678539331">Chromium mencoba menyalin sandi. Ketik sandi Windows Anda untuk mengizinkannya.</translation>
 <translation id="4036079820698952681">Bantu Chromium jadi lebih baik dengan melaporkan <ph name="BEGIN_LINK" />setelan saat ini<ph name="END_LINK" /></translation>
 <translation id="4050175100176540509">Peningkatan keamanan dan fitur baru yang penting tersedia di versi terbaru.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - Login Jaringan - Chromium</translation>
 <translation id="421369550622382712">Temukan aplikasi, game, ekstensi, dan tema yang hebat untuk Chromium.</translation>
 <translation id="4216212958613226427">Bahasa ini digunakan untuk menampilkan UI Chromium</translation>
 <translation id="4230135487732243613">Tautkan data Chromium Anda ke akun ini?</translation>
@@ -80,6 +84,7 @@
 <translation id="4407044323746248786">Tetap keluar dari Chromium?</translation>
 <translation id="4415566066719264597">Jalankan Chromium di Background</translation>
 <translation id="4423735387467980091">Menyesuaikan dan mengontrol Chromium</translation>
+<translation id="4544142686420020088">Chromium tidak dapat diupdate, terjadi error. <ph name="BEGIN_LINK" />Perbaiki masalah update Chrome dan update yang gagal.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">Anda login sebagai <ph name="USER_EMAIL_ADDRESS" />. Kini Anda dapat mengakses bookmark, histori, dan setelan lainnya pada seluruh perangkat yang Anda masuki.</translation>
 <translation id="459535195905078186">Aplikasi Chromium</translation>
 <translation id="4677944499843243528">Profil tersebut mungkin digunakan pada proses Chromium lainnya (<ph name="PROCESS_ID" />) pada komputer lain (<ph name="HOST_NAME" />). Chromium telah mengunci profil tersebut agar tidak rusak. Jika yakin tidak ada proses lain yang menggunakan profil tersebut, Anda dapat membuka profil dan meluncurkan Chromium kembali.</translation>
@@ -87,6 +92,7 @@
 <translation id="4708774505295300557">Sebelumnya ada seseorang yang masuk ke Chromium di komputer ini sebagai <ph name="ACCOUNT_EMAIL_LAST" />. Buat pengguna Chromium baru agar informasi Anda tetap terpisah.</translation>
 <translation id="4746050847053251315">Tetap tutup Chromium?</translation>
 <translation id="4748217263233248895">Update keamanan khusus untuk Chromium baru saja diterapkan. Mulai ulang Chromium sekarang dan kami akan memulihkan tab Anda.</translation>
+<translation id="4750035648288509542">Update hampir selesai. Luncurkan ulang Chromium untuk menyelesaikan update. Jendela Samaran tidak akan dibuka kembali.</translation>
 <translation id="479167709087336770">Tindakan ini akan menggunakan pemeriksa ejaan yang sama dengan yang digunakan di penelusuran Google. Teks yang Anda ketikkan di browser dikirim ke Google. Anda dapat mengubah perilaku ini di setelan.</translation>
 <translation id="4888717733111232871">Inbound rule untuk Chromium guna mengizinkan lalu lintas mDNS.</translation>
 <translation id="4943838377383847465">Chromium berjalan di mode latar belakang.</translation>
@@ -112,6 +118,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Selamat Datang di Chromium</translation>
 <translation id="5895138241574237353">Mulai Ulang</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Login Jaringan</translation>
 <translation id="5987687638152509985">Perbarui Chromium untuk memulai sinkronisasi</translation>
 <translation id="6013050204643758987">Chromium OS terwujud karena adanya <ph name="BEGIN_LINK_CROS_OSS" />software open source<ph name="END_LINK_CROS_OSS" /> tambahan, seperti <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation>
 <translation id="6055895534982063517">Tersedia Chromium versi baru, dan versi ini lebih cepat dari sebelumnya.</translation>
@@ -151,6 +158,7 @@
 <translation id="6893813176749746474">Chromium telah diperbarui, tetapi Anda belum menggunakannya selama setidaknya 30 hari.</translation>
 <translation id="6964305034639999644">Buka link di jendela sa&amp;maran Chromium</translation>
 <translation id="6990124437352146030">Chromium memerlukan izin akses ke mikrofon untuk situs ini</translation>
+<translation id="701244094609242530">Chromium tidak dapat memeriksa ekstensi Anda. Coba lagi nanti.</translation>
 <translation id="705851970750939768">Perbarui Chromium</translation>
 <translation id="7066436765290594559">Chromium OS tidak dapat menyinkronkan data Anda. Perbarui frasa sandi Sinkronisasi Anda.</translation>
 <translation id="7067091210845072982">Jika gambar tidak memiliki deskripsi yang berguna, Chromium akan mencoba memberikan deskripsi untuk Anda. Untuk membuat deskripsi, gambar akan dikirim ke Google.</translation>
@@ -193,6 +201,7 @@
 <translation id="8013436988911883588">Setelah Chromium memiliki akses, situs dapat meminta akses dari Anda.</translation>
 <translation id="81770708095080097">File ini berbahaya, jadi Chromium telah memblokirnya.</translation>
 <translation id="8248265253516264921">Jika gambar tidak memiliki deskripsi yang berguna, Chromium akan mencoba memberikan deskripsi untuk Anda. Untuk membuat deskripsi, gambar akan dikirim ke Google. Anda dapat menonaktifkannya kapan saja di setelan.</translation>
+<translation id="8266560134891435528">Chromium tidak dapat memeriksa sandi karena Anda tidak login</translation>
 <translation id="8276522524898344151">Chromium mencoba menyalin sandi.</translation>
 <translation id="8290862415967981663">File ini mungkin berbahaya, jadi Chromium telah memblokirnya.</translation>
 <translation id="8330519371938183845">Login untuk menyinkronkan dan mempersonalisasi Chromium di perangkat Anda</translation>
diff --git a/chrome/app/resources/chromium_strings_is.xtb b/chrome/app/resources/chromium_strings_is.xtb
index 45fb8c4..48e9e7de 100644
--- a/chrome/app/resources/chromium_strings_is.xtb
+++ b/chrome/app/resources/chromium_strings_is.xtb
@@ -94,6 +94,7 @@
 <translation id="4708774505295300557">Einhver skráði sig inn á Chromium úr þessari tölvu sem <ph name="ACCOUNT_EMAIL_LAST" />. Stofnaðu nýjan notanda í Chromium til að halda þínum upplýsingum aðskildum frá hinum notandanum.</translation>
 <translation id="4746050847053251315">Viltu samt loka Chromium?</translation>
 <translation id="4748217263233248895">Sérstök öryggisuppfærsla fyrir Chromium var tekin í notkun. Endurræstu núna og við opnum flipana þína aftur.</translation>
+<translation id="4750035648288509542">Næstum því uppfært! Endurræstu Chromium til að ljúka við uppfærslu. Huliðsgluggar enduropnast ekki.</translation>
 <translation id="479167709087336770">Þetta notar sömu ritvilluleit og er notuð í Google leit. Textinn sem þú skrifar í vafranum er sendur til Google. Þú getur alltaf breytt þessu í stillingunum.</translation>
 <translation id="4888717733111232871">Regla á innleið til að láta Chromium leyfa mDNS-umferð.</translation>
 <translation id="4943838377383847465">Chromium er í bakgrunnsstillingu.</translation>
diff --git a/chrome/app/resources/chromium_strings_it.xtb b/chrome/app/resources/chromium_strings_it.xtb
index aa2d557..13d910a9 100644
--- a/chrome/app/resources/chromium_strings_it.xtb
+++ b/chrome/app/resources/chromium_strings_it.xtb
@@ -92,6 +92,7 @@
 <translation id="4708774505295300557">Qualcuno ha già eseguito l'accesso a Chromium su questo computer come <ph name="ACCOUNT_EMAIL_LAST" />. Crea un nuovo utente Chromium per tenere separate le tue informazioni.</translation>
 <translation id="4746050847053251315">Vuoi chiudere comunque Chromium?</translation>
 <translation id="4748217263233248895">È stato appena applicato un aggiornamento di sicurezza speciale per Chromium. Riavvia ora e le schede verranno ripristinate.</translation>
+<translation id="4750035648288509542">Aggiornamento quasi terminato. Riavvia Chromium per terminare l'aggiornamento. Le finestre di navigazione in incognito non verranno riaperte.</translation>
 <translation id="479167709087336770">Viene usato lo stesso controllo ortografico utilizzato nella Ricerca Google. Il testo che digiti nel browser viene inviato a Google. Puoi modificare questo comportamento in qualsiasi momento nelle impostazioni.</translation>
 <translation id="4888717733111232871">Regola inbound per consentire il traffico mDNS in Chromium.</translation>
 <translation id="4943838377383847465">Chromium è in modalità background.</translation>
diff --git a/chrome/app/resources/chromium_strings_iw.xtb b/chrome/app/resources/chromium_strings_iw.xtb
index 811d9be..71785732 100644
--- a/chrome/app/resources/chromium_strings_iw.xtb
+++ b/chrome/app/resources/chromium_strings_iw.xtb
@@ -90,6 +90,7 @@
 <translation id="4708774505295300557">‏מישהו נכנס בעבר ל-Chromium מהמחשב הזה כ-<ph name="ACCOUNT_EMAIL_LAST" />. צור משתמש חדש ל-Chromium כדי לשמור על הפרדת המידע שלך.</translation>
 <translation id="4746050847053251315">‏לסגור את Chromium בכל זאת?</translation>
 <translation id="4748217263233248895">‏בוצע עדכון אבטחה מיוחד של Chromium. עכשיו עליך להפעיל מחדש ואנחנו נשחזר את הכרטיסיות.</translation>
+<translation id="4750035648288509542">‏העדכון כמעט הושלם. כדי להשלים את העדכון, יש להפעיל מחדש את Chromium. החלונות האנונימיים לא ייפתחו מחדש.</translation>
 <translation id="479167709087336770">‏נעשה כאן שימוש בבדיקת האיות של חיפוש Google. הטקסט המוקלד בדפדפן נשלח אל Google. אפשר לשנות את ההתנהגות הזו בכל שלב דרך ההגדרות.</translation>
 <translation id="4888717733111232871">‏כלל נכנס עבור Chromium על מנת לאפשר תנועת mDNS.</translation>
 <translation id="4943838377383847465">‏Chromium נמצא במצב רקע.</translation>
diff --git a/chrome/app/resources/chromium_strings_ja.xtb b/chrome/app/resources/chromium_strings_ja.xtb
index c33702a..0ded1c5 100644
--- a/chrome/app/resources/chromium_strings_ja.xtb
+++ b/chrome/app/resources/chromium_strings_ja.xtb
@@ -16,11 +16,13 @@
 <translation id="1779356040007214683">Chromium をより安全にご利用いただくため、<ph name="IDS_EXTENSION_WEB_STORE_TITLE" />で提供していない一部の拡張機能を無効にしました。これらは知らないうちに追加された可能性があります。</translation>
 <translation id="1808667845054772817">Chromium を再インストール</translation>
 <translation id="1881322772814446296">現在、管理対象アカウントでログインしており、あなたの Chromium プロフィールを管理者が制御できる状態になっています。あなたの Chromium データ(アプリ、ブックマーク、履歴、パスワードなどの設定)は永続的に <ph name="USER_NAME" /> に関連付けられます。このデータは Google アカウントのダッシュボードを介して削除できますが、このデータを別のアカウントに関連付けることはできなくなります。新しいプロフィールを作成して、既存の Chromium データを別に保管することができます。<ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium ですべてのパスワードを確認できません。24 時間後にもう一度お試しください。</translation>
 <translation id="1911763535808217981">この設定を無効にすると、Chromium にログインすることなく Gmail などの Google サイトにログインできます</translation>
 <translation id="1929939181775079593">Chromium が応答しません。今すぐ再起動しますか?</translation>
 <translation id="1966382378801805537">Chromium では既定のブラウザを判定または設定できません</translation>
 <translation id="2008474315282236005">このデバイスから 1 件の項目を削除します。後でデータを取得するには、<ph name="USER_EMAIL" /> として Chromium にログインしてください。</translation>
 <translation id="2147976119693222405">Chromium OS でデータを同期できませんでした。今すぐ問題を修正してください。</translation>
+<translation id="2185166961232948079">Chromium - ネットワークにログイン - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">パソコンを共有している場合、友だちや家族はそれぞれ Chromium を自分専用のブラウザとして自分用の設定をして使うことができます。</translation>
 <translation id="2347108572062610441">この拡張機能により、Chromium の起動時に表示されるページが変更されました。</translation>
 <translation id="2396765026452590966">拡張機能「<ph name="EXTENSION_NAME" />」により、Chromium の起動時に表示されるページが変更されました。</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">オプション: 使用状況データと障害レポートを Google に自動送信して Chromium の機能向上に役立てる。</translation>
 <translation id="2910007522516064972">Chromium について(&amp;C)</translation>
 <translation id="2977470724722393594">Chromium は最新版です</translation>
+<translation id="3032706164202344641">Chromium でパスワードを確認できません。しばらくしてからもう一度お試しください。</translation>
 <translation id="3032787606318309379">Chromium に追加...</translation>
 <translation id="3068515742935458733">障害レポートと<ph name="UMA_LINK" />を Google に自動送信して Chromium の機能向上に役立てる</translation>
 <translation id="3103660991484857065">インストーラ アーカイブを解凍できませんでした。Chromium をダウンロードし直してください。</translation>
@@ -72,6 +75,7 @@
 <translation id="3945058413678539331">Chromium がパスワードをコピーしようとしています。続行するには、Windows のパスワードを入力してください。</translation>
 <translation id="4036079820698952681"><ph name="BEGIN_LINK" />現在の設定<ph name="END_LINK" />を送信して Chromium の品質向上にご協力ください</translation>
 <translation id="4050175100176540509">最新バージョンに更新すると、重要なセキュリティ更新と新機能が適用されます。</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - ネットワークにログイン - Chromium</translation>
 <translation id="421369550622382712">Chromium の優れたアプリ、ゲーム、拡張機能、テーマをぜひご利用ください。</translation>
 <translation id="4216212958613226427">この言語が Chromium UI の表示に使用されます</translation>
 <translation id="4230135487732243613">Chromium データをこのアカウントにリンクしますか?</translation>
@@ -80,6 +84,7 @@
 <translation id="4407044323746248786">今すぐ Chromium を終了しますか?</translation>
 <translation id="4415566066719264597">Chromium をバックグラウンドで実行する</translation>
 <translation id="4423735387467980091">Chromium の設定</translation>
+<translation id="4544142686420020088">エラーが発生したため、Chromium が更新されませんでした。<ph name="BEGIN_LINK" />Chromium の更新に関する問題を解決してください。<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812"><ph name="USER_EMAIL_ADDRESS" /> としてログインしています。ログインしているすべてのデバイスで、ブックマーク、履歴、その他の設定にアクセスできます。</translation>
 <translation id="459535195905078186">Chromium アプリ</translation>
 <translation id="4677944499843243528">プロフィールは、別のコンピュータ(<ph name="HOST_NAME" />)の別の Chromium プロセス(<ph name="PROCESS_ID" />)で使用されているようです。Chromium はプロフィールが破損しないようにプロフィールをロックしています。他のプロセスがこのプロフィールを使用していないことが確実であれば、プロフィールのロックを解除して Chromium を再起動できます。</translation>
@@ -112,6 +117,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Chromium へようこそ</translation>
 <translation id="5895138241574237353">再起動</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ネットワークにログイン</translation>
 <translation id="5987687638152509985">同期を開始するには、Chromium を更新します</translation>
 <translation id="6013050204643758987">Chromium OS も <ph name="BEGIN_LINK_LINUX_OSS" />Linux(ベータ版)<ph name="END_LINK_LINUX_OSS" />も追加の<ph name="BEGIN_LINK_CROS_OSS" />オープンソース ソフトウェア<ph name="END_LINK_CROS_OSS" />によって実現しました。</translation>
 <translation id="6055895534982063517">Chromium がさらに速くなりました!最新バージョンをぜひお試しください。</translation>
@@ -151,6 +157,7 @@
 <translation id="6893813176749746474">Chromium が更新されましたが、30 日以上使用されていません。</translation>
 <translation id="6964305034639999644">Chromium のシークレット ウインドウでリンクを開く(&amp;G)</translation>
 <translation id="6990124437352146030">このサイトを利用するには、Chromium でマイクの使用を許可する必要があります</translation>
+<translation id="701244094609242530">Chromium で拡張機能を確認できません。しばらくしてからもう一度お試しください。</translation>
 <translation id="705851970750939768">Chromium を更新</translation>
 <translation id="7066436765290594559">Chromium OS はデータを同期できませんでした。同期パスフレーズを更新してください。</translation>
 <translation id="7067091210845072982">画像に有効な説明が設定されていない場合に、Chromium で説明を自動的に生成できるよう Google に画像が送信されます。</translation>
@@ -193,6 +200,7 @@
 <translation id="8013436988911883588">Chromium にアクセスを許可すると、ウェブサイトからアクセスをリクエストできるようになります。</translation>
 <translation id="81770708095080097">このファイルは危険なファイルであるため、Chromium でブロックしました。</translation>
 <translation id="8248265253516264921">画像に有効な説明が設定されていない場合に、Chromium で説明を自動的に生成できるよう Google に画像が送信されます。この機能は設定でいつでも無効にできます。</translation>
+<translation id="8266560134891435528">ログインしていないため、Chromium でパスワードを確認できません</translation>
 <translation id="8276522524898344151">Chromium がパスワードをコピーしようとしています。</translation>
 <translation id="8290862415967981663">このファイルは危険なファイルの可能性があるため、Chromium でブロックしました。</translation>
 <translation id="8330519371938183845">ログインすると、同期してカスタマイズした Chromium をどのデバイスでも使用できます</translation>
diff --git a/chrome/app/resources/chromium_strings_ka.xtb b/chrome/app/resources/chromium_strings_ka.xtb
index 1956756..3183ae92 100644
--- a/chrome/app/resources/chromium_strings_ka.xtb
+++ b/chrome/app/resources/chromium_strings_ka.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">Chromium-ის უსაფრთხოების გაზრდის მიზნით, ჩვენ გავთიშეთ რამდენიმე გაფართოება, რომელიც არ არის ჩამოთვლილი <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />-ში და, შესაძლოა, დამატებულია თქვენი თანხმობის გარეშე.</translation>
 <translation id="1808667845054772817">Chromium-ის ხელახალი ინსტალაცია</translation>
 <translation id="1881322772814446296">თქვენ შედიხართ სისტემაში მართული ანგარიშით და ამით აძლევთ ადმინისტრატორს კონტროლს თქვენს Chromium-ის პროფილზე. თქვენი Chromium-ის მონაცემები, როგორიცაა პროგრამები, სანიშნეები, ისტორია, პაროლები და სხვა პარამეტრები სამუდამოდ მიემაგრება <ph name="USER_NAME" />-ს. თქვენ შეძლებთ ამ მონაცემების წაშლას Google ანგარიშების საინფორმაციო დაფის მეშვეობით, თუმცა ამ მონაცემების დაკავშირებას სხვა ანგარიშთან ვერ შეძლებთ. სურვილისამებრ, შეგიძლიათ შექმნათ ახალი პროფილი, არსებული Chromium-ის მონაცემების ცალკე შესანახად. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium ვერ ახერხებს თქვენი ყველა პაროლის შემოწმებას. ცადეთ 24 საათში.</translation>
 <translation id="1911763535808217981">ამ პარამეტრის გამორთვის შემთხვევაში, Google-ის საიტებში (მაგალითად, Gmail-ში) შესვლას შეძლებთ Chromium-ში შესვლის გარეშე</translation>
 <translation id="1929939181775079593">Chromium არ პასუხობს. გავუშვათ ხელახლა?</translation>
 <translation id="1966382378801805537">Chromium ნაგულისხმევ ბრაუზერს ვერ საზღვრავს, ან ვერ აყენებს</translation>
 <translation id="2008474315282236005">ეს მოქმედება წაშლის 1 ერთეულს ამ მოწყობილობიდან. თქვენი მონაცემების მოგვიანებით მისაღებად, შედით Chromium-ში, როგორც <ph name="USER_EMAIL" />.</translation>
 <translation id="2147976119693222405">Chromium OS-მა ვერ მოახერხა თქვენი მონაცემების სინქრონიზაცია. შეასწორეთ ახლავე.</translation>
+<translation id="2185166961232948079">Chromium — ქსელში შესვლა — <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">თუ თქვენ გაზიარებული გაქვთ კომპიუტერი, თქვენი მეგობრები და ოჯახის წევრები შეძლებენ დამოუკიდებლად დათვალიერებას და Chromium-ის დაყენებას სურვილისამებრ.</translation>
 <translation id="2347108572062610441">ამ გაფართოებამ თქვენ მიერ Chromium-ის გაშვებისას ნაჩვენები გვერდი შეცვალა.</translation>
 <translation id="2396765026452590966">გაფართოებამ „<ph name="EXTENSION_NAME" />“ თქვენ მიერ Chromium-ის გაშვებისას ნაჩვენები გვერდი შეცვალა.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">არასავალდებულო: დაგვეხმარეთ Chromium-ის გაუმჯობესებაში, გამოყენების სტატისტიკისა და შეცდომების შესახებ მოხსენების Google-ში ავტომატური გაგზავნის გზით.</translation>
 <translation id="2910007522516064972">Chromium-ის შ&amp;ესახებ</translation>
 <translation id="2977470724722393594">Chromium განახლებულია</translation>
+<translation id="3032706164202344641">Chromium ვერ ახერხებს პაროლების შემოწმებას. ცადეთ მოგვიანებით.</translation>
 <translation id="3032787606318309379">Chromium-ში დამატება…</translation>
 <translation id="3068515742935458733">დაგვეხმარეთ Chromium-ის გაუმჯობესებაში: გამოგზავნეთ მოხსენებები შეცდომების და <ph name="UMA_LINK" />-ის შესახებ Google-ში</translation>
 <translation id="3103660991484857065">ინსტალაციის პროგრამამ ვერ ამოიღო ფაილები არქივიდან. ხელახლა ჩამოტვირთეთ Chromium.</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Chromium ცდილობს პაროლების კოპირებას. აღნიშნულის დასაშვებად აკრიფეთ თქვენი Windows-ის პაროლი ამის დასაშვებად.</translation>
 <translation id="4036079820698952681">ხელი შეუწყვეთ Chromium-ის გაუმჯობესებას <ph name="BEGIN_LINK" />მიმდინარე პარამეტრების<ph name="END_LINK" /> გამოგზავნის მეშვეობით</translation>
 <translation id="4050175100176540509">უსაფრთხოების მნიშვნელოვანი გაუმჯობესება და ახალი თვისებები ხელმისაწვდომია უახლეს ვერსიაში.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> — ქსელში შესვლა — Chromium</translation>
 <translation id="421369550622382712">აღმოაჩინეთ შესანიშნავი აპები, თამაშები, გაფართოებები და თემები Chromium-ისთვის.</translation>
 <translation id="4216212958613226427">ეს ენა გამოიყენება Chromium-ის სამომხმარებლო ინტერფეისისთვის</translation>
 <translation id="4230135487732243613">დავუკავშიროთ თქვენი Chromium მონაცემები ამ ანგარიშის?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">მაინც გსურთ Chromium-იდან გასვლა?</translation>
 <translation id="4415566066719264597">Chromium-ისთვის ფონურ რეჟიმში მუშაობის დაშვება</translation>
 <translation id="4423735387467980091">Chromium-ის მორგება და კონტროლი</translation>
+<translation id="4544142686420020088">Chromium-ის განახლება ვერ მოხერხდა შეფერხების გამო. <ph name="BEGIN_LINK" />შეასწორეთ Chromium-ის განახლებასთან დაკავშირებული პრობლემები და განუხორციელებელი განახლებები.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">თქვენ შესული ხართ, როგორც <ph name="USER_EMAIL_ADDRESS" />. ახლა შეგიძლიათ გახსნათ თქვენი სანიშნეები, ისტორია და სხვა პარამეტრები ყველა მოწყობილობიდან, რომელშიც შესული ხართ.</translation>
 <translation id="459535195905078186">Chromium პროგრამები</translation>
 <translation id="4677944499843243528">როგორც ჩანს, პროფილი გამოიყენება სხვა Chromium პროცესის მიერ (<ph name="PROCESS_ID" />) სხვა კომპიუტერში (<ph name="HOST_NAME" />). Chromium-მა დაბლოკა პროფილი, რათა არ დაზიანდეს. თუ დარწმუნებული ხართ, რომ სხვა პროცესები არ იყენებენ ამ პროფილს, შეგიძლიათ განბლოკოთ პროფილი და ხელახლა გაუშვათ Chromium.</translation>
@@ -114,6 +119,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">მოგესალმებათ Chromium!</translation>
 <translation id="5895138241574237353">გადატვირთვა</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> — ქსელში შესვლა</translation>
 <translation id="5987687638152509985">სინქრონიზაციის დასაწყებად, განაახლეთ Chromium</translation>
 <translation id="6013050204643758987">Chromium OS-ს უზრუნველყოფს ისეთი დამატებითი <ph name="BEGIN_LINK_CROS_OSS" />ღია კოდის პროგრამული უზრუნველყოფა<ph name="END_LINK_CROS_OSS" />, როგორიცაა <ph name="BEGIN_LINK_LINUX_OSS" />Linux (ბეტა)<ph name="END_LINK_LINUX_OSS" />.</translation>
 <translation id="6055895534982063517">ხელმისაწვდომია Chromium-ის ახალი ვერსია, რომელიც უფრო სწრაფია.</translation>
@@ -153,6 +159,7 @@
 <translation id="6893813176749746474">Chromium განახლდა, მაგრამ თქვენ მას არ იყენებდით მინიმუმ 30 დღის განმავლობაში.</translation>
 <translation id="6964305034639999644">ბმულის გახსნა Chromium-ის ინკო&amp;გნიტო ფანჯარაში</translation>
 <translation id="6990124437352146030">Chromium საჭიროებს თქვენს მიკროფონზე წვდომის ნებართვას ამ საიტისთვის</translation>
+<translation id="701244094609242530">Chromium ვერ ახერხებს გაფართოებების შემოწმებას. ცადეთ მოგვიანებით.</translation>
 <translation id="705851970750939768">განაახლეთ Chromium</translation>
 <translation id="7066436765290594559">Chromium OS-მა ვერ დაასინქრონა თქვენი მონაცემები. განაახლეთ სინქრონიზაციის საიდუმლო ფრაზა.</translation>
 <translation id="7067091210845072982">თუ სურათს არ ექნება სასარგებლო აღწერილობა, Chromium შეეცდება მის უზრუნველყოფას. აღწერილობების შესაქმნელად სურათები იგზავნება Google-ში.</translation>
@@ -194,6 +201,7 @@
 <translation id="8013436988911883588">Chromium-ისთვის წვდომის მინიჭების შემდეგ ცალკეული ვებსაიტები შეძლებს თქვენგან წვდომის მოთხოვნას.</translation>
 <translation id="81770708095080097">Chromium-მა დაბლოკა ეს ფაილი, რადგან ის სახიფათოა.</translation>
 <translation id="8248265253516264921">თუ სურათს არ ექნება სასარგებლო აღწერილობა, Chromium შეეცდება მის უზრუნველყოფას. აღწერილობების შესაქმნელად სურათები იგზავნება Google-ში. ამის გამორთვა ნებისმიერ დროს შეგიძლიათ პარამეტრებიდან.</translation>
+<translation id="8266560134891435528">Chromium ვერ ახერხებს თქვენი პაროლების შემოწმებას, რადგან შესული არ ხართ</translation>
 <translation id="8276522524898344151">Chromium ცდილობს პაროლების კოპირებას.</translation>
 <translation id="8290862415967981663">Chromium-მა დაბლოკა ეს ფაილი, რადგან ის შეიძლება სახიფათო იყოს.</translation>
 <translation id="8330519371938183845">შედით სისტემაში, რათა მოახდინოთ Chromium-ის სინქრონიზაცია და პერსონალიზება თქვენს ყველა მოწყობილობას შორის</translation>
diff --git a/chrome/app/resources/chromium_strings_kk.xtb b/chrome/app/resources/chromium_strings_kk.xtb
index 680bfd6..97e8db9 100644
--- a/chrome/app/resources/chromium_strings_kk.xtb
+++ b/chrome/app/resources/chromium_strings_kk.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">Chromium қауіпсіз ету үшін <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ішінде көрсетілмеген және сізге білдірмей қосылған болуы мүмкін кейбір кеңейтімдерді өшірдік.</translation>
 <translation id="1808667845054772817">Chromium қайта орнату</translation>
 <translation id="1881322772814446296">Бақыланатын есептік жазба арқылы кіріп, оның әкімшісіне Chromium профиліңізді басқару мүмкіндігін бердіңіз. Қолданбалар, бетбелгілер, журнал, құпия сөздер сияқты Chromium деректеріңіз және басқа параметрлер біржола <ph name="USER_NAME" /> пайдаланушысына байланыстырылады. Бұл деректерді Google есептік жазба бақылау тақтасы арқылы жоя аласыз, бірақ бұл деректерді басқа есептік жазбамен байланыстыра алмайсыз. Бар Chromium деректерін бөлек ұстау үшін қосымша жаңа профиль жасай аласыз. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium сіздің барлық құпия сөзіңізді тексере алмайды. 24 сағаттан кейін қайталап көріңіз.</translation>
 <translation id="1911763535808217981">Бұл функцияны өшіріп, Chromium браузеріне кірместен Gmail сияқты Google сайттарын пайдалана беруіңізге болады</translation>
 <translation id="1929939181775079593">Chromium жауап бермейді. Қазір қайта іске қосасыз ба?</translation>
 <translation id="1966382378801805537">Chromium әдепкі браузерді анықтай не орната алмайды</translation>
 <translation id="2008474315282236005">Құрылғыдан 1 элемент жойылады. Деректерді кейінірек алу үшін Chromium браузеріне <ph name="USER_EMAIL" /> болып кіріңіз.</translation>
 <translation id="2147976119693222405">Chromium OS деректеріңізді синхрондай алмады. Қазір түзетіңіз.</translation>
+<translation id="2185166961232948079">Chromium – Желіге кіру - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">Компьютерді бөлісетін болсаңыз, достарыңыз интернетке бөлек кіріп, Chromium жүйесін қалауынша орната алады.</translation>
 <translation id="2347108572062610441">Бұл кеңейтім Chromium браузерін іске қосқан кезде көрсетілетін бетті өзгертті.</translation>
 <translation id="2396765026452590966">«<ph name="EXTENSION_NAME" />» кеңейтімі Chromium браузерін іске қосқан кезде көрсетілетін бетті өзгертті.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">Қосымша: Google компаниясына пайдалану статистикасы мен жаңылыс есептерін автоматты түрде жіберу арқылы Chromium қызметін жақсартуға көмектесіңіз.</translation>
 <translation id="2910007522516064972">&amp;Chromium туралы</translation>
 <translation id="2977470724722393594">Chromium жаңартылған</translation>
+<translation id="3032706164202344641">Chromium сіздің құпия сөздеріңізді тексере алмай жатыр. Кейінірек қайталап көріңіз.</translation>
 <translation id="3032787606318309379">Chromium жүйесіне қосылуда…</translation>
 <translation id="3068515742935458733">Google компаниясына жаңылыс туралы есептер және <ph name="UMA_LINK" /> жіберу арқылы Chromium жақсартуға көмектесіңіз</translation>
 <translation id="3103660991484857065">Орнату құралы мұрағаттан шығара алмады. Chromium қолданбасын қайта жүктеңіз.</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Chromium құпия сөздерді көшіргісі келеді. Бұған рұқсат беру үшін Windows құпия сөзіңізді теріңіз.</translation>
 <translation id="4036079820698952681"><ph name="BEGIN_LINK" />Ағымдағы параметрлерді<ph name="END_LINK" /> хабарлау арқылы Chromium браузерін жақсартуға көмектесіңіз</translation>
 <translation id="4050175100176540509">Соңғы нұсқасында қауіпсіздік жақсартылып, жаңа мүмкіндіктер берілген.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> –Желіге кіру – Chromium</translation>
 <translation id="421369550622382712">Chromium үшін тамаша қолданбалар, ойындар мен тақырыптарды таба аласыз.</translation>
 <translation id="4216212958613226427">Бұл тіл Chromium интерфейсін көрсету үшін қолданылады.</translation>
 <translation id="4230135487732243613">Chromium деректеріңізді осы есептік жазбаға байланыстырасыз ба?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">Chromium браузерінен бәрібір шығасыз ба?</translation>
 <translation id="4415566066719264597">Chromium браузеріне фондық режимде жұмыс істеуге рұқсат беру</translation>
 <translation id="4423735387467980091">Chromium реттеу және басқару</translation>
+<translation id="4544142686420020088">Chromium жаңартылған жоқ. Бірдеңе дұрыс болмады. <ph name="BEGIN_LINK" />Chromium браузеріндегі жаңартуға қатысты мәселелерді түзетіңіз.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812"><ph name="USER_EMAIL_ADDRESS" /> ретінде кіргенсіз. Енді барлық кірген құрылғыларда бетбелгілеріңізді, журналыңызды және басқа параметрлерді көре аласыз.</translation>
 <translation id="459535195905078186">Chromium қолданбалары</translation>
 <translation id="4677944499843243528">Профиль басқа Chromium процесімен (<ph name="PROCESS_ID" />) басқа компьютерде (<ph name="HOST_NAME" />) пайдаланылып жатыр. Бүлінбеуі үшін Chromium профильді құлыптап қойды. Басқа процестер бұл профильді пайдаланып жатпаса, профильді құлыптан ашып, Chromium қайта іске қосуыңызға болады.</translation>
@@ -114,6 +119,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Chromium жүйесіне қош келдіңіз</translation>
 <translation id="5895138241574237353">Қайта іске қосу</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Желіге кіру</translation>
 <translation id="5987687638152509985">Chromium браузерін жаңартып, синхрондауды бастаңыз</translation>
 <translation id="6013050204643758987"><ph name="BEGIN_LINK_LINUX_OSS" />Linux (бета нұсқасы)<ph name="END_LINK_LINUX_OSS" /> сияқты Chromium операциялық жүйесі де қосымша <ph name="BEGIN_LINK_CROS_OSS" />бастапқы коды ашық бағдарлама<ph name="END_LINK_CROS_OSS" /> арқылы жұмыс істейді.</translation>
 <translation id="6055895534982063517">Жаңа жылдамырақ Chromium нұсқасы қолжетімді.</translation>
@@ -153,6 +159,7 @@
 <translation id="6893813176749746474">Chromium жаңартылды, бірақ оны кемінде 30 күн пайдаланбадыңыз.</translation>
 <translation id="6964305034639999644">Сілтемені Chromium инкогнито терезесінде ашу</translation>
 <translation id="6990124437352146030">Chromium браузеріне бұл сайтта микрофонды пайдалану үшін рұқсат керек</translation>
+<translation id="701244094609242530">Chromium сіздің барлық құпия сөзіңізді тексере алмайды. Кейінірек қайталап көріңіз.</translation>
 <translation id="705851970750939768">Chromium жаңарту</translation>
 <translation id="7066436765290594559">Chromium OS деректеріңізді синхрондай алмайды. Синхрондау құпия фразасын жаңартыңыз.</translation>
 <translation id="7067091210845072982">Егер суреттің пайдалы сипаттамасы болмаса, Chromium оны өзі ұсынып көреді. Сипаттамалар жасау үшін суреттер Google-ға жіберіледі.</translation>
@@ -195,6 +202,7 @@
 <translation id="8013436988911883588">Chromium браузерінің кіру рұқсаты болса, веб-сайттар сізден кіру рұқсатын сұрайды.</translation>
 <translation id="81770708095080097">Бұл файл қауіпті болғандықтан, Chromium оны бөгеді.</translation>
 <translation id="8248265253516264921">Егер суреттің пайдалы сипаттамасы болмаса, Chromium оны өзі ұсынып көреді. Сипаттамалар жасау үшін суреттер Google-ға жіберіледі. Бұл функцияны кез келген уақытта параметрлерден өшіріп қоюға болады.</translation>
+<translation id="8266560134891435528">Есептік жазбаға кірмегендіктен, Chromium сіздің құпия сөздеріңізді тексере алмайды.</translation>
 <translation id="8276522524898344151">Chromium құпия сөздерді көшіргісі келеді.</translation>
 <translation id="8290862415967981663">Бұл файл қауіпті болуы мүмкін болғандықтан, Chromium оны бөгеді.</translation>
 <translation id="8330519371938183845">Chromium браузерін барлық құрылғыларда синхрондап, параметрлерін жекелендіру үшін есептік жазбаңызға кіріңіз</translation>
diff --git a/chrome/app/resources/chromium_strings_km.xtb b/chrome/app/resources/chromium_strings_km.xtb
index 4739be9..4753de0 100644
--- a/chrome/app/resources/chromium_strings_km.xtb
+++ b/chrome/app/resources/chromium_strings_km.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">ដើម្បីធ្វើឲ្យ Chromium មានសុវត្ថិភាពជាងមុន យើងបានបិទដំណើរកម្មវិធីបន្ថែមមួយចំនួនដែលមិនត្រូវបានរាយនៅក្នុង <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ហើយអាចត្រូវបានបន្ថែមដោយពុំមានការជូនដំណឹងដល់អ្នក។</translation>
 <translation id="1808667845054772817">តំឡើង Chromium ឡើងវិញ</translation>
 <translation id="1881322772814446296">អ្នកកំពុងចូលជាមួយគណនីដែលបានគ្រប់គ្រង ហើយផ្តល់ឲ្យអ្នកគ្រប់គ្រងនូវការគ្រប់គ្រងលើទម្រង់ Chromium របស់អ្នក។ ទិន្នន័យ Chromium របស់អ្នក ដូចជាកម្មវិធី គេហទំព័រ ប្រវត្តិ ពាក្យសម្ងាត់ និងការកំណត់ផ្សេងទៀតរបស់អ្នកនឹងភ្ជាប់ជាមួយ <ph name="USER_NAME" /> ជាអចិន្ត្រៃយ៍។ អ្នកនឹងអាចលុបទិន្នន័យនេះតាមរយៈ Google Accounts Dashboard ប៉ុន្តែអ្នកនឹងមិនអាចភ្ជាប់ទិន្នន័យនេះជាមួយគណនីដ៏ទៃទៀតឡើយ។ ជាជម្រើស អ្នកអាចបង្កើតទម្រង់ថ្មីដើម្បីរក្សាទិន្នន័យ Chromium ដែលមានស្រាប់របស់អ្នកដាច់ដោយឡែក។ <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium មិនអាចពិនិត្យ​ពាក្យសម្ងាត់ទាំងអស់របស់អ្នកបានទេ។ សូមព្យាយាមម្ដងទៀតក្រោយរយៈពេល 24 ម៉ោង។</translation>
 <translation id="1911763535808217981">ប្រសិនបើ​បិទ​មុខងារនេះ មានន័យ​ថាអ្នក​អាចចូល​គេហទំព័រផ្សេងៗ​របស់ Google ដូចជា Gmail ដោយមិន​ចាំបាច់ចូល Chromium នោះទេ</translation>
 <translation id="1929939181775079593">Chromium មិនឆ្លើយតប។ បើកដំណើរការឡើងវិញឥឡូវនេះ?</translation>
 <translation id="1966382378801805537">Chromium មិនអាច​សម្រេចយក ឬ​កំណត់កម្មវិធីរុករក​លំនាំដើម​បានទេ</translation>
 <translation id="2008474315282236005">វា​នឹង​លុប​ធាតុ 1 ចេញ​ពី​ឧបករណ៍​នេះ។ ដើម្បី​ទាញ​យក​ទិន្នន័យ​របស់អ្នក​មកវិញ​នៅ​ពេល​ក្រោយ សូម​ចូល​ទៅ​កាន់ Chromium ជា <ph name="USER_EMAIL" /> ។</translation>
 <translation id="2147976119693222405">Chromium OS មិនអាចធ្វើ​សមកាលកម្ម​ទិន្នន័យ​របស់អ្នក​បានទេ។ ដោះស្រាយ​ឥឡូវនេះ​។</translation>
+<translation id="2185166961232948079">Chromium - ការចូលបណ្ដាញ - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">ប្រសិនបើអ្នកចែករំលែកកុំព្យូទ័រ មិត្តភ័ក្ត និងគ្រួសារអាចរុករកដាច់ដោយឡែក ហើយតំឡើង Chromium តាមរបៀបដែលអ្នកចង់បាន។</translation>
 <translation id="2347108572062610441">កម្មវិធីបន្ថែមនេះបានប្តូរអ្វីដែលបានបង្ហាញនៅលើទំព័រនៅពេលអ្នកចាប់ផ្តើម Chromium។</translation>
 <translation id="2396765026452590966">កម្មវិធីបន្ថែម "<ph name="EXTENSION_NAME" />" បានប្តូរអ្វីដែលបានបង្ហាញនៅលើទំព័រនៅពេលអ្នកចាប់ផ្តើម Chromium។</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">ស្រេចចិត្ត៖ ជួយធ្វើឲ្យ  Chromium ប្រសើរជាងមុនដោយការផ្ញើស្ថិតិការប្រើប្រាស់ និងរបាយការណ៍ការគាំងទៅ Google ដោយស្វ័យប្រវត្តិ។</translation>
 <translation id="2910007522516064972">អំពី Chromium</translation>
 <translation id="2977470724722393594">Chromium នេះជា​កំណែថ្មី​ហើយ</translation>
+<translation id="3032706164202344641">Chromium មិនអាចពិនិត្យ​ពាក្យសម្ងាត់របស់អ្នកបានទេ។ សូមព្យាយាមម្តងទៀតនៅពេលក្រោយ។</translation>
 <translation id="3032787606318309379">កំពុងបន្ថែមទៅ Chromium...</translation>
 <translation id="3068515742935458733">ជួយធ្វើឲ្យ Chromium ប្រសើរជាងមុនដោយការផ្ញើរបាយការណ៍គាំង និង <ph name="UMA_LINK" /> ទៅ Google</translation>
 <translation id="3103660991484857065">កម្មវិធីតំឡើងបានបរាជ័យក្នុងការពន្លាបណ្ណាសារ។ សូមទាញយក Chromium ម្តងទៀត។</translation>
@@ -75,6 +78,7 @@
 <translation id="3945058413678539331">Chromium កំពុង​ព្យាយាម​ចម្លង​ពាក្យសម្ងាត់។ សូម​វាយបញ្ចូល​ពាក្យសម្ងាត់ Windows របស់អ្នក ដើម្បី​អនុញ្ញាត​ការចម្លងនេះ។</translation>
 <translation id="4036079820698952681">ជួយ​ធ្វើឲ្យ Chromium ប្រសើរ​ជាងមុន​ដោយ​រាយការណ៍​អំពី <ph name="BEGIN_LINK" />ការកំណត់​បច្ចុប្បន្ន<ph name="END_LINK" /></translation>
 <translation id="4050175100176540509">ការធ្វើឲ្យប្រសើរឡើងផ្នែកសុវត្ថិភាពសំខាន់ៗ និងលក្ខណៈពិសេសថ្មីៗមាននៅក្នុងកំណែថ្មីបំផុតនេះ។</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - ការចូលបណ្ដាញ - Chromium</translation>
 <translation id="421369550622382712">ស្វែងរកកម្មវិធី ហ្គេម កម្មវិធីបន្ថែម និងផ្ទៃខាងក្រោយដ៏អស្ចារ្យសម្រាប់ Chromium។</translation>
 <translation id="4216212958613226427">ភាសានេះ​ត្រូវបាន​ប្រើ ដើម្បី​បង្ហាញ Chromium UI</translation>
 <translation id="4230135487732243613">ភ្ជាប់ទិន្នន័យ Chromium របស់អ្នកទៅគណនីនេះទេ?</translation>
@@ -83,6 +87,7 @@
 <translation id="4407044323746248786">នៅ​តែចង់​ចាក​ចេញពី Chromium ឬ?</translation>
 <translation id="4415566066719264597">អនុញ្ញាត​ឱ្យ Chromium ដំណើរការ​នៅ​ផ្ទៃខាងក្រោយ</translation>
 <translation id="4423735387467980091">កែសម្រួល និងគ្រប់គ្រង Chromium</translation>
+<translation id="4544142686420020088">Chromium មិន​បានដំឡើងកំណែទេ មានអ្វីមួយខុសប្រក្រតី។ <ph name="BEGIN_LINK" />សូមដោះស្រាយបញ្ហា​នៃការដំឡើងកំណែ Chromium និងការដំឡើងកំណែដែលមិនបានសម្រេចផ្សេងៗ។<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">អ្នកបានចូលជា <ph name="USER_EMAIL_ADDRESS" />។ ឥឡូវនេះ អ្នកអាចចូលប្រើចំណាំ ប្រវត្តិ និងការកំណត់ផ្សេងទៀតនៅលើឧបករណ៍ដែលបានចូលរបស់អ្នកទាំងអស់។</translation>
 <translation id="459535195905078186">Chromium កម្មវិធី</translation>
 <translation id="4677944499843243528">ទម្រង់នេះបង្ហាញថាមានការប្រើប្រាស់ដោយដំណើរការ Chromium ដទៃ (<ph name="PROCESS_ID" />) នៅលើកុំព្យូទ័រដទៃ (<ph name="HOST_NAME" />)។ Chromium បានចាក់សោទម្រង់ ដូច្នេះវាមិនជួបបញ្ហា។ ប្រសិនបើអ្នកប្រាកដថាមិនមានដំណើរការដទៃកំពុងប្រើទម្រង់នេះទេ អ្នកអាចដោះសោទម្រង់ ហើយបើកដំណើរការ Chromium ឡើងវិញ។</translation>
@@ -115,6 +120,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">ស្វាគមន៍មកកាន់ Chromium</translation>
 <translation id="5895138241574237353">ចាប់ផ្តើមឡើងវិញ</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ការចូល​បណ្ដាញ</translation>
 <translation id="5987687638152509985">អាប់ដេត Chromium ដើម្បីចាប់ផ្តើមសមកាលកម្ម</translation>
 <translation id="6013050204643758987">Chromium OS អាចបង្កើត​ឡើងបានដោយ <ph name="BEGIN_LINK_CROS_OSS" />កម្មវិធីកូដ​ចំហ<ph name="END_LINK_CROS_OSS" />បន្ថែម​ ដូចនៅ​ក្នុង <ph name="BEGIN_LINK_LINUX_OSS" />Linux (បេតា)<ph name="END_LINK_LINUX_OSS" /> ដែរ។</translation>
 <translation id="6055895534982063517">មានកំណែ Chromium ថ្មី ហើយវាលឿនជាងពេលណាទាំងអស់។</translation>
@@ -154,6 +160,7 @@
 <translation id="6893813176749746474">Chromium ត្រូវបានធ្វើបច្ចុប្បន្នភាព ប៉ុន្តែអ្នកមិនអាចប្រើវារយៈពេលយ៉ាងហោចណាស់ 30 ថ្ងៃ។</translation>
 <translation id="6964305034639999644">បើក​តំណ​នៅក្នុងវិនដូ​ឯកជន Chromium</translation>
 <translation id="6990124437352146030">Chromium ត្រូវ​ការ​ការអនុញ្ញាត​ដើម្បី​ចូល​ប្រើ​មីក្រូហ្វូន​របស់អ្នក​សម្រាប់ទំព័រនេះ</translation>
+<translation id="701244094609242530">Chromium មិនអាចពិនិត្យ​កម្មវិធី​បន្ថែម​របស់អ្នកបានទេ។ សូមព្យាយាមម្តងទៀតនៅពេលក្រោយ។</translation>
 <translation id="705851970750939768">ធ្វើបច្ចុប្បន្នភាព Chromium</translation>
 <translation id="7066436765290594559">Chromium OS មិនអាចធ្វើសមកម្មទិន្នន័យរបស់អ្នកទេ។ សូមធ្វើបច្ចុប្បន្នភាពឃ្លាសម្ងាត់ សមកម្ម របស់អ្នក។</translation>
 <translation id="7067091210845072982">ប្រសិនបើរូបភាពមិនមាន​ការពណ៌នា​ដែលមានប្រយោជន៍ Chromium នឹង​ព្យាយាមផ្ដល់​ការពណ៌នា​ដែលមានប្រយោជន៍សម្រាប់​អ្នក។ រូបភាព​ត្រូវបានផ្ញើ​ទៅ Google ដើម្បី​បង្កើត​ការពណ៌នា។</translation>
@@ -196,6 +203,7 @@
 <translation id="8013436988911883588">បន្ទាប់ពី Chromium មានសិទ្ធិចូលប្រើហើយ គេហទំព័រ​នឹង​អាច​ស្នើ​សុំ​សិទ្ធិ​ចូល​ប្រើពី​អ្នកបាន។</translation>
 <translation id="81770708095080097">ឯកសារនេះមានគ្រោះថ្នាក់ ហេតុដូច្នេះហើយបានជា Chromium រារាំងវា។</translation>
 <translation id="8248265253516264921">ប្រសិនបើរូបភាពមិនមាន​ការពណ៌នា​ដែលមានប្រយោជន៍ Chromium នឹង​ព្យាយាមផ្ដល់​ការពណ៌នា​ដែលមានប្រយោជន៍សម្រាប់​អ្នក។ រូបភាព​ត្រូវបានផ្ញើ​ទៅ Google ដើម្បី​បង្កើត​ការពណ៌នា។ អ្នកអាចបិទ​សកម្មភាពនេះ​នៅក្នុងការកំណត់​បានគ្រប់ពេល។</translation>
+<translation id="8266560134891435528">Chromium មិន​អាច​ពិនិត្យពាក្យសម្ងាត់របស់អ្នកបានទេ ដោយសារអ្នកមិនបានចូលគណនី</translation>
 <translation id="8276522524898344151">Chromium កំពុង​ព្យាយាម​ចម្លង​ពាក្យសម្ងាត់។</translation>
 <translation id="8290862415967981663">ឯកសារនេះអាចនឹងបង្កគ្រោះថ្នាក់ ហេតុដូច្នេះហើយបានជា Chromium រារាំងវា។</translation>
 <translation id="8330519371938183845">ចូលគណនី​ដើម្បីធ្វើ​សមកាលកម្ម និង​កំណត់ Chromium ឱ្យ​ស្រប​នឹង​អ្នក​នៅលើ​ឧបករណ៍​នានា</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb
index 75e44a3..8b1e9aa 100644
--- a/chrome/app/resources/chromium_strings_kn.xtb
+++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -16,11 +16,13 @@
 <translation id="1779356040007214683">Chromium  ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು, <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ನಲ್ಲಿ ನಾವು ಪಟ್ಟಿ ಮಾಡಲಾದ ಕೆಲವು ವಿಸ್ತರಣೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದೇವೆ ಮತ್ತು ಇದು ಗಮನಕ್ಕೆ ಬಾರದೇ ಸೇರಿಸಿರಬಹುದು.</translation>
 <translation id="1808667845054772817">Chromium ಅನ್ನು ಮರುಸ್ಥಾಪಿಸು</translation>
 <translation id="1881322772814446296">ನೀವು ನಿರ್ವಹಿಸಲಾದ ಖಾತೆಯೊಂದಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡುತ್ತಿರುವಿರಿ ಮತ್ತು ನಿಮ್ಮ Chromium ಪ್ರೊಫೈಲ್ ಮೂಲಕ ಅದರ ನಿರ್ವಾಹಕ ನಿಯಂತ್ರಣವನ್ನು ನೀಡುತ್ತಿರುವಿರಿ. ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಹಾಗೂ ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳಂತಹ ನಿಮ್ಮ Chromium ಡೇಟಾವನ್ನು <ph name="USER_NAME" /> ಅವರಿಗೆ ಶಾಶ್ವತವಾಗಿ ಬಂಧಿಸಲಾಗುತ್ತದೆ. Google ಖಾತೆಗಳ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಮೂಲಕ ಈ ಡೇಟಾವನ್ನು ಅಳಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯ, ಆದರೆ ಬೇರೊಂದು ಖಾತೆಯೊಂದಿಗೆ ಈ ಡೇಟಾವನ್ನು ಸಂಯೋಜಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ನಿಮ್ಮ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ Chromium ಡೇಟಾವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಲು ನೀವು ಐಚ್ಛಿಕವಾಗಿ ಹೊಸ ಪ್ರೊಫೈಲ್ ಅನ್ನು ರಚಿಸಬಹುದು. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium ಗೆ ನಿಮ್ಮ ಎಲ್ಲಾ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. 24 ಗಂಟೆಗಳ ಬಳಿಕ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="1911763535808217981">ಇದನ್ನು ಆಫ್ ಮಾಡುವ ಮೂಲಕ, ನೀವು Chromium ಗೆ ಸೈನ್ ಇನ್ ಮಾಡದೆಯೇ Gmail ನಂತಹ Google ಸೈಟ್‌ಗಳಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಬಹುದು</translation>
 <translation id="1929939181775079593">Chromium ಸ್ಪಂದಿಸುತ್ತಿಲ್ಲ. ಇದೀಗ ಮರುಪ್ರಾರಂಭಿಸುವುದೇ?</translation>
 <translation id="1966382378801805537">ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅನ್ನು ನಿರ್ಧರಿಸಲು ಅಥವಾ ಹೊಂದಿಸಲು Chromium ಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ</translation>
 <translation id="2008474315282236005">ಈ ಸಾಧನದಿಂದ 1 ಐಟಂ ಅನ್ನು ಇದು ಅಳಿಸುತ್ತದೆ. ನಂತರ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಮರುಪಡೆಯಲು, <ph name="USER_EMAIL" /> ನಂತೆ Chromium ಗೆ ಸೈನ್‌ಇನ್ ಮಾಡಿ.</translation>
 <translation id="2147976119693222405">ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chromium OS ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಈಗಲೇ ಸರಿಪಡಿಸಿ.</translation>
+<translation id="2185166961232948079">Chromium - ನೆಟ್‌ವರ್ಕ್ ಸೈನ್ ಇನ್ - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">ನೀವು ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಹಂಚಿಕೊಂಡರೆ, ಸ್ನೇಹಿತರು ಮತ್ತು ಕುಟುಂಬದವರು ಪ್ರತ್ಯೇಕವಾಗಿ ಬ್ರೌಸ್ ಮಾಡಬಹುದು ಮತ್ತು Chromium ಅನ್ನು ಅವರಿಗೆ ಬೇಕಾದಂತೆ ಹೊಂದಿಸಿಕೊಳ್ಳಬಹುದು.</translation>
 <translation id="2347108572062610441">ನೀವು Chromium ಪ್ರಾರಂಭಿಸಿದಾಗ ಯಾವ ಪುಟ ತೋರಿಸಬೇಕೆಂಬುದನ್ನು ಈ ವಿಸ್ತರಣೆಯು ಬದಲಾಯಿಸಿದೆ.</translation>
 <translation id="2396765026452590966">ನೀವು Chromium ಪ್ರಾರಂಭಿಸಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯು ಬದಲಾಯಿಸಿದೆ.</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">ಐಚ್ಚಿಕ: Google ಗೆ ಬಳಕೆಯ ಅಂಕಿಅಂಶಗಳು ಮತ್ತು ಕ್ರ್ಯಾಷ್ ವರದಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುವುದರಿಂದ Chromium ಅನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಿ.</translation>
 <translation id="2910007522516064972">&amp;Chromium ಕುರಿತು</translation>
 <translation id="2977470724722393594">Chromium ಅಪ್‌ ಟು ಡೇಟ್‌ ಆಗಿದೆ</translation>
+<translation id="3032706164202344641">Chromium ಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="3032787606318309379">Chromium ಗೆ ಸೇರಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="3068515742935458733">Google ಗೆ ಕ್ರ್ಯಾಶ್ ವರದಿಗಳನ್ನು ಮತ್ತು <ph name="UMA_LINK" /> ಕಳುಹಿಸುವುದರಿಂದ Chromium ಅನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation>
 <translation id="3103660991484857065">ಆರ್ಕೈವ್ ಅನ್ನು ಸಂಕ್ಷೇಪ ಮಾಡದಿರಲು ಸ್ಥಾಪಕ ವಿಫಲಗೊಂಡಿದೆ. ದಯವಿಟ್ಟು Chromium ಅನ್ನು ಪುನಃ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ.</translation>
@@ -70,6 +73,7 @@
 <translation id="3945058413678539331">Chromium, ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಕಲಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ. ಇದನ್ನು ಅನುಮತಿಸಲು ನಿಮ್ಮ Windows ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಟೈಪ್ ಮಾಡಿ.</translation>
 <translation id="4036079820698952681"><ph name="BEGIN_LINK" />ಪ್ರಸ್ತುತ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು<ph name="END_LINK" /> ವರದಿ ಮಾಡುವ ಮೂಲಕ Chromium ಅನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation>
 <translation id="4050175100176540509">ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯಲ್ಲಿ ಪ್ರಮುಖವಾದ ಭದ್ರತಾ ಸುಧಾರಣೆಗಳು ಮತ್ತು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು ಲಭ್ಯವಿದೆ.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - ನೆಟ್‌ವರ್ಕ್ ಸೈನ್ ಇನ್ - Chromium</translation>
 <translation id="421369550622382712">Chromium ಗಾಗಿ ಅದ್ಭುತ ಅಪ್ಲಿಕೇಶನ್‌‌ಗಳು, ಗೇಮ್‌ಗಳು, ವಿಸ್ತರಣೆಗಳು ಹಾಗೂ ಥೀಮ್‌ಗಳನ್ನು ಅನ್ವೇಷಿಸಿ.</translation>
 <translation id="4216212958613226427">Chromium UI ತೋರಿಸಲು ಈ ಭಾಷೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ</translation>
 <translation id="4230135487732243613">ಈ ಖಾತೆಗೆ ನಿಮ್ಮ Chromium ಡೇಟಾವನ್ನು ಲಿಂಕ್ ಮಾಡುವುದೇ?</translation>
@@ -78,6 +82,7 @@
 <translation id="4407044323746248786">ಹೇಗಿದ್ದರೂ Chromium ನಿಂದ ನಿರ್ಗಮಿಸುವುದೇ?</translation>
 <translation id="4415566066719264597">Chromium ಹಿನ್ನೆಲೆಯಲ್ಲಿ ರನ್ ಆಗಲು ಅನುಮತಿಸಿ</translation>
 <translation id="4423735387467980091">Chromium ಅನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ</translation>
+<translation id="4544142686420020088">Chromium ಅಪ್‌ಡೇಟ್ ಆಗಲಿಲ್ಲ, ಏನೋ ಸಮಸ್ಯೆಯಾಗಿದೆ. <ph name="BEGIN_LINK" />Chromium ಅಪ್‌ಡೇಟ್ ಸಮಸ್ಯೆಗಳು ಹಾಗೂ ವಿಫಲವಾದ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಸರಿಪಡಿಸಿ.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812"><ph name="USER_EMAIL_ADDRESS" /> ನಂತೆ ಸೈನ್ ಇನ್ ಮಾಡಿರುವಿರಿ. ನೀವು ಇದೀಗ ನಿಮ್ಮ ಎಲ್ಲಾ ಸೈನ್ ಇನ್ ಮಾಡಿರುವ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು.</translation>
 <translation id="459535195905078186">Chromium ಅಪ್ಲಿಕೇಶನ್‌ಗಳು</translation>
 <translation id="4677944499843243528">ಮತ್ತೊಂದು ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ (<ph name="HOST_NAME" />) ಇನ್ನೊಂದು Chromium ಪ್ರಕ್ರಿಯೆಯ (<ph name="PROCESS_ID" />) ಮೂಲಕ ಪ್ರೊಫೈಲ್ ಬಳಕೆಯಲ್ಲಿರುವಂತೆ ತೋರುತ್ತಿದೆ. ಪ್ರೊಫೈಲ್ ದೋಷಪೂರಿತಗೊಳ್ಳದಂತೆ ಅದನ್ನು Chromium ಲಾಕ್ ಮಾಡಿದೆ. ಇತರ ಯಾವುದೇ ಪ್ರಕ್ರಿಯೆಗಳು ಈ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಬಳಸುತ್ತಿಲ್ಲವೆಂದು ನಿಮಗೆ ಖಚಿತವಾಗಿದ್ದರೆ, ನೀವು ಪ್ರೊಫೈಲ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಬಹುದು ಮತ್ತು Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬಹುದು.</translation>
@@ -110,6 +115,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Chromium ಗೆ ಸುಸ್ವಾಗತ</translation>
 <translation id="5895138241574237353">ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ನೆಟ್‌ವರ್ಕ್ ಸೈನ್ ಇನ್</translation>
 <translation id="5987687638152509985">ಸಿಂಕ್ ಪ್ರಾರಂಭಿಸಲು Chromium ಅಪ್‌ಡೇಟ್ ಮಾಡಿ</translation>
 <translation id="6013050204643758987">Chromium OS ಅನ್ನು, <ph name="BEGIN_LINK_LINUX_OSS" />Linux ನಂತೆಯೇ (ಬೀಟಾ)<ph name="END_LINK_LINUX_OSS" /> ಹೆಚ್ಚುವರಿ <ph name="BEGIN_LINK_CROS_OSS" />ಓಪನ್ ಸೋರ್ಸ್ ಸಾಫ್ಟ್‌ವೇರ್‌ನ<ph name="END_LINK_CROS_OSS" /> ಸಹಾಯದಿಂದ ಒದಗಿಸಲಾಗಿದೆ.</translation>
 <translation id="6055895534982063517">Chromium ನ ಹೊಸ ಆವೃತ್ತಿ ಲಭ್ಯವಿದೆ, ಮತ್ತು ಇದು ಎಂದಿಗಿಂತಲೂ ವೇಗವಾಗಿದೆ.</translation>
@@ -147,6 +153,7 @@
 <translation id="6893813176749746474">Chromium ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲಾಗಿದೆ, ಆದರೆ ನೀವು ಕನಿಷ್ಠ 30 ದಿನಗಳವರೆಗಾದರೂ ಇದನ್ನು ಬಳಸಿರಲಿಕ್ಕಿಲ್ಲ.</translation>
 <translation id="6964305034639999644">Chromium ಅ&amp;ದೃಶ್ಯ ವಿಂಡೋದಲ್ಲಿ ಲಿಂಕ್ ತೆರೆಯಿರಿ</translation>
 <translation id="6990124437352146030">ಈ ಸೈಟ್‌ಗಾಗಿ ನಿಮ್ಮ ಮೈಕ್ರೊಫೋನ್‌ಗೆ ಪ್ರವೇಶಿಸಲು Chromium ಗೆ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ</translation>
+<translation id="701244094609242530">Chromium ಗೆ ನಿಮ್ಮ ವಿಸ್ತರಣೆಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="705851970750939768">Chromium ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ</translation>
 <translation id="7066436765290594559">ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chromium OS ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ.</translation>
 <translation id="7067091210845072982">ಚಿತ್ರದಲ್ಲಿ ಉಪಯುಕ್ತ ವಿವರಣೆಯು ಇಲ್ಲದಿದ್ದರೆ, Chromium ನಿಮಗಾಗಿ ಒಂದು ವಿವರಣೆಯನ್ನು ಒದಗಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ವಿವರಣೆಗಳನ್ನು ರಚಿಸಲು, ಚಿತ್ರಗಳನ್ನು Google ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ.</translation>
@@ -186,6 +193,7 @@
 <translation id="8013436988911883588">Chromium ಒಮ್ಮೆ ಪ್ರವೇಶವನ್ನು ಪಡೆದ ಬಳಿಕ, ಪ್ರವೇಶಕ್ಕಾಗಿ ನಿಮ್ಮನ್ನು ಕೇಳಲು ವೆಬ್‍ಸೈಟ್‍ಗಳಿಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation>
 <translation id="81770708095080097">ಈ ಫೈಲ್ ಅಪಾಯಕಾರಿಯಾಗಿದೆ, ಹೀಗಾಗಿ Chromium ಇದನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ.</translation>
 <translation id="8248265253516264921">ಚಿತ್ರದಲ್ಲಿ ಉಪಯುಕ್ತ ವಿವರಣೆಯು ಇಲ್ಲದಿದ್ದರೆ, Chromium ನಿಮಗಾಗಿ ಒಂದು ವಿವರಣೆಯನ್ನು ಒದಗಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ವಿವರಣೆಗಳನ್ನು ರಚಿಸಲು, ಚಿತ್ರಗಳನ್ನು Google ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಇದನ್ನು ನೀವು ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಯಾವಾಗ ಬೇಕಾದರೂ ಆಫ್ ಮಾಡಬಹುದು.</translation>
+<translation id="8266560134891435528">ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿರದ ಕಾರಣ, Chromium ಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="8276522524898344151">Chromium, ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಕಲಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ.</translation>
 <translation id="8290862415967981663">ಈ ಫೈಲ್ ಅಪಾಯಕಾರಿಯಾಗಿರಬಹುದು, ಹೀಗಾಗಿ Chromium ಇದನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ.</translation>
 <translation id="8330519371938183845">ನಿಮ್ಮ ಸಾಧನಗಳಲ್ಲಿ Chromium ಅನ್ನು ಸಿಂಕ್ ಮಾಡಲು ಮತ್ತು ವೈಯಕ್ತೀಕರಿಸಲು ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
diff --git a/chrome/app/resources/chromium_strings_ko.xtb b/chrome/app/resources/chromium_strings_ko.xtb
index b4d367e..ea6a0c7 100644
--- a/chrome/app/resources/chromium_strings_ko.xtb
+++ b/chrome/app/resources/chromium_strings_ko.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">Google에서는 Chromium의 보안을 강화하기 위해 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />에 표시되지 않고 사용자 모르게 추가되었을 수 있는 일부 확장 프로그램의 사용을 중지했습니다.</translation>
 <translation id="1808667845054772817">Chromium 재설치</translation>
 <translation id="1881322772814446296">관리 계정으로 로그인하고 Chromium 프로필에 대한 관리자 제어권을 부여하려고 합니다. 앱, 북마크, 방문 기록, 비밀번호 및 기타 설정 등 Chromium 데이터가 <ph name="USER_NAME" /> 계정에 영구적으로 연결됩니다. 이후 이 데이터를 Google 계정 대시보드에서 삭제할 수는 있지만 다른 계정에 연결할 수는 없습니다. 기존 Chromium 데이터를 유지하려면 새 프로필을 만드는 방법이 있습니다. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium에서 모든 비밀번호를 확인할 수 없습니다. 24시간 후 다시 시도하세요.</translation>
 <translation id="1911763535808217981">이 기능을 사용 중지하면 Chromium에 로그인하지 않고도 Gmail 등의 Google 사이트에 로그인할 수 있습니다.</translation>
 <translation id="1929939181775079593">Chromium이 응답하지 않습니다. 다시 시작하시겠습니까?</translation>
 <translation id="1966382378801805537">Chromium에서 기본 브라우저를 확인하거나 설정할 수 없습니다.</translation>
 <translation id="2008474315282236005">항목 1개가 기기에서 삭제됩니다. 나중에 데이터를 가져오려면 Chromium에 <ph name="USER_EMAIL" />(으)로 로그인하세요.</translation>
 <translation id="2147976119693222405">Chromium OS에서 데이터를 동기화할 수 없습니다. 지금 문제를 해결해 주세요.</translation>
+<translation id="2185166961232948079">Chromium - 네트워크 로그인 - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">컴퓨터를 공유하는 경우 친구와 가족이 개별적으로 탐색하고 원하는 대로 Chromium을 설정할 수 있습니다.</translation>
 <translation id="2347108572062610441">Chromium을 시작하면 표시되는 페이지가 이 확장 프로그램으로 인해 변경되었습니다.</translation>
 <translation id="2396765026452590966">Chromium을 시작하면 표시되는 페이지가 '<ph name="EXTENSION_NAME" />' 확장 프로그램으로 인해 변경되었습니다.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">선택사항: 사용 통계 및 비정상 종료 보고서가 Google로 자동 전송되도록 선택하시면 Chromium을 개선하는 데 도움이 됩니다.</translation>
 <translation id="2910007522516064972">Chromium 정보</translation>
 <translation id="2977470724722393594">Chromium이 최신 버전임</translation>
+<translation id="3032706164202344641">Chromium에서 비밀번호를 확인할 수 없습니다. 나중에 다시 시도하세요.</translation>
 <translation id="3032787606318309379">Chromium에 추가하는 중...</translation>
 <translation id="3068515742935458733">비정상 종료 보고서와 <ph name="UMA_LINK" />을(를) Google로 전송하여 Chromium 개선에 참여합니다.</translation>
 <translation id="3103660991484857065">설치 프로그램이 보관 파일 압축 풀기에 실패했습니다. Chromium을 다시 다운로드하세요.</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Chromium에서 비밀번호를 복사하려고 합니다. 허용하려면 Windows 비밀번호를 입력하세요.</translation>
 <translation id="4036079820698952681"><ph name="BEGIN_LINK" />현재 설정<ph name="END_LINK" />을 보고하여 Chromium 개선에 참여</translation>
 <translation id="4050175100176540509">최신 버전에는 중요한 보안 개선사항 및 새로운 기능이 포함되어 있습니다.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - 네트워크 로그인 - Chromium</translation>
 <translation id="421369550622382712">Chromium에 유용한 앱, 게임, 확장 프로그램, 테마를 찾아보세요.</translation>
 <translation id="4216212958613226427">Chromium UI가 이 언어로 표시됩니다.</translation>
 <translation id="4230135487732243613">Chromium 데이터를 이 계정에 연결하시겠습니까?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">Chromium을 종료하시겠습니까?</translation>
 <translation id="4415566066719264597">백그라운드에서 Chromium을 실행</translation>
 <translation id="4423735387467980091">Chromium 맞춤설정 및 제어</translation>
+<translation id="4544142686420020088">문제가 발생하여 Chromium이 업데이트되지 않았습니다. <ph name="BEGIN_LINK" />Chromium 업데이트 문제 및 업데이트 실패 문제 해결하기<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812"><ph name="USER_EMAIL_ADDRESS" />(으)로 로그인되어 있습니다. 이제 로그인한 모든 기기에서 북마크, 방문 기록 및 기타 설정에 액세스할 수 있습니다.</translation>
 <translation id="459535195905078186">Chromium 앱</translation>
 <translation id="4677944499843243528">다른 컴퓨터(<ph name="HOST_NAME" />)의 다른 Chromium 프로세스(<ph name="PROCESS_ID" />)에서 프로필을 사용 중인 것 같습니다. 프로필이 손상되지 않도록 Chromium에서 잠금 설정했습니다. 다른 프로세스에서 프로필을 사용 중이지 않은 것이 확실한 경우 프로필을 잠금 해제하고 Chromium을 다시 시작하세요.</translation>
@@ -114,6 +119,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Chromium에 오신 것을 환영합니다.</translation>
 <translation id="5895138241574237353">다시 시작</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - 네트워크 로그인</translation>
 <translation id="5987687638152509985">동기화를 시작하려면 Chromium을 업데이트하세요.</translation>
 <translation id="6013050204643758987"><ph name="BEGIN_LINK_LINUX_OSS" />Linux(베타)<ph name="END_LINK_LINUX_OSS" />와 마찬가지로, Chromium OS는 추가 <ph name="BEGIN_LINK_CROS_OSS" />오픈소스 소프트웨어<ph name="END_LINK_CROS_OSS" />를 사용하여 개발되었습니다.</translation>
 <translation id="6055895534982063517">이전보다 더 빨라진 Chromium 새 버전을 사용할 수 있습니다.</translation>
@@ -153,6 +159,7 @@
 <translation id="6893813176749746474">Chromium이 업데이트되었지만, 최소 30일 동안 사용하지 않았습니다.</translation>
 <translation id="6964305034639999644">Chromium 시크릿 창에서 링크 열기(&amp;G)</translation>
 <translation id="6990124437352146030">이 사이트에서 마이크에 액세스하려면 Chromium에 권한이 필요합니다</translation>
+<translation id="701244094609242530">Chromium에서 확장 프로그램을 확인할 수 없습니다. 나중에 다시 시도하세요.</translation>
 <translation id="705851970750939768">Chromium 업데이트</translation>
 <translation id="7066436765290594559">Chromium OS에서 데이터를 동기화하지 못했습니다. 동기화 암호를 업데이트하세요.</translation>
 <translation id="7067091210845072982">이미지에 유용한 설명이 없으면 Chromium에서 자동으로 설명을 제공하려고 시도합니다. 설명을 생성하기 위해 이미지가 Google로 전송됩니다.</translation>
@@ -195,6 +202,7 @@
 <translation id="8013436988911883588">Chromium에 액세스 권한을 부여하면 웹사이트에서 액세스 권한을 요청할 수 있게 됩니다.</translation>
 <translation id="81770708095080097">이 파일은 위험하므로 Chromium에서 차단했습니다.</translation>
 <translation id="8248265253516264921">이미지에 유용한 설명이 없으면 Chromium에서 자동으로 설명을 제공하려고 시도합니다. 설명을 생성하기 위해 이미지가 Google로 전송됩니다. 이 기능은 언제든지 설정에서 사용 중지할 수 있습니다.</translation>
+<translation id="8266560134891435528">로그인되어 있지 않으므로 Chromium에서 비밀번호를 확인할 수 없습니다.</translation>
 <translation id="8276522524898344151">Chromium에서 비밀번호를 복사하려고 합니다.</translation>
 <translation id="8290862415967981663">이 파일은 위험할 수 있으므로 Chromium에서 차단했습니다.</translation>
 <translation id="8330519371938183845">로그인하여 모든 기기에서 Chromium을 동기화하고 맞춤설정하세요.</translation>
diff --git a/chrome/app/resources/chromium_strings_ky.xtb b/chrome/app/resources/chromium_strings_ky.xtb
index 36fef08..d14f750 100644
--- a/chrome/app/resources/chromium_strings_ky.xtb
+++ b/chrome/app/resources/chromium_strings_ky.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">Жеке маалыматыңызды коргоо үчүн, айрым Chromium кеңейтүүлөрүн өчүрүп койдук, себеби <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ичинде аларга байланыштуу маалымат жок. Демек, бул курамдык бөлүктөр тымызын орнотулган.</translation>
 <translation id="1808667845054772817">Chromium'ду кайра орнотуу</translation>
 <translation id="1881322772814446296">Башкарылган аккаунт менен кирип, анын администраторунун милдетин Chromium профилиңизге өткөрүп берип жатасыз. Chromium дайын-даректериңизди, колдонмолоруңузду, кыстармаларыңызды, таржымалыңызды, сырсөздөрүңүздү жана башка жөндөөлөрдү <ph name="USER_NAME" /> менен биротоло байланыштырат. Бул дайындарды Google Каттоо эсептеринин жеке кеңсеси аркылуу жок кылсаңыз болот, бирок бул дайындарды башка аккаунтка байлай албайсыз. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium бардык сырсөздөрүңүздү текшере албай жатат. 24 сааттан кийин кайра аракет кылыңыз.</translation>
 <translation id="1911763535808217981">Ушуну өчүрүү менен Gmail сыяктуу Google сайттарына Chromium'суз кире аласыз</translation>
 <translation id="1929939181775079593">Chromium жооп бербей жатат. Өчүрүп кайра ишке киргизесизби?</translation>
 <translation id="1966382378801805537">Chromium демейки серепчини аныктап же коё албай жатат</translation>
 <translation id="2008474315282236005">Ушуну менен түзмөктөгү 1 нерсе өчүрүлөт. Дайын-даректериңизди кийинчерээк чыгарып алуу үчүн Chromium'га <ph name="USER_EMAIL" /> аккаунту менен кириңиз.</translation>
 <translation id="2147976119693222405">Chromium OS маалыматыңызды шайкештештире албай койду. Азыр оңдоо.</translation>
+<translation id="2185166961232948079">Chromium – Тармакка кирүү – <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">Компьютерди бөлүшсөңүз, жакындарыңыз өзүнчө серептеп, Chromium'ду өзүлөрү каалагандай орнотуп алышат.</translation>
 <translation id="2347108572062610441">Бул кеңейтүү Chromium иштеп баштаганда көрсөтүлө турган бетти өзгөрттү.</translation>
 <translation id="2396765026452590966">"<ph name="EXTENSION_NAME" />" кеңейтүүсү Chromium иштеп баштаганда көрсөтүлө турган бетти өзгөрттү.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">Кошумча: Google'га автоматтык түрдө колдонуу статистикасын жөнөтүп, каталар жөнүндө кабар берүү менен, Chromium'ду өркүндөтүүгө кол кабыш кылыңыз.</translation>
 <translation id="2910007522516064972">&amp;Chromium жөнүндө</translation>
 <translation id="2977470724722393594">Chromium жаңыртылган</translation>
+<translation id="3032706164202344641">Chromium сырсөздөрүңүздү текшере албай жатат. Кийинчерээк кайталаңыз.</translation>
 <translation id="3032787606318309379">Chromium'га кошууда…</translation>
 <translation id="3068515742935458733">Google'га автоматтык түрдө каталар жана <ph name="UMA_LINK" /> жөнүндө кабар берип, Chromium'ду өркүндөткөнгө кол кабыш кылыңыз!</translation>
 <translation id="3103660991484857065">Орноткуч архивди чыгара албай койду. Chromium'ду кайра жүктөп алыңыз.</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Chromium сырсөздөрдү көчүрүүгө аракет кылууда. Уруксат берүү үчүн Windows сырсөзүңүздү жазыңыз.</translation>
 <translation id="4036079820698952681"><ph name="BEGIN_LINK" />Учурдагы жөндөөлөр<ph name="END_LINK" /> жөнүндө кабар берип, Chromium'ду өркүндөтүүгө кол кабыш кылыңыз</translation>
 <translation id="4050175100176540509">Эң акыркы версияда коопсуздукту бекемдөө каражаттары менен жаңы мүмкүнчүлүктөр камтылган.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> – Тармакка кирүү – Chromium</translation>
 <translation id="421369550622382712">Chromium үчүн укмуш колдонмолор, оюндар, кеңейтүүлөр жана темаларды таап алыңыз.</translation>
 <translation id="4216212958613226427">Chromium UI ушул тилде иштейт</translation>
 <translation id="4230135487732243613">Chromium дайын-даректериңиз бул аккаунтка байлансынбы?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">Баары бир Chromium'дан чыгасызбы?</translation>
 <translation id="4415566066719264597">Chromium'га фондук режимде иштөөгө уруксат берүү</translation>
 <translation id="4423735387467980091">Chromium'ду өзгөчөлөштүрүү жана көзөмөлдөө</translation>
+<translation id="4544142686420020088">Chromium жаңыртылган жок. Бир жерден ката кетти. <ph name="BEGIN_LINK" />Chrome'догу жаңыртуу маселелерин оңдоңуз.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812"><ph name="USER_EMAIL_ADDRESS" /> катары кирдиңиз. Эми кыстармаларды, таржымалды жана башка жөндөөлөрдү бардык катталган түзмөктөрүңүздөн колдоно аласыз.</translation>
 <translation id="459535195905078186">Chromium колдонмолору</translation>
 <translation id="4677944499843243528">Chromium процессинде бул профилди (<ph name="PROCESS_ID" />) башка компьютерде (<ph name="HOST_NAME" />) колдонуп жатат окшойт. Chromium профиль бузулбасын деп кулпулап койду. Бул профиль башка процесстерде колдонулбайт деп ишенсеңиз, профилдин кулпусун ачып, Chromium'ду өчүрүп күйгүзүңүз.</translation>
@@ -114,6 +119,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Chromium'га кош келиңиз</translation>
 <translation id="5895138241574237353">Өчүрүп күйгүзүү</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Тармакка кирүү</translation>
 <translation id="5987687638152509985">Шайкештирип баштоо үчүн Chromium'ду жаңыртыңыз</translation>
 <translation id="6013050204643758987">Chromium OS тутуму, <ph name="BEGIN_LINK_LINUX_OSS" />Linux (бета-версиясы)<ph name="END_LINK_LINUX_OSS" /> сыяктуу, кошумча <ph name="BEGIN_LINK_CROS_OSS" />баштапкы коду ачык программалык камсыздоонун<ph name="END_LINK_CROS_OSS" /> жардамы менен, иштейт.</translation>
 <translation id="6055895534982063517">Chromium'дун чагылгандай тездик менен иштеген жаңы версиясы бар.</translation>
@@ -153,6 +159,7 @@
 <translation id="6893813176749746474">Chromium жаңырды, бирок аны 30 күндөн бери колдоно элексиз.</translation>
 <translation id="6964305034639999644">Шилтемени Chromium'дун жашы&amp;руун терезесинде ачуу</translation>
 <translation id="6990124437352146030">Бул сайтта иштөө үчүн Chromium микрофонуңузду колдонушу керек</translation>
+<translation id="701244094609242530">Chromium кеңейтүүлөрүңүздү текшере албай жатат. Кийинчерээк кайталаңыз.</translation>
 <translation id="705851970750939768">Chromium'ду жаңыртуу</translation>
 <translation id="7066436765290594559">Chromium OS дайын-даректериңизди шайкештештире албай койду. Шайкештештирүүнүн купуя сөз айкашын жаңыртыңыз.</translation>
 <translation id="7067091210845072982">Эгер сүрөттөрдүн түшүндүрмөсү жок болсо, Chromium аны түшүндүрүп берүүгө аракет кылат. Түшүндүрмөлөрдү даярдоо үчүн, сүрөттөр Google'га жөнөтүлөт.</translation>
@@ -195,6 +202,7 @@
 <translation id="8013436988911883588">Chromium'га уруксат берилгенден кийин вебсайттар уруксат сурай алышат.</translation>
 <translation id="81770708095080097">Бул файл кооптуу, ошондуктан Chromium аны бөгөттөп койду.</translation>
 <translation id="8248265253516264921">Эгер сүрөттөрдүн түшүндүрмөсү жок болсо, Chromium аны түшүндүрүп берүүгө аракет кылат. Түшүндүрмөлөрдү даярдоо үчүн, сүрөттөр Google'га жөнөтүлөт. Аны жөндөөлөрдөн каалаган убакта өчүрүп койсоңуз болот.</translation>
+<translation id="8266560134891435528">Chromium сырсөздөрүңүздү текшере албайт, анткени аккаунтуңузга кирген жоксуз</translation>
 <translation id="8276522524898344151">Chromium сырсөздөрдү көчүрүүгө аракет кылып жатат.</translation>
 <translation id="8290862415967981663">Бул файл кооптуу болушу мүмкүн, ошондуктан Chromium аны бөгөттөп койду.</translation>
 <translation id="8330519371938183845">Chromium'ду бардык түзмөктөрүңүздө шайкештирип, жекелештирүү үчүн аккаунтуңузга кириңиз</translation>
diff --git a/chrome/app/resources/chromium_strings_lo.xtb b/chrome/app/resources/chromium_strings_lo.xtb
index 6ae1417..1138424 100644
--- a/chrome/app/resources/chromium_strings_lo.xtb
+++ b/chrome/app/resources/chromium_strings_lo.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">ເພື່ອເຮັດໃຫ້ Chromium ປອດໄພຂຶ້ນ, ພວກເຮົາປິດໃຊ້ງານບາງສ່ວນຂະຫຍາຍທີ່ບໍ່ໄດ້ມີລາຍຊື່ຢູ່ໃນ <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ແລະອາດຈະຖືກເພີ່ມເຂົ້າໂດຍທີ່ທ່ານບໍ່ຮູ້ຈັກ.</translation>
 <translation id="1808667845054772817">ຕິດຕັ້ງ Chromium ຄືນໃໝ່</translation>
 <translation id="1881322772814446296">ທ່ານກໍາລັງລົງຊື່ເຂົ້າ​ໃຊ້ດ້ວຍບັນຊີຄຸ້ມຄອງ ແລະໃຫ້ຜູ້ຄວບຄຸມຂອງມັນຄວບຄຸມໂປຣໄຟລ໌ Chromium ຂອງທ່ານ. ຂໍ້ມູນ Chromium ຂອງທ່ານ, ເຊັ່ນ: ແອັບ, ບຸກມາກສ໌, ປະຫວັດ, ລະຫັດຜ່ານ, ແລະການຕັ້ງຄ່າອື່ນໆຂອງທ່ານຈະຜູກ​ມັດ​ກັບ <ph name="USER_NAME" /> ຢ່າງຖາວອນ. ທ່ານຈະສາມາດລຶບຂໍ້ມູນນີ້ໄດ້ຜ່ານ Google Accounts Dashboard, ແຕ່ທ່ານຈະບໍ່ສາມາດເອົາຂໍ້ມູນນີ້ເຂົ້າຮ່ວມກັບບັນຊີອື່ນໄດ້. ​ໂດຍ​ເລືອກ​ໄດ້ ທ່ານ​ສາມາດ​ສ້າງໂປຣໄຟລ໌​ໃໝ່​ເພື່ອ​ຮັກສາ​ຂໍ້ມູນ Chromium ທີ່​ມີ​ຢູ່​ຂອງ​ທ່ານ​ແຍກ​ຕ່າງຫາກ. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium ບໍ່ສາມາດກວດລະຫັດຜ່ານທັງໝົດຂອງທ່ານໄດ້. ກະລຸນາລອງໃໝ່ຫຼັງຈາກ 24 ຊົ່ວໂມງ.</translation>
 <translation id="1911763535808217981">ໂດຍການປິດສິ່ງນີ້, ທ່ານສາມາດເຂົ້າສູ່ລະບົບເວັບໄຊຂອງ Google ເຊັ່ນ: Gmail ໄດ້ໂດຍບໍ່ຕ້ອງເຂົ້າສູ່ລະບົບ Chromium</translation>
 <translation id="1929939181775079593">Chromium ບໍ່ຕອບຮັບ. ເລີ່ມເປີດໃຊ້ໃໝ່ດຽວນີ້ບໍ?</translation>
 <translation id="1966382378801805537">Chromium ບໍ່ສາມາດກຳນົດ ຫຼື ຕັ້ງໂປຣແກຣມທ່ອງເວັບເລີ່ມຕົ້ນໄດ້</translation>
 <translation id="2008474315282236005">ນີ້ຈະລຶບ 1 ລາຍການອອກຈາກອຸປະກອນນີ້. ເພື່ອກູ້ຂໍ້ມູນຂອງທ່ານຄືນໃນພາຍຫຼັງ, ກະລຸນາເຂົ້າສູ່ລະບົບ Chromium ເປັນ <ph name="USER_EMAIL" />.</translation>
 <translation id="2147976119693222405">Chromium OS ບໍ່ສາມາດຊິ້ງຂໍ້ມູນຂອງທ່ານໄດ້. ແກ້ໄຂຕອນນີ້ເລີຍ.</translation>
+<translation id="2185166961232948079">Chromium - ການເຂົ້າສູ່ລະບົບເຄືອຂ່າຍ - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">ຖ້າທ່ານແຊຣ໌ຄອມພິວເຕີ, ໝູ່​ເພື່ອນ ແລະຄອບຄົວຂອງທ່ານ ສາມາດທ່ອງເນັດໄດ້ແຍກຕ່າງຫາກ ແລະຕັ້ງ Chromium ໄດ້ຕາມ​ແບບທີ່ພວກເຂົາຕ້ອງການ.</translation>
 <translation id="2347108572062610441">ສ່ວນຂະຫຍາຍ​ນີ້​ໄດ້ປ່ຽນສິ່ງທີ່ໜ້າສະແດງຂຶ້ນ ເມື່ອທ່ານເລີ່ມຕົ້ນ Chromium​.</translation>
 <translation id="2396765026452590966">ສ່ວນຂະຫຍາຍ "<ph name="EXTENSION_NAME" />" ໄດ້ປ່ຽນສິ່ງທີ່ໜ້າສະແດງຂຶ້ນ ເມື່ອທ່ານເລີ່ມຕົ້ນ Chromium​.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">ເລືອກໄດ້: ຊ່ວຍເຮັດໃຫ້ Chromium ດີກ່ວາ່ ໂດຍການສົ່ງສະຖິຕິການໃຊ້ ແລະລາຍງານການ​ຂັດຂ້ອງຫາ Google ໂດຍອັດຕະໂນມັດ.</translation>
 <translation id="2910007522516064972">ກ່ຽວ​ກັບ​ Chromium</translation>
 <translation id="2977470724722393594">Chromium ແມ່ນເວີຊັນໃໝ່ຫຼ້າສຸດແລ້ວ</translation>
+<translation id="3032706164202344641">Chromium ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້. ລອງໃໝ່ໃນພາຍຫລັງ.</translation>
 <translation id="3032787606318309379">ກໍາລັງເພີ່ມ Chromium...</translation>
 <translation id="3068515742935458733">ຊ່ວຍເຮັດໃຫ້ Chromium ດີຂຶ້ນໂດຍການສົ່ງລາຍງານການ​ຂັດຂ້ອງ ແລະ  <ph name="UMA_LINK" />  ຫາ Google.</translation>
 <translation id="3103660991484857065">ຕົວຕິດຕັ້ງບໍ່ສາມາດ​ຄາຍ​ການບີບອັດຄັງເກັບມ້ຽນ. ກະລຸນາດາວໂຫຼດ Chromium ອີກ.</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Chromium ກໍາລັງພະຍາຍາມສຳເນົາລະຫັດຜ່ານ. ພິມລະຫັດຜ່ານ Windows ຂອງທ່ານ ເພື່ອອະນຸຍາດໃຫ້ສຳເນົາໄດ້.</translation>
 <translation id="4036079820698952681">ຊ່ວຍເຮັດໃຫ້ Chromium ດີຂຶ້ນໂດຍການລາຍງານ <ph name="BEGIN_LINK" />ການຕັ້ງຄ່າປັດຈຸບັນ<ph name="END_LINK" /></translation>
 <translation id="4050175100176540509">ການ​ປັບ​ປຸງ​ຄວາມ​ປອດ​ໄພ​ທີ່​ສຳ​ຄັນ ແລະ​ຄຸນ​ສົມ​ບັດ​ໃໝ່​ມີ​ໃຫ້​ຢູ່​ໃນ​ເວີ​ຊັນ​ຫຼ້າ​ສຸດ.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - ການເຂົ້າສູ່ລະບົບເຄືອຂ່າຍ - Chromium</translation>
 <translation id="421369550622382712">ຄົ້ນພົບແອັບ, ເກມ, ສ່ວນຂະຫຍາຍ ແລະ ຮູບແບບສີສັນສຳລັບ Chromium.</translation>
 <translation id="4216212958613226427">ລະບົບໃຊ້ພາສານີ້ເພື່ອສະແດງສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ Chromium</translation>
 <translation id="4230135487732243613">ລິ້ງ Chromium ຂອງ​ທ່ານກັບບັນຊີນີ້ບໍ?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">ຢືນຢັນການອອກຈາກ Chromium ບໍ?</translation>
 <translation id="4415566066719264597">ໃຫ້ Chromium ເປີດໃຊ້ຢູ່ໃນພື້ນຫຼັງ</translation>
 <translation id="4423735387467980091">ກໍານົດໃຊ້ ແລະ​ຄວບ​ຄຸມ Chromium</translation>
+<translation id="4544142686420020088">Chromium ບໍ່ອັບເດດ, ມີບາງຢ່າງຜິດພາດ. <ph name="BEGIN_LINK" />ແກ້ໄຂບັນຫາການອັບເດດ Chromium ແລະ ການອັບເດດທີ່ບໍ່ສຳເລັດ.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">ທ່ານລົງຊື່ເຂົ້າ​ໃຊ້ເປັນ <ph name="USER_EMAIL_ADDRESS" />. ດຽວນີ້ທ່ານສາມາດເຂົ້າຫາບຸກມາກສ໌, ປະຫວັດ, ແລະການຕັ້ງຄ່າອື່ນຢູ່ໃນທຸກອຸປະກອນທີ່ລົງຊື່ເຂົ້າ​ໃຊ້ຂອງທ່ານ.</translation>
 <translation id="459535195905078186">ແອັບ Chromium</translation>
 <translation id="4677944499843243528">ປະກົດວ່າໂປຣໄຟລ໌ໃຊ້ງານຢູ່ໂດຍຂະບວນການ Chromium ອື່ນ (<ph name="PROCESS_ID" />) ຢູ່ໃນຄອມພິວເຕີອື່ນ (<ph name="HOST_NAME" />). Chromium ໄດ້ລັອກໂປຣໄຟລ໌ໄວ້ ເພື່ອບໍ່ໃຫ້ມັນໄດ້ຮັບການ​ຂັດຂ້ອງ. ຖ້າທ່ານແນ່ໃຈວ່າ ບໍ່ມີຂະບວນການອື່ນໃຊ້ໂປຣໄຟລ໌ນີ້ຢູ່, ທ່ານສາມາດປົດລັອກໂປຣໄຟລ໌ ແລະເລີ່ມເປີດໃຊ້ Chromium ໃໝ່ໄດ້.</translation>
@@ -114,6 +119,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">ຍິນ​ດີ​ຕ້ອນ​ຮັບສູ່ Chromium</translation>
 <translation id="5895138241574237353">ເລີ່ມຕົ້ນໃໝ່</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ການເຂົ້າສູ່ລະບົບເຄືອຂ່າຍ</translation>
 <translation id="5987687638152509985">ອັບເດດ Chromium ເພື່ອເລີ່ມຊິ້ງຂໍ້ມູນ</translation>
 <translation id="6013050204643758987">Chromium OS ເກີດຂຶ້ນໄດ້ຈາກ <ph name="BEGIN_LINK_CROS_OSS" />ຊອບແວໂອເພັນຊອດ<ph name="END_LINK_CROS_OSS" /> ເພີ່ມເຕີມ ນັ້ນກໍຄື <ph name="BEGIN_LINK_LINUX_OSS" />Linux (ເບຕ້າ)<ph name="END_LINK_LINUX_OSS" />.</translation>
 <translation id="6055895534982063517">ມີ Chromium ລຸ້ນໃໝ່ຢູ່, ແລະມັນປອດໄພກ່ວາຜ່ານມາ.</translation>
@@ -153,6 +159,7 @@
 <translation id="6893813176749746474">ອັບເດດ Chromium ແລ້ວ, ແຕ່ທ່ານບໍ່ໄດ້ໃຊ້ມັນເປັນເວລາຢ່າງໜ້ອຍ 30 ວັນແລ້ວ​.</translation>
 <translation id="6964305034639999644">ເປີດລິ້ງໃນໜ້າຈໍທີ່ບໍ່ເຜີຍຕົວຕົນຂອງ Chromium</translation>
 <translation id="6990124437352146030">Chromium ຕ້ອງການການອະນຸຍາດເພື່ອເຂົ້າເຖິງໄມໂຄຣໂຟນຂອງທ່ານສຳລັບເວັບໄຊນີ້</translation>
+<translation id="701244094609242530">Chromium ບໍ່ສາມາດກວດສ່ວນຂະຫຍາຍຂອງທ່ານໄດ້. ລອງໃໝ່ໃນພາຍຫລັງ.</translation>
 <translation id="705851970750939768">ອັບເດດ Chromium</translation>
 <translation id="7066436765290594559">Chromium ບໍ່​ສາ​ມາດຊິງຄ໌ຂໍ້​ມູນ​ຂອງ​ທ່ານໄດ້​. ກະ​ລຸ​ນາອັບເດດຊິງຄ໌ວະລີຂອງ​ທ່ານ​.</translation>
 <translation id="7067091210845072982">ຖ້າຮູບບໍ່ມີລາຍລະອຽດທີ່ເປັນປະໂຫຍດ, Chromium ຈະພະຍາຍາມໃຫ້ລາຍລະອຽດແກ່ທ່ານ. ເພື່ອສ້າງລາຍລະອຽດ, ລະບົບຈະສົ່ງຮູບພາບໃຫ້ Google.</translation>
@@ -195,6 +202,7 @@
 <translation id="8013436988911883588">ເມື່ອ Chromium ມີການເຂົ້າເຖິງ, ເວັບໄຊຈະສາມາດຮ້ອງຂໍການເຂົ້າເຖິງນຳທ່ານ.</translation>
 <translation id="81770708095080097">ໄຟລ໌ນີ້ເປັນອັນຕະລາຍ, ສະນັ້ນ Chromium ໄດ້ບລັອກມັນໄວ້ແລ້ວ.</translation>
 <translation id="8248265253516264921">ຖ້າຮູບບໍ່ມີລາຍລະອຽດທີ່ເປັນປະໂຫຍດ, Chromium ຈະພະຍາຍາມໃຫ້ລາຍລະອຽດແກ່ທ່ານ. ເພື່ອສ້າງລາຍລະອຽດ, ລະບົບຈະສົ່ງຮູບພາບໃຫ້ Google. ທ່ານສາມາດປິດສິ່ງນີ້ໃນການຕັ້ງຄ່າໄດ້ທຸກເວລາ.</translation>
+<translation id="8266560134891435528">Chromium ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້ ເພາະວ່າທ່ານບໍ່ໄດ້ເຂົ້າສູ່ລະບົບ</translation>
 <translation id="8276522524898344151">Chromium ກໍາລັງພະຍາຍາມສຳເນົາລະຫັດຜ່ານ.</translation>
 <translation id="8290862415967981663">ໄຟລ໌ນີ້ອາດຈະເປັນອັນຕະລາຍ, ສະນັ້ນ Chromium ໄດ້ບລັອກມັນໄວ້ແລ້ວ.</translation>
 <translation id="8330519371938183845">ເຂົ້າສູ່ລະບົບເພື່ອຊິ້ງຂໍ້ມູນ ແລະ ປັບແຕ່ງ Chromium ໃຫ້ເປັນແບບສ່ວນຕົວໃນທົ່ວອຸປະກອນຂອງທ່ານ</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb
index f663fa8..88ad0b88 100644
--- a/chrome/app/resources/chromium_strings_lt.xtb
+++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -94,6 +94,7 @@
 <translation id="4708774505295300557">Kažkas anksčiau prisijungė prie „Chromium“ šiame kompiuteryje kaip <ph name="ACCOUNT_EMAIL_LAST" />. Sukurkite naują „Chromium“ naudotoją, kad apsaugotumėte savo informaciją.</translation>
 <translation id="4746050847053251315">Vis tiek išeiti iš „Chromium“?</translation>
 <translation id="4748217263233248895">Ką tik pritaikytas specialus „Chromium“ skirtas saugos naujinys. Paleiskite naršyklę iš naujo ir atkursime visus skirtukus.</translation>
+<translation id="4750035648288509542">Beveik atnaujinta! Paleiskite „Chromium“ iš naujo, kad būtų užbaigtas naujinimas. Inkognito langai nebus atidaryti iš naujo.</translation>
 <translation id="479167709087336770">Naudojamas tas pats rašybos tikrinimas kaip ir „Google“ paieškoje. Tekstas, kurį įvedate naršyklėje, nusiunčiamas „Google“. Šį veikimą visada galite pakeisti nustatymuose.</translation>
 <translation id="4888717733111232871">„Chromium“ skirta taisyklė, pagal kurią leidžiamas mDNS srautas.</translation>
 <translation id="4943838377383847465">„Chromium“ veikia fono režimu.</translation>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb
index bd439e3..5c640d8 100644
--- a/chrome/app/resources/chromium_strings_lv.xtb
+++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -92,6 +92,7 @@
 <translation id="4708774505295300557">Kāds iepriekš pierakstījās pārlūkā Chromium šajā datorā, izmantojot e-pasta adresi <ph name="ACCOUNT_EMAIL_LAST" />. Lūdzu, izveidojiet jaunu Chromium lietotāju, lai nošķirtu savu informāciju.</translation>
 <translation id="4746050847053251315">Vai tik un tā aizvērt pārlūku Chromium?</translation>
 <translation id="4748217263233248895">Tikko tika piemērots īpašs Chromium drošības atjauninājums. Restartējiet tūlīt, un mēs atjaunosim jūsu cilnes.</translation>
+<translation id="4750035648288509542">Gandrīz atjaunināts! Lai pabeigtu atjaunināšanu, atkārtoti palaidiet pārlūkprogrammu Chromium. Inkognito režīma logi netiks atkārtoti atvērti.</translation>
 <translation id="479167709087336770">Šeit tiek izmantota tāds pats pareizrakstības pārbaudītājs, kāds tiek izmantots Google meklēšanā. Pārlūkprogrammā ievadītais teksts tiek nosūtīts Google serveriem. Jebkurā brīdī varat mainīt šo darbību iestatījumos.</translation>
 <translation id="4888717733111232871">Ienākošo savienojumu kārtula pārlūkam Chromium, lai atļautu mDNS datplūsmu.</translation>
 <translation id="4943838377383847465">Chromium darbojas fona režīmā.</translation>
diff --git a/chrome/app/resources/chromium_strings_mk.xtb b/chrome/app/resources/chromium_strings_mk.xtb
index 830ebe4..7c8e000 100644
--- a/chrome/app/resources/chromium_strings_mk.xtb
+++ b/chrome/app/resources/chromium_strings_mk.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">За Chromium да биде побезбеден, оневозможивме неколку наставки што не се наведени во <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> и можеби се додадени без ваше знаење.</translation>
 <translation id="1808667845054772817">Преинсталирај го Chromium</translation>
 <translation id="1881322772814446296">Се најавувате со управувана сметка и му давате контрола на администраторот за вашиот профил на Chromium. Вашите податоци на Chromium, како на пример, апликации, обележувачи, историја, лозинки и други поставки ќе бидат трајно поврзани со <ph name="USER_NAME" />. Ќе може да ги бришете овие податоци преку информациската табла на сметки на Google, но нема да може да ги поврзете со друга сметка. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium не може да ги провери сите ваши лозинки. Обидете се пак по 24 часа.</translation>
 <translation id="1911763535808217981">Ако го исклучите ова, може да се најавувате на сајтови на Google, како што е Gmail, без да се најавите на Chromium</translation>
 <translation id="1929939181775079593">Chromium не реагира. Да се рестартира сега?</translation>
 <translation id="1966382378801805537">Chromium не може да го одреди или постави стандардниот прелистувач</translation>
 <translation id="2008474315282236005">Ова ќе избрише една ставка од уредов. За да ги вратите вашите податоци подоцна, најавете се на Chromium како <ph name="USER_EMAIL" />.</translation>
 <translation id="2147976119693222405">Chromium OS не можеше да ги синхронизира вашите податоци. Поправете сега.</translation>
+<translation id="2185166961232948079">Chromium - Мрежно најавување - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">Ако го делите компјутерот, пријателите и семејството може одделно да прелистуваат и да го поставуваат Chromium токму како што сакаат.</translation>
 <translation id="2347108572062610441">Екстензијата ја смени страницата што се прикажува кога го стартувате Chromium.</translation>
 <translation id="2396765026452590966">Екстензијата „<ph name="EXTENSION_NAME" />“ ја смени страницата што се прикажува кога го стартувате Chromium.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">Изборно: помогнете да го подобриме Chromium со автоматско испраќање статистика на користење и извештаи за падови на Google.</translation>
 <translation id="2910007522516064972">За &amp;Chromium</translation>
 <translation id="2977470724722393594">Chromium е ажуриран</translation>
+<translation id="3032706164202344641">Chromium не може да ги провери вашите лозинки. Обидете се пак подоцна.</translation>
 <translation id="3032787606318309379">Се додава на Chromium...</translation>
 <translation id="3068515742935458733">Помогнете да го подобриме Chromium со испраќање извештаи за падови и <ph name="UMA_LINK" /> до Google</translation>
 <translation id="3103660991484857065">Инсталаторот не успеа да ја декомпримира архивата. Преземете го Chromium повторно.</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Chromium се обидува да копира лозинки. Внесете ја својата лозинка за Windows за да го овозможите тоа.</translation>
 <translation id="4036079820698952681">Помогнете да го подобриме Chromium со пријавување на <ph name="BEGIN_LINK" />тековните поставки<ph name="END_LINK" /></translation>
 <translation id="4050175100176540509">Во најновата верзија се достапни значајни безбедносни подобрувања и нови карактеристики.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - Мрежно најавување - Chromium</translation>
 <translation id="421369550622382712">Откријте одлични апликации, игри, наставки и теми за Chromium.</translation>
 <translation id="4216212958613226427">Овој јазик се користи за приказ на корисничкиот интерфејс на Chromium</translation>
 <translation id="4230135487732243613">Да се поврзат вашите податоци на Chromium со оваа сметка?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">Сепак да се излезе од Chromium?</translation>
 <translation id="4415566066719264597">Остави го Chromium да работи во заднина</translation>
 <translation id="4423735387467980091">Приспособи го и контролирај го Chromium</translation>
+<translation id="4544142686420020088">Chromium не се ажурираше, нешто тргна наопаку. <ph name="BEGIN_LINK" />Поправете ги проблемите со ажурирањето на Chromium и со неуспешните ажурирања.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">Најавени сте како <ph name="USER_EMAIL_ADDRESS" />. Сега може да пристапувате кон вашите обележувачи, историја и други поставки на сите најавени уреди.</translation>
 <translation id="459535195905078186">Апликации на Chromium</translation>
 <translation id="4677944499843243528">Изгледа дека друг процес на Chromium го користи профилот (<ph name="PROCESS_ID" />) на друг компјутер (<ph name="HOST_NAME" />). Chromium го заклучи профилот за да не се оштети. Доколку сте сигурни дека други процеси не го користат овој профил, може да го отклучите и повторно да го стартувате Chromium.</translation>
@@ -89,6 +94,7 @@
 <translation id="4708774505295300557">Некој претходно се најави на Chromium од овој компјутер како <ph name="ACCOUNT_EMAIL_LAST" />. Создајте нов корисник на Chromium за да ги чувате информациите одделно.</translation>
 <translation id="4746050847053251315">Сепак да се напушти Chromium?</translation>
 <translation id="4748217263233248895">Тукушто применивме посебно безбедносно ажурирање за Chromium. Рестартирајте сега и ќе ви ги вратиме картичките.</translation>
+<translation id="4750035648288509542">Речиси сте готови! Рестартирајте го Chromium за да заврши ажурирањето. Прозорците „Инкогнито“ нема да се отворат повторно.</translation>
 <translation id="479167709087336770">Услугава ја користи истата проверка на правопис што се користи и во „Пребарување на Google“. Текстот што ќе го напишете во прелистувачот се испраќа до Google. Ваквото однесување може да го смените во поставки во секое време.</translation>
 <translation id="4888717733111232871">Дојдовно правило за Chromium да дозволи mDNS сообраќај.</translation>
 <translation id="4943838377383847465">Chromium е во заднински режим.</translation>
@@ -114,6 +120,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Добре дојдовте во Chromium</translation>
 <translation id="5895138241574237353">Рестартирај</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Мрежно најавување</translation>
 <translation id="5987687638152509985">Ажурирајте го Chromium за да започнете со синхронизирање</translation>
 <translation id="6013050204643758987">Chromium OS е овозможен од дополнителен <ph name="BEGIN_LINK_CROS_OSS" />софтвер со отворен код<ph name="END_LINK_CROS_OSS" />, како и <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Бета)<ph name="END_LINK_LINUX_OSS" />.</translation>
 <translation id="6055895534982063517">Достапна е нова верзија на Chromium и побрза е од кога било.</translation>
@@ -153,6 +160,7 @@
 <translation id="6893813176749746474">Chromium се ажурираше, но не сте го употребиле најмалку 30 дена.</translation>
 <translation id="6964305034639999644">Отвори го линкот во инко&amp;гнито прозорец на Chromium</translation>
 <translation id="6990124437352146030">На Chromium му треба дозвола за да пристапи до микрофонот за сајтов</translation>
+<translation id="701244094609242530">Chromium не може да ги провери вашите екстензии. Обидете се пак подоцна.</translation>
 <translation id="705851970750939768">Ажурирај го Chromium</translation>
 <translation id="7066436765290594559">Chromium OS не можеше да ги синхронизира вашите податоци. Ажурирајте ја пристапната фраза за Синхронизација.</translation>
 <translation id="7067091210845072982">Ако сликата нема корисен опис, Chromium ќе се обиде да ви обезбеди опис. За да се создаваат описи, сликите се испраќаат до Google.</translation>
@@ -195,6 +203,7 @@
 <translation id="8013436988911883588">Ако Chromium има пристап, тогаш и веб-сајтовите ќе може да ви бараат пристап.</translation>
 <translation id="81770708095080097">Датотекава е опасна, па затоа Chromium ја блокираше.</translation>
 <translation id="8248265253516264921">Ако сликата нема корисен опис, Chromium ќе се обиде да ви обезбеди опис. За да се создаваат описи, сликите се испраќаат до Google. Ова може да го исклучите во „Поставки“ во секое време.</translation>
+<translation id="8266560134891435528">Chromium не може да ги провери вашите лозинки бидејќи не сте најавени</translation>
 <translation id="8276522524898344151">Chromium се обидува да копира лозинки.</translation>
 <translation id="8290862415967981663">Датотекава може да биде опасна, па затоа Chromium ја блокираше.</translation>
 <translation id="8330519371938183845">Најавете се за да го синхронизирате и персонализирате Chromium на сите ваши уреди</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index 9639e7a..ee5d3ac 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">Chromium സുരക്ഷിതമാക്കുന്നതിന്, <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> എന്നതിൽ ലിസ്റ്റുചെയ്യാത്ത ചില വിപുലീകരണങ്ങൾ ഞങ്ങൾ പ്രവർത്തനരഹിതമാക്കി, അവ നിങ്ങളുടെ അറിവില്ലാതെ ചേർത്തിരിക്കാനിടയുണ്ട്.</translation>
 <translation id="1808667845054772817">Chromium വീണ്ടും ഇൻസ്‌റ്റാളുചെയ്യുക</translation>
 <translation id="1881322772814446296">നിങ്ങൾ ഒരു നിയന്ത്രിത അക്കൗണ്ട് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്‌ത് അതിന്റെ അഡ്‌മിന് നിങ്ങളുടെ Chromium പ്രൊഫൈലിന്റെ നിയന്ത്രണം നൽകുന്നു. നിങ്ങളുടെ ആപ്പുകൾ, ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ, മറ്റ് ക്രമീകരണങ്ങൾ എന്നിവ പോലെയുള്ള Chromium ഡാറ്റ <ph name="USER_NAME" /> എന്നതുമായി ശാശ്വതമായി ബന്ധിപ്പിച്ചതായിത്തീരും. Google അക്കൗണ്ട്സ് ഡാഷ്‌ബോർഡ് വഴി നിങ്ങൾക്ക് ഈ ഡാറ്റ ഇല്ലാതാക്കാനാകുമെങ്കിലും, ഈ ഡാറ്റ മറ്റൊരു അക്കൗണ്ടുമായി ബന്ധപ്പെടുത്താനാകില്ല. നിങ്ങളുടെ നിലവിലെ Chrome ഡാറ്റ പ്രത്യേകമായി സൂക്ഷിക്കുന്നതിന് നിങ്ങൾക്ക് ഒരു പുതിയ പ്രൊഫൈൽ ഓപ്‌ഷണലായി സൃഷ്‌ടിക്കാനാകും. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium-ന് നിങ്ങളുടെ എല്ലാ പാസ്‌വേഡുകളും പരിശോധിക്കാനാവുന്നില്ല. 24 മണിക്കൂറിന് ശേഷം വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="1911763535808217981">ഇത് ഓഫാക്കുന്നതിലൂടെ, Chromium-ലേക്ക് സൈൻ ഇൻ ചെയ്യാതെ തന്നെ Gmail പോലുള്ള Google സൈറ്റുകളിൽ നിങ്ങൾക്ക് സൈൻ ഇൻ ചെയ്യാനാവും</translation>
 <translation id="1929939181775079593">Chromium പ്രതികരിക്കുന്നില്ല. ഇപ്പോൾ വീണ്ടും സമാരംഭിക്കണോ?</translation>
 <translation id="1966382378801805537">Chromium-ത്തിന് ഡിഫോൾട്ട് ബ്രൗസർ നിർണ്ണയിക്കാനോ സജ്ജമാക്കാനോ കഴിയില്ല</translation>
 <translation id="2008474315282236005">ഇത് ഈ ഉപകരണത്തിൽ നിന്നും ഒരിനം ഇല്ലാതാക്കും. പിന്നീട് നിങ്ങളുടെ വിവരങ്ങൾ വീണ്ടെടുക്കാൻ, <ph name="USER_EMAIL" /> എന്നയാളായി Chromium-ൽ സൈൻ ഇൻ ചെയ്യുക.</translation>
 <translation id="2147976119693222405">Chromium OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല. ഇപ്പോൾ പരിഹരിക്കുക.</translation>
+<translation id="2185166961232948079">Chromium - നെറ്റ്‌വർക്ക് സൈൻ ഇൻ - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">നിങ്ങളൊരു കമ്പ്യൂട്ടർ പങ്കിടുകയാണെങ്കിൽ, സുഹൃത്തുക്കൾക്കും കുടുബാംഗങ്ങൾക്കും വെവ്വേറെ ബ്രൗസ് ചെയ്യാനും അവർക്ക് ആവശ്യമുള്ള രീതിയിൽ Chromium സജ്ജീകരിക്കാനുമാകും.</translation>
 <translation id="2347108572062610441">നിങ്ങൾ Chromium ആരംഭിക്കുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ ഈ വിപുലീകരണം മാറ്റി.</translation>
 <translation id="2396765026452590966">നിങ്ങൾ Chromium ആരംഭിക്കുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ "<ph name="EXTENSION_NAME" />" വിപുലീകരണം മാറ്റി.</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">ഓപ്‌ഷണൽ: ഉപയോഗ സ്ഥിതിവിവരക്കണക്കുകളും ക്രാഷ് റിപ്പോർട്ടുകളും Google-ലേക്ക് സ്വയമേവ അയയ്‌ക്കുന്നതിലൂടെ Chromium-ത്തിനെ മികച്ചതാക്കി മാറ്റാൻ സഹായിക്കുക.</translation>
 <translation id="2910007522516064972">&amp;Chromium-നെക്കുറിച്ച്</translation>
 <translation id="2977470724722393594">Chromium അപ്‌‌ടുഡേറ്റാണ്</translation>
+<translation id="3032706164202344641">Chromium-ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ പരിശോധിക്കാനാവുന്നില്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="3032787606318309379">Chromium-ലേക്ക് ചേർക്കുന്നു...</translation>
 <translation id="3068515742935458733">Google-ലേക്ക് ക്രാഷ് റിപ്പോർട്ടുകളും <ph name="UMA_LINK" /> എന്നതും അയയ്‌ക്കുന്നതിലൂടെ Chromium മികച്ചതാക്കാൻ സഹായിക്കുക</translation>
 <translation id="3103660991484857065">ആര്‍ക്കൈവ് അണ്‍‌കം‌പ്രസ് ചെയ്യാന്‍ ഇന്‍സ്റ്റാളറിന് കഴിഞ്ഞില്ല. Chromium വീണ്ടും ഡൗൺലോഡ് ചെയ്യുക.</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">പാസ്‌വേഡുകൾ പകർത്താൻ Chromium ശ്രമിക്കുന്നു. ഇത് അനുവദിക്കാൻ നിങ്ങളുടെ Windows പാസ്‌വേഡ് നൽകുക.</translation>
 <translation id="4036079820698952681"><ph name="BEGIN_LINK" />നിലവിലെ ക്രമീകരണം<ph name="END_LINK" /> റിപ്പോർട്ട് ചെയ്‌തുകൊണ്ട് Chromium മികച്ചതാക്കാൻ സഹായിക്കുക</translation>
 <translation id="4050175100176540509">ഏറ്റവും പുതിയ പതിപ്പിൽ പ്രധാനപ്പെട്ട സുരക്ഷാ മെച്ചപ്പെടുത്തലുകളും പുതിയ ഫീച്ചറുകളും ലഭ്യമാണ്.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - നെറ്റ്‌വർക്ക് സൈൻ ഇൻ - Chromium</translation>
 <translation id="421369550622382712">Chromium-നായി മികച്ച അപ്ലിക്കേഷനുകളും വിപുലീകരണങ്ങളും തീമുകളും കണ്ടെത്തുക.</translation>
 <translation id="4216212958613226427">Chromium UI പ്രദര്‍ശിപ്പിക്കാൻ ഈ ഭാഷ ഉപയോഗിക്കുന്നു</translation>
 <translation id="4230135487732243613">നിങ്ങളുടെ Chromium ഡാറ്റ ഈ അക്കൗണ്ടുമായി ലിങ്ക് ചെയ്യണോ?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">എന്തായാലും Chromium-ത്തിൽ നിന്ന് പുറത്തുകടക്കണോ?</translation>
 <translation id="4415566066719264597">Chromium-ത്തെ പശ്ചാത്തലത്തിൽ പ്രവർത്തിക്കാൻ അനുവദിക്കുക</translation>
 <translation id="4423735387467980091">Chromium ഇഷ്‌ടാനുസൃതമാക്കുക, നിയന്ത്രിക്കുക</translation>
+<translation id="4544142686420020088">Chromium അപ്‌ഡേറ്റ് ചെയ്തില്ല, എന്തോ കുഴപ്പമുണ്ടായി. <ph name="BEGIN_LINK" />Chromium അപ്‌ഡേറ്റ് സംബന്ധിച്ച പ്രശ്നങ്ങളും പരാജയപ്പെട്ട അപ്ഡേറ്റുകളും പരിഹരിക്കുക.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">നിങ്ങൾ <ph name="USER_EMAIL_ADDRESS" /> ആയി സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്നു. സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്ന എല്ലാ ഉപകരണങ്ങളിലും ബുക്ക്‌മാർക്കുകളും ചരിത്രവും മറ്റ് ക്രമീകരണങ്ങളും ആക്‌സസ് ചെയ്യാൻ ഇപ്പോൾ നിങ്ങൾക്കാകും.</translation>
 <translation id="459535195905078186">Chromium അപ്ലിക്കേഷനുകൾ</translation>
 <translation id="4677944499843243528">മറ്റൊരു കമ്പ്യൂട്ടറിൽ (<ph name="HOST_NAME" />) മറ്റൊരു Chromium പ്രോസസ് (<ph name="PROCESS_ID" />) പ്രൊഫൈൽ ഉപയോഗിക്കുന്നതുപോലെ തോന്നുന്നു. Chromium പ്രൊഫൈൽ ലോക്കുചെയ്‌തതിനാൽ ഇത് കേടാകുകയില്ല. മറ്റ് പ്രോസസുകളൊന്നും ഈ പ്രൊഫൈൽ ഉപയോഗിക്കുന്നില്ലെന്ന് ഉറപ്പാണെങ്കിൽ നിങ്ങൾക്ക് പ്രൊഫൈൽ അൺലോക്ക് ചെയ്‌ത് Chromium വീണ്ടും സമാരംഭിക്കാം.</translation>
@@ -114,6 +119,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Chromium-ത്തിലേക്ക് സ്വാഗതം</translation>
 <translation id="5895138241574237353">പുനരാരംഭിക്കുക</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - നെറ്റ്‌വർക്ക് സൈൻ ഇൻ</translation>
 <translation id="5987687638152509985">സമന്വയിപ്പിക്കാൻ തുടങ്ങുന്നതിന് Chromium അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
 <translation id="6013050204643758987"><ph name="BEGIN_LINK_LINUX_OSS" />Linux (ബീറ്റ)<ph name="END_LINK_LINUX_OSS" /> പോലെയുള്ള അധിക <ph name="BEGIN_LINK_CROS_OSS" />ഓപ്പൺ സോഴ്‌സ് സോഫ്‌റ്റ്‌വെയർ<ph name="END_LINK_CROS_OSS" /> ഉപയോഗിച്ചാണ് Chromium OS സാധ്യമാക്കിയത്.</translation>
 <translation id="6055895534982063517">Chromium-ത്തിന്റെ പുതിയ പതിപ്പ് ലഭ്യമാണ്, അത് എന്നത്തേതിലും വേഗതയേറിയതാണ്.</translation>
@@ -153,6 +159,7 @@
 <translation id="6893813176749746474">Chromium അപ്‌ഡേറ്റുചെയ്‌തു, എന്നാൽ കുറഞ്ഞത് 30 ദിവസം പോലും നിങ്ങൾ ഇത് ഉപയോഗിച്ചില്ല.</translation>
 <translation id="6964305034639999644">Chromium അദൃശ്യ വിൻഡോയിൽ ലിങ്ക് തുറക്കുക</translation>
 <translation id="6990124437352146030">ഈ സൈറ്റിനായി, Chromium-ത്തിന് നിങ്ങളുടെ മൈക്രോഫോൺ ആക്‌സസ് ചെയ്യാനുള്ള അനുമതി ആവശ്യമാണ്</translation>
+<translation id="701244094609242530">Chromium-ന് നിങ്ങളുടെ വിപുലീകരണങ്ങൾ പരിശോധിക്കാനാവുന്നില്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="705851970750939768">Chromium അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
 <translation id="7066436765290594559">Chromium OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല. സമന്വയ പാസ്‌ഫ്രെയ്‌സ് അപ്‌ഡേറ്റ് ചെയ്യുക.</translation>
 <translation id="7067091210845072982">ചിത്രത്തിൽ ഉപകാരപ്രദമായ വിവരണമില്ലെങ്കിൽ നിങ്ങൾക്കായി ഒരു വിവരണം നൽകാൻ Chromium ശ്രമിക്കും. വിവരണങ്ങൾ സൃഷ്‌ടിക്കാൻ, ചിത്രങ്ങൾ Google-ലേക്ക് അയയ്ക്കുന്നു.</translation>
@@ -195,6 +202,7 @@
 <translation id="8013436988911883588">Chromium-ത്തിന് ആക്‌സസ് ലഭിച്ചുകഴിഞ്ഞാൽ, വെബ്‌സൈറ്റുകൾക്ക് നിങ്ങളോട് ആക്‌സസ് ചോദിക്കാനാകും.</translation>
 <translation id="81770708095080097">ഈ ഫയൽ അപകടകരമായതിനാൽ Chromium ഇതിനെ ബ്ലോക്കുചെയ്‌തു.</translation>
 <translation id="8248265253516264921">ചിത്രത്തിൽ ഉപകാരപ്രദമായ വിവരണമില്ലെങ്കിൽ നിങ്ങൾക്കായി ഒരു വിവരണം നൽകാൻ Chromium ശ്രമിക്കും. വിവരണങ്ങൾ സൃഷ്‌ടിക്കാൻ, ചിത്രങ്ങൾ Google-ലേക്ക് അയയ്ക്കുന്നു. ഏതുസമയത്തും ക്രമീകരണത്തിൽ നിങ്ങൾക്കിത് ഓഫാക്കാം.</translation>
+<translation id="8266560134891435528">നിങ്ങൾ സൈൻ ഇൻ ചെയ്‌തിട്ടില്ലാത്തതിനാൽ Chromium-ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ പരിശോധിക്കാനാവില്ല</translation>
 <translation id="8276522524898344151">പാസ്‌വേഡുകൾ പകർത്താൻ Chromium ശ്രമിക്കുന്നു.</translation>
 <translation id="8290862415967981663">ഈ ഫയൽ അപകടകരമാകാൻ ഇടയുള്ളതിനാൽ Chromium ഇതിനെ ബ്ലോക്കുചെയ്‌തു.</translation>
 <translation id="8330519371938183845">നിങ്ങളുടെ ഉപകരണങ്ങളിലുടനീളം Chromium സമന്വയിപ്പിച്ച് വ്യക്തിഗതമാക്കാൻ സൈൻ ഇൻ ചെയ്യുക</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb
index fc9a2b9..e0e61533 100644
--- a/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -17,11 +17,13 @@
 <translation id="1779356040007214683">Chromium अधिक सुरक्षित बनविण्‍यासाठी, आम्‍ही <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> मध्‍ये सूचीबद्ध नसलेले आणि आपल्‍या माहिती शिवाय कदाचित जोडले गेलेले काही विस्‍तार अक्षम केले.</translation>
 <translation id="1808667845054772817">Chromium पुनर्स्थापित करा</translation>
 <translation id="1881322772814446296">तुम्ही एका व्यवस्थापित खात्यासह साइन इन करत आहात आणि तुमच्या Chromium प्रोफाइलवर त्याच्या ॲडमिनिस्ट्रेटरला नियंत्रण देत आहात. तुमचा Chromium डेटा, जसे की तुमचे अ‍ॅप्स, बुकमार्क, इतिहास, पासवर्ड आणि अन्य सेटिंग्ज <ph name="USER_NAME" /> वर कायमच्या बद्ध होतील. तुम्ही Google खाती डॅशबोर्डद्वारे हा डेटा हटवण्यात सक्षम व्हाल, परंतु तुम्ही दुसर्‍या खात्यासह हा डेटा संबद्ध करण्यात सक्षम असणार नाही. तुम्ही तुमचा विद्यमान Chromium डेटा वेगळी ठेवण्यासाठी एक नवीन पर्यायी प्रोफाइल तयार करू शकता. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium तुमचे सर्व पासवर्ड तपासू शकत नाही. २४ तासांनंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="1911763535808217981">हे बंद करून, तुम्ही Chromium वर साइन इन न करता Gmail सारख्या Google सायटींवर साइन इन करू शकता</translation>
 <translation id="1929939181775079593">Chromium असंवादी आहे. आता पुन्‍हा लाँच करायचे?</translation>
 <translation id="1966382378801805537">Chromium डीफॉल्ट ब्राउझर निर्धारित किंवा सेट करू शकत नाही</translation>
 <translation id="2008474315282236005">हे या डिव्‍हाइस मधून 1 आयटम हटवेल. नंतर तुमचा डेटा पुनर्प्राप्त करण्‍यासाठी, Chromium मध्ये <ph name="USER_EMAIL" /> म्हणून साइन इन करा.</translation>
 <translation id="2147976119693222405">Chromium OS तुमचा डेटा सिंक करू शकले नाही. आता निराकरण करा.</translation>
+<translation id="2185166961232948079">Chromium - नेटवर्क साइन इन - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">तुम्ही कॉंप्युटर शेअर केल्यास, मित्र आणि कुटुंब स्वतंत्रपणे ब्राउझ करू शकतात आणि त्यांना पाहिजे तसे Chromium सेट अप करू शकतात.</translation>
 <translation id="2347108572062610441">तुम्ही Chromium सुरू करता तेव्हा कोणते पेज दर्शविले जाते हे या एक्स्टेंशनने बदलले आहे.</translation>
 <translation id="2396765026452590966">तुम्ही Chromium सुरू करता तेव्हा कोणते पेज दर्शविले जाते हे "<ph name="EXTENSION_NAME" />" एक्स्टेंशनने बदलले आहे.</translation>
@@ -42,6 +44,7 @@
 <translation id="2886012850691518054">पर्यायी: वापर आकडेवारी आणि क्रॅश अहवाल Google कडे आपोआप पाठवून Chromium ला अधिक चांगले करण्यात मदत करा.</translation>
 <translation id="2910007522516064972">&amp;Chromium बद्दल</translation>
 <translation id="2977470724722393594">Chromium अद्ययावत आहे</translation>
+<translation id="3032706164202344641">Chromium तुमचे पासवर्ड तपासू शकत नाही. नंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="3032787606318309379">Chromium वर जोडत आहे...</translation>
 <translation id="3068515742935458733">Google कडे क्रॅश अहवाल आणि <ph name="UMA_LINK" /> पाठवून Chromium अधिक चांगले करण्यात मदत करा</translation>
 <translation id="3103660991484857065">संग्रहण अनकॉम्प्रेस करण्यास इन्स्टॉलर अयशस्वी. कृपया Chromium पुन्हा डाउनलोड करा.</translation>
@@ -73,6 +76,7 @@
 <translation id="3945058413678539331">Chromium पासवर्ड कॉपी करण्याचा प्रयत्‍न करत आहे. हे करू देण्यासाठी तुमचा Windows पासवर्ड टाइप करा.</translation>
 <translation id="4036079820698952681"><ph name="BEGIN_LINK" />वर्तमान सेटिंग्ज<ph name="END_LINK" /> चा अहवाल देऊन Chromium उत्कृष्ट बनव‍िण्यात मदत करा</translation>
 <translation id="4050175100176540509">नवीनतम आवृत्तीमध्‍ये महत्त्वाच्या सुरक्षितता सुधारणा आणि नवीन वैशिष्ट्ये उपलब्‍ध आहेत.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - नेटवर्क साइन इन - Chromium</translation>
 <translation id="421369550622382712">Chromium साठी उत्कृष्ट ॲप्स, गेम, विस्तार आणि थीम शोधा</translation>
 <translation id="4216212958613226427">ही भाषा Chromium UI दाखवण्यासाठी वापरली जाते</translation>
 <translation id="4230135487732243613">या खात्यावर तुमच्या Chromium डेटा लिंक करायचा?</translation>
@@ -81,6 +85,7 @@
 <translation id="4407044323746248786">तरीही Chromium बंद करायचे?</translation>
 <translation id="4415566066719264597">Chromium बॅकग्राउंडमध्ये चालू द्या</translation>
 <translation id="4423735387467980091">Chromium कस्टमाइझ करा आणि नियंत्रित करा</translation>
+<translation id="4544142686420020088">Chromium अपडेट झाले नाही, काहीतरी चूक झाली. <ph name="BEGIN_LINK" />Chromium अपडेट समस्या आणि अयशस्वी झालेल्या अपडेटचे निराकरण करा.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">तुम्ही <ph name="USER_EMAIL_ADDRESS" /> म्हणून साइन इन केले आहे. आता तुम्ही तुमच्या सर्व साइन इन केलेल्या डिव्हाइसवरील तुमच्या बुकमार्क, इतिहास आणि अन्य सेटिंग्ज ॲक्सेस करू शकता.</translation>
 <translation id="459535195905078186">Chromium Apps</translation>
 <translation id="4677944499843243528">प्रोफाइल दुसर्‍या कॉंप्युटरवरील (<ph name="HOST_NAME" />) दुसर्‍या Chromium प्रक्रियेद्वारे (<ph name="PROCESS_ID" />) वापरले जात असल्याचे दिसते. प्रोफाइल लॉक होऊ नये यासाठी Chromium ने ती लॉक केली आहे. कोणतीही अन्य प्रक्रिया हे प्रोफाइल वापरत नाही याची तुम्हाला खात्री असल्यास, तुम्ही प्रोफाइल अनलॉक करू शकता आणि Chromium पुन्हा एकदा लॉंच करू शकता.</translation>
@@ -113,6 +118,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Chromium वर तुमचे स्‍वागत आहे</translation>
 <translation id="5895138241574237353">रीस्टार्ट करा</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - नेटवर्क साइन इन</translation>
 <translation id="5987687638152509985">सिंक करण्यासाठी Chromium अपडेट करा</translation>
 <translation id="6013050204643758987"><ph name="BEGIN_LINK_LINUX_OSS" />Linux (बीटा)<ph name="END_LINK_LINUX_OSS" /> सारख्या, अतिरिक्त <ph name="BEGIN_LINK_CROS_OSS" />मुक्त स्रोत सॉफ्टवेअर<ph name="END_LINK_CROS_OSS" /> मुळे Chromium OS शक्य झाले आहे.</translation>
 <translation id="6055895534982063517">Chromium ची नवीन आवृत्ती उपलब्ध आहे आणि ही नेहमीपेक्षा जलद आहे.</translation>
@@ -152,6 +158,7 @@
 <translation id="6893813176749746474">Chromium अपडेट केले गेले, परंतु तुम्ही ते किमान 30 दिवसांपासून वापरलेले नाही.</translation>
 <translation id="6964305034639999644">लिंक Chromium गुप्त विंडो मध्ये उघडा</translation>
 <translation id="6990124437352146030">या साइटसाठी Chromium ला तुमचा मायक्रोफोन ॲक्सेस करण्याची परवानगी हवी आहे</translation>
+<translation id="701244094609242530">Chromium तुमची एक्स्टेंशन तपासू शकत नाही. नंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="705851970750939768">Chromium अपडेट करा</translation>
 <translation id="7066436765290594559">Chromium OS तुमचा डेटा सिंक करू शकले नाही. कृपया तुमची सिंक सांकेतिक पासफ्रेज अपडेट करा.</translation>
 <translation id="7067091210845072982">इमेजचे उपयोगी वर्णन नसल्यास, Chromium तुमच्यासाठी ते देण्याचा प्रयत्न करेल. वर्णने तयार करण्यासाठी, इमेज Google ला पाठवल्या जातात.</translation>
@@ -194,6 +201,7 @@
 <translation id="8013436988911883588">एकदा का Chromium ला ॲक्सेस मिळाला की, वेबसाइट तुम्हाला ॲक्सेससाठी विचारू शकतील.</translation>
 <translation id="81770708095080097">ही फाईल धोकादायक आहे, त्यामुळे Chromium ने अवरोधित केली आहे.</translation>
 <translation id="8248265253516264921">इमेजचे उपयोगी वर्णन नसल्यास, Chromium तुमच्यासाठी ते देण्याचा प्रयत्न करेल. वर्णने तयार करण्यासाठी, इमेज Google ला पाठवल्या जातात. तुम्ही हे सेटिंग्जमध्ये कधीही बंद करू शकता.</translation>
+<translation id="8266560134891435528">तुम्ही साइन इन केलेले नसल्यामुळे Chromium तुमचे पासवर्ड तपासू शकत नाही</translation>
 <translation id="8276522524898344151">Chromium पासवर्ड कॉपी करण्याचा प्रयत्न करत आहे.</translation>
 <translation id="8290862415967981663">ही फाईल कदाचित धोकादायक असू शकते, त्यामुळे Chromium ने ती अवरोधित केली आहे.</translation>
 <translation id="8330519371938183845">तुमच्या डिव्हाइसवर Chromium सिंक आणि पर्सनलाइझ करण्यासाठी साइन इन करा</translation>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb
index 6b82ed2..574548e 100644
--- a/chrome/app/resources/chromium_strings_ms.xtb
+++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -16,11 +16,13 @@
 <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>
 <translation id="1881322772814446296">Anda log masuk menggunakan akaun yang terurus dan memberikan pentadbirnya kawalan ke atas profil Chromium anda. Data Chromium anda, seperti apl, penanda halaman, sejarah, kata laluan dan tetapan anda yang lain akan terikat kepada <ph name="USER_NAME" /> secara kekal. Anda akan dapat memadamkan data ini melalui Papan Pemuka Akaun Google, tetapi anda tidak akan dapat mengaitkan data ini dengan akaun lain. Anda boleh memilih untuk membuat profil baharu untuk mengasingkan data Chromium anda yang sedia ada. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium tidak dapat menyemak semua kata laluan anda. Cuba lagi selepas 24 jam.</translation>
 <translation id="1911763535808217981">Dengan mematikan pilihan ini, anda boleh mengelog masuk ke tapak Google seperti Gmail tanpa perlu mengelog masuk ke Chromium</translation>
 <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="2147976119693222405">OS Chromium tidak dapat menyegerakkan data anda. Betulkan sekarang.</translation>
+<translation id="2185166961232948079">Chromium - Log Masuk Rangkaian - <ph name="PAGE_TITLE" /></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>
 <translation id="2396765026452590966">Sambungan "<ph name="EXTENSION_NAME" />" telah menukar halaman yang ditunjukkan apabila anda memulakan Chromium.</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">Pilihan: Bantu jadikan Chromium lebih baik dengan menghantar statistik penggunaan dan laporan ranap kepada Google secara automatik.</translation>
 <translation id="2910007522516064972">Mengenai &amp;Chromium</translation>
 <translation id="2977470724722393594">Chromium telah dikemas kini</translation>
+<translation id="3032706164202344641">Chromium tidak dapat menyemak kata laluan anda. Cuba lagi nanti.</translation>
 <translation id="3032787606318309379">Menambah ke Chromium...</translation>
 <translation id="3068515742935458733">Bantu jadikan Chromium lebih baik dengan menghantar laporan ranap dan <ph name="UMA_LINK" /> kepada Google.</translation>
 <translation id="3103660991484857065">Pemasang gagal untuk menyahmampat arkib. Sila muat turun Chromium sekali lagi.</translation>
@@ -72,6 +75,7 @@
 <translation id="3945058413678539331">Chromium cuba menyalin kata laluan. Taip kata laluan Windows anda untuk membenarkan penyalinan.</translation>
 <translation id="4036079820698952681">Bantu jadikan Chromium lebih baik dengan melaporkan <ph name="BEGIN_LINK" />tetapan semasa<ph name="END_LINK" /></translation>
 <translation id="4050175100176540509">Peningkatan keselamatan penting dan ciri baharu tersedia dalam versi terkini.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - Log Masuk Rangkaian - Chromium</translation>
 <translation id="421369550622382712">Temui apl, permainan, sambungan dan tema yang hebat untuk Chromium.</translation>
 <translation id="4216212958613226427">Bahasa ini digunakan untuk memaparkan UI Chromium</translation>
 <translation id="4230135487732243613">Paut data Chromium anda ke akaun ini?</translation>
@@ -80,6 +84,7 @@
 <translation id="4407044323746248786">Keluar daripada Chromium juga?</translation>
 <translation id="4415566066719264597">Benarkan Chromium Dijalankan dalam Latar Belakang</translation>
 <translation id="4423735387467980091">Sesuaikan dan kawal Chromium</translation>
+<translation id="4544142686420020088">Chromium tidak dikemas kini, kesilapan telah berlaku. <ph name="BEGIN_LINK" />Selesaikan masalah kemas kini dan kegagalan kemas kini Chromium.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">Anda telah log masuk sebagai <ph name="USER_EMAIL_ADDRESS" />. Sekarang anda boleh mengakses penanda halaman, sejarah dan tetapan anda yang lain pada semua peranti yang anda gunakan untuk log masuk.</translation>
 <translation id="459535195905078186">Apl Chromium</translation>
 <translation id="4677944499843243528">Nampaknya profil digunakan oleh proses Chromium lain (<ph name="PROCESS_ID" />) pada komputer lain (<ph name="HOST_NAME" />). Chromium telah mengunci profil supaya profil tidak rosak. Jika anda pasti tiada proses lain yang menggunakan profil ini, anda boleh membuka profil dan melancarkan semula Chromium.</translation>
@@ -87,6 +92,7 @@
 <translation id="4708774505295300557">Sebelum ini, seseorang telah log masuk ke Chromium pada komputer ini sebagai <ph name="ACCOUNT_EMAIL_LAST" />. Sila buat pengguna Chromium baharu untuk mengasingkan maklumat anda.</translation>
 <translation id="4746050847053251315">Keluar daripada Chromium juga?</translation>
 <translation id="4748217263233248895">Kemas kini keselamatan khas untuk Chromium baru sahaja dilakukan. Mulakan semula sekarang dan kami akan memulihkan tab anda.</translation>
+<translation id="4750035648288509542">Kemas kini hampir selesai! Lancarkan semula Chromium untuk menyelesaikan kemas kini. Tetingkap inkognito tidak dapat dibuka semula.</translation>
 <translation id="479167709087336770">Ini menggunakan penyemak ejaan yang sama seperti yang digunakan dalam carian Google. Teks yang anda taip dalam penyemak imbas akan dihantar kepada Google. Anda boleh menukar gelagat ini dalam tetapan pada bila-bila masa.</translation>
 <translation id="4888717733111232871">Peraturan masuk bagi Chromium untuk membolehkan trafik mDNS.</translation>
 <translation id="4943838377383847465">Chromium dalam mod latar belakang.</translation>
@@ -112,6 +118,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Selamat datang ke Chromium</translation>
 <translation id="5895138241574237353">Mulakan Semula</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Log Masuk Rangkaian</translation>
 <translation id="5987687638152509985">Kemas kini Chromium untuk memulakan penyegerakan</translation>
 <translation id="6013050204643758987">OS Chromium menjadi kenyataan dengan <ph name="BEGIN_LINK_CROS_OSS" />perisian sumber terbuka<ph name="END_LINK_CROS_OSS" /> tambahan, sebagaimana <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation>
 <translation id="6055895534982063517">Terdapat versi baharu Chromium yang lebih pantas daripada biasa tersedia.</translation>
@@ -151,6 +158,7 @@
 <translation id="6893813176749746474">Chromium telah dikemas kini, tetapi anda belum menggunakannya untuk sekurang-kurangnya 30 hari.</translation>
 <translation id="6964305034639999644">Buka pautan dalam tetingkap inko&amp;gnito Chromium</translation>
 <translation id="6990124437352146030">Chromium memerlukan kebenaran untuk mengakses mikrofon anda bagi tapak ini</translation>
+<translation id="701244094609242530">Chromium tidak dapat menyemak sambungan anda. Cuba lagi nanti.</translation>
 <translation id="705851970750939768">Kemas kini Chromium</translation>
 <translation id="7066436765290594559">OS Chromium tidak dapat menyegerakkan data anda. Sila kemas kini frasa laluan Segerak anda.</translation>
 <translation id="7067091210845072982">Jika imej tiada perihalan yang berguna, Chromium akan cuba memberikan perihalan untuk anda. Untuk membuat perihalan, imej dihantar kepada Google.</translation>
@@ -193,6 +201,7 @@
 <translation id="8013436988911883588">Sebaik sahaja Chromium mendapat akses, tapak web akan dapat meminta akses daripada anda.</translation>
 <translation id="81770708095080097">Fail ini berbahaya, maka Chromium telah menyekatnya.</translation>
 <translation id="8248265253516264921">Jika imej tiada perihalan yang berguna, Chromium akan cuba memberikan perihalan untuk anda. Untuk membuat perihalan, imej dihantar kepada Google. Anda boleh mematikan pilihan ini dalam tetapan pada bila-bila masa.</translation>
+<translation id="8266560134891435528">Chromium tidak dapat menyemak kata laluan anda kerana anda tidak log masuk</translation>
 <translation id="8276522524898344151">Chromium cuba menyalin kata laluan.</translation>
 <translation id="8290862415967981663">Fail ini mungkin berbahaya, maka Chromium telah menyekatnya.</translation>
 <translation id="8330519371938183845">Log masuk untuk menyegerakkan dan memperibadikan Chromium pada semua peranti anda</translation>
diff --git a/chrome/app/resources/chromium_strings_my.xtb b/chrome/app/resources/chromium_strings_my.xtb
index bc984ee..7bc030a 100644
--- a/chrome/app/resources/chromium_strings_my.xtb
+++ b/chrome/app/resources/chromium_strings_my.xtb
@@ -95,6 +95,7 @@
 <translation id="4708774505295300557">တစ်စုံတစ်ယောက်သည် ယခင်က ဤကွန်ပျူတာပေါ်တွင် Chromium သို့ <ph name="ACCOUNT_EMAIL_LAST" /> အဖြစ် လက်မှတ်ထိုးဝင်ခဲ့သည်။ သင့်အချက်အလက်များကို ခွဲခြားထားရန် Chromium အသုံးပြုသူ အသစ်သတ်မှတ်ပါ။</translation>
 <translation id="4746050847053251315">မည်သို့ပင်ဖြစ်စေ Chromium ကို ပိတ်လိုပါသလား။</translation>
 <translation id="4748217263233248895">Chromium အတွက် အထူးလုံခြုံရေးအပ်ဒိတ်ကို ယခုလေးတင် ထည့်သွင်းထားသည်။ ယခုပြန်လည်စတင်လိုက်ပါက သင်၏ တဘ်များကို ပြန်ဖွင့်ပေးပါမည်။</translation>
+<translation id="4750035648288509542">အပ်ဒိတ်လုပ်ပြီးပါတော့မည်။ အပ်ဒိတ်လုပ်ခြင်း အပြီးသတ်ရန် Chromium ကို ပြန်ဖွင့်ပါ။ ရုပ်ဖျက် ဝင်ဒိုးများကို ပြန်ဖွင့်မည် မဟုတ်ပါ။</translation>
 <translation id="479167709087336770">၎င်းက Google ရှာဖွေမှုတွင် အသုံးပြုထားသော စာလုံးပေါင်း စစ်စနစ် တစ်ခုတည်းကို အသုံးပြုသည်။ ဘရောင်ဇာတွင် သင်ရိုက်သည့် စာသားကို Google သို့ပို့ပါသည်။ ဤလုပ်ဆောင်ပုံကို ဆက်တင်များတွင် အချိန်မရွေး ပြောင်းနိုင်သည်။</translation>
 <translation id="4888717733111232871">Chromium အတွက် mDNS သွားလာမှု ခွင့်ပြုရေး အဝင် စည်းကမ်းချက်</translation>
 <translation id="4943838377383847465">Chromium သည် နောက်ခံ မုဒ်ထဲမှာ ရှိနေသည်။</translation>
diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb
index 4a3e56d..9ed6c47 100644
--- a/chrome/app/resources/chromium_strings_nl.xtb
+++ b/chrome/app/resources/chromium_strings_nl.xtb
@@ -94,6 +94,7 @@
 <translation id="4708774505295300557">Iemand heeft eerder bij Chromium op deze computer ingelogd als <ph name="ACCOUNT_EMAIL_LAST" />. Maak een nieuwe Chromium-gebruiker om je informatie gescheiden te houden.</translation>
 <translation id="4746050847053251315">Chromium toch sluiten?</translation>
 <translation id="4748217263233248895">Er is zojuist een speciale beveiligingsupdate voor Chromium toegepast. Start nu opnieuw op. Je tabbladen worden hersteld.</translation>
+<translation id="4750035648288509542">Bijna klaar met updaten. Start Chromium opnieuw om de update te voltooien. Incognitovensters worden niet opnieuw geopend.</translation>
 <translation id="479167709087336770">Hiervoor wordt dezelfde spellingcontrole gebruikt als voor Google Zoeken. Tekst die je in de browser typt, wordt naar Google gestuurd. Je kunt dit altijd wijzigen in de instellingen.</translation>
 <translation id="4888717733111232871">Inkomende regel zodat Chromium mDNS-verkeer toestaat.</translation>
 <translation id="4943838377383847465">Chromium bevindt zich in de achtergrondmodus.</translation>
diff --git a/chrome/app/resources/chromium_strings_no.xtb b/chrome/app/resources/chromium_strings_no.xtb
index c3de5c51..d9ccf9e 100644
--- a/chrome/app/resources/chromium_strings_no.xtb
+++ b/chrome/app/resources/chromium_strings_no.xtb
@@ -92,6 +92,7 @@
 <translation id="4708774505295300557">Noen har tidligere logget på Chromium på denne datamaskinen som <ph name="ACCOUNT_EMAIL_LAST" />. Opprett en ny Chromium-bruker for å holde informasjonen din atskilt.</translation>
 <translation id="4746050847053251315">Vil du avslutte Chromium likevel?</translation>
 <translation id="4748217263233248895">En spesiell sikkerhetsoppdatering for Chromium ble nettopp installert. Start på nytt nå, så gjenoppretter vi fanene dine.</translation>
+<translation id="4750035648288509542">Nesten ferdig oppdatert! Start Chromium på nytt for å fullføre oppdateringen. Inkognitovinduer blir ikke gjenåpnet.</translation>
 <translation id="479167709087336770">Denne funksjonen bruker den samme stavekontrollen som Google Søk. Tekst du skriver inn i nettleseren, sendes til Google. Du kan når som helst endre dette i innstillingene.</translation>
 <translation id="4888717733111232871">Regel om innkommende trafikk for Chromium for å tillate mDNS-trafikk.</translation>
 <translation id="4943838377383847465">Chromium er i bakgrunnsmodus.</translation>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb
index 9f2f744a..f6b62ee 100644
--- a/chrome/app/resources/chromium_strings_pl.xtb
+++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -90,6 +90,7 @@
 <translation id="4708774505295300557">Ktoś zalogował się wcześniej w Chromium na tym komputerze jako <ph name="ACCOUNT_EMAIL_LAST" />. Utwórz nowego użytkownika Chromium, by Twoje informacje były przechowywane oddzielnie.</translation>
 <translation id="4746050847053251315">Zamknąć Chromium mimo to?</translation>
 <translation id="4748217263233248895">Właśnie została zastosowana specjalna aktualizacja zabezpieczeń Chromium. Uruchom ponownie Chromium teraz. Karty zostaną przywrócone.</translation>
+<translation id="4750035648288509542">Prawie gotowe! Uruchom Chromium ponownie, by ukończyć aktualizację. Okna incognito nie otworzą się ponownie.</translation>
 <translation id="479167709087336770">Będzie stosowany ten sam mechanizm sprawdzania pisowni, który jest używany w wyszukiwarce Google. Tekst wpisywany w przeglądarce jest wysyłany do Google. Zawsze możesz to zmienić w ustawieniach.</translation>
 <translation id="4888717733111232871">Reguła dla ruchu przychodzącego w Chromium zezwalająca na ruch mDNS.</translation>
 <translation id="4943838377383847465">Chromium jest w trybie działania w tle</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb
index 6b765fec..e340610a 100644
--- a/chrome/app/resources/chromium_strings_pt-BR.xtb
+++ b/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -90,6 +90,7 @@
 <translation id="4708774505295300557">Anteriormente, alguém fez login no Chromium neste computador como <ph name="ACCOUNT_EMAIL_LAST" />. Crie um novo usuário do Chromium para manter suas informações separadas.</translation>
 <translation id="4746050847053251315">Sair do Chromium mesmo assim?</translation>
 <translation id="4748217263233248895">Uma atualização de segurança especial para o Chromium acabou de ser aplicada. Reinicie agora, e suas guias serão restauradas.</translation>
+<translation id="4750035648288509542">Falta pouco para a atualização terminar. Reinicie o Chromium para concluí-la. As janelas anônimas não serão abertas novamente.</translation>
 <translation id="479167709087336770">Esta opção usa o mesmo corretor ortográfico usado na Pesquisa Google. O texto digitado no navegador é enviado para o Google. É possível alterar esse comportamento nas configurações a qualquer momento.</translation>
 <translation id="4888717733111232871">Regra interna para que o Chromium permita tráfego mDNS.</translation>
 <translation id="4943838377383847465">O Chromium está em modo de segundo plano.</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-PT.xtb b/chrome/app/resources/chromium_strings_pt-PT.xtb
index 069b578..e95ee8f 100644
--- a/chrome/app/resources/chromium_strings_pt-PT.xtb
+++ b/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -92,6 +92,7 @@
 <translation id="4708774505295300557">Alguém iniciou sessão no Chromium neste computador anteriormente com a conta <ph name="ACCOUNT_EMAIL_LAST" />. Crie um novo utilizador do Chromium para manter as informações em separado.</translation>
 <translation id="4746050847053251315">Pretende fechar o Chromium mesmo assim?</translation>
 <translation id="4748217263233248895">Acabou de ser instalada uma atualização de segurança especial para o Chromium. Reinicie agora e iremos restaurar os seus separadores.</translation>
+<translation id="4750035648288509542">Quase atualizado! Reinicie o Chromium para concluir a atualização. Não é possível reabrir as suas janelas de navegação anónima.</translation>
 <translation id="479167709087336770">Utiliza o mesmo corretor ortográfico utilizado na Pesquisa Google. O texto que introduzir no navegador é enviado à Google. Pode alterar este comportamento nas definições.</translation>
 <translation id="4888717733111232871">Regra de importação para o Chromium permitir o tráfego mDNS.</translation>
 <translation id="4943838377383847465">O Chromium está no modo em segundo plano.</translation>
diff --git a/chrome/app/resources/chromium_strings_ru.xtb b/chrome/app/resources/chromium_strings_ru.xtb
index 0153c92..e547663 100644
--- a/chrome/app/resources/chromium_strings_ru.xtb
+++ b/chrome/app/resources/chromium_strings_ru.xtb
@@ -16,11 +16,13 @@
 <translation id="1779356040007214683">Чтобы обеспечить безопасность ваших данных, некоторые расширения Chromium были отключены, так как <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> не содержит сведений о них, то есть эти компоненты могли быть установлены без вашего ведома.</translation>
 <translation id="1808667845054772817">Переустановить Chromium</translation>
 <translation id="1881322772814446296">Выполнив вход в управляемый аккаунт, вы предоставляете администратору право контролировать настройки вашего профиля Chromium. Ваши данные Chromium (приложения, закладки, история, пароли и другие настройки) будут временно связаны с аккаунтом <ph name="USER_NAME" />. Эти данные можно удалить в Личном кабинете Google, но их нельзя связать с другим аккаунтом. Чтобы сохранить данные Chromium отдельно, создайте новый профиль. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Не удается запустить проверку всех паролей в Chromium. Повторите попытку через 24 часа.</translation>
 <translation id="1911763535808217981">Отключив эту функцию, вы сможете входить в систему на сайтах Google (например, Gmail) без необходимости выполнять вход в Chromium.</translation>
 <translation id="1929939181775079593">Chromium не отвечает. Перезапустить сейчас?</translation>
 <translation id="1966382378801805537">Chromium не удалось определить или задать браузер по умолчанию</translation>
 <translation id="2008474315282236005">С устройства будет удален 1 объект. Чтобы восстановить данные позже, войдите в Chromium как <ph name="USER_EMAIL" />.</translation>
 <translation id="2147976119693222405">Не удалось синхронизировать данные. Войдите, чтобы исправить эту ошибку.</translation>
+<translation id="2185166961232948079">Chromium – вход в сеть – <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">Если, кроме вас, компьютером пользуется кто-то ещё, например родные или друзья, они тоже смогут настроить Chromium на свой вкус.</translation>
 <translation id="2347108572062610441">Расширение изменило стартовую страницу Chromium.</translation>
 <translation id="2396765026452590966">Расширение "<ph name="EXTENSION_NAME" />" изменило стартовую страницу Chromium.</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">(Необязательно) Помогите сделать Chromium лучше, автоматически отправляя статистику использования и отчеты об ошибках в Google.</translation>
 <translation id="2910007522516064972">О &amp;Chromium</translation>
 <translation id="2977470724722393594">Вы используете последнюю версию Chromium</translation>
+<translation id="3032706164202344641">Не удается запустить проверку паролей в Chromium. Повторите попытку позже.</translation>
 <translation id="3032787606318309379">Добавление в Chromium...</translation>
 <translation id="3068515742935458733">Помочь улучшить Chromium, отправляя в Google отчеты о сбоях и <ph name="UMA_LINK" /></translation>
 <translation id="3103660991484857065">Установка прервана на этапе распаковки архива. Скачайте Chromium ещё раз.</translation>
@@ -70,6 +73,7 @@
 <translation id="3945058413678539331">Chromium пытается скопировать пароли. Чтобы разрешить это действие, введите свой пароль Windows.</translation>
 <translation id="4036079820698952681">Отправьте отчет о <ph name="BEGIN_LINK" />текущих настройках Chromium<ph name="END_LINK" />, чтобы помочь нам улучшить браузер</translation>
 <translation id="4050175100176540509">В последней версии улучшена защита и добавлены новые функции.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> – вход в сеть – Chromium</translation>
 <translation id="421369550622382712">Широкий выбор приложений, игр, расширений и тем для Chromium.</translation>
 <translation id="4216212958613226427">На этом языке отображается интерфейс Chromium</translation>
 <translation id="4230135487732243613">Связать данные Chromium с этим аккаунтом?</translation>
@@ -78,6 +82,7 @@
 <translation id="4407044323746248786">Закрыть Chromium?</translation>
 <translation id="4415566066719264597">Разрешить Chromium работать в фоновом режиме</translation>
 <translation id="4423735387467980091">Настройка и управление Chromium</translation>
+<translation id="4544142686420020088">Не удалось обновить Chromium. <ph name="BEGIN_LINK" />Выяснить причины неполадок и устранить их<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">Вы вошли с помощью аккаунта <ph name="USER_EMAIL_ADDRESS" />. Ваши закладки, история и другие настройки теперь доступны на всех устройствах, где вы используете этот аккаунт.</translation>
 <translation id="459535195905078186">Приложения Chromium</translation>
 <translation id="4677944499843243528">Скорее всего, профиль используется другим процессом Chromium (<ph name="PROCESS_ID" />) на другом компьютере (<ph name="HOST_NAME" />). Во избежание сбоев профиль был заблокирован. Если вы уверены, что профиль не используется другими процессами, разблокируйте его и перезапустите Chromium.</translation>
@@ -110,6 +115,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Добро пожаловать в Chromium</translation>
 <translation id="5895138241574237353">Перезапустить</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – вход в сеть</translation>
 <translation id="5987687638152509985">Чтобы начать синхронизацию, обновите Chromium</translation>
 <translation id="6013050204643758987">Chromium OS, как и <ph name="BEGIN_LINK_LINUX_OSS" />Linux (бета-версия)<ph name="END_LINK_LINUX_OSS" />, работает благодаря дополнительному <ph name="BEGIN_LINK_CROS_OSS" />программному обеспечению с открытым исходным кодом<ph name="END_LINK_CROS_OSS" />.</translation>
 <translation id="6055895534982063517">Доступна новая версия Chromium, которая стала еще быстрее.</translation>
@@ -149,6 +155,7 @@
 <translation id="6893813176749746474">Chromium был обновлен, однако вы не использовали его в течение последних 30 дней.</translation>
 <translation id="6964305034639999644">Открыть ссылку в режиме инкогнито браузера Chromium</translation>
 <translation id="6990124437352146030">Для этого сайта Chromium запрашивает доступ к микрофону.</translation>
+<translation id="701244094609242530">Не удается запустить проверку паролей в Chromium. Повторите попытку позже.</translation>
 <translation id="705851970750939768">Обновить Chromium</translation>
 <translation id="7066436765290594559">Не удалось синхронизировать данные. Обновите кодовую фразу в Sync.</translation>
 <translation id="7067091210845072982">Если у изображения нет понятного описания, Chromium попытается его найти. Для создания описаний изображения отправляются в Google.</translation>
@@ -188,6 +195,7 @@
 <translation id="8013436988911883588">Когда вы предоставите доступ Chromium, веб-сайты также смогут запрашивать у вас доступ.</translation>
 <translation id="81770708095080097">Chromium заблокировал этот файл как опасный.</translation>
 <translation id="8248265253516264921">Если у изображения нет понятного описания, Chromium попытается его найти. Для создания описаний изображения отправляются в Google. Эту функцию можно отключить в настройках в любое время.</translation>
+<translation id="8266560134891435528">Не удается запустить проверку паролей в Chromium, поскольку вы не вошли в аккаунт.</translation>
 <translation id="8276522524898344151">Chromium пытается скопировать пароли</translation>
 <translation id="8290862415967981663">Chromium заблокировал этот файл как потенциально опасный.</translation>
 <translation id="8330519371938183845">Войдите, чтобы синхронизировать данные Chromium на всех устройствах</translation>
diff --git a/chrome/app/resources/chromium_strings_si.xtb b/chrome/app/resources/chromium_strings_si.xtb
index d4e5980..8e42bf7 100644
--- a/chrome/app/resources/chromium_strings_si.xtb
+++ b/chrome/app/resources/chromium_strings_si.xtb
@@ -94,6 +94,7 @@
 <translation id="4708774505295300557">යම් කෙනෙක් පෙරදී මෙම පරිගණකය මත Chromium වෙත <ph name="ACCOUNT_EMAIL_LAST" /> ලෙස පුරා ඇත. ඔබේ තොරතුරු වෙනම තබා ගැනීමට කරුණාකර නව Chromium පරිශීලකයෙක් සාදන්න.</translation>
 <translation id="4746050847053251315">කෙසේ වුවත් Chromium වෙතින් ඉවත් වන්න ද?</translation>
 <translation id="4748217263233248895">Chromium සඳහා විශේෂ ආරක්‍ෂක යාවත්කාලීනයක් දැන් යොදා ගත්තා. දැන් යළි අරඹන්න, අපි ඔබේ පටිති ප්‍රතිසාධන කරන්නම්.</translation>
+<translation id="4750035648288509542">බොහෝ දුරට යාවත්කාලීනයි! යාවත්කාලීනය අවසන් කිරීමට Chromium යළි දියත් කරන්න. අප්‍රසිද්ධ කවුළු යළි විවෘත නොවෙයි.</translation>
 <translation id="479167709087336770">මෙය Google සෙවීම තුළ භාවිත කෙරෙන අක්‍ෂර පරීක්‍ෂකයම භාවිත කරයි. ඔබ බ්‍රවුසරය තුළ ටයිප් කරන පාඨය Google වෙත යවනු ලැබේ. ඔබට සැම විටම මෙම හැසිරීම සැකසීම් තුළ වෙනස් කළ හැක.</translation>
 <translation id="4888717733111232871">Chromium සඳහා අභ්‍යන්තර නියෝගය mDNS තදබදය ඉඩ දීමයි.</translation>
 <translation id="4943838377383847465">Chromium පසුබිම් ප්‍රකාරය තුළ ඇත.</translation>
diff --git a/chrome/app/resources/chromium_strings_sk.xtb b/chrome/app/resources/chromium_strings_sk.xtb
index 7bf0f7a..d244b15 100644
--- a/chrome/app/resources/chromium_strings_sk.xtb
+++ b/chrome/app/resources/chromium_strings_sk.xtb
@@ -94,6 +94,7 @@
 <translation id="4708774505295300557">Do prehliadača Chromium 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 prehliadači Chromium nového používateľa.</translation>
 <translation id="4746050847053251315">Chcete Chromium napriek tomu ukončiť?</translation>
 <translation id="4748217263233248895">Práve bola použitá mimoriadna bezpečnostná aktualizácia pre prehliadač Chromium. Zmeny sa prejavia až po jeho reštartovaní (vaše karty sa automaticky obnovia).</translation>
+<translation id="4750035648288509542">Takmer aktualizované. Aktualizáciu dokončíte reštartovaním prehliadača Chromium. Okná inkognito sa neotvoria.</translation>
 <translation id="479167709087336770">Využíva rovnaký nástroj na kontrolu pravopisu, aký sa používa vo Vyhľadávaní Google. Text zadaný do prehliadača sa odošle Googlu. Toto správanie môžete zmeniť v nastaveniach.</translation>
 <translation id="4888717733111232871">Pravidlo pre prichádzajúce prenosy pre prehliadač Chromium, ktoré povoľuje prenos dát mDNS.</translation>
 <translation id="4943838377383847465">Chromium je v režime na pozadí.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb
index 26df138..bcef9914 100644
--- a/chrome/app/resources/chromium_strings_sr.xtb
+++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -94,6 +94,7 @@
 <translation id="4708774505295300557">Неко се претходно пријавио на Chromium на овом рачунару као <ph name="ACCOUNT_EMAIL_LAST" />. Направите новог Chromium корисника да би информације биле раздвојене.</translation>
 <translation id="4746050847053251315">Желите ли ипак да затворите Chromium?</translation>
 <translation id="4748217263233248895">Посебно безбедносно ажурирање за Chromium је управо примењено. Рестартујте га и вратићемо вам картице.</translation>
+<translation id="4750035648288509542">Скоро је ажуриран! Поново покрените Chromium да бисте довршили ажурирање. Прозори без архивирања се неће поново отворити.</translation>
 <translation id="479167709087336770">Користи исту проверу правописа као Google претрага. Текст који унесете у прегледач се шаље Google-у. То увек можете да промените у подешавањима.</translation>
 <translation id="4888717733111232871">Правило за долазни саобраћај за Chromium да би се омогућио mDNS саобраћај.</translation>
 <translation id="4943838377383847465">Chromium је у позадинском режиму.</translation>
diff --git a/chrome/app/resources/chromium_strings_sv.xtb b/chrome/app/resources/chromium_strings_sv.xtb
index e97878e6..eef8002 100644
--- a/chrome/app/resources/chromium_strings_sv.xtb
+++ b/chrome/app/resources/chromium_strings_sv.xtb
@@ -94,6 +94,7 @@
 <translation id="4708774505295300557">Någon har tidigare loggat in i Chrome som <ph name="ACCOUNT_EMAIL_LAST" /> på den här datorn. Skapa en ny Chromium-användare så att dina uppgifter hålls separat.</translation>
 <translation id="4746050847053251315">Vill du avsluta Chromium ändå?</translation>
 <translation id="4748217263233248895">En särskild säkerhetsuppdatering för Chromium installerades precis. Starta om webbläsaren nu. Flikarna återställs efteråt.</translation>
+<translation id="4750035648288509542">Uppdateringen är snart klar! Starta Chromium igen för att avsluta uppdateringen. Inkognitofönster öppnas inte igen.</translation>
 <translation id="479167709087336770">Detta använder samma stavningskontroll som Google Sök. Text som du skriver i webbläsaren skickas till Google. Du kan när som helst ändra detta i inställningarna.</translation>
 <translation id="4888717733111232871">Regel som tillåter inkommande mDNS-trafik för Chromium.</translation>
 <translation id="4943838377383847465">Chromium körs i bakgrundsläge.</translation>
diff --git a/chrome/app/resources/chromium_strings_sw.xtb b/chrome/app/resources/chromium_strings_sw.xtb
index 9c5caac..bd0018f1 100644
--- a/chrome/app/resources/chromium_strings_sw.xtb
+++ b/chrome/app/resources/chromium_strings_sw.xtb
@@ -94,6 +94,7 @@
 <translation id="4708774505295300557">Kuna mtu aliingia katika Chromium kwenye kompyuta hii akitumia <ph name="ACCOUNT_EMAIL_LAST" />. Tafadhali ongeza wasifu mpya wa Chromium ili utenganishe maelezo yako.</translation>
 <translation id="4746050847053251315">Ungependa kufunga Chromium?</translation>
 <translation id="4748217263233248895">Sasisho maalum la usalama wa Chromium limewekwa sasa hivi. Ifunge kisha uifungue na tutarejesha vichupo vyako.</translation>
+<translation id="4750035648288509542">Inaelekea kukamilisha mchakato wa kusasisha! Fungua tena Chromium ili ukamilishe mchakato wa kusasisha. Haitafungua upya madirisha fiche.</translation>
 <translation id="479167709087336770">Huduma hii hutumia kikagua maendelezo sawa na kinachotumika kwenye Huduma ya Tafuta na Google. Maandishi unayoandika kwenye kivinjari yanatumwa kwa Google. Unaweza kubadilisha hali hii katika mipangilio wakati wowote.</translation>
 <translation id="4888717733111232871">Sheria ya ndani ya Chromium ili kuruhusu trafiki ya mDNS.</translation>
 <translation id="4943838377383847465">Chromium iko katika hali ya chini chini.</translation>
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb
index ad3d4bd..ef3055b 100644
--- a/chrome/app/resources/chromium_strings_ta.xtb
+++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -60,6 +60,7 @@
 <translation id="358997566136285270">Chromium லோகோ</translation>
 <translation id="3639635944603682591">இவருடைய உலாவிய தரவு இந்தச் சாதனத்திலிருந்து நீக்கப்படும். தரவை மீட்டெடுக்க, Chromiumமில் <ph name="USER_EMAIL" /> ஆக உள்நுழையவும்.</translation>
 <translation id="364817392622123556">{COUNT,plural, =0{Chromiumமின் புதிய புதுப்பிப்பு உள்ளது, மீண்டும் தொடங்கும்போது அது பயன்படுத்தப்படும்.}=1{Chromiumமின் புதிய புதுப்பிப்பு உள்ளது, மீண்டும் தொடங்கும்போது அது பயன்படுத்தப்படும். உங்கள் மறைநிலை சாளரம் மீண்டும் திறக்காது.}other{Chromiumமின் புதிய புதுப்பிப்பு உள்ளது, மீண்டும் தொடங்கும்போது அது பயன்படுத்தப்படும். உங்கள் # மறைநிலை சாளரங்கள் மீண்டும் திறக்காது.}}</translation>
+<translation id="3685209450716071127">Chromiumமால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியாது. உங்கள் இணைய இணைப்பைச் சரிபார்க்க முயலவும்.</translation>
 <translation id="370962675267501463">{COUNT,plural, =0{இந்தப் புதுப்பிப்பைப் பயன்படுத்த Chromiumமை மீண்டும் தொடங்கும்படி உங்கள் நிர்வாகி பரிந்துரைக்கிறார்}=1{இந்தப் புதுப்பிப்பைப் பயன்படுத்த Chromiumமை மீண்டும் தொடங்கும்படி உங்கள் நிர்வாகி பரிந்துரைக்கிறார். உங்கள் மறைநிலை சாளரம் மீண்டும் திறக்காது.}other{இந்தப் புதுப்பிப்பைப் பயன்படுத்த Chromiumமை மீண்டும் தொடங்கும்படி உங்கள் நிர்வாகி பரிந்துரைக்கிறார். உங்கள் # மறைநிலை சாளரங்கள் மீண்டும் திறக்காது.}}</translation>
 <translation id="3713809861844741608">புதிய Chromium &amp;தாவலில் இணைப்பைத் திற</translation>
 <translation id="3728336900324680424">முகவரிப் பட்டியில் பரிந்துரைகளை வழங்க, Chromium உங்கள் இயக்ககத்தை அணுகும்</translation>
@@ -90,6 +91,7 @@
 <translation id="4987820182225656817">எதையும் விட்டுசெல்லாமல் கெஸ்ட் பயனர்கள் Chromium ஐப் பயன்படுத்தலாம்.</translation>
 <translation id="4994636714258228724">உங்களை Chromium இல் சேர்க்கவும்</translation>
 <translation id="5277894862589591112">உங்கள் மாற்றங்களைச் செயல்படுத்த, Chromiumமை மீண்டும் தொடங்கவும்</translation>
+<translation id="5310059007469274549">நீங்கள் சேமித்து வைத்துள்ள கடவுச்சொற்கள் அதிகளவில் உள்ளதால் Chromiumமால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியவில்லை</translation>
 <translation id="5358375970380395591">நீங்கள் நிர்வகிக்கப்படும் கணக்கு மூலம் உள்நுழைகிறீர்கள், மேலும் அதன் நிர்வாகிக்கு உங்கள் Chromium சுயவிவரத்தின் கட்டுப்பாட்டை வழங்குகிறீர்கள். உங்கள் ஆப்ஸ், புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் போன்ற உங்கள் Chromium தரவு மற்றும் பிற அமைப்புகள் நிரந்தரமாக <ph name="USER_NAME" /> உடன் இணைக்கப்படும். இந்தத் தரவை Google கணக்குகளின் டாஷ்போர்டு வழியாக நீக்க முடியும், ஆனால் இந்தத் தரவை வேறொரு கணக்குடன் தொடர்புபடுத்த முடியாது. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromiumஐப் புதுப்பிக்கிறது (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="538767207339317086">Chromium உள்நுழைவை அனுமதித்தல்</translation>
@@ -120,6 +122,7 @@
 <translation id="6212496753309875659">இந்தக் கம்ப்யூட்டரில் ஏற்கனவே Chromiumமின் மிகச் சமீபத்திய பதிப்பு உள்ளது. மென்பொருள் இயங்கவில்லை எனில் Chromiumமை நிறுவல் நீக்கி, பின்னர் முயலவும்.</translation>
 <translation id="6219195342503754812">{0,plural, =0{இப்போது Chromium மீண்டும் தொடங்கும்}=1{ஒரு வினாடியில் Chromium மீண்டும் தொடங்கும்}other{# வினாடிகளில் Chromium மீண்டும் தொடங்கும்}}</translation>
 <translation id="6248213926982192922">Chromium ஐ இயல்புநிலை உலாவியாக மாற்று</translation>
+<translation id="6266342355635466082">Chromiumமால் புதுப்பிப்புகளைச் சரிபார்க்க முடியாது. உங்கள் இணைய இணைப்பைச் சரிபார்க்க முயலவும்.</translation>
 <translation id="6268381023930128611">Chromium இலிருந்து வெளியேறவா?</translation>
 <translation id="6295779123002464101"><ph name="FILE_NAME" /> ஆபத்தானதாக இருக்கலாம் என்பதால் Chromium அதைத் தடுத்துள்ளது.</translation>
 <translation id="6309712487085796862">Chromium உங்கள் கேமராவைப் பயன்படுத்துகிறது.</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb
index 9a3a4ec..9f34fed 100644
--- a/chrome/app/resources/chromium_strings_th.xtb
+++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -16,11 +16,13 @@
 <translation id="1779356040007214683">เพื่อให้ Chromium ปลอดภัยขึ้น เราได้ปิดส่วนขยายบางรายการที่ไม่ได้ระบุไว้ใน <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> และอาจถูกเพิ่มเข้ามาโดยที่คุณไม่รู้ตัว</translation>
 <translation id="1808667845054772817">ติดตั้ง Chromium ใหม่</translation>
 <translation id="1881322772814446296">คุณกำลังลงชื่อเข้าใช้ด้วยบัญชีที่จัดการ และให้การควบคุมระดับผู้ดูแลระบบของบัญชีดังกล่าวเหนือโปรไฟล์ Chromium ของคุณ ข้อมูล Chromium เช่น แอป บุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และการตั้งค่าอื่นๆ จะเชื่อมโยงอย่างถาวรกับ <ph name="USER_NAME" /> คุณจะสามารถลบข้อมูลนี้ผ่านทางแผงควบคุมบัญชี Google แต่คุณจะไม่สามารถเชื่อมโยงข้อมูลนี้กับบัญชีอื่น คุณสามารถเลือกที่จะสร้างโปรไฟล์ใหม่เพื่อแยกเก็บข้อมูล Chromium ที่มีอยู่ของคุณ <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium ตรวจสอบรหัสผ่านทั้งหมดของคุณไม่ได้ โปรดลองอีกครั้งหลังผ่านไป 24 ชั่วโมง</translation>
 <translation id="1911763535808217981">เมื่อปิดการตั้งค่านี้ คุณจะลงชื่อเข้าใช้เว็บไซต์ของ Google อย่างเช่น Gmail ได้โดยไม่ต้องลงชื่อเข้าใช้ Chromium</translation>
 <translation id="1929939181775079593">Chromium ไม่ตอบสนอง เปิดใหม่เลยหรือไม่</translation>
 <translation id="1966382378801805537">Chromium ไม่สามารถกำหนดหรือตั้งค่าเบราว์เซอร์เริ่มต้น</translation>
 <translation id="2008474315282236005">การดำเนินการนี้จะลบ 1 รายการออกจากอุปกรณ์นี้ หากต้องการดึงข้อมูลภายหลัง ให้ลงชื่อเข้าใช้ Chromium ด้วย <ph name="USER_EMAIL" /></translation>
 <translation id="2147976119693222405">Chromium OS ซิงค์ข้อมูลของคุณไม่ได้ แก้ไขเลย</translation>
+<translation id="2185166961232948079">Chromium - หน้าลงชื่อเข้าใช้ของเครือข่าย - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">ถ้าคุณให้ผู้อื่นใช้คอมพิวเตอร์ร่วมด้วย เพื่อนๆ และครอบครัวของคุณสามารถท่องเว็บแยกกันได้และตั้งค่า Chromium ได้ตามที่พวกเขาต้องการ</translation>
 <translation id="2347108572062610441">ส่วนขยายนี้ได้เปลี่ยนหน้าที่จะแสดงเมื่อคุณเริ่มต้น Chromium</translation>
 <translation id="2396765026452590966">ส่วนขยาย "<ph name="EXTENSION_NAME" />" ได้เปลี่ยนหน้าที่จะแสดงเมื่อคุณเริ่มต้น Chromium</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">ตัวเลือก: ช่วยปรับปรุง Chromium ให้ดีขึ้นโดยการส่งสถิติการใช้งานและรายงานข้อขัดข้องไปยัง Google โดยอัตโนมัติ</translation>
 <translation id="2910007522516064972">เกี่ยวกับ &amp;Chromium</translation>
 <translation id="2977470724722393594">Chromium อัปเดตแล้ว</translation>
+<translation id="3032706164202344641">Chromium ตรวจสอบรหัสผ่านของคุณไม่ได้ โปรดลองอีกครั้งภายหลัง</translation>
 <translation id="3032787606318309379">กำลังเพิ่มลงใน Chromium...</translation>
 <translation id="3068515742935458733">ช่วยทำให้ Chromium ดียิ่งขึ้นโดยการส่งรายงานข้อขัดข้องและ <ph name="UMA_LINK" /> ไปยัง Google</translation>
 <translation id="3103660991484857065">โปรแกรมติดตั้งคลายการบีบอัดการเก็บข้อมูลไม่ได้ โปรดดาวน์โหลด Chromium อีกครั้ง</translation>
@@ -72,6 +75,7 @@
 <translation id="3945058413678539331">Chromium กำลังพยายามคัดลอกรหัสผ่าน โปรดพิมพ์รหัสผ่าน Windows ของคุณเพื่ออนุญาต</translation>
 <translation id="4036079820698952681">ช่วยให้ Chromium ดียิ่งขึ้นด้วยการรายงาน<ph name="BEGIN_LINK" />การตั้งค่าปัจจุบัน<ph name="END_LINK" /></translation>
 <translation id="4050175100176540509">การปรับปรุงด้านความปลอดภัยที่สำคัญและฟีเจอร์ใหม่ๆ พร้อมให้บริการในเวอร์ชันล่าสุด</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - หน้าลงชื่อเข้าใช้ของเครือข่าย - Chromium</translation>
 <translation id="421369550622382712">พบกับแอป เกม ส่วนขยาย และธีมเด็ดๆ สำหรับ Chromium</translation>
 <translation id="4216212958613226427">นี่เป็นภาษาที่ใช้ในการแสดง UI ของ Chromium</translation>
 <translation id="4230135487732243613">เชื่อมโยงข้อมูล Chromium กับบัญชีนี้ไหม</translation>
@@ -80,6 +84,7 @@
 <translation id="4407044323746248786">ออกจาก Chromium ใช่ไหม</translation>
 <translation id="4415566066719264597">ให้ Chromium ทำงานในพื้นหลัง</translation>
 <translation id="4423735387467980091">กำหนดค่าและควบคุม Chromium</translation>
+<translation id="4544142686420020088">Chromium ไม่ได้อัปเดตเนื่องจากเกิดข้อผิดพลาด <ph name="BEGIN_LINK" />โปรดแก้ปัญหาการอัปเดต Chrome และการอัปเดตที่ไม่สำเร็จ<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">คุณกำลังลงชื่อเข้าใช้เป็น <ph name="USER_EMAIL_ADDRESS" /> ตอนนี้คุณสามารถเข้าถึงบุ๊กมาร์ก ประวัติการเข้าชม และการตั้งค่าอื่นๆ บนอุปกรณ์ทั้งหมดที่ลงชื่อเข้าใช้</translation>
 <translation id="459535195905078186">แอป Chromium</translation>
 <translation id="4677944499843243528">ดูเหมือนว่าโปรไฟล์กำลังถูกใช้งานโดยกระบวนการอื่นของ Chromium (<ph name="PROCESS_ID" />) บนคอมพิวเตอร์อีกเครื่อง (<ph name="HOST_NAME" />) Chromium ล็อกโปรไฟล์ไว้เพื่อไม่ให้โปรไฟล์เกิดความเสียหาย หากคุณมั่นใจว่าไม่มีกระบวนการอื่นใดกำลังใช้โปรไฟล์นี้อยู่ คุณสามารถปลดล็อกโปรไฟล์และเปิด Chromium ใหม่</translation>
@@ -112,6 +117,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">ยินดีต้อนรับสู่ Chromium</translation>
 <translation id="5895138241574237353">ปิดแล้วเปิดอีกครั้ง</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - หน้าลงชื่อเข้าใช้ของเครือข่าย</translation>
 <translation id="5987687638152509985">อัปเดต Chromium เพื่อเริ่มการซิงค์</translation>
 <translation id="6013050204643758987">Chromium OS เกิดขึ้นได้ด้วยการสนับสนุนจาก<ph name="BEGIN_LINK_CROS_OSS" />ซอฟต์แวร์โอเพนซอร์ส<ph name="END_LINK_CROS_OSS" />เพิ่มเติม เช่นเดียวกับ <ph name="BEGIN_LINK_LINUX_OSS" />Linux (เบต้า)<ph name="END_LINK_LINUX_OSS" /></translation>
 <translation id="6055895534982063517">มี Chromium รุ่นใหม่ให้ใช้งานแล้วและทำงานได้เร็วกว่าเดิม</translation>
@@ -151,6 +157,7 @@
 <translation id="6893813176749746474">Chromium ได้รับการอัปเดตแล้ว แต่คุณไม่ได้ใช้งานมาไม่ต่ำกว่า 30 วันแล้ว</translation>
 <translation id="6964305034639999644">เปิดลิงก์ในหน้าต่างที่ไม่ระบุตัวตนของ Chromium</translation>
 <translation id="6990124437352146030">Chromium ต้องการสิทธิ์เข้าถึงไมโครโฟนของคุณสำหรับเว็บไซต์นี้</translation>
+<translation id="701244094609242530">Chromium ตรวจสอบส่วนขยายของคุณไม่ได้ โปรดลองอีกครั้งภายหลัง</translation>
 <translation id="705851970750939768">อัปเดต Chromium</translation>
 <translation id="7066436765290594559">Chromium OS ไม่สามารถซิงค์ข้อมูลของคุณ โปรดอัปเดตข้อความรหัสผ่านสำหรับการซิงค์</translation>
 <translation id="7067091210845072982">หากรูปภาพไม่มีคำอธิบายที่เป็นประโยชน์ Chromium จะพยายามใส่คำอธิบายให้คุณ รูปภาพจะส่งมายัง Google เพื่อสร้างคำอธิบาย</translation>
@@ -192,6 +199,7 @@
 <translation id="8013436988911883588">เมื่อ Chromium มีสิทธิ์การเข้าถึงแล้ว เว็บไซต์จะขอสิทธิ์การเข้าถึงจากคุณได้</translation>
 <translation id="81770708095080097">ไฟล์นี้อันตราย Chromium จึงบล็อกไว้</translation>
 <translation id="8248265253516264921">หากรูปภาพไม่มีคำอธิบายที่เป็นประโยชน์ Chromium จะพยายามใส่คำอธิบายให้คุณ รูปภาพจะส่งมายัง Google เพื่อสร้างคำอธิบาย คุณปิดการดำเนินการนี้ได้ทุกเมื่อในการตั้งค่า</translation>
+<translation id="8266560134891435528">Chromium ตรวจสอบรหัสผ่านไม่ได้เพราะคุณไม่ได้ลงชื่อเข้าใช้</translation>
 <translation id="8276522524898344151">Chromium กำลังพยายามคัดลอกรหัสผ่าน</translation>
 <translation id="8290862415967981663">ไฟล์นี้อาจเป็นอันตราย Chromium จึงบล็อกไว้</translation>
 <translation id="8330519371938183845">ลงชื่อเข้าใช้เพื่อซิงค์และปรับเปลี่ยน Chromium ในอุปกรณ์ต่างๆ</translation>
diff --git a/chrome/app/resources/chromium_strings_tr.xtb b/chrome/app/resources/chromium_strings_tr.xtb
index 9902eb96..e656521d 100644
--- a/chrome/app/resources/chromium_strings_tr.xtb
+++ b/chrome/app/resources/chromium_strings_tr.xtb
@@ -16,11 +16,13 @@
 <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>
 <translation id="1881322772814446296">Yönetilen bir hesapla oturum açıyor ve hesabın yöneticisine Chromium profilinizi denetleme izni veriyorsunuz. Uygulamalarınız, yer işaretleriniz, geçmişiniz, şifreleriniz ve diğer ayarlarınız gibi Chromium verileriniz kalıcı olarak <ph name="USER_NAME" /> ile bağlantılandırılacaktır. Google Hesapları Hesap Özeti'ni kullanarak bu verileri silebilecek, ancak bu verileri başka bir hesapla ilişkilendiremeyeceksiniz. İsterseniz mevcut Chromium verilerinizi ayrı tutmak için yeni bir profil oluşturabilirsiniz. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium, tüm şifrelerinizi kontrol edemiyor. 24 saat sonra tekrar deneyin.</translation>
 <translation id="1911763535808217981">Bu özelliği kapatarak Chromium'da oturum açmadan Gmail gibi Google sitelerinde oturum açabilirsiniz</translation>
 <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="2147976119693222405">Chromium OS, verilerinizi senkronize edemedi. Şimdi düzelt.</translation>
+<translation id="2185166961232948079">Chromium - Ağda Oturum Açın - <ph name="PAGE_TITLE" /></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>
 <translation id="2396765026452590966">"<ph name="EXTENSION_NAME" />" uzantısı, Chromium'u başlattığınızda gösterilen sayfayı değiştirdi.</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">İsteğe Bağlı: Kullanıcı istatistiklerini ve kilitlenme raporlarını Google'a otomatik olarak göndererek Chromium'u iyileştirmemize yardımcı olun.</translation>
 <translation id="2910007522516064972">&amp;Chromium hakkında</translation>
 <translation id="2977470724722393594">Chromium güncel durumda</translation>
+<translation id="3032706164202344641">Chromium, şifrelerinizi kontrol edemiyor. Daha sonra tekrar deneyin.</translation>
 <translation id="3032787606318309379">Chromium'a ekleniyor ...</translation>
 <translation id="3068515742935458733">Kilitlenme raporlarını ve <ph name="UMA_LINK" /> bilgilerini Google'a göndererek, Chromium'u daha iyi hale getirmeye yardımcı olun</translation>
 <translation id="3103660991484857065">Yükleyici sıkıştırılmış arşivi açamadı. Lütfen Chromium'u yeniden indirin.</translation>
@@ -70,6 +73,7 @@
 <translation id="3945058413678539331">Chromium şifreleri kopyalamaya çalışıyor. Buna izin vermek için Windows şifrenizi yazın.</translation>
 <translation id="4036079820698952681"><ph name="BEGIN_LINK" />Mevcut ayarlarınızı<ph name="END_LINK" /> bildirerek Chromium'u daha iyi hale getirmemize yardımcı olun</translation>
 <translation id="4050175100176540509">Son sürümde güvenlikle ilgili önemli iyileştirmeler ve yeni özellikler mevcuttur.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - Ağda Oturum Açın - Chromium</translation>
 <translation id="421369550622382712">Chromium'a özgü harika uygulamaları, oyunları, uzantıları ve temaları keşfedin.</translation>
 <translation id="4216212958613226427">Bu dil, Chromium kullanıcı arayüzünü görüntülemek için kullanılır</translation>
 <translation id="4230135487732243613">Chromium verileriniz bu hesaba bağlansın mı?</translation>
@@ -78,6 +82,7 @@
 <translation id="4407044323746248786">Yine de Chromium'dan çıkılsın mı?</translation>
 <translation id="4415566066719264597">Chromium'un Arka Planda Çalışmasına İzin Ver</translation>
 <translation id="4423735387467980091">Chromium'u özelleştirin ve kontrol edin</translation>
+<translation id="4544142686420020088">Chromium güncellenmedi. Bir sorun oluştu. <ph name="BEGIN_LINK" />Chrome güncelleme sorunlarını ve başarısız güncellemeleri düzeltin.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812"><ph name="USER_EMAIL_ADDRESS" /> olarak oturum açtınız. Şimdi oturum açtığınız tüm cihazlarda yer işaretlerinize, geçmişinize ve diğer ayarlarınıza erişebilirsiniz.</translation>
 <translation id="459535195905078186">Chromium Uygulamaları</translation>
 <translation id="4677944499843243528">Profilin başka bir bilgisayarda (<ph name="HOST_NAME" />) başka bir Chromium işlemi (<ph name="PROCESS_ID" />) tarafından kullanıldığı anlaşılıyor. Chromium, profili bozulmaması için kilitledi. Bu profili başka hiçbir işlemin kullanmadığından eminseniz profilin kilidini açabilir ve Chromium'u tekrar başlatabilirsiniz.</translation>
@@ -110,6 +115,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5862307444128926510">Chromium'a Hoş Geldiniz</translation>
 <translation id="5895138241574237353">Yeniden başlat</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Ağda Oturum Açın</translation>
 <translation id="5987687638152509985">Senkronizasyonu başlatmak için Chromium'u güncelleyin</translation>
 <translation id="6013050204643758987">Chromium OS, <ph name="BEGIN_LINK_LINUX_OSS" />Linux'ta (Beta)<ph name="END_LINK_LINUX_OSS" /> olduğu gibi ek <ph name="BEGIN_LINK_CROS_OSS" />açık kaynak yazılımlardan<ph name="END_LINK_CROS_OSS" /> yararlanılarak geliştirilmiştir.</translation>
 <translation id="6055895534982063517">Kullanabileceğiniz yeni bir Chromium sürümü var ve bu sürüm her zamankinden daha hızlı.</translation>
@@ -149,6 +155,7 @@
 <translation id="6893813176749746474">Chromium güncellendi, ancak programı en azından 30 gündür kullanmıyorsunuz.</translation>
 <translation id="6964305034639999644">Bağlantıyı Chromium &amp;gizli penceresinde aç</translation>
 <translation id="6990124437352146030">Chromium'un bu sitede mikrofonunuza erişmesi için izin gerekiyor</translation>
+<translation id="701244094609242530">Chromium, uzantılarınızı kontrol edemiyor. Daha sonra tekrar deneyin.</translation>
 <translation id="705851970750939768">Chromium'u güncelle</translation>
 <translation id="7066436765290594559">Chromium OS, verilerinizi senkronize edemedi. Lütfen Senkronizasyon parolanızı güncelleyin.</translation>
 <translation id="7067091210845072982">Bir resmin işe yarar bir açıklaması yoksa, Chromium sizin için bir açıklama sağlamaya çalışır. Açıklama oluşturmak için resimler Google'a gönderilir.</translation>
@@ -191,6 +198,7 @@
 <translation id="8013436988911883588">Chromium erişim izni aldıktan sonra, web siteleri de erişim için sizden izin isteyebilecek.</translation>
 <translation id="81770708095080097">Bu dosya tehlikeli olduğu için Chromium tarafından engellendi.</translation>
 <translation id="8248265253516264921">Bir resmin işe yarar bir açıklaması yoksa, Chromium sizin için bir açıklama sağlamaya çalışır. Açıklama oluşturmak için resimler Google'a gönderilir. Bu özelliği istediğiniz zaman ayarlardan kapatabilirsiniz.</translation>
+<translation id="8266560134891435528">Oturum açmadığınız için Chromium, şifrelerinizi kontrol edemiyor</translation>
 <translation id="8276522524898344151">Chromium şifreleri kopyalamaya çalışıyor.</translation>
 <translation id="8290862415967981663">Bu dosya tehlikeli olabileceği için Chromium tarafından engellendi.</translation>
 <translation id="8330519371938183845">Chromium'u cihazlarınız arasında senkronize etmek ve kişiselleştirmek için oturum açın</translation>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb
index a81ff80..b145fe43 100644
--- a/chrome/app/resources/chromium_strings_vi.xtb
+++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -16,11 +16,13 @@
 <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>
 <translation id="1881322772814446296">Bạn đang đăng nhập bằng tài khoản được quản lý và cấp cho quản trị viên của tài khoản quyền kiểm soát cấu hình Chromium của bạn. Dữ liệu Chromium của bạn, chẳng hạn như ứng dụng, dấu trang, lịch sử, mật khẩu và các cài đặt khác sẽ vĩnh viễn được liên kết với <ph name="USER_NAME" />. Bạn có thể xóa dữ liệu này thông qua Trang tổng quan của tài khoản Google nhưng không thể liên kết dữ liệu này với tài khoản khác. Bạn có thể tùy chọn tạo cấu hình mới để giữ cho dữ liệu Chromium hiện có của bạn riêng biệt. <ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium không thể kiểm tra tất cả mật khẩu của bạn. Hãy thử lại sau 24 giờ.</translation>
 <translation id="1911763535808217981">Bằng việc tắt tính năng này, bạn có thể đăng nhập vào các trang web của Google, chẳng hạn như Gmail mà không cần đăng nhập vào Chromium</translation>
 <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="2147976119693222405">Chromium OS không thể đồng bộ hóa dữ liệu của bạn. Khắc phục ngay.</translation>
+<translation id="2185166961232948079">Chromium – Đăng nhập mạng – <ph name="PAGE_TITLE" /></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>
 <translation id="2396765026452590966">Tiện ích "<ph name="EXTENSION_NAME" />" đã thay đổi trang nào được hiển thị khi bạn khởi động Chromium.</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">Tùy chọn: giúp cải thiện Chromium bằng cách tự động gửi thống kê sử dụng và báo cáo sự cố cho Google.</translation>
 <translation id="2910007522516064972">Giới thiệu về &amp;Chromium</translation>
 <translation id="2977470724722393594">Chromium đã được cập nhật</translation>
+<translation id="3032706164202344641">Chromium không thể kiểm tra mật khẩu của bạn. Hãy thử lại sau.</translation>
 <translation id="3032787606318309379">Đang thêm vào Chromium...</translation>
 <translation id="3068515742935458733">Giúp cải thiện Chromium bằng cách gửi báo cáo sự cố và <ph name="UMA_LINK" /> tới Google</translation>
 <translation id="3103660991484857065">Trình cài đặt không thể giải nén tệp lưu trữ. Hãy tải xuống Chromium lại lần nữa.</translation>
@@ -72,6 +75,7 @@
 <translation id="3945058413678539331">Chromium đang cố gắng sao chép mật khẩu. Hãy nhập mật khẩu Windows của bạn để cho phép việc này.</translation>
 <translation id="4036079820698952681">Giúp cải thiện Chromium bằng cách báo cáo <ph name="BEGIN_LINK" />cài đặt hiện tại<ph name="END_LINK" /></translation>
 <translation id="4050175100176540509">Cải thiện bảo mật quan trọng và tính năng mới có trong phiên bản mới nhất.</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> – Đăng nhập mạng – Chromium</translation>
 <translation id="421369550622382712">Khám phá các ứng dụng, trò chơi, tiện ích và chủ đề tuyệt vời cho Chromium.</translation>
 <translation id="4216212958613226427">Ngôn ngữ này dùng để hiển thị giao diện người dùng của Chromium</translation>
 <translation id="4230135487732243613">Bạn muốn liên kết dữ liệu Chromium của bạn với tài khoản này?</translation>
@@ -80,6 +84,7 @@
 <translation id="4407044323746248786">Bạn vẫn muốn thoát khỏi Chromium?</translation>
 <translation id="4415566066719264597">Cho phép Chromium chạy trong nền</translation>
 <translation id="4423735387467980091">Tùy chỉnh và điều khiển Chromium</translation>
+<translation id="4544142686420020088">Đã xảy ra lỗi nên Chromium chưa cập nhật được. <ph name="BEGIN_LINK" />Hãy khắc phục các vấn đề cập nhật và các bản cập nhật không thành công của Chromium.<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">Bạn đã đăng nhập với tên <ph name="USER_EMAIL_ADDRESS" />. Bây giờ, bạn có thể truy cập dấu trang, lịch sử và các cài đặt khác trên tất cả những thiết bị đã đăng nhập của bạn.</translation>
 <translation id="459535195905078186">Ứng dụng Chromium</translation>
 <translation id="4677944499843243528">Dường như cấu hình này đang được quy trình Chromium khác (<ph name="PROCESS_ID" />) trên máy tính khác (<ph name="HOST_NAME" />) sử dụng. Chromium đã khóa cấu hình này để cấu hình không bị lỗi. Nếu bạn chắc chắn không có quy trình nào khác đang sử dụng cấu hình này, bạn có thể mở khóa cấu hình và chạy lại Chromium.</translation>
@@ -112,6 +117,7 @@
 <translation id="5820394555380036790">Hệ điều hành Chromium</translation>
 <translation id="5862307444128926510">Chào mừng bạn đến với Chromium</translation>
 <translation id="5895138241574237353">Khởi động lại</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Đăng nhập mạng</translation>
 <translation id="5987687638152509985">Cập nhật Chromium để bắt đầu đồng bộ hóa</translation>
 <translation id="6013050204643758987">Chromium OS có thể hoạt động được là nhờ <ph name="BEGIN_LINK_CROS_OSS" />phần mềm nguồn mở<ph name="END_LINK_CROS_OSS" /> bổ sung, tương tự như <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation>
 <translation id="6055895534982063517">Hiện đã có phiên bản Chromium mới và phiên bản này nhanh hơn bao giờ hết.</translation>
@@ -151,6 +157,7 @@
 <translation id="6893813176749746474">Chromium đã được cập nhật nhưng bạn đã không sử dụng trình duyệt này trong ít nhất 30 ngày.</translation>
 <translation id="6964305034639999644">Mở liên kết trong cửa sổ ẩn danh của Chromium</translation>
 <translation id="6990124437352146030">Chromium cần có quyền truy cập vào micrô của bạn cho trang web này</translation>
+<translation id="701244094609242530">Chromium không thể kiểm tra các tiện ích của bạn. Hãy thử lại sau.</translation>
 <translation id="705851970750939768">Cập nhật Chromium</translation>
 <translation id="7066436765290594559">Chromium OS không thể đồng bộ hóa dữ liệu của bạn. Vui lòng cập nhật cụm mật khẩu Đồng bộ hóa của bạn.</translation>
 <translation id="7067091210845072982">Chromium 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>
@@ -193,6 +200,7 @@
 <translation id="8013436988911883588">Sau khi Chromium có quyền truy cập, các trang web sẽ có thể yêu cầu bạn cấp quyền truy cập.</translation>
 <translation id="81770708095080097">Tệp này nguy hiểm, do đó Chromium đã chặn tệp.</translation>
 <translation id="8248265253516264921">Chromium 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. Bạn có thể tắt dịch vụ này trong phần cài đặt bất kỳ lúc nào.</translation>
+<translation id="8266560134891435528">Chromium không thể kiểm tra mật khẩu của bạn vì bạn chưa đăng nhập</translation>
 <translation id="8276522524898344151">Chromium đang cố gắng sao chép mật khẩu.</translation>
 <translation id="8290862415967981663">Tệp này nguy hiểm, do đó Chromium đã chặn tệp.</translation>
 <translation id="8330519371938183845">Đăng nhập để đồng bộ hóa và cá nhân hóa Chromium trên các thiết bị của bạn</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-CN.xtb b/chrome/app/resources/chromium_strings_zh-CN.xtb
index 3485ac28..f5f6757 100644
--- a/chrome/app/resources/chromium_strings_zh-CN.xtb
+++ b/chrome/app/resources/chromium_strings_zh-CN.xtb
@@ -16,11 +16,13 @@
 <translation id="1779356040007214683">为了提高 Chromium 的安全性,系统停用了一些未列在 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />中、可能是在您不知情的情况下添加的扩展程序。</translation>
 <translation id="1808667845054772817">重新安装Chromium</translation>
 <translation id="1881322772814446296">您目前登录的帐号是一个托管帐号,该帐号的管理员将能够控制您的 Chromium 个人资料。您的 Chromium 数据(例如您的应用、书签、历史记录、密码和其他设置)将永远与 <ph name="USER_NAME" /> 相关联。您可以通过 Google 帐号信息中心删除这些数据,但无法将这些数据与其他帐号相关联。您可以选择创建新的个人资料来单独存储您现有的 Chromium 数据。<ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium 无法检查您的所有密码。请过 24 小时再试。</translation>
 <translation id="1911763535808217981">关闭此功能后,您无需登录 Chromium 即可登录 Gmail 等 Google 网站</translation>
 <translation id="1929939181775079593">Chromium 未响应。要立即重新启动吗?</translation>
 <translation id="1966382378801805537">Chromium 无法确定或设置默认浏览器</translation>
 <translation id="2008474315282236005">这会从这台设备上删除 1 项内容。如果日后想要检索您的数据,届时请以 <ph name="USER_EMAIL" /> 的身份登录 Chromium。</translation>
 <translation id="2147976119693222405">Chromium 操作系统无法同步您的数据。请立即修正。</translation>
+<translation id="2185166961232948079">Chromium - 网络登录 - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">如果您与亲朋好友共用计算机,他们将能够使用单独的帐号进行浏览,并可随心所欲地设置Chromium。</translation>
 <translation id="2347108572062610441">此扩展程序更改了 Chromium 启动后系统显示的页面。</translation>
 <translation id="2396765026452590966">“<ph name="EXTENSION_NAME" />”扩展程序更改了 Chromium 启动后系统显示的页面。</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">可选:将使用情况统计信息和崩溃报告自动发送给 Google,帮助我们完善 Chromium。</translation>
 <translation id="2910007522516064972">关于 Chromium(&amp;C)</translation>
 <translation id="2977470724722393594">Chromium 已是最新版本</translation>
+<translation id="3032706164202344641">Chromium 无法检查您的密码。请稍后重试。</translation>
 <translation id="3032787606318309379">正在添加到 Chromium...</translation>
 <translation id="3068515742935458733">将崩溃报告和<ph name="UMA_LINK" />发送给Google,帮助我们完善Chromium。</translation>
 <translation id="3103660991484857065">安装程序解压缩归档失败。请重新下载 Chromium。</translation>
@@ -72,6 +75,7 @@
 <translation id="3945058413678539331">Chromium 正在尝试复制密码。请输入您的 Windows 密码以允许此操作。</translation>
 <translation id="4036079820698952681">报告<ph name="BEGIN_LINK" />当前设置<ph name="END_LINK" />,协助我们改进 Chromium</translation>
 <translation id="4050175100176540509">最新版本不仅在安全性方面做出了重要改进,还提供了多项新功能。</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - 网络登录 - Chromium</translation>
 <translation id="421369550622382712">在这里,您可以找到适用于 Chromium 的精彩应用、游戏、扩展程序和主题背景。</translation>
 <translation id="4216212958613226427">使用此语言显示 Chromium 界面</translation>
 <translation id="4230135487732243613">是否将您的 Chromium 数据与此帐号相关联?</translation>
@@ -80,6 +84,7 @@
 <translation id="4407044323746248786">仍要退出 Chromium?</translation>
 <translation id="4415566066719264597">让 Chromium 在后台运行</translation>
 <translation id="4423735387467980091">自定义及控制 Chromium</translation>
+<translation id="4544142686420020088">Chromium 未能更新,因为出了点问题。<ph name="BEGIN_LINK" />请解决导致 Chromium 更新失败的问题<ph name="END_LINK" />。</translation>
 <translation id="4567424176335768812">您已使用 <ph name="USER_EMAIL_ADDRESS" /> 的身份登录。现在您可在已登录的所有设备上访问您的书签、历史记录和其他设置。</translation>
 <translation id="459535195905078186">Chromium 应用</translation>
 <translation id="4677944499843243528">其他计算机 (<ph name="HOST_NAME" />) 的另一个 Chromium 进程 (<ph name="PROCESS_ID" />) 好像正在使用此个人资料。Chromium 已锁定此个人资料以防止其受损。如果您确定其他进程目前未使用此个人资料,请为其解锁并重新启动 Chromium。</translation>
@@ -112,6 +117,7 @@
 <translation id="5820394555380036790">Chromium 操作系统</translation>
 <translation id="5862307444128926510">欢迎使用 Chromium</translation>
 <translation id="5895138241574237353">重新启动</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - 网络登录</translation>
 <translation id="5987687638152509985">更新 Chromium 以开始同步</translation>
 <translation id="6013050204643758987">Chromium 操作系统是借助了其他<ph name="BEGIN_LINK_CROS_OSS" />开放源代码软件<ph name="END_LINK_CROS_OSS" />才得以问世,<ph name="BEGIN_LINK_LINUX_OSS" />Linux(测试版)<ph name="END_LINK_LINUX_OSS" />也是如此。</translation>
 <translation id="6055895534982063517">Chromium 现已推出速度更快的新版本。</translation>
@@ -151,6 +157,7 @@
 <translation id="6893813176749746474">Chromium 已更新,但您已经至少 30 天未使用它了。</translation>
 <translation id="6964305034639999644">在 Chromium 无痕式窗口中打开链接(&amp;G)</translation>
 <translation id="6990124437352146030">Chromium 需要获得相应权限,才能允许此网站使用您的麦克风</translation>
+<translation id="701244094609242530">Chromium 无法检查您的扩展程序。请稍后重试。</translation>
 <translation id="705851970750939768">更新 Chromium</translation>
 <translation id="7066436765290594559">Chromium操作系统无法同步您的数据。请更新您的同步密码。</translation>
 <translation id="7067091210845072982">如果图片缺少有用的说明,则 Chromium 会尝试为您提供一条说明。为便于创建说明,系统会将图片发送给 Google。</translation>
@@ -193,6 +200,7 @@
 <translation id="8013436988911883588">一旦 Chromium 获得了使用权限,网站便能请求您向其授予使用权限。</translation>
 <translation id="81770708095080097">此文件存在危险,因此 Chromium 已将其拦截。</translation>
 <translation id="8248265253516264921">如果图片缺少有用的说明,则 Chromium 会尝试为您提供一条说明。为便于创建说明,系统会将图片发送给 Google。您可以随时在“设置”中关闭此功能。</translation>
+<translation id="8266560134891435528">Chromium 无法检查您的密码,因为您未登录</translation>
 <translation id="8276522524898344151">Chromium 正在尝试复制密码。</translation>
 <translation id="8290862415967981663">此文件可能存在危险,因此 Chromium 已将其拦截。</translation>
 <translation id="8330519371938183845">登录即可在您的所有设备上同步并个性化设置 Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-HK.xtb b/chrome/app/resources/chromium_strings_zh-HK.xtb
index defaca2..463be5f 100644
--- a/chrome/app/resources/chromium_strings_zh-HK.xtb
+++ b/chrome/app/resources/chromium_strings_zh-HK.xtb
@@ -18,11 +18,13 @@
 <translation id="1779356040007214683">為了讓 Chromium 的安全性更有保障,我們已將部分未列在 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> 中的擴充功能停用,它們可能在您不知情的情況下加入瀏覽器。</translation>
 <translation id="1808667845054772817">重新安裝 Chromium</translation>
 <translation id="1881322772814446296">您已登入受管理的帳戶,並將管理控制權授予您的 Chromium 設定檔。您的 Chromium 數據 (例如應用程式、書籤、記錄、密碼和其他設定) 均將永久與 <ph name="USER_NAME" /> 建立關聯。您可以透過 Google 帳戶資訊主頁刪除這些數據,但您無法將這些數據與其他帳戶建立關聯。如要另行保留現有的 Chromium 數據,您可以選建立新的設定檔。<ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium 無法檢查所有密碼,請於 24 小時後再試一次。</translation>
 <translation id="1911763535808217981">關閉此功能後,您無需登入 Chromium,即可登入 Gmail 等 Google 網站</translation>
 <translation id="1929939181775079593">Chromium 沒有回應,要立即重新啟動嗎?</translation>
 <translation id="1966382378801805537">Chromium 無法偵測或設定預設瀏覽器</translation>
 <translation id="2008474315282236005">這會刪除此裝置上的 1 個項目。如果日後想擷取資料,請以 <ph name="USER_EMAIL" /> 的身分登入 Chromium。</translation>
 <translation id="2147976119693222405">Chromium OS 無法同步您的資料。請立即修正。</translation>
+<translation id="2185166961232948079">Chromium - 網絡登入 - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">如果您與親朋好友共用電腦,每個人均可享有獨立的瀏覽空間,依照自己的偏好設定 Chromium。</translation>
 <translation id="2347108572062610441">擴充功能已變更 Chromium 啟動時所顯示的網頁。</translation>
 <translation id="2396765026452590966">擴充功能「<ph name="EXTENSION_NAME" />」已變更 Chromium 啟動時所顯示的網頁。</translation>
@@ -43,6 +45,7 @@
 <translation id="2886012850691518054">選擇性:將使用統計資料及當機報告自動傳送給 Google,助我們一臂之力,讓 Chromium 更臻完美。</translation>
 <translation id="2910007522516064972">關於 Chromium(&amp;C)</translation>
 <translation id="2977470724722393594">Chromium 已是最新版本</translation>
+<translation id="3032706164202344641">Chromium 無法檢查密碼,請稍後再試。</translation>
 <translation id="3032787606318309379">正在新增至 Chromium…</translation>
 <translation id="3068515742935458733">將當機報告和<ph name="UMA_LINK" />傳送給 Google,助我們一臂之力,讓 Google Chrome 更臻完美</translation>
 <translation id="3103660991484857065">安裝程式無法解壓縮封存檔案,請重新下載 Chromium。</translation>
@@ -74,6 +77,7 @@
 <translation id="3945058413678539331">Chromium 正在嘗試複製密碼。如果您同意的話,請輸入 Windows 密碼。</translation>
 <translation id="4036079820698952681">只要報告<ph name="BEGIN_LINK" />目前的設定<ph name="END_LINK" />,就能助我們一臂之力,讓 Chromium 更臻完美</translation>
 <translation id="4050175100176540509">最新版本提供重大保安改良和新功能。</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - 網絡登入 - Chromium</translation>
 <translation id="421369550622382712">為您的 Chromium 探索各種實用有趣的應用程式、遊戲、擴充功能和主題。</translation>
 <translation id="4216212958613226427">使用此語言顯示 Chromium 使用者介面</translation>
 <translation id="4230135487732243613">要將您的 Chromium 數據連結至這個帳戶嗎?</translation>
@@ -82,6 +86,7 @@
 <translation id="4407044323746248786">仍要結束 Chromium 嗎?</translation>
 <translation id="4415566066719264597">讓 Chromium 在背景執行</translation>
 <translation id="4423735387467980091">自訂及控制 Chromium</translation>
+<translation id="4544142686420020088">發生錯誤,Chromium 未能更新。<ph name="BEGIN_LINK" />請修正 Chromium 更新問題與更新失敗問題。<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">您已使用 <ph name="USER_EMAIL_ADDRESS" /> 的身分登入,可以在所有登入的裝置上使用您的書籤、記錄和其他設定。</translation>
 <translation id="459535195905078186">Chromium 應用程式</translation>
 <translation id="4677944499843243528">另一部電腦 (<ph name="HOST_NAME" />) 的 Chromium 處理程序 (<ph name="PROCESS_ID" />) 正在使用這個設定檔。Chromium 已鎖定這個設定檔,確保其不致受損。如果您確定其他處理程序目前未使用此設定檔,請解除鎖定,然後重新啟動 Chromium。</translation>
@@ -89,6 +94,7 @@
 <translation id="4708774505295300557">先前已有其他人在這部電腦上以 <ph name="ACCOUNT_EMAIL_LAST" /> 的身分登入 Chromium。請建立新的 Chromium 使用者以個別保存您的資料。</translation>
 <translation id="4746050847053251315">仍要退出 Chromium 嗎?</translation>
 <translation id="4748217263233248895">Chromium 剛套用了特別的安全性更新。建議您立即重新啟動,我們將會還原您的分頁。</translation>
+<translation id="4750035648288509542">即將更新為最新版本!重新啟動 Chromium 即可完成更新程序。無痕式視窗不會重新開啟。</translation>
 <translation id="479167709087336770">這會使用與「Google 搜尋」相同的的拼字檢查工具。您在瀏覽器輸入的文字將會傳送給 Google。您可以在設定中變更此行為。</translation>
 <translation id="4888717733111232871">允許 mDNS 流量的 Chromium 輸入規則。</translation>
 <translation id="4943838377383847465">Chromium 正在背景模式中執行。</translation>
@@ -114,6 +120,7 @@
 <translation id="5820394555380036790">Chromium 作業系統</translation>
 <translation id="5862307444128926510">歡迎使用 Chromium</translation>
 <translation id="5895138241574237353">重新啟動</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - 網絡登入</translation>
 <translation id="5987687638152509985">更新 Chromium 即可開始同步</translation>
 <translation id="6013050204643758987">「Chromium 作業系統」的開發全賴其他<ph name="BEGIN_LINK_CROS_OSS" />開放原始碼軟件<ph name="END_LINK_CROS_OSS" />協助才得以面世,<ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta 版本)<ph name="END_LINK_LINUX_OSS" /> 也一樣。</translation>
 <translation id="6055895534982063517">新版 Chromium 現已推出,速度更勝從前。</translation>
@@ -153,6 +160,7 @@
 <translation id="6893813176749746474">Chromium 已更新,但您已至少超過 30 天沒有使用 Chromium。</translation>
 <translation id="6964305034639999644">在 Chromium 無痕式視窗中開啟連結(&amp;G)</translation>
 <translation id="6990124437352146030">Chromium 需要取得權限,才能讓這個網站存取您的麥克風</translation>
+<translation id="701244094609242530">Chromium 無法檢查擴充程式,請稍後再試。</translation>
 <translation id="705851970750939768">更新 Chromium</translation>
 <translation id="7066436765290594559">Chromium 作業系統無法同步處理您的數據,請更新您的同步複雜密碼。</translation>
 <translation id="7067091210845072982">如果圖片並無有用的說明,Chromium 會嘗試為您提供說明。因此,圖片將傳送至 Google 以建立說明。</translation>
@@ -194,6 +202,7 @@
 <translation id="8013436988911883588">Chromium 獲得存取權後,網站便可向您要求存取權。</translation>
 <translation id="81770708095080097">此檔案不安全,因此 Chromium 已封鎖此檔案。</translation>
 <translation id="8248265253516264921">如果圖片並無有用的說明,Chromium 會嘗試為您提供說明。因此,圖片將傳送至 Google 以建立說明。您可以隨時在設定中關閉此功能。</translation>
+<translation id="8266560134891435528">您並未登入帳戶,因此 Chromium 無法檢查密碼</translation>
 <translation id="8276522524898344151">Chromium 正在嘗試複製密碼。</translation>
 <translation id="8290862415967981663">此檔案可能不安全,因此 Chromium 已封鎖此檔案。</translation>
 <translation id="8330519371938183845">登入即可在不同裝置上同步和設定個人化的 Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-TW.xtb b/chrome/app/resources/chromium_strings_zh-TW.xtb
index 1a98efc..336b9b8d 100644
--- a/chrome/app/resources/chromium_strings_zh-TW.xtb
+++ b/chrome/app/resources/chromium_strings_zh-TW.xtb
@@ -16,11 +16,13 @@
 <translation id="1779356040007214683">為了讓 Chromium 的安全性更有保障,我們已將部分未列在 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> 中的擴充功能停用,它們可能在你不知情的情況下加入瀏覽器。</translation>
 <translation id="1808667845054772817">重新安裝 Chromium</translation>
 <translation id="1881322772814446296">你已登入管理化環境下的帳戶,並將管理控制權授予你的 Chromium 設定檔。你的 Chromium 資料 (例如應用程式、書籤、記錄、密碼和其他設定) 均將永久與 <ph name="USER_NAME" /> 建立關聯。你可以透過 Google 帳戶資訊主頁刪除這些資料,但你無法將這些資料與其他帳戶建立關聯。如要另行保留現有的 Chromium 資料,你可以選擇建立新的設定檔。<ph name="LEARN_MORE" /></translation>
+<translation id="1911747963917069754">Chromium 無法檢查你所有的密碼,請於 24 小時後再試一次。</translation>
 <translation id="1911763535808217981">關閉這項功能後,你可以單獨登入 Gmail 等這類 Google 網站,不必同時登入 Chromium</translation>
 <translation id="1929939181775079593">Chromium 沒有回應,要立即重新啟動嗎?</translation>
 <translation id="1966382378801805537">Chromium 無法偵測或設定預設瀏覽器</translation>
 <translation id="2008474315282236005">登出後,系統會將 1 個項目從這個裝置上刪除。日後如要重新取得你的資料,請以 <ph name="USER_EMAIL" /> 身分登入 Chromium。</translation>
 <translation id="2147976119693222405">Chromium 作業系統無法同步處理你的資料。立即修正。</translation>
+<translation id="2185166961232948079">Chromium - 網路登入 - <ph name="PAGE_TITLE" /></translation>
 <translation id="2241627712206172106">如果你與親朋好友共用電腦,人人皆可享有獨立的瀏覽空間,依照自己的偏好設定 Chromium。</translation>
 <translation id="2347108572062610441">這個擴充功能已變更 Chromium 啟動時所顯示的網頁。</translation>
 <translation id="2396765026452590966">擴充功能「<ph name="EXTENSION_NAME" />」已變更 Chromium 啟動時所顯示的網頁。</translation>
@@ -41,6 +43,7 @@
 <translation id="2886012850691518054">選用:將使用統計資料及當機報告自動傳送給 Google,助我們一臂之力,讓 Chromium 更臻完美。</translation>
 <translation id="2910007522516064972">關於 Chromium(&amp;C)</translation>
 <translation id="2977470724722393594">Chromium 目前是最新版本</translation>
+<translation id="3032706164202344641">Chromium 無法檢查你的密碼,請稍後再試。</translation>
 <translation id="3032787606318309379">正在新增至 Chromium...</translation>
 <translation id="3068515742935458733">將當機報告和<ph name="UMA_LINK" />傳送給 Google,助我們一臂之力,讓 Chromium 更臻完美</translation>
 <translation id="3103660991484857065">安裝程式無法解壓縮封存檔案,請重新下載 Chromium。</translation>
@@ -72,6 +75,7 @@
 <translation id="3945058413678539331">Chromium 正在嘗試複製密碼。如果你同意這項作業,請輸入你的 Windows 密碼。</translation>
 <translation id="4036079820698952681">只要回報<ph name="BEGIN_LINK" />目前的設定<ph name="END_LINK" />,就能助我們一臂之力,讓 Chromium 更臻完美</translation>
 <translation id="4050175100176540509">最新版本包含重要的安全性改善與新功能。</translation>
+<translation id="419998258129752635"><ph name="PAGE_TITLE" /> - 網路登入 - Chromium</translation>
 <translation id="421369550622382712">探索 Chromium 專用的優質應用程式、遊戲、擴充功能和主題。</translation>
 <translation id="4216212958613226427">這是 Chromium UI 的顯示語言</translation>
 <translation id="4230135487732243613">要將你的 Chromium 資料連結至這個帳戶嗎?</translation>
@@ -80,6 +84,7 @@
 <translation id="4407044323746248786">確定要結束 Chromium 嗎?</translation>
 <translation id="4415566066719264597">讓 Chromium 在背景執行</translation>
 <translation id="4423735387467980091">自訂及控制 Chromium</translation>
+<translation id="4544142686420020088">發生錯誤,Chromium 未能更新。<ph name="BEGIN_LINK" />請修正 Chromium 更新問題與更新失敗項目。<ph name="END_LINK" /></translation>
 <translation id="4567424176335768812">你已使用 <ph name="USER_EMAIL_ADDRESS" /> 的身分登入,可以在所有登入的裝置上使用你的書籤、記錄和其他設定。</translation>
 <translation id="459535195905078186">Chromium 應用程式</translation>
 <translation id="4677944499843243528">另一台電腦 (<ph name="HOST_NAME" />) 的 Chromium 處理程序 (<ph name="PROCESS_ID" />) 正在使用這個設定檔。Chromium 已鎖定此設定檔,確保其不致受損。如果你確定其他處理程序目前未使用此設定檔,請予以解除鎖定,然後重新啟動 Chromium。</translation>
@@ -87,6 +92,7 @@
 <translation id="4708774505295300557">先前已有其他使用者使用 <ph name="ACCOUNT_EMAIL_LAST" /> 在這部電腦上登入 Chromium。請建立新的 Chromium 使用者,以便另行保存你的資訊。</translation>
 <translation id="4746050847053251315">確定要關閉 Chromium 嗎?</translation>
 <translation id="4748217263233248895">Chromium 剛才套用了特殊的安全性更新。請立即重新啟動,系統會恢復你原先開啟的分頁。</translation>
+<translation id="4750035648288509542">即將更新為最新版本!重新啟動 Chromium 即可完成更新程序。無痕式視窗不會重新開啟。</translation>
 <translation id="479167709087336770">這會使用與 Google 搜尋相同的拼字檢查工具。系統會將你在瀏覽器中輸入的文字傳送給 Google。你隨時可以在設定中變更這項行為。</translation>
 <translation id="4888717733111232871">允許 mDNS 流量的 Chromium 輸入規則。</translation>
 <translation id="4943838377383847465">Chromium 正在背景模式中執行。</translation>
@@ -112,6 +118,7 @@
 <translation id="5820394555380036790">Chromium 作業系統</translation>
 <translation id="5862307444128926510">歡迎使用 Chromium</translation>
 <translation id="5895138241574237353">重新啟動</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - 網路登入</translation>
 <translation id="5987687638152509985">如要開始同步處理,請更新 Chromium</translation>
 <translation id="6013050204643758987">Chromium 作業系統有賴其他<ph name="BEGIN_LINK_CROS_OSS" />開放原始碼軟體<ph name="END_LINK_CROS_OSS" />才得以問世,<ph name="BEGIN_LINK_LINUX_OSS" />Linux (測試版)<ph name="END_LINK_LINUX_OSS" /> 也是如此。</translation>
 <translation id="6055895534982063517">新版 Chromium 現已推出,速度更勝以往。</translation>
@@ -151,6 +158,7 @@
 <translation id="6893813176749746474">Chromium 已更新,但你至少超過 30 天沒有使用 Chromium 了。</translation>
 <translation id="6964305034639999644">在 Chromium 無痕式視窗中開啟連結(&amp;G)</translation>
 <translation id="6990124437352146030">Chromium 需要相關權限,才能讓這個網站使用你的麥克風</translation>
+<translation id="701244094609242530">Chromium 無法檢查你的擴充功能,請稍後再試。</translation>
 <translation id="705851970750939768">更新 Chromium</translation>
 <translation id="7066436765290594559">Chromium 作業系統無法同步處理你的資料,請更新你的同步通關密語。</translation>
 <translation id="7067091210845072982">如果圖片缺少有用的說明,Chromium 會嘗試為你提供說明。系統會將圖片傳送給 Google,以便產生說明。</translation>
@@ -193,6 +201,7 @@
 <translation id="8013436988911883588">Chromium 取得存取權後,網站將可要求你授予存取權。</translation>
 <translation id="81770708095080097">這個檔案並不安全,因此遭到 Chromium 封鎖。</translation>
 <translation id="8248265253516264921">如果圖片缺少有用的說明,Chromium 會嘗試為你提供說明。系統會將圖片傳送給 Google,以便產生說明。你隨時可以在設定中關閉這項功能。</translation>
+<translation id="8266560134891435528">你尚未登入帳戶,因此 Chromium 無法檢查你的密碼</translation>
 <translation id="8276522524898344151">Chromium 正在嘗試複製密碼。</translation>
 <translation id="8290862415967981663">這個檔案可能不安全,因此遭到 Chromium 封鎖。</translation>
 <translation id="8330519371938183845">登入即可進行同步處理,讓你在所有裝置上享有個人化的 Chromium 體驗</translation>
diff --git a/chrome/app/resources/chromium_strings_zu.xtb b/chrome/app/resources/chromium_strings_zu.xtb
index ca78286b..80fe719f 100644
--- a/chrome/app/resources/chromium_strings_zu.xtb
+++ b/chrome/app/resources/chromium_strings_zu.xtb
@@ -94,6 +94,7 @@
 <translation id="4708774505295300557">Umuntu othile ungene ngemvume ngaphambilini ku-Chromium kule khompuyutha njengo-<ph name="ACCOUNT_EMAIL_LAST" />. Sicela udale umsebenzisi omusha we-Chromium ukuze ugcine ulwazi lwakho luhlukile.</translation>
 <translation id="4746050847053251315">Phuma ku-Chromium noma kunjalo?</translation>
 <translation id="4748217263233248895">Isibuyekezo esibalulekile sokuvikela se-Chromium sisanda kufakwa. Qalisa kabusha manje bese sizobuyisela amathebhu akho.</translation>
+<translation id="4750035648288509542">Icishe isisesikhathini! Qalisa kabusha i-Chromium ukuqeda ukubuyekeza. Ama-modi e-Incognito ngeke aze aphinde avuleke.</translation>
 <translation id="479167709087336770">Lokhu kusebenzisa isihloli sokupeleta esifanayo naleso esisetshenziswe kusesho lwe-Google. Umbhalo owuthayiphayo kusiphequluli uthunyelwa ku-Google. Ungahlala ushintsha le mpatho kuzilungiselelo.</translation>
 <translation id="4888717733111232871">Umyalo obambeke ngaphakathi we-Chromium wokuvumela ithrafikhi ye-mDNS.</translation>
 <translation id="4943838377383847465">I-Chromium kumodi yasemuva.</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index e51a574..e6cc07b5 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Adobe Flash Player-berginginstellings</translation>
 <translation id="1274997165432133392">Webkoekies en ander werfdata</translation>
 <translation id="1280820357415527819">Soek tans vir mobiele netwerke …</translation>
+<translation id="1280965841156951489">Wysig lêers</translation>
 <translation id="1282420830958964167">Die limiet op "<ph name="APP_NAME" />" wat jou ouer gestel het, het uitgetel. Jy kan dit môre vir <ph name="TIME_LIMIT" /> gebruik.</translation>
 <translation id="1285320974508926690">Moet nooit hierdie werf vertaal nie</translation>
 <translation id="1285484354230578868">Stoor data in jou Google Drive-rekening</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Donkerpers</translation>
 <translation id="1692799361700686467">Webkoekies van veelvuldige webwerwe af toegelaat.</translation>
 <translation id="1697150536837697295">Kuns</translation>
+<translation id="1697686431566694143">Wysig lêer</translation>
 <translation id="1698122934742150150">Net huidige incognitosessie</translation>
 <translation id="1698650002254827833">Die lys programme kan nie gelaai word nie. Probeer asseblief weer.</translation>
 <translation id="1701062906490865540">Verwyder hierdie persoon</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Geen komponente is geïnstalleer nie.</translation>
 <translation id="1932098463447129402">Nie voor</translation>
 <translation id="1933809209549026293">Koppel asseblief 'n muis of 'n sleutelbord. As jy 'n Bluetooth-toestel gebruik, maak seker dat dit gereed is om saam te bind.</translation>
+<translation id="1936931585862840749">Gebruik 'n getal om aan te dui hoeveel kopieë gedruk moet word (1 tot <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Kan nie 'n houerargitektuursoort <ph name="ARCHITECTURE_CONTAINER" /> saam met hierdie invoer toestel wat 'n <ph name="ARCHITECTURE_DEVICE" /> is nie. Jy kan probeer om hierdie houer op 'n ander toestel te herlaai, of jy kan toegang tot die lêers binne hierdie houerprent kry deur dit in Lêers-program oop te maak.</translation>
 <translation id="1938351510777341717">Eksterne bevel</translation>
 <translation id="1940546824932169984">Gekoppelde toestelle</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Fokus hierdie oortjie</translation>
 <translation id="2344028582131185878">Outomatiese aflaaie</translation>
 <translation id="2345723121311404059">1 bladsy na <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">SODA-diens</translation>
 <translation id="2347644257713614136">Die gebruik van Hangouts en Cast for Education word deur Google se privaatheidsbeleid beheer.</translation>
 <translation id="2348176352564285430">Program: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Is herlaai</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Linux-terugstelling is gekanselleer</translation>
 <translation id="2423578206845792524">Stoor prent as …</translation>
 <translation id="2428510569851653187">Beskryf wat jy besig was om te doen toe die oortjie omgeval het</translation>
+<translation id="2428939361789119025">Skakel Wi-Fi af</translation>
 <translation id="2431027948063157455">Google Assistent kon nie laai nie. Gaan asseblief jou netwerkverbinding na en probeer weer.</translation>
 <translation id="2432753757290432042">Linux (Beta)-opdatering word vereis</translation>
 <translation id="2433452467737464329">Voeg 'n navraagparameter in URL by om die blad outomaties te herlaai: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Stuur gebruik- en diagnostiese data. Help om jou Android-ervaring beter te maak deur diagnostiese, toestel- en programgebruikdata outomaties na Google toe te stuur. Dit sal met stelsel- en programstabiliteit en ander verbeteringe help. Sekere saamgestelde data sal ook Google-programme en -vennote, soos Android-ontwikkelaars, help. As jou bykomende Web- en Programaktiwiteit-instelling aangeskakel is, kan hierdie data in jou Google-rekening gestoor word. <ph name="BEGIN_LINK1" />Kom meer te wete<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Voeg verbinding by</translation>
 <translation id="2947605845283690091">Webblaai moet vinnig wees. Neem 'n rukkie om nou <ph name="BEGIN_LINK" />jou uitbreidings na te gaan<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 potensieel skadelike uitbreiding is af. Jy kan dit ook verwyder.}other{# potensieel skadelike uitbreidings is af. Jy kan hulle ook verwyder.}}</translation>
 <translation id="2948300991547862301">Gaan na <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">'n Vinnige, eenvoudige en veilige webblaaier wat vir die moderne web gebou is.</translation>
 <translation id="2949289451367477459">Gebruik ligging. Laat programme en dienste met liggingtoestemming toe om hierdie toestel se ligging te gebruik. Google kan van tyd tot tyd liggingdata insamel en hierdie data op 'n anonieme manier gebruik om liggingakkuraatheid en ligginggegronde dienste te verbeter. <ph name="BEGIN_LINK1" />Kom meer te wete<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Installeer program?</translation>
 <translation id="3067198360141518313">Gebruik hierdie inprop</translation>
 <translation id="3071624960923923138">Jy kan hier klik om 'n nuwe oortjie oop te maak</translation>
+<translation id="3072775339180057696">Laat werf <ph name="FILE_NAME" /> bekyk?</translation>
 <translation id="3075874217500066906">'n Herbegin word vereis om die Kragwas-proses te begin. Na die herbegin, sal jy gevra word om te bevestig dat jy wil voortgaan.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Jou aanmelddata is uitgevee</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Werf kan jou kamera gebruik</translation>
 <translation id="3085752524577180175">SOCKS-gasheer</translation>
 <translation id="3088052000289932193">Werf gebruik tans MIDI</translation>
+<translation id="3088128611727407543">Berei tans programprofiel voor …</translation>
 <translation id="3088325635286126843">Hernoem …</translation>
 <translation id="3089137131053189723">Soektog is uitgevee</translation>
 <translation id="3090193911106258841">Gaan tans by oudio- en video-invoer in</translation>
@@ -1596,6 +1604,7 @@
     Beskrywing:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome-programme</translation>
+<translation id="3150693969729403281">Doen veiligheidskontrole nou</translation>
 <translation id="3150927491400159470">Harde-herlaai</translation>
 <translation id="315116470104423982">Mobiele data</translation>
 <translation id="3151539355209957474">Begintyd</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Meld by Chrome aan</translation>
 <translation id="3285322247471302225">Nuwe oortjie</translation>
 <translation id="328571385944182268">Stoor jou wagwoorde?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> sal <ph name="FILENAME" /> kan bekyk totdat jy alle <ph name="ORIGIN" />-oortjies toemaak</translation>
 <translation id="3288047731229977326">Uitbreidings wat in ontwikkelaarmodus laat loop word, kan jou rekenaar beskadig. As jy nie 'n ontwikkelaar is nie, moet jy hierdie uitbreidings wat in ontwikkelaarmodus laat loop word, deaktiveer om veilig te bly.</translation>
 <translation id="3289856944988573801">Gebruik asseblief Ethernet of Wi-Fi om te kyk of daar opdaterings is.</translation>
 <translation id="3290356915286466215">Onbeveilig</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Lees jou data op 'n aantal webwerwe</translation>
 <translation id="3448086340637592206">Google Chrome en Chrome-bedryfstelsel se bykomende bepalings</translation>
 <translation id="3448492834076427715">Dateer rekening op</translation>
+<translation id="3449393517661170867">Nuwe oortjievenster</translation>
 <translation id="3449839693241009168">Druk <ph name="SEARCH_KEY" /> om bevele na <ph name="EXTENSION_NAME" /> te stuur</translation>
 <translation id="3450157232394774192">Rustoestand se besettingpersentasie</translation>
 <translation id="3451332697983754369">Sinkroniseer my <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Dankie vir jou terugvoer. Jy is nou vanlyn en jou verslag sal later gestuur word.</translation>
 <translation id="3682824389861648626">Bewegingdrempel</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> se skermdelingversoek</translation>
+<translation id="3686074530047028092">Opvoedkundige rekening</translation>
 <translation id="368789413795732264">Kon nie die lêer skryf nie: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Skryf na lêers en vouers wat jy in die program oopmaak</translation>
 <translation id="3688526734140524629">Verander kanaal</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Blokkeer dele van webbladsye</translation>
 <translation id="3760460896538743390">Ondersoek agtergrondbladsy</translation>
 <translation id="37613671848467444">Maak in incognitovenster oop</translation>
+<translation id="3761556954875533505">Laat werf lêers wysig?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Kommunikeer met 'n USB-toestel}other{Kommunikeer met # USB-toestelle}}</translation>
 <translation id="3765246971671567135">Kon nie vanlyn demonstrasiemodus-beleid lees nie.</translation>
 <translation id="3768037234834996183">Sinkroniseer tans jou voorkeure …</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Weier</translation>
 <translation id="3928570707778085600">Stoor veranderinge aan <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Hierdie uitbreidings kan inligting op hierdie werf sien en verander.</translation>
+<translation id="3930155420525972941">Skuif groep na nuwe venster</translation>
 <translation id="3930737994424905957">Soek tans na toestelle</translation>
 <translation id="3930968231047618417">Agtergrondkleur</translation>
 <translation id="3933283459331715412">Laai wagwoord wat uitgevee is vir <ph name="USERNAME" /> terug</translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Ek stem in</translation>
 <translation id="413121957363593859">Komponente</translation>
 <translation id="4131410914670010031">Swart en wit</translation>
+<translation id="4133076602192971179">Maak die program oop om jou wagwoord te verander</translation>
 <translation id="4136203100490971508">Aandbeligting sal met sonsopkoms outomaties afskakel</translation>
 <translation id="41365691917097717">As jy voortgaan, sal ADB-ontfouting vir die skep en toets van Android-programme geaktiveer word. Let daarop dat hierdie handeling dit moontlik maak om Android-programme te installeer wat nie deur Google geverifieer is nie. 'n Fabriekterugstelling is nodig om dit te deaktiveer.</translation>
 <translation id="4138267921960073861">Wys gebruikername en foto's op die aanmeldskerm</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Moet nooit <ph name="LANGUAGE" /> vertaal nie</translation>
 <translation id="4332976768901252016">Stel ouerkontroles op</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 met RSA-enkripsie</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Jou administrateur het 1 potensieel skadelike uitbreiding weer aangeskakel}other{Jou administrateur het # potensieel skadelike uitbreidings weer aangeskakel}}</translation>
 <translation id="4336434711095810371">Vee alle data uit</translation>
 <translation id="4336979451636460645">Vir netwerkloglêers, sien: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> wil met die program "<ph name="EXTENSION_NAME" />" kommunikeer</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Jy gebruik tans 'n sleutel wat nie by hierdie webwerf geregistreer is nie</translation>
 <translation id="4788092183367008521">Gaan jou netwerkverbinding na en probeer weer.</translation>
 <translation id="4792711294155034829">Meld 'n probleem aan …</translation>
+<translation id="4794810983896241342"><ph name="BEGIN_LINK" />Jou administrateur<ph name="END_LINK" /> bestuur opdaterings</translation>
 <translation id="479536056609751218">Webbladsy, net HTML</translation>
 <translation id="4798236378408895261">Heg <ph name="BEGIN_LINK" />Bluetooth-loglêers<ph name="END_LINK" /> aan (Google intern)</translation>
 <translation id="4801448226354548035">Versteek rekeninge</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Maak 'n nuwe oortjie oop om gelyk op twee werwe te blaai</translation>
 <translation id="4909038193460299775">Omdat hierdie rekening deur <ph name="DOMAIN" /> bestuur word, sal jou boekmerke, geskiedenis, wagwoorde en ander instellings op hierdie toestel uitgevee word. Jou data sal egter steeds in jou Google-rekening geberg word en kan op <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" /> bestuur word.</translation>
 <translation id="4912643508233590958">Word wakker uit rus</translation>
+<translation id="4916542008280060967">Laat werf <ph name="FILE_NAME" /> wysig?</translation>
 <translation id="491691592645955587">Wissel na 'n veilige blaaier</translation>
 <translation id="4917385247580444890">Sterk</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> wil met die uitbreiding "<ph name="EXTENSION_NAME" />" kommunikeer</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Onthou</translation>
 <translation id="5018207570537526145">Maak uitbreidingwebwerf oop</translation>
 <translation id="5021750053540820849">Nog nie opgedateer nie</translation>
+<translation id="5026806129670917316">Skakel Wi-Fi aan</translation>
 <translation id="5026874946691314267">Moet dit nie weer wys nie</translation>
 <translation id="5027550639139316293">E-possertifikaat</translation>
 <translation id="5027562294707732951">Voeg uitbreiding by</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">JavaScript-konsole</translation>
 <translation id="5184209580557088469">'n Kaartjie met hierdie gebruikernaam bestaan reeds</translation>
 <translation id="5184662919967270437">Dateer tans jou toestel op</translation>
+<translation id="5185359571430619712">Gaan uitbreidings na</translation>
 <translation id="5185386675596372454">Die nuutste weergawe van "<ph name="EXTENSION_NAME" />" is gedeaktiveer, want dit vereis nog toestemmings.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> wil veelvuldige lêers aflaai</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Slimaanhalingstekens</translation>
 <translation id="5260508466980570042">Jammer, jou e-pos of wagwoord kon nie geverifieer word nie. Probeer later weer.</translation>
 <translation id="5261683757250193089">Maak in Webwinkel oop</translation>
+<translation id="5262178194499261222">Verwyder wagwoord</translation>
 <translation id="5264148714798105376">Dit kan 'n minuut of wat neem.</translation>
 <translation id="5264252276333215551">Koppel asseblief aan die internet om jou program in kioskmodus te begin.</translation>
 <translation id="5265562206369321422">Vanlyn vir meer as 'n week</translation>
@@ -3507,6 +3528,7 @@
 <translation id="5833726373896279253">Hierdie instellings kan slegs deur die eienaar verander word:</translation>
 <translation id="5834581999798853053">Ongeveer <ph name="TIME" /> minute oor</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – Kamera- of mikrofoonopname</translation>
+<translation id="5841270259333717135">Stel Ethernet op</translation>
 <translation id="5842497610951477805">Aktiveer Bluetooth</translation>
 <translation id="5846200638699387931">Verhoudingsinsboufout: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Reeds bygevoeg</translation>
@@ -3552,6 +3574,7 @@
 <translation id="5900358982890952556">Gradeer Linux op (Beta)</translation>
 <translation id="5901494423252125310">Drukkerdeur is oop</translation>
 <translation id="5901630391730855834">Geel</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Jy het 1 potensieel skadelike uitbreiding weer aangeskakel}other{Jy het # potensieel skadelike uitbreidings weer aangeskakel}}</translation>
 <translation id="5906655207909574370">Amper op datum! Herbegin jou toestel om opdatering te voltooi.</translation>
 <translation id="5906732635754427568">Data wat met hierdie program geassosieer word, sal van hierdie toestel af verwyder word.</translation>
 <translation id="5908769186679515905">Verhinder werwe om Flash te laat loop</translation>
@@ -3581,6 +3604,7 @@
 <translation id="59324397759951282">USB-toestel vanaf <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Reeksnommer</translation>
 <translation id="5933376509899483611">Tydsone</translation>
+<translation id="5935656526031444304">Bestuur Veiligblaai</translation>
 <translation id="5938002010494270685">Sekuriteitopgradering is beskikbaar</translation>
 <translation id="5939518447894949180">Stel terug</translation>
 <translation id="5941153596444580863">Voeg persoon by …</translation>
@@ -3624,6 +3648,7 @@
 <translation id="5993807461461235661">Hierdie oplaai is geënkripteer en oortree jou organisasie se sekuriteitsbeleide.</translation>
 <translation id="5997337190805127100">Kom meer te wete oor werftoegang</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultate vir "<ph name="SEARCH_TEXT" />"</translation>
+<translation id="6002210667729577411">Skuif groep na nuwe venster</translation>
 <translation id="6002458620803359783">Voorkeurstemme</translation>
 <translation id="6006484371116297560">Klassiek</translation>
 <translation id="6007240208646052708">Stemsoektog is nie in jou taal beskikbaar nie.</translation>
@@ -4162,6 +4187,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Wys werkskermkortpad</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> is laat wag</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Jou administrateur<ph name="END_LINK" /> het Veiligblaai afgeskakel</translation>
 <translation id="6742339027238151589">Toeganklik vir skrip</translation>
 <translation id="6745592621698551453">Dateer nou op</translation>
 <translation id="6746124502594467657">Skuif af</translation>
@@ -4420,6 +4446,7 @@
     <ph name="BEGIN_BOLD" />Hou in gedagte:<ph name="END_BOLD" /> 'n Soortgelyke stem of opname sal dalk ook toegang tot Assistent kan kry. Jy kan Voice Match-toestemming later verwyder deur dit in Assistent-instellings af te skakel.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Ruil data uit met die toestelle genaamd: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Toestel sal herbegin wanneer opdaterings voltooi is.</translation>
 <translation id="7098389117866926363">USB C-toestel (linkerpoort aan agterkant)</translation>
 <translation id="7098447629416471489">Ander gestoorde soekenjins sal hier verskyn</translation>
 <translation id="7099337801055912064">Kan nie groot PPD laai nie. Maksimum grootte is 250 KB.</translation>
@@ -4892,6 +4919,7 @@
 <translation id="7766807826975222231">Gaan op 'n toer</translation>
 <translation id="7766838926148951335">Aanvaar toestemmings</translation>
 <translation id="7769672763586021400">Model-ID</translation>
+<translation id="7770651108375708429">Ontkoppel Wi-Fi</translation>
 <translation id="7771452384635174008">Uitleg</translation>
 <translation id="7772032839648071052">Bevestig wagfrase</translation>
 <translation id="7772127298218883077">Meer oor <ph name="PRODUCT_NAME" /></translation>
@@ -5050,6 +5078,7 @@
 <translation id="7939412583708276221">Hou in elk geval</translation>
 <translation id="7942349550061667556">Rooi</translation>
 <translation id="7943837619101191061">Voeg ligging by …</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 gekompromitteerde wagwoord}other{# gekompromitteerde wagwoorde}}</translation>
 <translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" wil koppel</translation>
 <translation id="7946586320617670168">Bron moet veilig wees</translation>
 <translation id="794676567536738329">Bevestig toestemmings</translation>
@@ -5148,6 +5177,7 @@
 <translation id="8059417245945632445">Ondersoek toestelle</translation>
 <translation id="8059456211585183827">Daar is nie enige drukkers beskikbaar om te stoor nie.</translation>
 <translation id="8063235345342641131">Verstek- groen avatar</translation>
+<translation id="8063535366119089408">Bekyk lêer</translation>
 <translation id="8064671687106936412">Sleutel:</translation>
 <translation id="8068253693380742035">Raak om aan te meld</translation>
 <translation id="8068809649322155577">Dit sal alle data en webkoekies uitvee wat deur <ph name="SITE_GROUP_NAME" />, enige werwe daaronder en die geïnstalleerde programme daarvan geberg word.</translation>
@@ -5213,6 +5243,7 @@
 <translation id="8152091997436726702">Drukkerregistrasie het uitgetel. Om te registreer, moet jy registrasie op die drukker bevestig.</translation>
 <translation id="8154790740888707867">Geen lêer nie</translation>
 <translation id="815491593104042026">Oeps! Kon nie staaf nie omdat dit opgestel is om 'n onveilige URL (<ph name="BLOCKED_URL" />) te gebruik. Kontak asseblief jou administrateur.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Geen gekompromitteerde wagwoorde gekry nie}=1{{COUNT} gekompromitteerde wagwoord}other{{COUNT} gekompromitteerde wagwoorde}}</translation>
 <translation id="8157704005178149728">Stel tans toesig op</translation>
 <translation id="8158117992543756526">Hierdie toestel ontvang vanaf <ph name="MONTH_AND_YEAR" /> nie meer outomatiese sagteware- en sekuriteitopdaterings nie. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Kon nie sertifikaatvertroue stel nie</translation>
@@ -5266,6 +5297,7 @@
 <translation id="8226742006292257240">Hieronder is die TPM-wagwoord wat lukraak gegenereer is en wat aan jou rekenaar toegewys is:</translation>
 <translation id="8227119283605456246">Heg lêer aan</translation>
 <translation id="8230134520748321204">Stoor wagwoord vir <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Internetinstellings</translation>
 <translation id="8234795456569844941">Help asseblief ons ingenieurs om hierdie probleem op te los. Sê vir ons wat gebeur het net voordat jy die profielfoutboodskap gekry het:</translation>
 <translation id="8236123533334037984">Jou organisasie skandeer tans hierdie oplaai vir sekuriteitgoedkeuring.</translation>
 <translation id="8236917170563564587">Deel eerder hierdie oortjie</translation>
@@ -5603,6 +5635,7 @@
 <translation id="8688579245973331962">Sien jy nie jou naam nie?</translation>
 <translation id="8688591111840995413">Swak wagwoord</translation>
 <translation id="8688672835843460752">Beskikbaar</translation>
+<translation id="8691418731028620688">Koppel Wi-Fi</translation>
 <translation id="8695825812785969222">Maak ligging oop …</translation>
 <translation id="869884720829132584">Programmekieslys</translation>
 <translation id="869891660844655955">Vervaldatum</translation>
@@ -5762,6 +5795,7 @@
 <translation id="8872187374998143710">Herbegin asseblief jou toestel om Plugin VM te gebruik.</translation>
 <translation id="8872777911145321141">Vra wanneer 'n werf jou virtuelerealiteittoestelle en -data wil gebruik (aanbeveel)</translation>
 <translation id="8874184842967597500">Nie gekoppel nie</translation>
+<translation id="8875775314572167244">Ethernet-instellings</translation>
 <translation id="8876307312329369159">Hierdie instelling kan nie in 'n demonstrasiesessie verander word nie.</translation>
 <translation id="8877448029301136595">[ouergids]</translation>
 <translation id="8878384954777710821">Deïnstalleer tans Plugin VM …</translation>
@@ -5803,6 +5837,7 @@
 <translation id="892706138619340876">Sommige instellings is teruggestel</translation>
 <translation id="8930351635855238750">Nuwe webkoekie-instellings sal in werking tree nadat die bladsy herlaai is</translation>
 <translation id="8931394284949551895">Nuwe toestelle</translation>
+<translation id="8931475688782629595">Bestuur wat jy sinkroniseer</translation>
 <translation id="8932894639908691771">Skakelaartoegangopsies</translation>
 <translation id="8933960630081805351">Wys in vinder</translation>
 <translation id="8934732568177537184">Gaan voort</translation>
@@ -5960,6 +5995,7 @@
 <translation id="9148126808321036104">Meld weer aan …</translation>
 <translation id="9149866541089851383">Wysig …</translation>
 <translation id="9150045010208374699">Gebruik jou kamera</translation>
+<translation id="9150429437595727962">Wi-Fi-instellings</translation>
 <translation id="9153934054460603056">Stoor identiteit en wagwoord</translation>
 <translation id="9154194610265714752">Opgedateer</translation>
 <translation id="91568222606626347">Skep kortpad …</translation>
@@ -6021,6 +6057,7 @@
 <translation id="945522503751344254">Stuur terugvoer</translation>
 <translation id="947329552760389097">&amp;Ondersoek elemente</translation>
 <translation id="952992212772159698">Nie geaktiveer nie</translation>
+<translation id="956500788634395331">Jy word teen potensieel skadelike uitbreidings beskerm</translation>
 <translation id="957960681186851048">Hierdie werf het probeer om veelvuldige lêers outomaties af te laai</translation>
 <translation id="9580706199804957">Kon nie aan Google-dienste koppel nie</translation>
 <translation id="960719561871045870">Diensverskafferkode</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index c9e66d4..f2fa959 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">በተጨማሪ ከእነዚህ መተግበሪያዎች ውሂብ ይጸዳ?</translation>
 <translation id="1045692658517323508">{0,plural, =1{በ1 ደቂቃ ውስጥ ያዘምኑ}one{በ# ደቂቃዎች ውስጥ ያዘምኑ}other{በ# ደቂቃዎች ውስጥ ያዘምኑ}}</translation>
 <translation id="1046635659603195359">አስቀድመው በሌላ መሣሪያ ላይ በእርስዎ Google ረዳት Voice Matchን ያቀናበሩ ይመስላሉ። እነዚህ ቀዳሚ ቀረጻዎች በዚህ መሣሪያ ላይ የድምጽ ሞዴል ለመስራት ስራ ላይ መዋል ይችላሉ። ይሄ ከደቂቃ ያነሰ ጊዜ ነው መውሰድ ያለበት።</translation>
+<translation id="104710386808485638">Linux ዳግም ይነሳ?</translation>
 <translation id="1047431265488717055">የአገናኝ ጽሑፍ &amp;ቅዳ</translation>
 <translation id="1048286738600630630">ማሳያዎች</translation>
 <translation id="1049743911850919806">ማንነት የማያሳውቅ</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">የደንበኛ እውቅና ማረጋገጫውን ለመላክ እባክዎ <ph name="TOKEN_NAME" /> ውስጥ ይግቡ።</translation>
 <translation id="1163931534039071049">የፍሬም መነሻ &amp;አሳይ</translation>
 <translation id="1164674268730883318">Smart Lock ለ<ph name="DEVICE_TYPE" /> ያጥፉ?</translation>
+<translation id="1164891049599601209">በአታላይ ጣቢያ ላይ ገብቷል</translation>
 <translation id="1164899421101904659">የፒን መክፈቻ ቁልፍ ያስገቡ</translation>
 <translation id="1165039591588034296">ስህተት</translation>
 <translation id="1166212789817575481">በቀኝ በኩል ያሉ ትሮችን ዝጋ</translation>
@@ -205,6 +207,7 @@
 <translation id="1274977772557788323">የAdobe Flash Player ማከማቻ ቅንብሮች</translation>
 <translation id="1274997165432133392">ኩኪዎች እና የሌላ ጣቢያ ውሂብ</translation>
 <translation id="1280820357415527819">የተንቀሳቃሽ ስልክ አውታረ መረቦችን በመፈለግ ላይ</translation>
+<translation id="1280965841156951489">ፋይሎችን አርትዕ</translation>
 <translation id="1282420830958964167">የእርስዎ ወላጅ በ«<ph name="APP_NAME" />» ላይ ያቀናበሩት ገደብ አልቋል። ነገ ለ<ph name="TIME_LIMIT" /> ሊጠቀሙበት ይችላሉ።</translation>
 <translation id="1285320974508926690">ይህን ጣቢያ በጭራሽ አትተርጉም</translation>
 <translation id="1285484354230578868">ውሂብ በእርስዎ Google Drive መለያ ላይ ያከማቹ</translation>
@@ -398,6 +401,7 @@
 <translation id="1545177026077493356">ራስ-ሰር የኪዮስክ ሁነታ</translation>
 <translation id="1545775234664667895">የተጫነ ገጽታ '<ph name="THEME_NAME" />'</translation>
 <translation id="1546280085599573572">ይህ ቅጥያ የመነሻ አዝራሩን ጠቅ ሲያደርጉ የሚታየውን ገጽ ቀይሮታል።</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> የሚከተሉትን ማድረግ የሚችል <ph name="EXTENSION_TYPE" /> መጫን ይፈልጋል፦</translation>
 <translation id="1549275686094429035">ARC ነቅቷል</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" />ን ሊደርስበት ይፈልጋል። የእርስዎን ፋይሎች ሊያሻሽል ወይም ሊሰርዝ ይችላል።</translation>
 <translation id="1553538517812678578">ገደብ የለሽ</translation>
@@ -496,6 +500,7 @@
 <translation id="1679806121152819234">PluginVm</translation>
 <translation id="1679810534535368772">እርግጠኛ ነዎት መውጣት ይፈልጋሉ?</translation>
 <translation id="167983332380191032">የአስተዳደር አገልግሎት የኤችቲቲፒ ስህተትን ልኳል።</translation>
+<translation id="1680841347983561661">እባክዎ ከጥቂት ጊዜ በኋላ Google Playን ለመጀመር እንደገና ይሞክሩ</translation>
 <translation id="1680849702532889074">የእርስዎን የLinux መተግበሪያ መጫን ወቅት ስህተት አጋጥሟል።</translation>
 <translation id="16815041330799488">ጣቢያዎች ወደ ቅንጥብ ሰሌዳው የተቀዱ ጽሑፍን እና ምስሎችን እንዲመለከቱ አትፍቀድ</translation>
 <translation id="1682548588986054654">አዲስ ማንነትን የማያሳውቅ መስኮት</translation>
@@ -509,6 +514,7 @@
 <translation id="1692210323591458290">ጠቆር ያለ ወይን ጠጅ</translation>
 <translation id="1692799361700686467">ከበርካታ ጣቢያዎች የሚመጡ ኩኪዎች ተፈቅደዋል።</translation>
 <translation id="1697150536837697295">ሥነ ጥበብ</translation>
+<translation id="1697686431566694143">ፋይል አርትዕ ያድርጉ</translation>
 <translation id="1698122934742150150">የአሁኑ ማንነት የማያሳውቅ ክፍለ-ጊዜ ብቻ</translation>
 <translation id="1698650002254827833">የመተግበሪያዎች ዝርዝር ሊጫን አይችልም። እባክዎ እንደገና ይሞክሩ።</translation>
 <translation id="1701062906490865540">ይህን ሰው አስወግድ</translation>
@@ -694,6 +700,7 @@
 <translation id="1931152874660185993">ምንም አካላት አልተጫኑም።</translation>
 <translation id="1932098463447129402">በፊት ያልሆነ</translation>
 <translation id="1933809209549026293">እባክዎ መዳፊት ወይም ቁልፍ ሰሌዳ ያገናኙ። የብሉቱዝ መሣሪያ ከሆነ እየተጠቀሙ ያሉት ለመጣመር ዝግጁ መሆኑን ያረጋግጡ።</translation>
+<translation id="1936931585862840749">ስንት ቅጂዎች መታተም እንዳለባቸው ለማመላከት ቁጥር ይጠቀሙ (ከ1 እስከ <ph name="MAX_COPIES" />)።</translation>
 <translation id="1937774647013465102"><ph name="ARCHITECTURE_DEVICE" /> በሆነው በዚህ መሣሪያ የመያዣ ኪነ ሕንጻ አይነት <ph name="ARCHITECTURE_CONTAINER" />ን ማስመጣት አይቻልም። ይህን መያዣ በተለየ መሣሪያ ወደነበረበት ለመመለስ መሞከር፣ ወይም ደግሞ በፋይሎች መተግበሪያ ውስጥ በመክፈት በዚህ መያዣ ውስጥ ይያሉ ፋይሎችን መድረስ ይችላሉ።</translation>
 <translation id="1938351510777341717">ውጫዊ ትዕዛዝ</translation>
 <translation id="1940546824932169984">የተገናኙ መሣሪያዎች</translation>
@@ -749,6 +756,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> ተሰናክሏል። ቅጥያውን ዳግም ለመጫን ይህን ፊኛ ጠቅ ያድርጉ።</translation>
 <translation id="2025891858974379949">ደህንነቱ ያልተጠበቀ ይዘት</translation>
 <translation id="202918510990975568">ደህንነትን እና የመለያ መግቢያን ለማዋቀር የይለፍ ቃልዎን ያስገቡ</translation>
+<translation id="2030672406208960151">የመልሶ ማግኛ ተርሚናል ክፈት</translation>
 <translation id="2034346955588403444">ሌላ የWiFi አውታረ መረብ አክል</translation>
 <translation id="203574396658008164">ከማያ ገጽ ቁልፍ ሆነህ ማስታወሻ መውሰድን አንቃ</translation>
 <translation id="2037445849770872822">ለዚህ የ Google መለያ ክትትል ተቀናብሯል። ተጨማሪ የወላጅ ቁጥጥሮችን ለማቀናበር፣ ቀጥል የሚለውን ይምረጡ።
@@ -901,6 +909,7 @@
 <translation id="2220572644011485463">ፒን ወይም የይለፍ ቃል</translation>
 <translation id="2224444042887712269">ይህ ቅንብር የ<ph name="OWNER_EMAIL" /> ነው።</translation>
 <translation id="2224551243087462610">የአቃፊ ስም አርትዕ</translation>
+<translation id="2225864335125757863">የመለያዎን ደህንነት ለመጠበቅ እነዚህን የይለፍ ቃላት ወዲያውኑ ይቀይሩ፦</translation>
 <translation id="2226449515541314767">ይህ ጣቢያ የMIDI መሳሪያዎች ሙሉ ቁጥጥር እንዳይኖረው ታግዷል።</translation>
 <translation id="222704500187107962">ይህ የማይካተተው እርስዎ ከአሁኑ ማንነት የማያሳውቅ ክፍለ-ጊዜ ከወጡ በኋላ በራስ-ሰር ይወገዳል</translation>
 <translation id="2227179592712503583">የአስተያየት ጥቆማን አስወግድ</translation>
@@ -987,6 +996,7 @@
 <translation id="2343747224442182863">በዚህ ትር ላይ አተኩር</translation>
 <translation id="2344028582131185878">የራስ ሰር ማውረዶች</translation>
 <translation id="2345723121311404059">1 ገጽ ወደ <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">የSODA አገልግሎት</translation>
 <translation id="2347644257713614136">የHangouts እና Cast for Education አጠቃቀም በGoogle ግላዊነት መመሪያ ነው የሚተዳደሩት።</translation>
 <translation id="2348176352564285430">መተግበሪያ፦ <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">ዳግም ተጭኗል</translation>
@@ -1021,6 +1031,7 @@
 <translation id="2387052489799050037">ወደ መነሻ ሂድ</translation>
 <translation id="2387458720915042159">የተኪ ግንኙነት አይነት</translation>
 <translation id="2391419135980381625">መደበኛ ቅርጸ-ቁምፊ</translation>
+<translation id="2392163307141705938">የእርስዎ ወላጅ ለ<ph name="IDS_SHORT_PRODUCT_NAME" /> ያቀናበሩት የጊዜ ገደብ ላይ ድደርሰዋል።</translation>
 <translation id="2392369802118427583">አግብር</translation>
 <translation id="2394566832561516196">በቀጣይ እንደገና ሲጀምር ቅንብሮች ይወገዳሉ።</translation>
 <translation id="2395616325548404795">የእርስዎ <ph name="DEVICE_TYPE" /> በተሳካ ሁኔታ ለድርጅት አስተዳደር ተመዝግቧል፣ ነገር ግን የእሴት እና የአካባቢ መረጃውን መላክ አልተሳካም። እባክዎ ለዚህ መሣሪያ ይህን መረጃ ከእርስዎ መሥሪያዎ ላይ ራስዎ ያስገቡ።</translation>
@@ -1038,6 +1049,7 @@
 <translation id="2422125132043002186">የLinux ወደነበረበት መመለስ ተሰርዟል</translation>
 <translation id="2423578206845792524">ምስል አስ&amp;ቀምጥ እንደ…</translation>
 <translation id="2428510569851653187">ትሩ ሲሰናከል ምን እየሰሩ እንደነበር ያብራሩ</translation>
+<translation id="2428939361789119025">Wi-Fiን አጥፋ</translation>
 <translation id="2431027948063157455">Google ረዳት የአውታረ መረብ ግንኙነትዎን መፈተሽ እና ዳግም መሞከር አልቻለም።</translation>
 <translation id="2432753757290432042">Linux (ቅድመ-ይሁንታ ሙከራ) ዝማኔ ያስፈልጋል</translation>
 <translation id="2433452467737464329">ገጹን በራስ-ሰር ለማደስ በዩ አር ኤል ውስጥ የመጠይቅ ልኬት ያክሉ፦ chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1085,6 +1097,7 @@
 <translation id="247949520305900375">ኦዲዮ አጋራ</translation>
 <translation id="2480868415629598489">እርስዎ የሚቀዱትን እና የሚለጥፉትን ውሂብ መቀየር</translation>
 <translation id="2482878487686419369">ማስታወቂያዎች</translation>
+<translation id="2483610039979585156">ሁሉንም የ<ph name="ORIGIN" /> ትሮች እስኪዘጉ ድረስ <ph name="ORIGIN" /> <ph name="FILENAME" />ን ማርትዕ ይችላል</translation>
 <translation id="2484959914739448251">ከሁሉም የእርስዎ የተመሳሰሉ መሣሪያዎች እና የእርስዎ የGoogle መለያ ላይ የአሰሳ ውሂብን ለማጽዳት፣ <ph name="BEGIN_LINK" />የእርስዎን የይለፍ ሐረግ ያስገቡ<ph name="END_LINK" />።</translation>
 <translation id="2485005079599453134">የይለፍ ቃል በዚህ መሣሪያ ላይ ተቀምጧል</translation>
 <translation id="2485422356828889247">አራግፍ</translation>
@@ -1298,6 +1311,7 @@
 <translation id="274290345632688601">የLinux መተግበሪያዎችን እና ፋይሎችን ወደ ነበሩበት በመመለስ ላይ</translation>
 <translation id="2743387203779672305">ወደ ቅንጥብ ሰሌዳ ገልብጥ</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> ባለበት ቆሟል</translation>
 <translation id="2749756011735116528"><ph name="PRODUCT_NAME" /> ውስጥ ይግቡ</translation>
 <translation id="2749881179542288782">ሰዋሰው እና ሆሄ አርም</translation>
 <translation id="2751739896257479635">EAP የክፍል 2 ማረጋገጥ</translation>
@@ -1306,6 +1320,7 @@
 <translation id="275662540872599901">ማያ ገጽ ጠፍቷል</translation>
 <translation id="2762441749940182211">ካሜራ ታግዷል</translation>
 <translation id="2765217105034171413">ትንሽ</translation>
+<translation id="2766161002040448006">አንድ ወላጅ ጠይቅ</translation>
 <translation id="276969039800130567">እንደ <ph name="USER_EMAIL_ADDRESS" /> ሆነው ገብተዋል።</translation>
 <translation id="2770465223704140727">ከዝርዝር  አስወግድ</translation>
 <translation id="2770690685823456775">የእርስዎን የይለፍ ቃላት ወደ ሌላ አቃፊ ይላኩ</translation>
@@ -1452,6 +1467,7 @@
 <translation id="2944060181911631861">የአጠቃቀም እና የምርመራ ውሂብ ይላኩ። የምርመራ፣ የመሣሪያ እና የመተግበሪያ አጠቃቀም ውሂብ በራስ-ሰር ወደ በራስ-ሰር ወደ Google በመላክ የAndroid ተሞክሮዎ እንዲሻሻል ያግዙ። ይህ የስርዓት እና የመተግበሪያ እርጋታን እና ሌሎች ማሻሻያዎችን ያግዛል። አንዳንድ ውሑድ ውሂብ እንዲሁም የGoogle መተግበሪያዎችን እና እንደ የAndroid ገንቢዎች ያሉ አጋሮችን ያግዛሉ። የእርስዎ የተጨማሪ ድር እና መተግበሪያ እንቅስቃሴ ቅንብር በርቶ ከሆነ ይህ ውሂብ በGoogle መለያዎ ላይ ሊቀመጥ ይችላል። <ph name="BEGIN_LINK1" />የበለጠ ለመረዳት<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">ግንኑነት ያክሉ</translation>
 <translation id="2947605845283690091">ድርን ማሰስ ፈጣን መሆን አለበት። አሁን ጊዜ ወስደው <ph name="BEGIN_LINK" />ቅጥያዎችዎን ይፈትሹ<ph name="END_LINK" />።</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 ሊጎዳ የሚችል ቅጥያ ጠፍቷል። እንዲሁም ሊያስወግዱት ይችላሉ።}one{# ሊጎዱ የሚችሉ ቅጥያዎች ጠፍተዋል። እንዲሁም ሊያስወግዷቸው ይችላሉ።}other{# ሊጎዱ የሚችሉ ቅጥያዎች ጠፍተዋል። እንዲሁም ሊያስወግዷቸው ይችላሉ።}}</translation>
 <translation id="2948300991547862301">ወደ <ph name="PAGE_TITLE" /> ይሂዱ</translation>
 <translation id="29488703364906173">ለዘመናዊ ድር የተሰራ ፈጣን፣ ቀላል እና ደህንነቱ አስተማማኝ የሆነ የድር አሳሽ።</translation>
 <translation id="2949289451367477459">መገኛ አካባቢን ይጠቀሙ። ይህን የመሣሪያ መገኛ አካባቢ ለመጠቀም ከመገኛ አካባቢ ፈቃድ ጋር እንዲጠቀሙ ለመተግበሪያዎች እና አገልግሎቶች ይፍቀዱ። Google የአካባቢ ትክክለኝነትን እና በአካባቢ ላይ የተመሠረቱ አገልግሎቶችን ለማሻሻል በየጊዜው የአካባቢ ውሂብን ሊሰበስብና ይህን ውሂብ ስም-አልባ በሆነ መልኩ ሊጠቀምበት ይችላል። <ph name="BEGIN_LINK1" />የበለጠ ለመረዳት<ph name="END_LINK1" /></translation>
@@ -1532,6 +1548,7 @@
 <translation id="3067198179881736288">መተግበሪያ ይጫን?</translation>
 <translation id="3067198360141518313">ይህን ተሰኪ አሂድ</translation>
 <translation id="3071624960923923138">አዲስ ትር ለመክፈት እዚህ ጠቅ ማድረግ ይችላሉ</translation>
+<translation id="3072775339180057696">ጣቢያ <ph name="FILE_NAME" /> እንዲመለከት ይፈቀድለት?</translation>
 <translation id="3075874217500066906">የPowerwash ሂደቱን ለመጀመር ዳግም ማስጀመር ያስፈልጋል። ዳግም ከተጀመረ በኋላ መቀጠል እንደሚፈልጉ እንዲያረጋግጡ ይጠየቃሉ።</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">የእርስዎ በመለያ መግቢያ ውሂብ ተሰርዟል</translation>
@@ -1544,6 +1561,7 @@
 <translation id="3085412380278336437">ጣቢያ የእርስዎን ካሜራ መጠቀም ይችላል</translation>
 <translation id="3085752524577180175">የSOCKS አስተናጋጅ</translation>
 <translation id="3088052000289932193">ጣቢያ MIDIን እየተጠቀመ ነው</translation>
+<translation id="3088128611727407543">የመተግበሪያ መገለጫን በማዘጋጀት ላይ...</translation>
 <translation id="3088325635286126843">እንደገና &amp;ሰይም...</translation>
 <translation id="3089137131053189723">ፍለጋ ጸድቷል</translation>
 <translation id="3090193911106258841">የኦዲዮ እና የቪዲዮ ግብዓትን በመድረስ ላይ</translation>
@@ -1557,6 +1575,7 @@
 <translation id="3115580024857770654">ሁሉንም ሰብስብ</translation>
 <translation id="3117362587799608430">ትከላ ሙሉ በሙሉ ተኳዃኝ አይደለም</translation>
 <translation id="3118319026408854581">የ<ph name="PRODUCT_NAME" /> እገዛ</translation>
+<translation id="3118654181216384296">እባክዎ ከትንሽ ጊዜ በኋላ Linuxን እንደገና ለማስነሳት ይሞክሩ።</translation>
 <translation id="3120430004221004537">በቂ ያልሆነ ምስጠራ ለአንድ የተወሰነ ስርዓተ ክወና በዚህ ላይ፦ «<ph name="DEVICE_NAME" />»።</translation>
 <translation id="3121793941267913344">ይህን የ<ph name="IDS_SHORT_PRODUCT_NAME" /> መሣሪያ ዳግም ያስጀምሩት</translation>
 <translation id="3122464029669770682">ሲፒዩ</translation>
@@ -1566,6 +1585,7 @@
 <translation id="3127156390846601284">ይህ ለሁሉም ለሚታዩት ጣቢያዎች በእርስዎ መሣሪያ ላይ የተክማቸ ማናቸውንም ውሂብ ይሰርዛል። ለመቀጠል ይፈልጋሉ?</translation>
 <translation id="3127860049873093642">ኃይል መሙላትን እና የአፈጻጸም ችግሮችን ለማስቀረት ተኳዃኝ የሆነ Dell ወይም USB Type-C ኃይል አስማሚ ይጠቀሙ።</translation>
 <translation id="3129173833825111527">የግራ ኅዳግ</translation>
+<translation id="3129215702932019810">መተግበሪያን ማስጀመር ላይ ስስህተት</translation>
 <translation id="3130528281680948470">የእርስዎ መሣሪያ ዳግመኛ ይዘጋጃል እና ሁሉም የተጠቃሚ መለያዎች እና የአካባቢ ውሂቦች ይወገዳሉ። ይህ አንዴ ከተደረገ በኋላ ሊቀለበስ አይችልም።</translation>
 <translation id="313205617302240621">የይለፍ ቃል ረሱ?</translation>
 <translation id="3132996321662585180">በየቀኑ ዳግም አድስ</translation>
@@ -1583,6 +1603,7 @@
     ዝርዝር መግለጫ፦
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome መተግበሪያዎች</translation>
+<translation id="3150693969729403281">የደህንነት ፍተሻን አሁን አሂድ</translation>
 <translation id="3150927491400159470">ከባድ ዳግም መጫን</translation>
 <translation id="315116470104423982">የተንቀሳቃሽ ስልክ ውሂብ</translation>
 <translation id="3151539355209957474">የሚጀምርበት ጊዜ</translation>
@@ -1675,6 +1696,7 @@
 <translation id="3282568296779691940">Chrome ውስጥ ይግቡ</translation>
 <translation id="3285322247471302225">አዲስ &amp;ትር</translation>
 <translation id="328571385944182268">የእርስዎን የይለፍ ቃላት ይቀመጡ?</translation>
+<translation id="328785681103589998">ሁሉንም የ<ph name="ORIGIN" /> ትሮች እስኪዘጉ ድረስ <ph name="ORIGIN" /> <ph name="FILENAME" />ን መመልከት ይችላል</translation>
 <translation id="3288047731229977326">በገንቢ ሁኔታ የሚሄዱ ጥያዎች የእርስዎን ኮምፒውተር ሊጎዱ ይችላሉ። እርስዎ ገንቢ ካልሆኑ ደህንነትዎን ለማረገገጥ በገንቢ ሁኔታ የሚሄዱ ቅጥያዎችን ማሰናከል አለብዎ።</translation>
 <translation id="3289856944988573801">ዝማኔዎች ካሉ ለማየት እባክዎ Ethernet ወይም Wi-Fi ይጠቀሙ።</translation>
 <translation id="3290356915286466215">ደህንነቱ ያልተጠበቀ</translation>
@@ -1781,7 +1803,9 @@
 <translation id="3441653493275994384">ማያ ገጽ</translation>
 <translation id="3445925074670675829">USB-C መሣሪያ</translation>
 <translation id="344630545793878684">የእርስዎን ውሂብ በበርካታ የድር ጣቢያዎች ላይ ያንብቡ</translation>
+<translation id="3448086340637592206">የGoogle Chrome እና የChrome OS ተጨማሪ ደንቦች</translation>
 <translation id="3448492834076427715">መለያን አዘምን</translation>
+<translation id="3449393517661170867">አዲስ የትር መስኮት</translation>
 <translation id="3449839693241009168">ትዕዛዞችን ለ<ph name="EXTENSION_NAME" /> ለመላክ <ph name="SEARCH_KEY" />ን ይጫኑ</translation>
 <translation id="3450157232394774192">የስራ-ፈት ሁኔታ ያዥነት መቶኛ</translation>
 <translation id="3451332697983754369">የእኔን <ph name="DEVICE_TYPE" /> አስምር</translation>
@@ -1962,6 +1986,7 @@
 <translation id="3681311097828166361">ለሰጡን ግብረመልስ እናመሰግናለን። አሁን ከመስመር ውጭ ነዎት፣ እና የእርስዎ ሪፖርት በኋላ ላይ ይላካል።</translation>
 <translation id="3682824389861648626">የእንቅስቃሴ መባቻ</translation>
 <translation id="3683524264665795342">የ<ph name="APP_NAME" /> ማያ ገጽ ማጋራት ጥያቄ</translation>
+<translation id="3686074530047028092">የትምህርት መለያ</translation>
 <translation id="368789413795732264">ይህን ፋይል ለመጻፍ በመሞከር ላይ ሳለ ስህተት ነበር፦ <ph name="ERROR_TEXT" />።</translation>
 <translation id="3688507211863392146">በመተግበሪያው ውስጥ በሚከፍቷቸው ፋይሎች እና አቃፊዎች ላይ ይጽፋል</translation>
 <translation id="3688526734140524629">ሰርጥ ቀይር</translation>
@@ -2030,6 +2055,7 @@
 <translation id="3759933321830434300">የድረ-ገጾች ክፍሎችን ያግዳል</translation>
 <translation id="3760460896538743390">&amp;የጀርባ ገጽ ይመርምሩ</translation>
 <translation id="37613671848467444">&amp;ማንነትን በማያሳውቅ መስኮት ውስጥ ክፈት</translation>
+<translation id="3761556954875533505">ጣቢያ ፋይሎችን እንዲያርትዕ ይፈቀድለት?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{በዩኤስቢ መሣሪያ መልዕክት ይለዋወጡ}one{በ# ዩኤስቢ መሣሪያዎች መልዕክት ይለዋወጡ}other{በ# ዩኤስቢ መሣሪያዎች መልዕክት ይለዋወጡ}}</translation>
 <translation id="3765246971671567135">የቅንጭብ ማሳያ ሁነታ መመሪያን ከመስመር ውጭ ማንበብ አልተቻለም።</translation>
 <translation id="3768037234834996183">የእርስዎን ምርጫዎች በማመሳሰል ላይ...</translation>
@@ -2128,6 +2154,7 @@
 <translation id="3873423927483480833">ፒኖችን አሳይ</translation>
 <translation id="3873915545594852654">በARC++ ላይ ችግር አጋጥሟል።</translation>
 <translation id="3879748587602334249">የማውረድ አቀናባሪ</translation>
+<translation id="3881321138433527084">የጥንቃቄ አሰሳ ጠፍቷል። ድር ላይ ደህንነትዎ እንደተጠበቀ ለመቆየት ያብሩት።</translation>
 <translation id="3882165008614329320">ከካሜራ ወይም ፋይል ላይ ያለ ቪዲዮ</translation>
 <translation id="3886446263141354045">ይህን ጣቢያ የመድረስ ጥያቄዎ ለ<ph name="NAME" /> ተልኳል</translation>
 <translation id="3888550877729210209">ማስታወሻዎችን በ<ph name="LOCK_SCREEN_APP_NAME" /> በመውሰድ ላይ</translation>
@@ -2164,6 +2191,7 @@
 <translation id="3927932062596804919">ከልክል</translation>
 <translation id="3928570707778085600">በ<ph name="FILE_OR_FOLDER_NAME" /> ላይ የተደረጉ ለውጦች ይቀመጡ?</translation>
 <translation id="3929426037718431833">እነዚህ ቅጥያዎች በዚህ ጣቢያ ላይ ያለውን መረጃ መመልከትና መቀየር ይይችላሉ።</translation>
+<translation id="3930155420525972941">ስብስብ ወደ አዲስ መስኮት ውሰድ</translation>
 <translation id="3930737994424905957">መሣሪያዎችን በመፈለግ ላይ</translation>
 <translation id="3930968231047618417">የዳራ ቀለም</translation>
 <translation id="3933283459331715412">የተሰረዘው የ<ph name="USERNAME" /> ይለፍ ቃል ወደነበረበት ይመልሱ</translation>
@@ -2320,6 +2348,7 @@
 <translation id="4130750466177569591">እስማማለሁ</translation>
 <translation id="413121957363593859">አካላት</translation>
 <translation id="4131410914670010031">ጥቁር እና ነጭ</translation>
+<translation id="4133076602192971179">የይለፍ ቃልዎን ለመቀየር መተግበሪያውን ይክፈቱ</translation>
 <translation id="4136203100490971508">ፀሐይ ስትወጣ የማታ ብርሃን በራስ-ሰር ይጠፋል</translation>
 <translation id="41365691917097717">መቀጠል የAndroid መተግበሪያዎችን ለመፍጠር እና ለመሞከር የADB ስሕተት ማረሚያን ያነቃዋል። ይህ እርምጃ በGoogle ያልተረጋገጡ የAndroid መተግበሪያዎች መጫንን እንደሚፈቅድ፣ እና ለማሰናከል ወደ የፋብሪካ ዳግም ማስጀመር እንደሚያስፈልግ ልብ ይበሉ።</translation>
 <translation id="4138267921960073861">በመግቢያ ገጹ ላይ የተጠቃሚ ስሞች እና ፎቶዎችን አሳይ</translation>
@@ -2431,6 +2460,7 @@
 <translation id="4330387663455830245"><ph name="LANGUAGE" />ን በጭራሽ አትተርጉም</translation>
 <translation id="4332976768901252016">የወላጅ መቆጣጠሪያዎችን ያዋቅሩ</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 ከRSA ምስጠራ ጋር</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{የእርስዎ አስተዳዳሪ 1 ሊጎዳ የሚችል ቅጥያ መልሰው አብርተዋል}one{የእርስዎ አስተዳዳሪ # ሊጎዱ የሚችሉ ቅጥያዎችን መልሰው አብርተዋል}other{የእርስዎ አስተዳዳሪ # ሊጎዱ የሚችሉ ቅጥያዎችን መልሰው አብርተዋል}}</translation>
 <translation id="4336434711095810371">ሁሉንም ውሂብ አጽዳ</translation>
 <translation id="4336979451636460645">የአውታረ መረብ ምዝግብ ማስታወሻዎችን ለማግኘት ይህንን ይመልከቱ፦ <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> ከ«<ph name="EXTENSION_NAME" />» መተግበሪያ ጋር መገናኘት ይፈልጋል</translation>
@@ -2467,6 +2497,7 @@
 <translation id="4384652540891215547">ቅጥያውን አግብር</translation>
 <translation id="438503109373656455">ሳራቶጋ</translation>
 <translation id="4387004326333427325">የማረጋገጫ ምስክር ወረቀት በርቀት ተቀባይነት አላገኘም</translation>
+<translation id="4387890294700445764">የተጠለፉ የይለፍ ቃላት</translation>
 <translation id="4389091756366370506">ተጠቃሚ <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{ማንነት የማያሳውቅ}one{# ክፍት ማንነት የማያሳውቁ መስኮቶች}other{# ክፍት ማንነት የማያሳውቁ መስኮቶች}}</translation>
 <translation id="439266289085815679">የብሉቱዝ ውቅረትን የሚቆጣጠሩት <ph name="USER_EMAIL" /> ናቸው።</translation>
@@ -2498,6 +2529,7 @@
 <translation id="4429030830601238961">ይህ ውሂብ የድርጅትዎን የደህንነት መመሪያዎችን ይጥሳል፣ እና ሊለጠፍ አይችልም።</translation>
 <translation id="4430019312045809116">ድምፅ</translation>
 <translation id="4430369329743628066">ዕልባት ታክሏል</translation>
+<translation id="4432621511648257259">የይለፍ ቃል ትክክል አይደለም</translation>
 <translation id="4434045419905280838">ብቅ-ባዮች እና አቅጣጫ ማዞሮች</translation>
 <translation id="443454694385851356">የቆየ (ለደህንነት የማያስተማምን)</translation>
 <translation id="443475966875174318">ተኳኋኝ ያልሆኑ መተግበሪያዎችን ያዘምኑ ወይም ያስወግዱ</translation>
@@ -2735,6 +2767,7 @@
 <translation id="4785719467058219317">በዚህ ድር ጣቢያ ያልተመዘገበ የደህንነት ቁልፍ እየተጠቀሙ ነው</translation>
 <translation id="4788092183367008521">እባክዎ የአውታረ መረብ ግንኙነትዎን ይፈትሹትና እንደገና ይሞክሩ።</translation>
 <translation id="4792711294155034829">&amp;ችግር ሪፖርት ያድርጉ...</translation>
+<translation id="4794810983896241342">ዝማኔዎች <ph name="BEGIN_LINK" />በአስተዳዳሪዎ<ph name="END_LINK" /> ነው የሚቀናበሩት</translation>
 <translation id="479536056609751218">ድረ-ገጽ፣ ኤች ቲ ኤም ኤል ብቻ</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />የብሉቱዝ ምዝግብ ማስታወሻ<ph name="END_LINK" />ን ያያይዙ (Google ውስጣዊ)</translation>
 <translation id="4801448226354548035">መለያዎችን ደብቅ</translation>
@@ -2747,6 +2780,7 @@
 <translation id="4808667324955055115">ብቅ-ባዮች ታግደዋል፦</translation>
 <translation id="480990236307250886">መነሻ ገጹን ክፈት</translation>
 <translation id="4811503964269049987">የተመረጠ ቡድንን ሰብስብ</translation>
+<translation id="4811818760963189951">እርስዎ የታሪክ ስምረትን ስላሰናከሉ ጠፍቷል</translation>
 <translation id="4813136279048157860">የእኔ ምስሎች</translation>
 <translation id="4813512666221746211">የአውታረ መረብ ስህተት</translation>
 <translation id="4814378367953456825">ለዚህ ጣት አሻራ ስም ያስገቡ</translation>
@@ -2776,6 +2810,7 @@
 <translation id="4850669014075537160">ሽብለላ</translation>
 <translation id="4850886885716139402">አሳይ</translation>
 <translation id="4853020600495124913">&amp;በአዲስ መስኮት ውስጥ ክፈት</translation>
+<translation id="4854317507773910281">የሚጸድቅ የወላጅ መለያ ይምረጡ</translation>
 <translation id="485480310608090163">ተጨማሪ ቅንብሮች እና ፈቃዶች</translation>
 <translation id="4856478137399998590">የተንቀሳቃሽ ስልክ ውሂብ አገልግሎትዎ የገበረና ስራ ላይ ለመዋል ዝግጁ ነው</translation>
 <translation id="4856855265648545577">የማስጀመሪያ፣ ተመለስ፣ አጠቃላይ ዕይታ አዝራሮችን በጡባዊ ሁነታ ላይ በመደርደሪያ ውስጥ አሳይ። የChromeVox (የሚነገር ግብረመልስ) ወይም የማብሪያ/ማጥፊያ መዳረሻ በሚነቃበት ጊዜ በርቷል።</translation>
@@ -2828,6 +2863,7 @@
 <translation id="4908811072292128752">በአንዴ ሁለት ጣቢያዎችን ለማሰስ አዲስ ትር ይክፈቱ</translation>
 <translation id="4909038193460299775">ይህ መለያ የሚቀናበረው በ<ph name="DOMAIN" /> ስለሆነ የእርስዎ ዕልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ሌሎች ቅንብሮች ከዚህ መሣሪያ ይጸዳሉ። ይሁንና፣ የእርስዎ ውሂብ በGoogle መለያ ላይ እንዳለ የሚቀር ሲሆን በ<ph name="BEGIN_LINK" />Google ዳሽቦርድ<ph name="END_LINK" /> ላይ መቀናበር ይችላል።</translation>
 <translation id="4912643508233590958">ከመቦዘን ማንቂያዎች</translation>
+<translation id="4916542008280060967">ጣቢያ <ph name="FILE_NAME" />ን አርትዕ እንዲያደርግ ይፈቀድለት?</translation>
 <translation id="491691592645955587">ደህንነቱ ወደተጠበቀ አሳሽ ቀይር</translation>
 <translation id="4917385247580444890">ጠንካራ</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ከቅጥያ «<ph name="EXTENSION_NAME" />» ጋር መገናኘት ይፈልጋል</translation>
@@ -2899,6 +2935,7 @@
 <translation id="5017633213534173756">አስታውስ</translation>
 <translation id="5018207570537526145">የቅጥያ ድር ጣቢያን ክፈት</translation>
 <translation id="5021750053540820849">እስካሁን አልተዘመነም</translation>
+<translation id="5026806129670917316">Wi-Fi አብራ</translation>
 <translation id="5026874946691314267">ይህን ዳግም አታሳይ</translation>
 <translation id="5027550639139316293">የኢሜይል ሰርቲፊኬት</translation>
 <translation id="5027562294707732951">ቅጥያ ያክሉ</translation>
@@ -2912,10 +2949,12 @@
 <translation id="5040823038948176460">ተጨማሪ የይዘት ቅንብሮች</translation>
 <translation id="5042282098504489593"><ph name="USB_DEVICE_NAME" />ን ከLinux ጋር ለማገናኘት ቅንብሮችን ይክፈቱ</translation>
 <translation id="5043913660911154449">ወይም የእርስዎን አታሚ PPD ይጥቀሱ <ph name="LINK_BEGIN" />የበለጠ ለመረዳት<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">የስምረት ውሂብዎን በይለፍ ሐረግ ስላመሰጠሩት ጠፍቷል</translation>
 <translation id="5045550434625856497">ትክክል ያልሆነ የይለፍ ቃል</translation>
 <translation id="504561833207953641">በነባር የአሳሽ ክፍለ-ጊዜ ውስጥ በመክፈት ላይ።</translation>
 <translation id="5047421709274785093">ጣቢያዎች የእንቅስቃሴ እና የብርሃን ዳሳሾችን እንዳይጠቀሙ አግድ</translation>
 <translation id="5050042263972837708">የቡድን ስም</translation>
+<translation id="5051073330196664891">የGoogle ሁለገብ አገልግሎት ውል (uToS)</translation>
 <translation id="5051836348807686060">ፊደል ማረሚያ ለመረጧቸው ቋንቋዎች አይደገፍም</translation>
 <translation id="5052499409147950210">ጣቢያን አርትዕ ያድርጉ</translation>
 <translation id="5053604404986157245">በዘፈቀደ የመነጨው የTPM ይለፍ ቃል አይገኝም። ይሄ ከአንድ Powerwash በኋላ የሚከሰት የተለመደ ነገር ነው።</translation>
@@ -2953,6 +2992,7 @@
 <translation id="5097002363526479830">ከአውታረ መረብ «<ph name="NAME" />» ጋር መገናኘት አልተሳካም፦ <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">ሀሉንም እልባቶች ክፈት</translation>
 <translation id="5101839224773798795">ጠቋሚ ሲያቆም በራስሰር ጠቅ አድርግ</translation>
+<translation id="5107443654503185812">አንድ ቅጥያ የጥንቃቄ አሰሳን አጥፍቷል</translation>
 <translation id="5108967062857032718">ቅንብሮች - የAndroid መተግበሪያዎችን አስወግድ</translation>
 <translation id="5109044022078737958">ሚያ</translation>
 <translation id="5111646998522066203">ማንነትን ከማያሳውቅ ይውጡ</translation>
@@ -3008,6 +3048,7 @@
 <translation id="5184063094292164363">&amp;ጃቫስክሪፕት ኮንሶል</translation>
 <translation id="5184209580557088469">ይህ የተጠቃሚ ስም ያለው ቲኬት አስቀድሞ አለ</translation>
 <translation id="5184662919967270437">መሣሪያዎን በማዘመን ላይ</translation>
+<translation id="5185359571430619712">ቅጥያዎችን ገምግም</translation>
 <translation id="5185386675596372454">አዲሱ የ«<ph name="EXTENSION_NAME" />» መተግበሪያ ስሪት ተጨማሪ ፍቃዶችን ስለሚፈልግ ተሰናክሏል።</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> በርካታ ፋይሎችን ለማውረድ ይፈልጋል</translation>
@@ -3039,6 +3080,7 @@
 <translation id="523505283826916779">የተደራሽነት ቅንብሮች</translation>
 <translation id="5235750401727657667">አዲስ ትር በሚከፈትበት ጊዜ የሚመለከቱትን ገጽ ይተኩ</translation>
 <translation id="5238278114306905396">መተግበሪያ «<ph name="EXTENSION_NAME" />» በራስ-ሰር ተወግዷል።</translation>
+<translation id="5239730228370806996">ይህ የተጣለ ውሂብ የድርጅትዎ የደህንነት መመሪያዎችን ይጥሳል። ለማንኛውም መቀጠል ይፈልጋሉ?</translation>
 <translation id="5241128660650683457">በሚጎበኙዋቸው የድር ጣቢያዎች ላይ ያሉ ሁሉንም የእርስዎን ውሂቦች ያንብቡ</translation>
 <translation id="5242724311594467048">«<ph name="EXTENSION_NAME" />» ይንቃ?</translation>
 <translation id="5243522832766285132">እባክዎ ከጥቂት ጊዜ በኋላ እንደገና ይሞክሩ</translation>
@@ -3057,6 +3099,7 @@
 <translation id="5260334392110301220">ዘመናዊ ጥቅሶች</translation>
 <translation id="5260508466980570042">ይቅርታ፣ ኢሜይልዎ ወይም የይለፍ ቃልዎ ሊረጋገጥ አልቻለም። እባክዎ እንደገና ይሞክሩ።</translation>
 <translation id="5261683757250193089">በድር መደብር ውስጥ ክፈት</translation>
+<translation id="5262178194499261222">የይለፍ ቃል አስወግድ</translation>
 <translation id="5264148714798105376">ይሄ አንድ ደቂቃ አካባቢ ሊወስድ ይችላል።</translation>
 <translation id="5264252276333215551">የእርስዎን መተግበሪያ በኪዮስክ ሁነታ ለማስጀመር እባክዎ ከበይነመረቡ ጋር ይገናኙ።</translation>
 <translation id="5265562206369321422">ከአንድ ሳምንት በላይ ከመስመር ውጪ</translation>
@@ -3326,6 +3369,7 @@
 <translation id="5618075537869101857">ኤዲያ፣ የኪዮስክ መተግበሪያውን ማስጀመር አልተቻለም።</translation>
 <translation id="5618333180342767515">(ይሄ ጥቂት ደቂቃዎች ሊወስድ ይችላል)</translation>
 <translation id="56197088284879152">ግንኙነት ወደ የሩቅ መሣሪያ ተመርቷል፦ «<ph name="DEVICE_NAME" />»።</translation>
+<translation id="5620163320393916465">ምንም የተቀመጡ የይለፍ ቃላት የሉም</translation>
 <translation id="5620549857835247159">የማስጀመሪያ፣ የተመለስ፣ የአጠቃላይ ዕይታ አዝራሮችን በጡባዊ ሁነታ ላይ በመደርደሪያ ውስጥ አሳይ።</translation>
 <translation id="5620568081365989559">DevTools የ<ph name="FOLDER_PATH" /> ሙሉ መዳረሻን ይጠይቃል። ማንኛውም ሚስጥራዊነት ያለው መረጃ አጋልጠው እንዳልሰጡ ያረጋግጡ።</translation>
 <translation id="5620612546311710611">የአጠቃቀም ስታትስቲክስ</translation>
@@ -3419,6 +3463,7 @@
 <translation id="5747785204778348146">ገንቢ - ያልተረጋጋ</translation>
 <translation id="5747809636523347288">ይ&amp;ለጥፉና ወደ <ph name="URL" /> ይሂዱ</translation>
 <translation id="5750324801516359607">ሩቅ</translation>
+<translation id="5751887393582880060">ይህ ሰቀላ የድርጅትዎን የደህንነት መመሪያዎች ይጥሳል። ለማንኛውም መቀጠል ይፈልጋሉ?</translation>
 <translation id="5756163054456765343">የእገዛ ማዕከል</translation>
 <translation id="5759728514498647443">በ <ph name="APP_NAME" /> በኩል ሊያትሙዋቸው የሚልኩዋቸው ሰነዶች በ <ph name="APP_NAME" /> ላይ ሊነበቡ ይችላሉ።</translation>
 <translation id="5763751966069581670">ምንም የዩኤስቢ መሣሪያዎች አልተገኙም</translation>
@@ -3480,6 +3525,7 @@
 <translation id="5833726373896279253">እነዚህ ቅንብሮች በባለቤቱ ብቻ ነው ሊቀየሩ የሚችሉት።</translation>
 <translation id="5834581999798853053"><ph name="TIME" /> ደቂቃዎች አካባቢ ቀርቷል</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - ካሜራ ወይም ማይክራፎን በመቅረጽ ላይ ነው</translation>
+<translation id="5841270259333717135">ኤተርኔት ያዋቅሩ</translation>
 <translation id="5842497610951477805">ብሉቱዝን አንቃ</translation>
 <translation id="5846200638699387931">የዝምድና አጻጻፍ ስህተት፦ <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">አስቀድሞ ታክሏል</translation>
@@ -3525,6 +3571,7 @@
 <translation id="5900358982890952556">Linux (ቅድመ-ይሁንታ)ን ደረጃ አሻሽል</translation>
 <translation id="5901494423252125310">የማተሚያ በር ክፍት ነው</translation>
 <translation id="5901630391730855834">ቢጫ</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{1 ሊጎዳ የሚችል ቅጥያ መልሰው አብርተዋል}one{# ሊጎዱ የሚችሉ ቅጥያዎችን መልሰው አብርተዋል}other{# ሊጎዱ የሚችሉ ቅጥያዎችን መልሰው አብርተዋል}}</translation>
 <translation id="5906655207909574370">የተዘመነ ለመሆን ጥቂት ብቻ ቀርቷል! ዝማኔውን ለማጠናቀቅ መሣሪያዎን ዳግም ያስጀምሩት።</translation>
 <translation id="5906732635754427568">ከዚህ መተግበሪያ ጋር የተጎዳኘ ውሂብ ከዚህ መሣሪያ ላይ ይወገዳል።</translation>
 <translation id="5908769186679515905">ጣቢያዎች Flashን እንዳያሄዱ አግድ</translation>
@@ -3554,6 +3601,7 @@
 <translation id="59324397759951282">የዩኤስቢ መሣሪያ ከ<ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">ተከታታይ</translation>
 <translation id="5933376509899483611">የጊዜ ሰቅ</translation>
+<translation id="5935656526031444304">የጥንቃቄ አሰሳን አቀናብር</translation>
 <translation id="5938002010494270685">የደህነንት ማላቂያ ይገኛል</translation>
 <translation id="5939518447894949180">ዳግም አስጀምር</translation>
 <translation id="5941153596444580863">ሰው አክል...</translation>
@@ -3597,6 +3645,7 @@
 <translation id="5993807461461235661">ይህ ሰቀላ የተመሠጠረ ሲሆን የድርጅትዎን የደህንነት መመሪያዎች ይጥሳል።</translation>
 <translation id="5997337190805127100">ስለጣቢያ መዳረሻ ተጨማሪ ይወቁ</translation>
 <translation id="6000758707621254961">ለ«<ph name="SEARCH_TEXT" />» <ph name="RESULT_COUNT" /> ውጤቶችን አሳይ</translation>
+<translation id="6002210667729577411">ስብስብ ወደ አዲስ መስኮት ውሰድ</translation>
 <translation id="6002458620803359783">የሚመረጡ ድምጾች</translation>
 <translation id="6006484371116297560">የታወቀ ገጽታ</translation>
 <translation id="6007240208646052708">የድምጽ ፍለጋ በቋንቋዎ አይገኝም።</translation>
@@ -3628,6 +3677,7 @@
 <translation id="6040852767465482106">ስም-አልባ መታወቂያ</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />የGoogle አካባቢ አገልግሎት የዚህ መሣሪያ አካባቢ እንዲገምት ለማገዝ እንደ Wi-Fi፣ የተንቀሳቃሽ ስልክ አውታረ መረቦች እና ዳሳሾች ያሉ ምንጮችን ይጠቀማል።<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />በዚህ መሣሪያ ላይ ዋናውን የአካባቢ ቅንብርን በማጥፋት አካባቢን ማጥፋት ይችላሉ። እንዲሁም በአካባቢ ቅንብሮች ውስጥ Wi-Fiን፣ የተንቀሳቃሽ ስልክ አውታረ መረቦችን እና ዳሳሾችን መጠቀም ለአካባቢ ማጥፋት ይችላሉ።<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409">እርስዎ ሁሉንም የ<ph name="ORIGIN" /> ትሮች እስኪዘጉ ድረስ <ph name="ORIGIN" /> በ<ph name="FOLDERNAME" /> ውስጥ ፋይሎችን ማየት ይችላል</translation>
 <translation id="6041155700700864984">ከሙሉ ማያ ገጽ ውጣ</translation>
 <translation id="604124094241169006">ራስ-ሰር</translation>
 <translation id="6042308850641462728">ተጨማሪ</translation>
@@ -3689,6 +3739,7 @@
 <translation id="6104311680260824317">መሣሪያን ከጎራው ጋር ማቀላቀል አልተቻለም። አገልጋዩ የተጠቀሱትን የKerberos ምሥጠራ ዓይነቶችን አይደግፍም። ለምሥጠራ ቅንብሮች «ተጨማሪ አማራጮች» ላይ ምልክት ያድርጉ።</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> ለዚህ መሣሪያ አሁኑኑ ዝማኔን ይፈልጋል</translation>
 <translation id="6106186653986077033">Plugin VM ፈቃድ ይጠይቃል</translation>
+<translation id="6107047744202598802">ድር ጣቢያዎች የእርስዎን ጉብኝት እንዲያስታውሱና እርስዎ በመላው ድሩ ላይ እንዲከታተሉ ያስችላቸዋል</translation>
 <translation id="6112294629795967147">መጠን ለመቀየር ይንኩ</translation>
 <translation id="6112727384379533756">ቲኬት ያክሉ</translation>
 <translation id="6112931163620622315">ስልክዎን ይፈትሹ</translation>
@@ -3767,6 +3818,7 @@
 <translation id="622537739776246443">መገለጫ ይሰረዛል</translation>
 <translation id="6225475702458870625">የውሂብ ግንኙነት ከእርስዎ <ph name="PHONE_NAME" /> ይገኛል</translation>
 <translation id="6226777517901268232">የግል ቁልፍ ፋይል (ከተፈለገ)</translation>
+<translation id="6227280783235722609">ቅጥያ</translation>
 <translation id="6228691855869374890">ይህ ጣቢያ የMIDI መሳሪያዎችን ሙሉ በሙሉ ይቆጣጠራል።</translation>
 <translation id="6228720835160974792">ለዚህ ምስል የQR ኮድ ያመንጩ</translation>
 <translation id="6229890768313448549">የGoogle Play አገልግሎት ውል ሊጫን አልቻለም። እባክዎ እንደገና ይሞክሩ።</translation>
@@ -3818,6 +3870,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> በተለምዶ የሚወርድ ፋይል አይደለም፣ እና አደገኛ ሊሆን ይችላል።</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{በእርስዎ አውታረ መረብ ላይ ያለ አዲስ አታሚ}one{በእርስዎ አውታረ መረብ ላይ ያሉ አዲስ አታሚዎች}other{በእርስዎ አውታረ መረብ ላይ ያሉ አዲስ አታሚዎች}}</translation>
 <translation id="6286708577777130801">የተቀመጡ የይለፍ ቃላት ዝርዝሮች</translation>
+<translation id="6291163159361301370">Linuxን ለመጀመር <ph name="ORGANIZATION_NAME" /> የውሂብዎን ምትኬ እንዲያስቀምጡና ይህን Chromebook ወደ የፋብሪካ ቅንብሮቹ እንዲመልሱ ይፈልግብዎታል።</translation>
 <translation id="6291949900244949761">አንድ ጣቢያ የዩኤስቢ መሣሪያዎችን መድረስ ሲፈልግ ጠይቅ (የሚመከር)</translation>
 <translation id="6291953229176937411">በፈላጊ ውስጥ &amp;አሳይ</translation>
 <translation id="6295158916970320988">ሁሉም ጣቢያዎች</translation>
@@ -4014,6 +4067,7 @@
 <translation id="6561726789132298588">ያስገቡ</translation>
 <translation id="656293578423618167">የፋይል ዱካው ወይም ስሙ በጣም ረጅም ነው። እባክዎ ባጠረ ስም ወይም ሌላ ቦታ ላይ ያስቀምጡ።</translation>
 <translation id="6563469144985748109">የእርስዎ አስተዳዳሪ ገና አላጸደቁትም</translation>
+<translation id="6565955132287672866">የእርስዎ መሣሪያ በአግባቡ አልተዘጋም። Linux (ቅድመ-ይሁንታ) ለመጠቀም ዳግም መነሳት አለበት።</translation>
 <translation id="6567688344210276845">አዶ «<ph name="ICON" />» ለገጽ እርምጃ መጫን አልተቻለም።</translation>
 <translation id="6569934958368283244">ሌሎች ሰዎች</translation>
 <translation id="657402800789773160">ይህን ገጽ &amp;ዳግም ጫን</translation>
@@ -4130,6 +4184,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">የዴስክቶፕ አቋራጭን አሳይ</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> ለአፍታ ቆሟል</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />የእርስዎ አስተዳዳሪ<ph name="END_LINK" /> የጥንቃቄ አሰሳን አጥፍቷል</translation>
 <translation id="6742339027238151589">ለስክሪፕቱ ተደራሽ</translation>
 <translation id="6745592621698551453">አሁን አዘምን</translation>
 <translation id="6746124502594467657">ወደታች አውርድ</translation>
@@ -4388,6 +4443,7 @@
     <ph name="BEGIN_BOLD" />ከግምት ውስጥ ያስገቡ፦<ph name="END_BOLD" /> እንዲሁም ተመሳሳይ ድምጽ ወይም ቀረጻ የእርስዎን ረዳት ሊደርስበት ይችላል። በኋላ ላይ በረዳት ቅንብሮች ውስጥ የVoice Match ፈቃዱን በማጥፋት ሊያስወግዱት ይችላሉ።</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">ስማቸው እንደሚከተለው ከሆኑ መሣሪያዎች ጋር ውሂብ ተለዋወጥ፦ <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">ዝማኔዎች ሲጠናቀቁ መሣሪያ ዳግም ይነሳል።</translation>
 <translation id="7098389117866926363">USB-C መሣሪያ (የግራ ወደብ ከኋላ በኩል)</translation>
 <translation id="7098447629416471489">ሌሎች የተቀመጡ የፍለጋ ፕሮግራሞች እዚህ ይታያሉ</translation>
 <translation id="7099337801055912064">ትልቅ PPDን መጫን አልተቻለም። ከፍተኛው መጠን 250 ኪባ ነው።</translation>
@@ -4511,6 +4567,7 @@
 <translation id="7258225044283673131">መተግበሪያው ምላሽ እየሰጠ አይደለም። መተግበሪያውን ለመዝጋት «በግዳጅ ዝጋ»ን ይምረጡ።</translation>
 <translation id="7258697411818564379">የእርስዎ ፒን ታክሏል</translation>
 <translation id="7262004276116528033">ይህ የመለያ መግቢያ አገልግሎት በ<ph name="SAML_DOMAIN" /> የሚስተናገድ ነው</translation>
+<translation id="7266898409676782635">የ<ph name="DEVICE_TYPE" /> ጠቃሚ ምክሮችን፣ ቅናሾችን እና ዝማኔዎችን ያግኙ፣ እና ግብረመልስ ያጋሩ። በማንኛውም ጊዜ ከደንበኝነት ምዝገባ ይውጡ።</translation>
 <translation id="7268127947535186412">ይህ ቅንብር በመሣሪያው ባለቤት የሚተዳደር ነው።</translation>
 <translation id="7270858098575133036">አንድ ጣቢያ የMIDI መሣሪያዎችን ለመድረስ ለሚመለከተው ሥርዓት ብቻ የተወሰኑ መልእክቶችን ለመጠቀም ሲፈልግ ጠይቅ</translation>
 <translation id="7272674038937250585">ምንም መግለጫ አልቀረበም</translation>
@@ -4584,6 +4641,7 @@
 <translation id="7364796246159120393">ፋይል ምረጥ</translation>
 <translation id="7366415735885268578">አንድ ጣቢያ ያክሉ</translation>
 <translation id="7366909168761621528">የአሰሳ ውሂብ</translation>
+<translation id="7367714965999718019">QR ኮድ ማመንጫ</translation>
 <translation id="736877393389250337"><ph name="URL" /> በ<ph name="ALTERNATIVE_BROWSER_NAME" /> ውስጥ ሊከፈት አአልቻለም። እባክዎ የስርዓት አስተዳዳሪዎን ያነጋግሩ።</translation>
 <translation id="7370592524170198497">ኤተርኔት EAP፦</translation>
 <translation id="7371006317849674875">የሚጀምርበት ጊዜ</translation>
@@ -4841,8 +4899,10 @@
 <translation id="7737238973539693982">Linux (ቅድመ-ይሁንታ)ን ሰርዝ</translation>
 <translation id="7740996059027112821">መደበኛ</translation>
 <translation id="7744047395460924128">የህትመት ታሪክዎን ይመልከቱ</translation>
+<translation id="7744192722284567281">በውሂብ ጥሰት ላይ ተገኝቷል</translation>
 <translation id="7746457520633464754">አደገኛ መተግበሪያዎችን እና ጣቢያዎችን ፈልጎ ለማግኘት፣ Chrome እርስዎ የጎበኟቸውን አንዳንድ ገጾች ዩአርኤሎች፣ የተወሰነ የሥርዓት መረጃ እና አንዳንድ የገጽ ይዘት ወደ Google ይልካል</translation>
 <translation id="7750228210027921155">በሥዕል ውስጥ ሥዕል</translation>
+<translation id="7751229152614300329">የጥንቃቄ አሰሳ የተዘመነ ሲሆን እርስዎን ከጎጂ ጣቢያዎች እና ውርዶች ይጠብቀዎታል</translation>
 <translation id="7751260505918304024">ሁሉንም አሳይ</translation>
 <translation id="7754704193130578113">እያንዳንዱ ፋይል ከመውረዱ በፊት የት እንደሚቀመጥ ጠይቅ</translation>
 <translation id="7755287808199759310">የእርስዎ ወላጅ እገዳውን ሊያነሱልዎ ይችላሉ</translation>
@@ -4856,6 +4916,7 @@
 <translation id="7766807826975222231">ጉብኝት ያድርጉ</translation>
 <translation id="7766838926148951335">ፈቃዶችን ተቀበል</translation>
 <translation id="7769672763586021400">የሞዴል መታወቂያ</translation>
+<translation id="7770651108375708429">የWi-Fi ግንኙነት አቋርጥ</translation>
 <translation id="7771452384635174008">አቀማመጥ</translation>
 <translation id="7772032839648071052">የይለፍ ሐረግ ያረጋግጡ</translation>
 <translation id="7772127298218883077">ስለ <ph name="PRODUCT_NAME" /></translation>
@@ -4990,6 +5051,7 @@
 <translation id="7910768399700579500">&amp;አዲስ አቃፊ</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">የእርስዎ የይለፍ ቃል በአገልጋዩ ላይ ተቀይሯል። እባክዎ ዘግተው ይውጡና እንደገና ይግቡ።</translation>
+<translation id="7914583336730284547">እነዚህ የተጣሉ ፋይሎች የድርጅትዎን የደህንነት መመሪያዎችን ይጥሳሉ። ለማንኛውም መቀጠል ይፈልጋሉ?</translation>
 <translation id="7915457674565721553">የወላጅ መቆጣጠሪያዎችን ለማቀናበር ወደ በይነመረብ ያገናኙ</translation>
 <translation id="7915471803647590281">ግብረ መልሱን ከመላክዎ በፊት እባክዎ ምን እየተከሰተ እንደሆነ ይንገሩን።</translation>
 <translation id="7918257978052780342">ተመዝገብ</translation>
@@ -5013,6 +5075,7 @@
 <translation id="7939412583708276221">ለማንኛውም አስቀምጥ</translation>
 <translation id="7942349550061667556">ቀይ</translation>
 <translation id="7943837619101191061">አካባቢ አክል...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 የተጠለፈ የይለፍ ቃል}one{# የተጠለፉ የይለፍ ቃላት}other{# የተጠለፉ የይለፍ ቃላት}}</translation>
 <translation id="7945031593909029181">«<ph name="CHROME_EXTENSION_NAME" />» መገናኘት ይፈልጋል</translation>
 <translation id="7946586320617670168">ምንጭ ደህንነቱ የተጠበቀ መሆን አለበት</translation>
 <translation id="794676567536738329">ፍቃዶችን ያረጋግጡ</translation>
@@ -5092,6 +5155,7 @@
 <translation id="8028803902702117856"><ph name="SIZE" />፣ <ph name="FILE_NAME" /> በማውረድ ላይ</translation>
 <translation id="8028993641010258682">መጠን</translation>
 <translation id="8030656706657716245">አታሚ አክል</translation>
+<translation id="8030852056903932865">አጽድቅ</translation>
 <translation id="8032244173881942855">ትሩን cast ማድረግ አልተቻለም።</translation>
 <translation id="8033827949643255796">ተመርጧል</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{ሁሉንም በ&amp;ማንነት የማያሳውቅ መስኮት ውስጥ ክፈት}=1{&amp;ማንነትን በማያሳውቅ መስኮት ውስጥ ክፈት}one{ሁሉንም (#) በ&amp;ማንነት የማያሳውቅ መስኮት ውስጥ ክፈት}other{ሁሉንም (#) በ&amp;ማንነት የማያሳውቅ መስኮት ውስጥ ክፈት}}</translation>
@@ -5116,6 +5180,7 @@
 <translation id="8059417245945632445">&amp;መሣሪያዎችን መርምር</translation>
 <translation id="8059456211585183827">ለማስቀመጥ ሊገኙ የሚችሉ ምንም አታሚዎች የሉም።</translation>
 <translation id="8063235345342641131">ነባሪ አረንጓዴ አምሳያ</translation>
+<translation id="8063535366119089408">ፋይል ይመልከቱ</translation>
 <translation id="8064671687106936412">ቁልፍ፦</translation>
 <translation id="8068253693380742035">በመለያ ለመግባት ይንኩ</translation>
 <translation id="8068809649322155577">ይህ በ<ph name="SITE_GROUP_NAME" />፣ በእሱ ስር ያሉ ማናቸውም ጣቢያዎች እና በተጫኑ መተግበሪያዎቹ የተከማቹ ሁሉንም ውሂብ እና ኩኪዎች ያጠፋል።</translation>
@@ -5180,6 +5245,7 @@
 <translation id="8152091997436726702">የአታሚ ምዝገባ እረፍት ወስዷል። አንድ አታሚ ለማስመዝገብ በአታሚው ላይ ምዝገባ ማረጋገጥ አለብዎት።</translation>
 <translation id="8154790740888707867">ምንም ፋይል የለም</translation>
 <translation id="815491593104042026">ውይ! ደህንነቱ አስተማማኝ ያልሆነ ዩአርኤል (<ph name="BLOCKED_URL" />) እንዲጠቀም ተደርጎ ስለተዋቀረ ማረጋገጥ አልተሳካም። እባክዎ አስተዳዳሪዎነ ያግኙ።</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{ምንም የተጠለፈ የይለፍ ቃል አልተገኘም}=1{{COUNT} የተጠለፈ የይለፍ ቃል}one{{COUNT} የተጠለፉ የይለፍ ቃላት}other{{COUNT} የተጠለፉ የይለፍ ቃላት}}</translation>
 <translation id="8157704005178149728">ክትትልን በማቀናበር ላይ</translation>
 <translation id="8158117992543756526">ይህ መሣሪያ በ<ph name="MONTH_AND_YEAR" /> ውስጥ ራስ-ሰር የሶፍትዌር እና የደህንነት ዝማኔዎችን ማግኘት አቁሟል። <ph name="LINK_BEGIN" />የበለጠ ለመረዳት<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">የእውቅና ማረጋገጫ ዕምነት ማዘጋጀት ላይ ስህተት</translation>
@@ -5233,6 +5299,7 @@
 <translation id="8226742006292257240">ከታች በዘፈቀደ የመነጨ ለኮምፒውተርዎ የተመደበ የቲ ፒ ኤም ይለፍ ቃል ነው፦</translation>
 <translation id="8227119283605456246">ፋይል አያይዝ</translation>
 <translation id="8230134520748321204">ለ<ph name="ORIGIN" /> የይለፍ ቃል ይቀመጥ?</translation>
+<translation id="8233762480744368479">የበይነመረብ ቅንብሮች</translation>
 <translation id="8234795456569844941">እባክዎ መሐንዲሶቻችን ይህን ችግር እንዲፈቱት ያግዟቸው። ልክ የመገለጫ ስህተት መልዕክቱን ከማግኘትዎ በፊት ምን እንደተከሰተ ይንገሩን፦</translation>
 <translation id="8236123533334037984">የእርስዎ ድርጅት ለደህንነት ማጽደቅ ይህን ሰቀላ እየቃኘው ነው።</translation>
 <translation id="8236917170563564587">በምትኩ ይህን ትር አጋራ</translation>
@@ -5411,6 +5478,7 @@
 <translation id="8472623782143987204">የሃርድዌር ደጀን ያለው</translation>
 <translation id="8473863474539038330">አድራሻዎች እና ተጨማሪ</translation>
 <translation id="8475313423285172237">በኮምፒውተርዎ ላይ ያለ ሌላ ፕሮግራም Chrome የሚሰራበት መንገድ ሊቀይር የሚችል አንድ ቅጥያ አክሏል።</translation>
+<translation id="8476659515398963495">ይህ የተለጠፈ ውሂብ የድርጅትዎን የደህንነት መመሪያዎች ይጥሳል። ለማንኛውም መቀጠል ይፈልጋሉ?</translation>
 <translation id="8477241577829954800">ተተክቷል</translation>
 <translation id="8477384620836102176">&amp;አጠቃላይ</translation>
 <translation id="8480082892550707549">ምንም እንኳን ከዚህ ቀደም ከዚህ ጣቢያ ፋይሎችን አውርደው የሚያውቁ ቢሆኑም ጣቢያው ለጊዜው ደህንነቱ አስተማማኝ ያልሆነ (የተጠለፈ) ሊሆን ይችላል። ይህን ፋይል በኋላ ላይ ለማውረድ ይሞክሩ።</translation>
@@ -5464,6 +5532,7 @@
 <translation id="8547013269961688403">የሙሉ ገጽ እይታ ማጉያን ያንቁ</translation>
 <translation id="85486688517848470">የላይኛው ረድፍ ቁልፎች ባህሪን ለመቀየር የፍለጋ ቁልፉን ይያዙ</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 ንጥል}one{# ንጥሎች}other{# ንጥሎች}}</translation>
+<translation id="8550165047974571882">ሁሉንም የ<ph name="ORIGIN" /> ትሮች እስኪዘጉ ድረስ <ph name="ORIGIN" /> በ<ph name="FOLDERNAME" /> ውስጥ ያሉ ሁሉንም ፋይሎች ማርትዕ ይችላል</translation>
 <translation id="8551388862522347954">ፍቃዶች</translation>
 <translation id="8553342806078037065">ሌሎች ሰዎችን አቀናብር</translation>
 <translation id="8554899698005018844">ምንም ቋንቋ</translation>
@@ -5522,6 +5591,7 @@
 <translation id="8637688295594795546">የስርዓት ዝማኔ አለ። ለማውረድ በመዘጋጀት ላይ…</translation>
 <translation id="8639047128869322042">ጎጂ ሶፍትዌር ካለ በመፈተሽ ላይ...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - ወደብ</translation>
+<translation id="8641606876632989680">እርስዎ በተጠለፈ የይለፍ ቅቃል ሲገቡ Chrome ያሳውቀዎታል</translation>
 <translation id="8642900771896232685">2 ሰከንዶች</translation>
 <translation id="8642947597466641025">ጽሑፍ አተልቅ</translation>
 <translation id="8644655801811752511">ይህን የደህንነት ቁልፍ ዳግም ማቀናበር አይቻልም። ካስገቡት በኋላ ወዲያውኑ ቁልፉን ዳግም ለማቀናበር ይሞክሩ።</translation>
@@ -5567,10 +5637,12 @@
 <translation id="8688579245973331962">ስምዎ አይታይ?</translation>
 <translation id="8688591111840995413">መጥፎ የይለፍ ቃል</translation>
 <translation id="8688672835843460752">ይገኛል</translation>
+<translation id="8691418731028620688">Wi-Fiን አገናኝ</translation>
 <translation id="8695825812785969222">&amp;ቦታ ክፈት…</translation>
 <translation id="869884720829132584">የመተግበሪያዎች ምናሌ</translation>
 <translation id="869891660844655955">የሚያበቀበት ጊዜ</translation>
 <translation id="8703346390800944767">ማስታወቂያ ዝለል</translation>
+<translation id="870341961648617780">የጥንቃቄ አሰሳ እና የላቁ የደህንነት ቅንብሮች</translation>
 <translation id="8705331520020532516">መለያ ቁጥር</translation>
 <translation id="8705580154597116082">Wi-Fi በስልክ በኩል ይገኛል</translation>
 <translation id="8705629851992224300">የእርስዎ የደህንነት ቁልፍ ሊነበብ አልተቻለም</translation>
@@ -5616,6 +5688,7 @@
 <translation id="874689135111202667">{0,plural, =1{አንድ ፋይል ወደዚህ ጣቢያ ይሰቀል?}one{# ፋይሎች ወደዚህ ጣቢያ ይሰቀሉ?}other{# ፋይሎች ወደዚህ ጣቢያ ይሰቀሉ?}}</translation>
 <translation id="8748384418490037181">Smart Lock አማራጮች</translation>
 <translation id="8749863574775030885">ካልታወቀ አቅራቢ የመጡ የዩኤስቢ መሣሪያዎችን ይደርሳል</translation>
+<translation id="8750133148106010815">Google Playን ለመጀመር <ph name="ORGANIZATION_NAME" /> የውሂብዎን ምትኬ እንዲያስቀምጡና ይህን Chromebook ወደ የፋብሪካ ቅንብሮቹ እንዲመልሱ ይፈልግብዎታል።</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ወደ ተከታታይ ወደብ ማገናኘት ይፈልጋል</translation>
 <translation id="8754200782896249056">&lt;p&gt;<ph name="PRODUCT_NAME" />ን በተደገፈ የዴስክቶፕ ምህዳር ላይ ሲሄድ የስርዓቱ ተኪ ቅንብሮች ናቸው ስራ ላይ የሚውሉት። ይሁንና ወይም ስርዓትዎ አይደገፍም ወይም የስርዓት ውቅርዎን ማስጀመር ላይ ችግር ነበር።&lt;/p&gt;
 
@@ -5670,6 +5743,7 @@
 <translation id="8809147117840417135">ፈካ ያለ መካከለኛ አረንጓዴ</translation>
 <translation id="8813698869395535039">ወደ <ph name="USERNAME" /> መግባት አልተቻለም</translation>
 <translation id="8813811964357448561">የወረቀት ሉክ</translation>
+<translation id="8813872945700551674">አንድ ወላጅ «<ph name="EXTENSION_NAME" />»ን እንዲያጸድቅ ያድርጉ</translation>
 <translation id="8813969267212093033">የሥርዓት ጽሑፍ በዚህ ቋንቋ ይታያል</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">እባክዎ ይጠብቁ፣ ማህደሩ እየተቃኘ ነው...</translation>
@@ -5723,6 +5797,7 @@
 <translation id="8872187374998143710">Plugin VMን ለመጠቀም እባክዎ የእርስዎን መሣሪያ ዳግም ያስጀምሩ።</translation>
 <translation id="8872777911145321141">አንድ ጣቢያ የእርስዎን የምናባዊ እውነታ መሣሪያዎች እና ውሂብ መጠቀም ሲፈልግ ይጠይቅ (የሚመከር)</translation>
 <translation id="8874184842967597500">አልተገናኘም</translation>
+<translation id="8875775314572167244">የኢተርኔት ቅንብሮች</translation>
 <translation id="8876307312329369159">ይህ ቅንብር በማሳያ ክፍለ-ጊዜ ላይ ሊቀየር አይችልም።</translation>
 <translation id="8877448029301136595">[ወላጅ ማውጫ]</translation>
 <translation id="8878384954777710821">Plugin VMን በማራገፍ ላይ...</translation>
@@ -5764,6 +5839,7 @@
 <translation id="892706138619340876">አንዳንድ ቅንብሮች ዳግም ተጀምረዋል</translation>
 <translation id="8930351635855238750">አዲስ የኩኪ ቅንብሮች ገጹ ዳግም ከተጫነ በኋላ ይተገበራሉ</translation>
 <translation id="8931394284949551895">አዲስ መሣሪያዎች</translation>
+<translation id="8931475688782629595">ምን እንደሚያሰምሩ ያቀናብሩ</translation>
 <translation id="8932894639908691771">የማብሪያ/ማጥፊያ መዳረሻ አማራጮች</translation>
 <translation id="8933960630081805351">በፈላጊ ውስጥ &amp;አሳይ</translation>
 <translation id="8934732568177537184">ቀጥል</translation>
@@ -5921,6 +5997,7 @@
 <translation id="9148126808321036104">እንደገና ይግቡ</translation>
 <translation id="9149866541089851383">አርትዕ…</translation>
 <translation id="9150045010208374699">ካሜራዎን ይጠቀማል</translation>
+<translation id="9150429437595727962">የWi-Fi ቅንብሮች</translation>
 <translation id="9153934054460603056">ማንነት እና የይለፍ ቃል ያስቀምጡ</translation>
 <translation id="9154194610265714752">የተዘመነ</translation>
 <translation id="91568222606626347">አቋራጭ ፍጠር...</translation>
@@ -5950,6 +6027,7 @@
 <translation id="9203398526606335860">&amp;መገለጫ መስራት ነቅቷል</translation>
 <translation id="9203904171912129171">መሣሪያ ይምረጡ</translation>
 <translation id="9203962528777363226">የዚህ መሣሪያ አስተዳዳሪ አዲስ ተጠቃሚዎች እንዳይታከሉ አሰናክሏል</translation>
+<translation id="9211177926627870898">ዝማኔ ያስፈልጋል</translation>
 <translation id="9214520840402538427">ውይ!  የጭነት ጊዜ መገለጫ ባህሪያት ጊዜ አልፎባቸዋል።  እባክዎ የድጋፍ ተወካይዎን ያግኙ።</translation>
 <translation id="9214695392875603905">ዘቢብ ኬክ</translation>
 <translation id="9215293857209265904">«<ph name="EXTENSION_NAME" />» ታክሏል</translation>
@@ -5981,6 +6059,7 @@
 <translation id="945522503751344254">ግብረ መልስ ላክ</translation>
 <translation id="947329552760389097">&amp;አባለ ነገሮችን መርምር</translation>
 <translation id="952992212772159698">አልገበረም</translation>
+<translation id="956500788634395331">እርስዎ ጎጂ ሊሆኑ ከሚችሉ ቅጥያዎች ተጠብቀዋል</translation>
 <translation id="957960681186851048">ይህ ጣቢያ በርካታ ፋይሎችን በራስ-ሰር ለማውረድ ሞክሯል</translation>
 <translation id="9580706199804957">ከGoogle አገልግሎቶች ጋር መገናኘት አልተቻለም</translation>
 <translation id="960719561871045870">የከዋኝ ኮድ</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index e502cc7..68fec38 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Həmçinin bu tətbiqlərdən data silinsin?</translation>
 <translation id="1045692658517323508">{0,plural, =1{1 dəqiqə ərzində güncəllənəcək}other{# dəqiqə ərzində güncəllənəcək}}</translation>
 <translation id="1046635659603195359">Artıq digər cihazda Google Assistent ilə Voice Match ayarlamısınız. Əvvəlki səsyazıları bu cihazda səs modeli yaratmaq üçün istifadə edilə bilər. Bu, bir dəqiqədən az vaxt ala bilər.</translation>
+<translation id="104710386808485638">Linux yenidən başladılsın?</translation>
 <translation id="1047431265488717055">Link Mətnini Kopyalayın</translation>
 <translation id="1048286738600630630">Ekran</translation>
 <translation id="1049743911850919806">Gizli Rejim</translation>
@@ -116,6 +117,7 @@
 <translation id="1161575384898972166">Klient sertifikatını eksport etmək üçün <ph name="TOKEN_NAME" /> üzərinə daxil olun.</translation>
 <translation id="1163931534039071049">&amp;Çərçivə mənbəsinə baxın</translation>
 <translation id="1164674268730883318"><ph name="DEVICE_TYPE" /> üçün Smart Kilid söndürülsün?</translation>
+<translation id="1164891049599601209">Aldadıcı saytda daxil edilib</translation>
 <translation id="1164899421101904659">PIN Kilid açma açarını daxil edin</translation>
 <translation id="1165039591588034296">Xəta</translation>
 <translation id="1166212789817575481">Sağ panelləri bağlayın</translation>
@@ -396,6 +398,7 @@
 <translation id="1545177026077493356">Avtomatik Kiosk rejimi</translation>
 <translation id="1545775234664667895">"<ph name="THEME_NAME" />" quraşdırıldı</translation>
 <translation id="1546280085599573572">Bu artırma əsas səhifə düyməsinə kliklədiyiniz zaman hansı səhifənin göstərildiyini dəyişdi</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> aşağıdakı imkanlara malik <ph name="EXTENSION_TYPE" /> quraşdırmaq istəyir:</translation>
 <translation id="1549275686094429035">ARC Aktivdir</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> daxil olmaq istəyir. Fayllarınızı dəyişə və ya silə bilər.</translation>
 <translation id="1553538517812678578">Limitsiz</translation>
@@ -492,6 +495,7 @@
 <translation id="1679806121152819234">Plugin VM</translation>
 <translation id="1679810534535368772">Çıxmaq istədiyinizə əminsiniz?</translation>
 <translation id="167983332380191032">İdarəetmə xidməti HTTP xətası göndərdi.</translation>
+<translation id="1680841347983561661">Bir qədər sonra Google Play'i yenidən işə salmağa cəhd edin.</translation>
 <translation id="1680849702532889074">Linux tətbiqi quraşdırılan zaman xəta baş verdi.</translation>
 <translation id="16815041330799488">Saytlara buferə kopyalanan mətn və şəkilləri görmək üçün icazə verməyin</translation>
 <translation id="1682548588986054654">Yeni Anonim Pəncərə</translation>
@@ -745,6 +749,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> qəzaya uğradı. Artırmanı yenidən yükləmək üçün bu topa klikləyin.</translation>
 <translation id="2025891858974379949">Təhlükəli məzmun</translation>
 <translation id="202918510990975568">Təhlükəsizliyi və girişi konfiqurasiya etmək üçün parolunuzu daxil edin</translation>
+<translation id="2030672406208960151">Bərpa Terminalını açın</translation>
 <translation id="2034346955588403444">Digər WiFi şəbəkəsi əlavə edin</translation>
 <translation id="203574396658008164">Kilid ekranından qeyd götürməni aktiv edin</translation>
 <translation id="2037445849770872822">Bu Google Hesabında nəzarət ayarlanıb. Daha çox valideyn nəzarəti ayarlamaq üçün "Davam edin" seçiminə klikləyin.
@@ -897,6 +902,7 @@
 <translation id="2220572644011485463">PIN və ya parol</translation>
 <translation id="2224444042887712269">Bu ayarlar <ph name="OWNER_EMAIL" /> hesabına məxsusdur.</translation>
 <translation id="2224551243087462610">Qovluq adına düzəliş edin</translation>
+<translation id="2225864335125757863">Hesabınızın təhlükəsizliyini təmin etmək üçün dərhal bu parolları dəyişin:</translation>
 <translation id="2226449515541314767">Bu saytda MDI cihazlarının tam nəzarəti bloklandı.</translation>
 <translation id="222704500187107962">Cari Anonim sessiyadan çıxdıqdan sonra bu istisna avtomatik silinəcək</translation>
 <translation id="2227179592712503583">Təklifi silin</translation>
@@ -1017,6 +1023,7 @@
 <translation id="2387052489799050037">Əsas səhifəyə keçin</translation>
 <translation id="2387458720915042159">Proksi bağlantı növü</translation>
 <translation id="2391419135980381625">Standart şrift</translation>
+<translation id="2392163307141705938">Valideyniniz tərəfindən <ph name="IDS_SHORT_PRODUCT_NAME" /> üçün təyin edilən limitə çatdınız.</translation>
 <translation id="2392369802118427583">Aktivləşdirin</translation>
 <translation id="2394566832561516196">Ayarlar növbəti yükləmədə silinəcək.</translation>
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> cihazınız müəssisə idarəetməsi üçün uğurla qeydiyyatdan keçdi, amma aktiv və məkan məlumatlarını göndərmək uğursuz oldu. Bu məlumatı cihaz üçün Admin konsolunuzdan əl ilə daxil edin.</translation>
@@ -1081,6 +1088,7 @@
 <translation id="247949520305900375">Audionu paylaşın</translation>
 <translation id="2480868415629598489">Kopyaladığınız və yerləşdirdiyiniz datanı dəyişdirin</translation>
 <translation id="2482878487686419369">Bildirişlər</translation>
+<translation id="2483610039979585156">Bütün <ph name="ORIGIN" /> tabellərini bağlayanadək <ph name="ORIGIN" /> <ph name="FILENAME" /> faylını redaktə edə biləcək</translation>
 <translation id="2484959914739448251">Axtarış tarixçəsini bütün sinxronizasiya olunmuş cihazlardan və Google Hesabınızdan silmək üçün <ph name="BEGIN_LINK" />parol ifadəsini daxil edin<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Parol bu cihazda saxlanılıb</translation>
 <translation id="2485422356828889247">Sistemdən silin</translation>
@@ -1294,6 +1302,7 @@
 <translation id="274290345632688601">Linux tətbiq və faylları bərpa edilir</translation>
 <translation id="2743387203779672305">Buferə kopyalayın</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> fasilədədir</translation>
 <translation id="2749756011735116528"><ph name="PRODUCT_NAME" /> məhsuluna daxil olun</translation>
 <translation id="2749881179542288782">Qrammatikanı Orfoqrafiya ilə yoxlayın</translation>
 <translation id="2751739896257479635">EAP Faza 2 doğrulaması</translation>
@@ -1302,6 +1311,7 @@
 <translation id="275662540872599901">ekran qapalıdır</translation>
 <translation id="2762441749940182211">Kamera blok edildi</translation>
 <translation id="2765217105034171413">Kiçik</translation>
+<translation id="2766161002040448006">Valideyndən soruşun</translation>
 <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" /> olaraq hesaba girdi.</translation>
 <translation id="2770465223704140727">Siyahıdan silin</translation>
 <translation id="2770690685823456775">Parolları digər qovluğa eksport edin</translation>
@@ -1553,6 +1563,7 @@
 <translation id="3115580024857770654">Hamısını yığcamlaşdırın</translation>
 <translation id="3117362587799608430">Dok tam olaraq uyğun deyil</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> Yardım</translation>
+<translation id="3118654181216384296">Bir qədər sonra Linux'u yenidən işə salmağa cəhd edin.</translation>
 <translation id="3120430004221004537">Verilmiş əməliyyat üçün qeyri-kafi kodlaşdırma: " <ph name="DEVICE_NAME" /> ".</translation>
 <translation id="3121793941267913344">Bu <ph name="IDS_SHORT_PRODUCT_NAME" /> cihazını sıfırlayın</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1562,6 +1573,7 @@
 <translation id="3127156390846601284">Bu, saytların bütün göstərdikləri üçün cihazda saxlanılmış datanı siləcək. Davam etmək istəyirsiniz?</translation>
 <translation id="3127860049873093642">Batareya və performans problemlərindən yayınmaq üçün uyğun Dell və ya C növlü USB adapterindən istifadə edin.</translation>
 <translation id="3129173833825111527">Sol margin</translation>
+<translation id="3129215702932019810">Proqramı işə salan zaman xəta baş verdi</translation>
 <translation id="3130528281680948470">Cihazınız sıfırlanacaq və bütün istifadəçi hesabları və lokal data silinəcək. Bu geri qaytarıla bilməz.</translation>
 <translation id="313205617302240621">Şifrəni unutdunuz?</translation>
 <translation id="3132996321662585180">Gündəlik yeniləyin</translation>
@@ -1777,6 +1789,7 @@
 <translation id="3441653493275994384">Ekran</translation>
 <translation id="3445925074670675829">USB-C cihazı</translation>
 <translation id="344630545793878684">Datanızı çoxsaylı vebsaytda oxuyun</translation>
+<translation id="3448086340637592206">Google Chrome və Chrome ƏS üzrə Əlavə Şərtlər</translation>
 <translation id="3448492834076427715">Hesabı yeniləyin</translation>
 <translation id="3449839693241009168"><ph name="EXTENSION_NAME" /> artırmasına əmr göndərmək üçün <ph name="SEARCH_KEY" /> düyməsini basın</translation>
 <translation id="3450157232394774192">İnaktiv Durum Məşğuliyyət Faizi</translation>
@@ -2124,6 +2137,7 @@
 <translation id="3873423927483480833">PIN-ləri göstərin</translation>
 <translation id="3873915545594852654">ARC++ ilə bağlı problem yarandı.</translation>
 <translation id="3879748587602334249">Endirmə meneceri</translation>
+<translation id="3881321138433527084">Təhlükəsiz Baxış qeyri-aktivdir. Vebdə təhlükəsizliyinizi təmin etmək üçün onu aktiv edin.</translation>
 <translation id="3882165008614329320">Kamera və ya fayldan mövcud video</translation>
 <translation id="3886446263141354045">Bu sayta giriş sorğunuz <ph name="NAME" /> ünvanına göndərilib</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ilə qeyd götürmə</translation>
@@ -2463,6 +2477,7 @@
 <translation id="4384652540891215547">Artırmanı aktivləşdirin</translation>
 <translation id="438503109373656455">Saratoga</translation>
 <translation id="4387004326333427325">Doğrulama təsdiqi uzaqdan ləğv edildi</translation>
+<translation id="4387890294700445764">Oğurlanmış parol</translation>
 <translation id="4389091756366370506">İstifadəçi <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Anonim rejim}other{# açıq anonim pəncərə}}</translation>
 <translation id="439266289085815679">Bluetooth konfiqurasiyası <ph name="USER_EMAIL" /> tərəfindən idarə olunur.</translation>
@@ -2494,6 +2509,7 @@
 <translation id="4429030830601238961">Bu datanın əlavə edilməsi təşkilatınızın təhlükəsizlik siyasətlərini pozduğu üçün mümkün deyil.</translation>
 <translation id="4430019312045809116">Həcm</translation>
 <translation id="4430369329743628066">Əlfəcin əlavə olundu</translation>
+<translation id="4432621511648257259">Parol yanlışdır</translation>
 <translation id="4434045419905280838">Popap və yönləndirmələr</translation>
 <translation id="443454694385851356">Köhnə (təhlükəli)</translation>
 <translation id="443475966875174318">Uyğun olmayan tətbiqləri güncəlləyin və ya silin</translation>
@@ -2743,6 +2759,7 @@
 <translation id="4808667324955055115">Popaplar blok edildi:</translation>
 <translation id="480990236307250886">Əsas səhifəni açın</translation>
 <translation id="4811503964269049987">Seçilmiş tabelin qrupa əlavə edilməsi</translation>
+<translation id="4811818760963189951">Tarixçə sinxronlaşdırmasını qeyri-aktiv etdiyiniz üçün deaktiv edilib</translation>
 <translation id="4813136279048157860">Şəkillərim</translation>
 <translation id="4813512666221746211">Şəbəkə xətası</translation>
 <translation id="4814378367953456825">Bu barmaq izi üçün ad daxil edin</translation>
@@ -2772,6 +2789,7 @@
 <translation id="4850669014075537160">Sürüşmə</translation>
 <translation id="4850886885716139402">Görünüş</translation>
 <translation id="4853020600495124913">Yeni pəncərədə açın</translation>
+<translation id="4854317507773910281">Təsdiq üçün valideyn hesabı seçin</translation>
 <translation id="485480310608090163">Daha çox ayar və icazələr</translation>
 <translation id="4856478137399998590">Mobil datanız aktivləşdi və istifadəyə hazırdır</translation>
 <translation id="4856855265648545577">Planşet rejimində Rəfdə Başladıcı, Geri, İcmal düymələrini göstərin. ChromeVox (səsli rəy) və ya Dəyişdirici Girişi aktiv olduğu zaman aktiv olur.</translation>
@@ -2908,10 +2926,12 @@
 <translation id="5040823038948176460">Əlavə məzmun ayarları</translation>
 <translation id="5042282098504489593"><ph name="USB_DEVICE_NAME" /> cihazını Linux'a qoşmaq üçün Ayarları açın</translation>
 <translation id="5043913660911154449">Və ya printer PPD faylını təyin edin <ph name="LINK_BEGIN" />Ətraflı məlumat<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Sinxronlaşdırma datanızı parol ifadəsi ilə şifrlədiyiniz üçün deaktiv edilib</translation>
 <translation id="5045550434625856497">Yanlış parol</translation>
 <translation id="504561833207953641">Mövcud brauzer sessiyasında açılır.</translation>
 <translation id="5047421709274785093">Saytların hərəkət və işıq senorlarından istifadə etməsini blok edin</translation>
 <translation id="5050042263972837708">Qrup adı</translation>
+<translation id="5051073330196664891">Google universal Xidmət Şərtləri (uToS)</translation>
 <translation id="5051836348807686060">Seçdiyiniz dillərdə orfoqrafik yoxlanış dəstəklənmir</translation>
 <translation id="5052499409147950210">Sayta düzəliş edin</translation>
 <translation id="5053604404986157245">Rasgələ yaradılmış Güvənli Platforma Modulu parolu əlçatmazdır. Powerwash'dan sonra bunun olması normaldır.</translation>
@@ -2949,6 +2969,7 @@
 <translation id="5097002363526479830">'<ph name="NAME" />': <ph name="DETAILS" /> şəbəkəsinə qoşulmaq uğursuz oldu</translation>
 <translation id="5101042277149003567">Bütün əlfəcinləri açın</translation>
 <translation id="5101839224773798795">Kursor dayandıqda avtomatik klikləyin</translation>
+<translation id="5107443654503185812">Təhlükəsiz Baxış artırma tərəfindən deaktiv edilib</translation>
 <translation id="5108967062857032718">Ayarlar - Android tətbiqlərini silin</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">Gizli Rejimdən Çıxın</translation>
@@ -3035,6 +3056,7 @@
 <translation id="523505283826916779">Əlçatımlılıq ayarları</translation>
 <translation id="5235750401727657667">Yeni tab açarkən baxdığınız səhifəni dəyişin</translation>
 <translation id="5238278114306905396">"<ph name="EXTENSION_NAME" />" tətbiqi avtomatik silinib.</translation>
+<translation id="5239730228370806996">Sürükləyib buraxılan bu data təşkilatınızın təhlükəsizlik siyasətlərini pozur. İstənilən halda davam etmək istəyirsiniz?</translation>
 <translation id="5241128660650683457">Daxil olduğunuz veb saytlarda bütün datanızı oxuyun</translation>
 <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" aktiv edilsin?</translation>
 <translation id="5243522832766285132">Qısa zaman ərzində yenidən cəhd edin.</translation>
@@ -3322,6 +3344,7 @@
 <translation id="5618075537869101857">Lənətə gəlsin! Köşk tətbiqi işə salına bilmir.</translation>
 <translation id="5618333180342767515">(Bu bir neçə dəqiqə çəkə bilər)</translation>
 <translation id="56197088284879152">Bağlantı uzaqdan idarə olunan bu cihazda tıxanmaya səbəb oldu: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">Yadda saxlanmış parol yoxdur</translation>
 <translation id="5620549857835247159">Planşet rejimində Rəfdə Başladıcı, Geri, İcmal düymələrini göstərin.</translation>
 <translation id="5620568081365989559">DevTools <ph name="FOLDER_PATH" /> qovluğuna giriş istəyir. Heç bir həssas məlumat yaymadığınıza əmin olun.</translation>
 <translation id="5620612546311710611">İstifadə statistikası</translation>
@@ -3414,6 +3437,7 @@
 <translation id="5747785204778348146">Developer - qeyri-stabil</translation>
 <translation id="5747809636523347288"><ph name="URL" /> yerləşdirib daxil olun</translation>
 <translation id="5750324801516359607">Uzaq</translation>
+<translation id="5751887393582880060">Bu yükləmə təşkilatınızın təhlükəsizlik siyasətlərini pozur. İstənilən halda davam etmək istəyirsiniz?</translation>
 <translation id="5756163054456765343">Yardım mərkəzi</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> vasitəsilə çapa göndərdiyiniz sənədlər <ph name="APP_NAME" /> tərəfindən oxuna bilər.</translation>
 <translation id="5763751966069581670">USB cihazı tapılmadı</translation>
@@ -3621,6 +3645,7 @@
 <translation id="6040852767465482106">Anonim Kimlik</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google'un məkan xidməti cihazın məkanını tapmaq üçün Wi-Fi və mobil şəbəkələr və sensorlardan istifadə edir.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Cihazda əsas Məkan ayarını deaktiv etməklə Məkanı deaktiv edə bilərsiniz. Həmçinin, məkanın Wi-Fi və mobil şəbəkələr və sensorlardan istifadəsini məkan ayarlarından deaktiv edə bilərsiniz.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409">Bütün <ph name="ORIGIN" /> tabellərini bağlayanadək <ph name="ORIGIN" /> <ph name="FOLDERNAME" /> qovluğundakı fayllara baxa biləcək.</translation>
 <translation id="6041155700700864984">"Tam ekran" rejimindən çıxın</translation>
 <translation id="604124094241169006">Avtomatik</translation>
 <translation id="6042308850641462728">Daha çox</translation>
@@ -3682,6 +3707,7 @@
 <translation id="6104311680260824317">Cihaz domenə qoşula bilmədi. Server Kerberos şifrələmə mövünü dəstəkləmir. Şifrləmə ayarları üçün "Daha çox seçimi" sınayın.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> bu cihaz üçün dərhal güncəlləmə tələb edir</translation>
 <translation id="6106186653986077033">Plugin VM lisenziya tələb edir</translation>
+<translation id="6107047744202598802">Veb saytlara girişinizi yadda saxlamaq və vebdə sizi izləmək imkanı verir</translation>
 <translation id="6112294629795967147">Ölçüsünü dəyişmək üçün klikləyin</translation>
 <translation id="6112727384379533756">Bilet əlavə edin</translation>
 <translation id="6112931163620622315">Telefonunuzu yoxlayın</translation>
@@ -3760,6 +3786,7 @@
 <translation id="622537739776246443">Profil silinəcək</translation>
 <translation id="6225475702458870625">Data bağlantısı <ph name="PHONE_NAME" /> telefonunda əlçatandır</translation>
 <translation id="6226777517901268232">Xüsusi açar faylı (istəyə bağlı)</translation>
+<translation id="6227280783235722609">artırma</translation>
 <translation id="6228691855869374890">Bu daytın MIDI cihazlar üzərində tam nəzarəti var.</translation>
 <translation id="6228720835160974792">Bu şəkil üçün QR kodu yaradın</translation>
 <translation id="6229890768313448549">Google Play Xidmət Şərtləri yüklənə bilmir. Yenidən cəhd edin.</translation>
@@ -3811,6 +3838,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> adətən endirilmir və təhlükəli ola bilər.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Şəbəkənizdəki yeni printer}other{Şəbəkənizdəki yeni printerlər}}</translation>
 <translation id="6286708577777130801">Yadda saxlanmış parolun detalları</translation>
+<translation id="6291163159361301370">Linux'u işə salmaq üçün <ph name="ORGANIZATION_NAME" /> sizdən datanızın ehtiyat nüsxəsini çıxarmağınızı və bu Chromebook'u zavod ayarlarına sıfırlamağınızı tələb edir.</translation>
 <translation id="6291949900244949761">Sayt USB cihazlarına daxil olmaq istədiyi zaman icazə tələb edin (məsləhətlidir)</translation>
 <translation id="6291953229176937411">&amp;Axtarıcıda göstərin</translation>
 <translation id="6295158916970320988">Bütün saytlar</translation>
@@ -4007,6 +4035,7 @@
 <translation id="6561726789132298588">girin</translation>
 <translation id="656293578423618167">Fayl yolu və ya adı çox uzundur. Qısa ad ilə və ya başqa yerə saxlayın.</translation>
 <translation id="6563469144985748109">Meneceriniz hələ ki təsdiq etməyib</translation>
+<translation id="6565955132287672866">Cihazınız lazımi qaydada söndürülməyib. Linux (Beta) istifadəsi üçün o, yenidən başladılmalıdır.</translation>
 <translation id="6567688344210276845">Səhifə əməliyyatı üçün '<ph name="ICON" />' ikonası yüklənə bilmədi.</translation>
 <translation id="6569934958368283244">Digər şəxslər</translation>
 <translation id="657402800789773160">Bu Səhifəni Yenidən yükləyin</translation>
@@ -4504,6 +4533,7 @@
 <translation id="7258225044283673131">Bu tətbiq cavab vermir. Tətbiqi bağlamaq üçün "Məcbur bağlayın" seçin.</translation>
 <translation id="7258697411818564379">PIN əlavə edildi</translation>
 <translation id="7262004276116528033">Bu giriş xidməti <ph name="SAML_DOMAIN" /> tərəfindən dəstəklənir</translation>
+<translation id="7266898409676782635"><ph name="DEVICE_TYPE" /> məsləhətləri, təklifləri və güncəlləmələrini əldə edin və rəy paylaşın. İstədiyiniz vaxt abunəlikdən çıxın.</translation>
 <translation id="7268127947535186412">Bu ayarı cihazın sahibi idarə edir.</translation>
 <translation id="7270858098575133036">Sayt, MIDI cihazlarına daxil olmaq üçün sistem eksklüziv mesajlarından istifadə etmək istədikdə icazə alsın</translation>
 <translation id="7272674038937250585">Heç bir təsvir verilməyib</translation>
@@ -4577,6 +4607,7 @@
 <translation id="7364796246159120393">Fayl seçin</translation>
 <translation id="7366415735885268578">Sayt əlavə edin</translation>
 <translation id="7366909168761621528">Axtarış Datası</translation>
+<translation id="7367714965999718019">QR Kodu Generatoru</translation>
 <translation id="736877393389250337"><ph name="URL" /> <ph name="ALTERNATIVE_BROWSER_NAME" /> tətbiqində açılmadı. Sistem administratoru ilə əlaqə saxlayın.</translation>
 <translation id="7370592524170198497">Ethernet EAP:</translation>
 <translation id="7371006317849674875">Başlama vaxtı</translation>
@@ -4834,8 +4865,10 @@
 <translation id="7737238973539693982">Linux'u (Beta) silin</translation>
 <translation id="7740996059027112821">Standart</translation>
 <translation id="7744047395460924128">Çap tarixçənizi görün</translation>
+<translation id="7744192722284567281">Verilənlərin təhlükəsizliyinin pozulması halı aşkarlanıb</translation>
 <translation id="7746457520633464754">Təhlükəli tətbiq və saytları aşkarlamaq üçün Chrome daxil olduğunuz səhifələrin linkləri, məhdud sistem məlumatı və bəzi səhifə kontentini Google'a göndərir</translation>
 <translation id="7750228210027921155">Şəkil içində şəkil</translation>
+<translation id="7751229152614300329">Təhlükəsiz Baxış yenilənib və sizi zərərli saytlardan və endirmələrdən qoruyur</translation>
 <translation id="7751260505918304024">Hamısını göstərin</translation>
 <translation id="7754704193130578113">Endirmədən öncə faylın saxlanacağı yeri soruşun</translation>
 <translation id="7755287808199759310">Valideyniniz kilidi aça bilər</translation>
@@ -4983,6 +5016,7 @@
 <translation id="7910768399700579500">&amp;Yeni qovluq</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Parolunuz serverdə dəyişdirilib. Hesabdan çıxın və təkrar daxil olun.</translation>
+<translation id="7914583336730284547">Sürükləyib buraxılan bu fayllar təşkilatınızın təhlükəsizlik siyasətlərini pozur. İstənilən halda davam etmək istəyirsiniz?</translation>
 <translation id="7915457674565721553">Valideyn nəzarətləri quraşdırmaq üçün internetə qoşulun</translation>
 <translation id="7915471803647590281">Rəy göndərmədən öncə nə baş verdiyini bizə deməyiniz xahiş olunur.</translation>
 <translation id="7918257978052780342">Qeydiyyatdan keçin</translation>
@@ -5079,6 +5113,7 @@
 <translation id="8028803902702117856"><ph name="SIZE" />, <ph name="FILE_NAME" /> endirilir</translation>
 <translation id="8028993641010258682">Ölçü</translation>
 <translation id="8030656706657716245">Printer Əlavə Edin</translation>
+<translation id="8030852056903932865">Təsdiq edin</translation>
 <translation id="8032244173881942855">Tabeli yayımlamaq mümkün olmadı.</translation>
 <translation id="8033827949643255796">seçilib</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Hamısını &amp;gizli pəncərədə açın}=1{&amp;Gizli pəncərədə açın}other{Hamısını (#) &amp;gizli pəncərədə açın}}</translation>
@@ -5398,6 +5433,7 @@
 <translation id="8472623782143987204">avadanlıqla yedəklənmiş</translation>
 <translation id="8473863474539038330">Ünvanlar və s.</translation>
 <translation id="8475313423285172237">Kompüterinizdə başqa bir proqram Chrome'un işləməsini dəyişən artırma əlavə etdi.</translation>
+<translation id="8476659515398963495">Əlavə edilən bu data təşkilatınızın təhlükəsizlik siyasətlərini pozur. İstənilən halda davam etmək istəyirsiniz?</translation>
 <translation id="8477241577829954800">Dəyişdirildi</translation>
 <translation id="8477384620836102176">&amp;Ümumi</translation>
 <translation id="8480082892550707549">Hətta faylları bu syatdan daha əvvəllər yükləmisinizsə də, sayt müvəqqəti olaraq güvənsiz ola bilər (hücum edilib). Bu faylı daha sonra endirməyə çalışın.</translation>
@@ -5451,6 +5487,7 @@
 <translation id="8547013269961688403">Tam ekran böyüdücüsünü aktiv edin</translation>
 <translation id="85486688517848470">Yuxarı cərgə düymələrinin funksiyasını dəyişmək üçün Axtarış düyməsini basılı saxlayın</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 element}other{# element}}</translation>
+<translation id="8550165047974571882">Bütün <ph name="ORIGIN" /> tabellərini bağlayanadək <ph name="ORIGIN" /> <ph name="FOLDERNAME" /> qovluğundakı faylları redaktə edə biləcək</translation>
 <translation id="8551388862522347954">Lisenziyalar</translation>
 <translation id="8553342806078037065">Digər insanları idarə edin</translation>
 <translation id="8554899698005018844">Dil yoxdur</translation>
@@ -5509,6 +5546,7 @@
 <translation id="8637688295594795546">Sistem güncəlləşməsi əlçatandır. İndi endiriləcək...</translation>
 <translation id="8639047128869322042">Zərərli proqramlar yoxlanılır...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Port</translation>
+<translation id="8641606876632989680">Oğurlanmış parol ilə daxil olduqda Chrome sizə bildiriş göndrəcək</translation>
 <translation id="8642900771896232685">2 saniyə</translation>
 <translation id="8642947597466641025">Mətni böyüdün</translation>
 <translation id="8644655801811752511">Bu güvənlik açarını sıfırlamaq mümkün deyil. Açarı daxil etdikdən dərhal sonra sıfırlayın.</translation>
@@ -5558,6 +5596,7 @@
 <translation id="869884720829132584">Tətbiqlər menyusu</translation>
 <translation id="869891660844655955">Bitmə tarixi</translation>
 <translation id="8703346390800944767">Reklamı Keçin</translation>
+<translation id="870341961648617780">Təhlükəsiz Baxış və təkmil təhlükəsizlik parametrləri</translation>
 <translation id="8705331520020532516">Seriya Nömrəsi</translation>
 <translation id="8705580154597116082">Wi-Fi telefon üzərindən əlçatandır</translation>
 <translation id="8705629851992224300">Təhlükəsizlik açarınız oxunmadı</translation>
@@ -5603,6 +5642,7 @@
 <translation id="874689135111202667">{0,plural, =1{Bir fayl sayta yüklənsin?}other{# fayl sayta yüklənsin?}}</translation>
 <translation id="8748384418490037181">Smart Lock seçimləri</translation>
 <translation id="8749863574775030885">Naməlum vendordan USB cihazlara giriş</translation>
+<translation id="8750133148106010815">Google Play'i işə salmaq üçün <ph name="ORGANIZATION_NAME" /> sizdən datanızın ehtiyat nüsxəsini çıxarmağınızı və bu Chromebook'u zavod ayarlarına sıfırlamağınızı tələb edir.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> silsilə porta qoşulmaq istəyir</translation>
 <translation id="8754200782896249056">&lt;p&gt;<ph name="PRODUCT_NAME" /> məhsulunu dəstəklənən masaüstündə işlədəndə, sistemin proksi məlumatları istifadə olunacaq. Belə ki, sisteminiz dəstəklənmir və ya sistem konfiqurasiyanızı başladarkən problem oldub.&lt;/p&gt;            &lt;p&gt;Amma əmr sətri vasitəsilə konfiqurasiya edə bilərsiniz. bayraqlar və fəqrlər haqqında əlavə məlumat üçün &lt;code&gt;man <ph name="PRODUCT_BINARY_NAME" />&lt;/code&gt; baxın.&lt;/p&gt;</translation>
 <translation id="8755376271068075440">Geniş</translation>
@@ -5655,6 +5695,7 @@
 <translation id="8809147117840417135">Açıq-firuzəyi</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> istifadəçi adına daxil ola bilməz</translation>
 <translation id="8813811964357448561">kağız vərəq</translation>
+<translation id="8813872945700551674">"<ph name="EXTENSION_NAME" />" təsdiq etməsi üçün valideyninizə müraciət edin</translation>
 <translation id="8813969267212093033">Sistem mətni bu dildə göstərilir</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Arxiv skan edilir...</translation>
@@ -5935,6 +5976,7 @@
 <translation id="9203398526606335860">&amp;Profilləşdirmə aktivdir</translation>
 <translation id="9203904171912129171">Cihaz seçin</translation>
 <translation id="9203962528777363226">Bu cihazın administratoru yeni istifadəçilərin əlavə edilməsini qadağan edib</translation>
+<translation id="9211177926627870898">Güncəlləmə tələb olunur</translation>
 <translation id="9214520840402538427">Heheey! Quraşdırma vaxtı atributlarının işəsalınma vaxtı keçdi. Dəstək təmsilçinizlə əlaqə saxlayın.</translation>
 <translation id="9214695392875603905">Kapkeyk</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" əlavə edildi</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index 02eaf3b..ff01101 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Таксама выдаліць даныя з гэтых праграм?</translation>
 <translation id="1045692658517323508">{0,plural, =1{Абнавіце прыладу на працягу 1 хвіліны}one{Абнавіце прыладу на працягу # хвіліны}few{Абнавіце прыладу на працягу # хвілін}many{Абнавіце прыладу на працягу # хвілін}other{Абнавіце прыладу на працягу # хвіліны}}</translation>
 <translation id="1046635659603195359">Здаецца, вы ўжо наладзілі функцыю Voice Match у Памочніку Google на іншай прыладзе. Зробленыя запісы можна выкарыстоўваць для стварэння галасавой мадэлі на гэтай прыладзе. Гэта зойме менш за хвіліну.</translation>
+<translation id="104710386808485638">Перазапусціць Linux?</translation>
 <translation id="1047431265488717055">Скапіраваць &amp;тэкст спасылкі</translation>
 <translation id="1048286738600630630">Дысплэі</translation>
 <translation id="1049743911850919806">Інкогніта</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Увайдзіце ў <ph name="TOKEN_NAME" />, каб экспартаваць кліенцкі сертыфікат.</translation>
 <translation id="1163931534039071049">&amp;Прагляд крыніцы фрэйма</translation>
 <translation id="1164674268730883318">Выключыць Smart Lock для прылады <ph name="DEVICE_TYPE" />?</translation>
+<translation id="1164891049599601209">Уведзены на сайце, вядомым падманнымі паводзінамі</translation>
 <translation id="1164899421101904659">Увядзіце PUK-код</translation>
 <translation id="1165039591588034296">Памылка</translation>
 <translation id="1166212789817575481">Закрыць укладкі справа</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">Аўтаматычны рэжым кіёска</translation>
 <translation id="1545775234664667895">Усталявана тэма "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">Пашырэнне змяніла старонку, якая адкрываецца пры націсканні кнопкі галоўнай старонкі.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> хоча ўсталяваць пашырэнне <ph name="EXTENSION_TYPE" />, якое зможа:</translation>
 <translation id="1549275686094429035">Тэхналогія ARC уключана</translation>
 <translation id="1549788673239553762">Праграма "<ph name="APP_NAME" />" запытвае доступ да <ph name="VOLUME_NAME" />. Яна можа змяніць або выдаліць вашы файлы.</translation>
 <translation id="1553538517812678578">неабмежавана</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">Plugin VM</translation>
 <translation id="1679810534535368772">Сапраўды хочаце выйсці?</translation>
 <translation id="167983332380191032">Сэрвіс кіравання адправіў памылку HTTP.</translation>
+<translation id="1680841347983561661">Паспрабуйце перазапусціць Google Play праз некалькі секунд.</translation>
 <translation id="1680849702532889074">Адбылася памылка падчас усталявання Linux-праграмы.</translation>
 <translation id="16815041330799488">Не дазваляць сайтам праглядаць тэкст і відарысы, скапіраваныя ў буфер абмену</translation>
 <translation id="1682548588986054654">Новае акно ў рэжыме інкогніта</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559">Збой праграмы "<ph name="APP_NAME" />". Націсніце на гэта выплыўное папярэджанне, каб перазагрузіць пашырэнне.</translation>
 <translation id="2025891858974379949">Небяспечнае змесціва</translation>
 <translation id="202918510990975568">Каб наладзіць сістэму бяспекі і працэдуру ўваходу, увядзіце пароль</translation>
+<translation id="2030672406208960151">Адкрыць тэрмінал аднаўлення</translation>
 <translation id="2034346955588403444">Дадаць іншую сетку Wi-Fi</translation>
 <translation id="203574396658008164">Уключыць стварэнне нататак на экране блакіроўкі</translation>
 <translation id="2037445849770872822">Для гэтага Уліковага запісу Google наладжаны бацькоўскі кантроль. Каб наладзіць яго дадатковыя параметры, выберыце "Працягнуць".
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">PIN-код або пароль</translation>
 <translation id="2224444042887712269">Гэта налада належыць карыстальніку <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">Змена назвы папкі</translation>
+<translation id="2225864335125757863">Каб вашаму ўліковаму запісу нічога не пагражала, неадкладна змяніце наступныя паролі:</translation>
 <translation id="2226449515541314767">Для гэтага сайта заблакіравана магчымасць мець поўны кантроль над прыладамі MIDI.</translation>
 <translation id="222704500187107962">Гэта выключэнне будзе аўтаматычна выдалена пасля выхаду з бягучага сеанса інкогніта</translation>
 <translation id="2227179592712503583">Выдаліць прапанову</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">Пераход на галоўны экран</translation>
 <translation id="2387458720915042159">Тып падключэння проксі-сервера</translation>
 <translation id="2391419135980381625">Стандартны шрыфт</translation>
+<translation id="2392163307141705938">Вы выкарысталі ліміт часу, зададзены вашымі бацькамі для <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Уключыць</translation>
 <translation id="2394566832561516196">Налады будуць ачышчаны пры наступнай перазагрузцы.</translation>
 <translation id="2395616325548404795">Ваша прылада <ph name="DEVICE_TYPE" /> паспяхова зарэгістравана для карпаратыўнага кіравання, але не адправіла інфармацыю аб аб'екце ўласнасці і месцазнаходжанні. Увядзіце гэту інфармацыю пра прыладу ўручную на кансолі адміністратара.</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">Абагульваць аўдыя</translation>
 <translation id="2480868415629598489">Змена даных, якія вы капіруеце і ўстаўляеце</translation>
 <translation id="2482878487686419369">Апавяшчэнні</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> зможа змяняць файл <ph name="FILENAME" />, пакуль вы не закрыеце ўсе ўкладкі сайта <ph name="ORIGIN" /></translation>
 <translation id="2484959914739448251">Каб ачысціць даныя прагляду з усіх сінхранізаваных прылад і Уліковага запісу Google, <ph name="BEGIN_LINK" />увядзіце фразу-пароль<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Пароль захаваны на гэтай прыладзе</translation>
 <translation id="2485422356828889247">Выдаліць</translation>
@@ -1299,6 +1307,7 @@
 <translation id="274290345632688601">Аднаўленне файлаў і праграм Linux</translation>
 <translation id="2743387203779672305">Скапіраваць у буфер абмену</translation>
 <translation id="2745080116229976798">Кваліфікаваная падпарадкаванасць Microsoft</translation>
+<translation id="2748061034695037846">Работа сайта <ph name="DOMAIN" /> прыпынена</translation>
 <translation id="2749756011735116528">Увайсці ва ўліковы запіс <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">Праверыць граматыку і правапіс</translation>
 <translation id="2751739896257479635">Фаза 2 аўтэнтыфікацыі EAP</translation>
@@ -1307,6 +1316,7 @@
 <translation id="275662540872599901">экран выключаны</translation>
 <translation id="2762441749940182211">Камера заблакіравана</translation>
 <translation id="2765217105034171413">Малы</translation>
+<translation id="2766161002040448006">Папрасіць дазвол у бацькоў</translation>
 <translation id="276969039800130567">Вы ўвайшлі як <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="2770465223704140727">Выдаліць са спіса</translation>
 <translation id="2770690685823456775">Экспартуйце свае паролі ў іншую папку</translation>
@@ -1557,6 +1567,7 @@
 <translation id="3115580024857770654">Згарнуць усе</translation>
 <translation id="3117362587799608430">Док-станцыя не поўнасцю сумяшчальная з прыладай</translation>
 <translation id="3118319026408854581">Даведка <ph name="PRODUCT_NAME" /></translation>
+<translation id="3118654181216384296">Перазапусціце Linux праз некалькі секунд.</translation>
 <translation id="3120430004221004537">Недастатковае шыфраванне аперацыі на прыладзе "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">Скінуць прыладу <ph name="IDS_SHORT_PRODUCT_NAME" /></translation>
 <translation id="3122464029669770682">Працэсар</translation>
@@ -1566,6 +1577,7 @@
 <translation id="3127156390846601284">Гэта прывядзе да выдалення ўсіх захаваных на гэтай прыладзе даных пералічаных тут сайтаў. Працягнуць?</translation>
 <translation id="3127860049873093642">Каб пазбегнуць праблем падчас зарадкі і працы, выкарыстоўвайце сумяшчальны адаптар сілкавання Dell або USB Type-C.</translation>
 <translation id="3129173833825111527">Левае поле</translation>
+<translation id="3129215702932019810">Памылка пры запуску праграмы</translation>
 <translation id="3130528281680948470">Налады вашай прылады будуць скінуты, а ўліковыя запісы карыстальнікаў і іх даныя будуць выдалены. Адрабіць гэта дзеянне нельга.</translation>
 <translation id="313205617302240621">Забылі пароль?</translation>
 <translation id="3132996321662585180">Абнаўляць штодзень</translation>
@@ -1781,6 +1793,7 @@
 <translation id="3441653493275994384">Экран</translation>
 <translation id="3445925074670675829">Прылада USB-C</translation>
 <translation id="344630545793878684">Прагляд вашых даных на шэрагу вэб-сайтаў</translation>
+<translation id="3448086340637592206">Дадатковыя ўмовы Google Chrome і Chrome OS</translation>
 <translation id="3448492834076427715">Абнавіць уліковы запіс</translation>
 <translation id="3449839693241009168">Націсніце <ph name="SEARCH_KEY" />, каб адправіць каманды ў пашырэнне <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Працэнт выкарыстання зараду акумулятара ў стане бяздзейнасці</translation>
@@ -2126,6 +2139,7 @@
 <translation id="3873423927483480833">Паказваць PIN-коды</translation>
 <translation id="3873915545594852654">Узнікла праблема з ARC++.</translation>
 <translation id="3879748587602334249">Менеджар спамповак</translation>
+<translation id="3881321138433527084">"Бяспечны прагляд" выключаны. Каб працаваць у інтэрнэце бяспечна, уключыце гэту функцыю.</translation>
 <translation id="3882165008614329320">Існуючае відэа з камеры або файла</translation>
 <translation id="3886446263141354045">Запыт на доступ да гэтага сайта адпраўлены карыстальніку <ph name="NAME" /></translation>
 <translation id="3888550877729210209">Нататкі ў <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2467,6 +2481,7 @@
 <translation id="4384652540891215547">Актываваць пашырэнне</translation>
 <translation id="438503109373656455">Саратога</translation>
 <translation id="4387004326333427325">Сертыфікат аўтэнтыфікацыі адхілены аддалена</translation>
+<translation id="4387890294700445764">Раскрытыя паролі</translation>
 <translation id="4389091756366370506">Карыстальнік <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Інкогніта}one{# адкрытае акно ў рэжыме інкогніта}few{# адкрытыя акны ў рэжыме інкогніта}many{# адкрытых вокнаў у рэжыме інкогніта}other{# адкрытага акна ў рэжыме інкогніта}}</translation>
 <translation id="439266289085815679">Карыстальнік <ph name="USER_EMAIL" /> кіруе канфігурацыяй Bluetooth.</translation>
@@ -2498,6 +2513,7 @@
 <translation id="4429030830601238961">Гэтыя даныя парушаюць палітыку бяспекі вашай арганізацыі і таму не могуць быць устаўлены.</translation>
 <translation id="4430019312045809116">Гучнасць</translation>
 <translation id="4430369329743628066">Дададзена закладка</translation>
+<translation id="4432621511648257259">Няправільны пароль</translation>
 <translation id="4434045419905280838">Усплыв. вокны і перанакіраванні</translation>
 <translation id="443454694385851356">Ранейшая версія (небяспечная)</translation>
 <translation id="443475966875174318">Абнавіць або выдаліць несумяшчальныя праграмы</translation>
@@ -2747,6 +2763,7 @@
 <translation id="4808667324955055115">Заблакіраваны выплыўныя вокны:</translation>
 <translation id="480990236307250886">Адкрыць галоўную старонку</translation>
 <translation id="4811503964269049987">Дадаць выбраную ўкладку ў групу</translation>
+<translation id="4811818760963189951">Выключана, паколькі вы адключылі сінхранізацыю гісторыі</translation>
 <translation id="4813136279048157860">Мае відарысы</translation>
 <translation id="4813512666221746211">Памылка сеткі</translation>
 <translation id="4814378367953456825">Увядзіце назву для гэтага адбітка пальца</translation>
@@ -2776,6 +2793,7 @@
 <translation id="4850669014075537160">Прагортка</translation>
 <translation id="4850886885716139402">Праглядзець</translation>
 <translation id="4853020600495124913">Адкрыць у &amp;новым акне</translation>
+<translation id="4854317507773910281">Для ўхвалення выберыце бацькоўскі ўліковы запіс</translation>
 <translation id="485480310608090163">Іншыя налады і дазволы</translation>
 <translation id="4856478137399998590">Сэрвіс мабільнай перадачы даных уключаны і гатовы для выкарыстання</translation>
 <translation id="4856855265648545577">Паказваць кнопкі "Панэль запуску", "Назад", "Агляд" на паліцы ў планшэтным рэжыме. Налада ўключаецца, калі ўключаны ChromeVox (галасавая зваротная сувязь) або доступ праз пераключальнікі.</translation>
@@ -2912,10 +2930,12 @@
 <translation id="5040823038948176460">Дадатковыя налады змесціва</translation>
 <translation id="5042282098504489593">Каб падключыць прыладу "<ph name="USB_DEVICE_NAME" />" да сістэмы Linux, адкрыйце Налады</translation>
 <translation id="5043913660911154449">Або ўкажыце файл PPD прынтара <ph name="LINK_BEGIN" />Даведацца больш<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Выключана, паколькі вы зашыфравалі даныя сінхранізацыі з дапамогай фразы-пароля</translation>
 <translation id="5045550434625856497">Няправільны пароль</translation>
 <translation id="504561833207953641">Ідзе адкрыццё ў бягучым сеансе браўзера.</translation>
 <translation id="5047421709274785093">Заблакіраваць сайтам выкарыстанне датчыкаў руху і святла</translation>
 <translation id="5050042263972837708">Назва групы</translation>
+<translation id="5051073330196664891">Універсальныя Умовы выкарыстання Google</translation>
 <translation id="5051836348807686060">Праверка правапісу для выбраных моў не падтрымліваецца</translation>
 <translation id="5052499409147950210">Рэдагаванне сайта</translation>
 <translation id="5053604404986157245">Створаны выпадковым чынам пароль TPM недаступны. Пасля выкарыстання Powerwash гэта нармальна.</translation>
@@ -2953,6 +2973,7 @@
 <translation id="5097002363526479830">Не атрымалася падключыцца да сеткі "<ph name="NAME" />": <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Адкрыць усе закладкі</translation>
 <translation id="5101839224773798795">Аўтаматычна націскаць, калі курсор спыняецца</translation>
+<translation id="5107443654503185812">Адно з пашырэнняў выключыла Бяспечны прагляд</translation>
 <translation id="5108967062857032718">Налады &gt; Выдаліць праграмы Android</translation>
 <translation id="5109044022078737958">Мія</translation>
 <translation id="5111646998522066203">Выйсці з рэжыму інкогніта</translation>
@@ -3039,6 +3060,7 @@
 <translation id="523505283826916779">Налады спецыяльных магчымасцей</translation>
 <translation id="5235750401727657667">Замяніць старонку, якую вы бачыце пры адкрыцці новай укладкі</translation>
 <translation id="5238278114306905396">Праграма "<ph name="EXTENSION_NAME" />" была аўтаматычна выдалена.</translation>
+<translation id="5239730228370806996">Перацягнутыя даныя парушаюць палітыкі бяспекі вашай арганізацыі. Усё роўна працягнуць?</translation>
 <translation id="5241128660650683457">Чытаць усе даныя з вэб-сайтаў, якія вы наведваеце</translation>
 <translation id="5242724311594467048">Уключыць пашырэнне "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="5243522832766285132">Паўтарыце спробу праз некалькі секунд</translation>
@@ -3326,6 +3348,7 @@
 <translation id="5618075537869101857">Не ўдалося запусціць праграму-кіёск.</translation>
 <translation id="5618333180342767515">(гэта можа заняць некалькі хвілін)</translation>
 <translation id="56197088284879152">Падключэнне да аддаленай прылады перагружанае: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">Няма захаваных пароляў</translation>
 <translation id="5620549857835247159">Паказваць кнопкі "Панэль запуску", "Назад", "Агляд" на паліцы ў планшэтным рэжыме.</translation>
 <translation id="5620568081365989559">Інструменты распрацоўшчыка запытваюць поўны доступ да папкі "<ph name="FOLDER_PATH" />". Упэўніцеся, што канфідэнцыяльная інфармацыя не будзе раскрыта.</translation>
 <translation id="5620612546311710611">статыстыка выкарыстання</translation>
@@ -3418,6 +3441,7 @@
 <translation id="5747785204778348146">Распрацоўшчык – нестабільны параметр</translation>
 <translation id="5747809636523347288">У&amp;ставіць і перайсці на адрас <ph name="URL" /></translation>
 <translation id="5750324801516359607">Далёка</translation>
+<translation id="5751887393582880060">Гэта запампоўка парушае палітыкі бяспекі вашай арганізацыі. Усё роўна працягнуць?</translation>
 <translation id="5756163054456765343">&amp;Даведачны цэнтр</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> можа праглядаць дакументы, якія <ph name="APP_NAME" /> прызначае для друку.</translation>
 <translation id="5763751966069581670">Прылады USB не знойдзены</translation>
@@ -3627,6 +3651,7 @@
 <translation id="6040852767465482106">Ананімны ідэнтыфікатар</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Служба геалакацыі Google выкарыстоўвае такія крыніцы як Wi-Fi, мабільныя сеткі і датчыкі ў якасці дапаможных для вызначэння месцазнаходжання вашай прылады.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Каб выключыць гэту службу, выключыце галоўную наладу вызначэння месцазнаходжання на прыладзе. Таксама можна выключыць выкарыстанне Wi-Fi, мабільных сетак і датчыкаў для вызначэння месцазнаходжання ў адпаведных наладах.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> зможа праглядаць файлы ў папцы <ph name="FOLDERNAME" />, пакуль вы не закрыеце ўсе ўкладкі сайта <ph name="ORIGIN" /></translation>
 <translation id="6041155700700864984">Выключыць поўнаэкранны рэжым</translation>
 <translation id="604124094241169006">Аўтаматычна</translation>
 <translation id="6042308850641462728">Яшчэ</translation>
@@ -3688,6 +3713,7 @@
 <translation id="6104311680260824317">Не ўдалося далучыць прыладу да дамена. Сервер не падтрымлівае вызначаныя тыпы шыфравання Kerberos. Наладзіць шыфраванне можна ў раздзеле "Іншыя параметры".</translation>
 <translation id="6104641575223043670">Арганізацыя "<ph name="ORGANIZATION_NAME" />" патрабуе неадкладнага абнаўлення праграмнага забеспячэння на гэтай прыладзе.</translation>
 <translation id="6106186653986077033">Патрабуецца ліцэнзія для Plugin VM</translation>
+<translation id="6107047744202598802">Дазваляе вэб-сайтам запамінаць вашы наведванні і адсочваць вашы дзеянні ў інтэрнэце</translation>
 <translation id="6112294629795967147">Каб змяніць памер, націсніце тут</translation>
 <translation id="6112727384379533756">Дадаць білет</translation>
 <translation id="6112931163620622315">Праверце свой тэлефон</translation>
@@ -3766,6 +3792,7 @@
 <translation id="622537739776246443">Профіль будзе выдалены</translation>
 <translation id="6225475702458870625">Злучэнне для перадачы даных даступнае з вашай прылады <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Файл закрытага ключа (неабавязкова)</translation>
+<translation id="6227280783235722609">пашырэнне</translation>
 <translation id="6228691855869374890">Гэты сайт мае поўны кантроль над прыладамі MIDI.</translation>
 <translation id="6228720835160974792">Стварыць QR-код для гэтага відарыса</translation>
 <translation id="6229890768313448549">Не ўдалося загрузіць Умовы выкарыстання Google Play. Паўтарыце спробу.</translation>
@@ -3817,6 +3844,7 @@
 <translation id="6285120108426285413">Файл "<ph name="FILE_NAME" />" звычайна не спампоўваецца і можа быць небяспечным.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Новы прынтар у сетцы}one{Новыя прынтары ў сетцы}few{Новыя прынтары ў сетцы}many{Новыя прынтары ў сетцы}other{Новыя прынтары ў сетцы}}</translation>
 <translation id="6286708577777130801">Падрабязныя звесткі аб захаваным паролі</translation>
+<translation id="6291163159361301370">Для запуску Linux <ph name="ORGANIZATION_NAME" /> патрабуе ад вас стварыць рэзервовую копію даных і скінуць налады Chromebook да заводскіх значэнняў.</translation>
 <translation id="6291949900244949761">Пытацца, калі сайт запытвае доступ да USB-прылад (рэкамендуецца)</translation>
 <translation id="6291953229176937411">&amp;Паказаць у акне Finder</translation>
 <translation id="6295158916970320988">Усе сайты</translation>
@@ -4013,6 +4041,7 @@
 <translation id="6561726789132298588">Enter</translation>
 <translation id="656293578423618167">Шлях да файла або яго назва занадта доўгія.  Зрабіце назву карацейшай або ўкажыце іншае месцазнаходжанне.</translation>
 <translation id="6563469144985748109">Ваш менеджар пакуль што не ўхваліў гэты сайт</translation>
+<translation id="6565955132287672866">Работа прылады была завершана няправільна. Для выкарыстання Linux (бэта-версіі) патрабуецца перазапуск прылады.</translation>
 <translation id="6567688344210276845">Не ўдалося загрузіць значок "<ph name="ICON" />" для дзеяння са старонкай.</translation>
 <translation id="6569934958368283244">Іншыя людзі</translation>
 <translation id="657402800789773160">&amp;Перазагрузіць старонку</translation>
@@ -4510,6 +4539,7 @@
 <translation id="7258225044283673131">Праграма не адказвае. Каб закрыць яе, націсніце "Прымусова закрыць".</translation>
 <translation id="7258697411818564379">PIN-код дададзены</translation>
 <translation id="7262004276116528033">Гэты сэрвіс уваходу размешчаны на дамене <ph name="SAML_DOMAIN" /></translation>
+<translation id="7266898409676782635">Давайце водгукі, атрымлівайце прапановы, навіны і парады па прыладах <ph name="DEVICE_TYPE" />. Адпісацца можна ў любы час.</translation>
 <translation id="7268127947535186412">Гэта налада кіруецца ўладальнікам прылады.</translation>
 <translation id="7270858098575133036">Паведамляць мяне, калі сайту спатрэбіцца выкарыстоўваць адмысловыя сістэмныя паведамленні для доступу да MIDI-прылад</translation>
 <translation id="7272674038937250585">Няма апісання</translation>
@@ -4583,6 +4613,7 @@
 <translation id="7364796246159120393">Выбраць файл</translation>
 <translation id="7366415735885268578">Дадаванне сайта</translation>
 <translation id="7366909168761621528">Даныя прагляду</translation>
+<translation id="7367714965999718019">Генератар QR-кодаў</translation>
 <translation id="736877393389250337">Адрас "<ph name="URL" />" адкрыць у браўзеры <ph name="ALTERNATIVE_BROWSER_NAME" /> не ўдалося. Звярніцеся да сістэмнага адміністратара.</translation>
 <translation id="7370592524170198497">Ethernet EAP:</translation>
 <translation id="7371006317849674875">Час пачатку</translation>
@@ -4840,8 +4871,10 @@
 <translation id="7737238973539693982">Выдаліць Linux (бэта-версія)</translation>
 <translation id="7740996059027112821">Стандартны</translation>
 <translation id="7744047395460924128">Праглядзець вашу гісторыю друку</translation>
+<translation id="7744192722284567281">Раскрыты пры ўцечцы даных</translation>
 <translation id="7746457520633464754">Каб выявіць небяспечныя праграмы і сайты, Chrome адпраўляе URL-адрасы некаторых наведаных вамі старонак, пэўную сістэмную інфармацыю і змесціва старонак у Google</translation>
 <translation id="7750228210027921155">Відарыс у відарысе</translation>
+<translation id="7751229152614300329">"Бяспечны прагляд" абноўлены і абараняе вас ад шкодных сайтаў і спамповак</translation>
 <translation id="7751260505918304024">Паказаць усе</translation>
 <translation id="7754704193130578113">Прапаноўваць перад спампоўваннем выбраць месца для захавання файла</translation>
 <translation id="7755287808199759310">Разблакіраваць сайт для вас можа адзін з бацькоў</translation>
@@ -4989,6 +5022,7 @@
 <translation id="7910768399700579500">&amp;Новая папка</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Ваш пароль зменены на серверы. Выйдзіце і зноў увайдзіце ва ўліковы запіс.</translation>
+<translation id="7914583336730284547">Перацягнутыя файлы парушаюць палітыкі бяспекі вашай арганізацыі. Усё роўна працягнуць?</translation>
 <translation id="7915457674565721553">Каб наладзіць бацькоўскі кантроль, падключыцеся да інтэрнэту</translation>
 <translation id="7915471803647590281">Перш чым адправіць водгук, паведаміце нам, што адбываецца.</translation>
 <translation id="7918257978052780342">Зарэгістраваць</translation>
@@ -5085,6 +5119,7 @@
 <translation id="8028803902702117856">Спампоўваецца файл "<ph name="FILE_NAME" />": <ph name="SIZE" /></translation>
 <translation id="8028993641010258682">Памер</translation>
 <translation id="8030656706657716245">Дадаць прынтар</translation>
+<translation id="8030852056903932865">Ухваліць</translation>
 <translation id="8032244173881942855">Не ўдалося трансліраваць укладку.</translation>
 <translation id="8033827949643255796">вылучана</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Адкрыць усе ў &amp;акне ў рэжыме інкогніта}=1{Адкрыць у &amp;акне ў рэжыме інкогніта}one{Адкрыць усе (#) у &amp;акне ў рэжыме інкогніта}few{Адкрыць усе (#) у &amp;акне ў рэжыме інкогніта}many{Адкрыць усе (#) у &amp;акне ў рэжыме інкогніта}other{Адкрыць усе (#) у &amp;акне ў рэжыме інкогніта}}</translation>
@@ -5405,6 +5440,7 @@
 <translation id="8472623782143987204">патрабуюцца апаратныя сродкі</translation>
 <translation id="8473863474539038330">Адрасы і іншае</translation>
 <translation id="8475313423285172237">Іншая праграма на камп'ютары дадала пашырэнне, якое можа змяніць працу Chrome.</translation>
+<translation id="8476659515398963495">Устаўленыя даныя парушаюць палітыкі бяспекі вашай арганізацыі. Усё роўна працягнуць?</translation>
 <translation id="8477241577829954800">Заменены</translation>
 <translation id="8477384620836102176">&amp;Агульныя звесткі</translation>
 <translation id="8480082892550707549">Нават калі раней вы спампоўвалі файлы з гэтага сайта, ён можа быць часова небяспечным (яго маглі ўзламаць). Паспрабуйце спампаваць гэты файл пазней.</translation>
@@ -5458,6 +5494,7 @@
 <translation id="8547013269961688403">Уключыць лупу для поўнаэкраннага рэжыму</translation>
 <translation id="85486688517848470">Утрымлівайце клавішу пошуку, каб змяніць значэнні клавіш верхняга рада</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 элемент}one{# элемент}few{# элементы}many{# элементаў}other{# элемента}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> зможа змяняць файлы ў папцы <ph name="FOLDERNAME" />, пакуль вы не закрыеце ўсе ўкладкі сайта <ph name="ORIGIN" /></translation>
 <translation id="8551388862522347954">Ліцэнзіі</translation>
 <translation id="8553342806078037065">Іншыя карыстальнікі</translation>
 <translation id="8554899698005018844">Мова не выбрана</translation>
@@ -5516,6 +5553,7 @@
 <translation id="8637688295594795546">Даступнае абнаўленне сістэмы. Ідзе падрыхтоўка да спампоўкі…</translation>
 <translation id="8639047128869322042">Ідзе праверка на шкодныя праграмы...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – порт</translation>
+<translation id="8641606876632989680">Chrome адправіць вам апавяшчэнне, калі вы ўвойдзеце ва ўліковы запіс, выкарыстаўшы раскрыты пароль</translation>
 <translation id="8642900771896232685">2 секунды</translation>
 <translation id="8642947597466641025">Павялічыць тэкст</translation>
 <translation id="8644655801811752511">Не ўдалося скінуць гэты ключ бяспекі. Паспрабуйце скінуць ключ адразу пасля яго ўстаўкі.</translation>
@@ -5565,6 +5603,7 @@
 <translation id="869884720829132584">Меню праграм</translation>
 <translation id="869891660844655955">Тэрмін дзеяння</translation>
 <translation id="8703346390800944767">Прапусціць рэкламу</translation>
+<translation id="870341961648617780">"Бяспечны прагляд" і пашыраныя налады бяспекі</translation>
 <translation id="8705331520020532516">Серыйны нумар</translation>
 <translation id="8705580154597116082">Сетка Wi-Fi даступная праз тэлефон</translation>
 <translation id="8705629851992224300">Не ўдалося прачытаць ваш ключ бяспекі</translation>
@@ -5610,6 +5649,7 @@
 <translation id="874689135111202667">{0,plural, =1{Запампаваць адзін файл на гэты сайт?}one{Запампаваць # файл на гэты сайт?}few{Запампаваць # файлы на гэты сайт?}many{Запампаваць # файлаў на гэты сайт?}other{Запампаваць # файла на гэты сайт?}}</translation>
 <translation id="8748384418490037181">Параметры Smart Lock</translation>
 <translation id="8749863574775030885">Доступ да USB-прылад ад невядомага пастаўшчыка</translation>
+<translation id="8750133148106010815">Для запуску Google Play <ph name="ORGANIZATION_NAME" /> патрабуе ад вас стварыць рэзервовую копію даных і скінуць налады Chromebook да заводскіх значэнняў.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> хоча падключыцца да серыйнага порта</translation>
 <translation id="8754200782896249056">&lt;p&gt;Калі <ph name="PRODUCT_NAME" /> працуе ў камп'ютарным асяроддзі, якое падтрымліваецца, выкарыстоўваюцца сістэмныя налады проксі-сервера.  Але або ваша сістэма не падтрымліваецца, або пры запуску сістэмнай канфігурацыі адбылася памылка.&lt;/p&gt;
 
@@ -5664,6 +5704,7 @@
 <translation id="8809147117840417135">Светла-бірузовы</translation>
 <translation id="8813698869395535039">Не ўдаецца ўвайсці ва ўліковы запіс <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">аркуш паперы</translation>
+<translation id="8813872945700551674">Для ўхвалення пашырэння "<ph name="EXTENSION_NAME" />" звярніцеся да бацькоў.</translation>
 <translation id="8813969267212093033">Тэкст сістэмы паказаны на гэтай мове</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Пачакайце, архіў правяраецца...</translation>
@@ -5944,6 +5985,7 @@
 <translation id="9203398526606335860">&amp;Прафіліраванне ўключана</translation>
 <translation id="9203904171912129171">Выберыце прыладу</translation>
 <translation id="9203962528777363226">Адміністратар гэтай прылады выключыў магчымасць дадаваць новых карыстальнікаў</translation>
+<translation id="9211177926627870898">Патрабуецца абнаўленне</translation>
 <translation id="9214520840402538427">Памылка!  Была пратэрмінавана ініцыялізацыя атрыбутаў installation-time ("усталяванне-час").  Звярніцеся ў службу падтрымкі.</translation>
 <translation id="9214695392875603905">Кекс</translation>
 <translation id="9215293857209265904">Дададзена пашырэнне "<ph name="EXTENSION_NAME" />"</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 29a15db..0dddffb 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Настройки за хранилището на Adobe Flash Player</translation>
 <translation id="1274997165432133392">„Бисквитки“ и други данни за сайтове</translation>
 <translation id="1280820357415527819">Търсят се мобилни мрежи</translation>
+<translation id="1280965841156951489">Редактиране на файловете</translation>
 <translation id="1282420830958964167">Достигнахте ограничението за <ph name="APP_NAME" />, зададено от родителя ви. Можете да използвате приложението утре в продължение на <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Този сайт да не се превежда никога</translation>
 <translation id="1285484354230578868">Съхраняване на данните в профила ви в Google Диск</translation>
@@ -510,6 +511,7 @@
 <translation id="1692210323591458290">Тъмнолилаво</translation>
 <translation id="1692799361700686467">„Бисквитките“ от няколко сайта са разрешени.</translation>
 <translation id="1697150536837697295">Изкуство</translation>
+<translation id="1697686431566694143">Редактиране на файла</translation>
 <translation id="1698122934742150150">Само за текущата сесия в режим „инкогнито“</translation>
 <translation id="1698650002254827833">Списъкът с приложения не може да бъде зареден. Моля, опитайте отново.</translation>
 <translation id="1701062906490865540">Премахване на този човек</translation>
@@ -695,6 +697,7 @@
 <translation id="1931152874660185993">Няма инсталирани компоненти.</translation>
 <translation id="1932098463447129402">Не преди</translation>
 <translation id="1933809209549026293">Моля, свържете мишка или клавиатура. Ако използвате устройство с Bluetooth, уверете се, че е готово за сдвояване.</translation>
+<translation id="1936931585862840749">Въведете число между 1 и <ph name="MAX_COPIES" />, за да укажете колко копия да се отпечатат .</translation>
 <translation id="1937774647013465102">Архитектурата на контейнера е от тип <ph name="ARCHITECTURE_CONTAINER" /> и не може да се импортира в това устройство, което е от тип <ph name="ARCHITECTURE_DEVICE" />. Можете да опитате да възстановите контейнера на друго устройство или да използвате файловете в образа му, като го отворите в приложението „Файлове“.</translation>
 <translation id="1938351510777341717">Външен клавиш Command</translation>
 <translation id="1940546824932169984">Свързани устройства</translation>
@@ -990,6 +993,7 @@
 <translation id="2343747224442182863">Фокус върху този раздел</translation>
 <translation id="2344028582131185878">Автоматични изтегляния</translation>
 <translation id="2345723121311404059">1 страница до „<ph name="PRINTER_NAME" />“</translation>
+<translation id="2346953515226895098">Услуга SODA</translation>
 <translation id="2347644257713614136">Използването на Hangouts и Cast for Education се урежда от Декларацията за поверителност на Google.</translation>
 <translation id="2348176352564285430">Приложение: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Презареждането завърши</translation>
@@ -1043,6 +1047,7 @@
 <translation id="2422125132043002186">Възстановяването на Linux бе анулирано</translation>
 <translation id="2423578206845792524">&amp;Запазване на изображението като...</translation>
 <translation id="2428510569851653187">Опишете какво правехте, когато разделът претърпя срив</translation>
+<translation id="2428939361789119025">Изключване на Wi-Fi</translation>
 <translation id="2431027948063157455">Google Асистент не можа да се зареди. Моля, проверете връзката си с мрежата и опитайте отново.</translation>
 <translation id="2432753757290432042">Изисква се актуализиране на Linux (бета)</translation>
 <translation id="2433452467737464329">За да опресните страницата автоматично, добавете към URL адреса параметър на заявката: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1460,6 +1465,7 @@
 <translation id="2944060181911631861">Изпращане на данни за употребата и диагностиката. Помогнете за подобряването на работата си с Android, като автоматично изпращате до Google диагностична информация и данни за употребата на устройството и приложенията. Това ще послужи за подобряване на стабилността на системата и приложенията и др. Някои обобщени данни също така ще подпомогнат приложенията и партньорите на Google, напр. програмистите за Android. Ако настройката „Допълнителна активност в мрежата и приложенията“ е включена за вас, тези данни може да се запазват в профила ви в Google. <ph name="BEGIN_LINK1" />Научете повече<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Добавяне на връзка</translation>
 <translation id="2947605845283690091">Сърфирането в мрежата трябва да е бързо. Отделете малко време, за <ph name="BEGIN_LINK" />да проверите разширенията си<ph name="END_LINK" /> сега.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 потенциално опасно разширение е изключено. Можете също да го премахнете.}other{# потенциално опасни разширения са изключени. Можете също да ги премахнете.}}</translation>
 <translation id="2948300991547862301">Към „<ph name="PAGE_TITLE" />“</translation>
 <translation id="29488703364906173">Бърз, опростен и сигурен уеб браузър, създаден за модерната мрежа.</translation>
 <translation id="2949289451367477459">Използване на местоположението. Позволете на приложенията и услугите да ползват местоположението на това устройство, ако имат съответното разрешение за достъп. Google може периодично да събира данни за местоположението и да ги използва по анонимен начин с цел подобряване на точността му и базиращите се на него услуги. <ph name="BEGIN_LINK1" />Научете повече<ph name="END_LINK1" /></translation>
@@ -1540,6 +1546,7 @@
 <translation id="3067198179881736288">Да се инсталира ли приложението?</translation>
 <translation id="3067198360141518313">Стартиране на тази приставка</translation>
 <translation id="3071624960923923138">Можете да кликнете тук, за да отворите нов раздел</translation>
+<translation id="3072775339180057696">Да се разреши ли на сайта да преглежда <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">За започването на Powerwash се изисква рестартиране. След това ще бъдете помолени да потвърдите, че искате да продължите.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Данните ви за вход бяха изтрити</translation>
@@ -1552,6 +1559,7 @@
 <translation id="3085412380278336437">Сайтът може да използва камерата ви</translation>
 <translation id="3085752524577180175">SOCKS хост</translation>
 <translation id="3088052000289932193">Сайтът използва MIDI</translation>
+<translation id="3088128611727407543">Потребителският профил за приложението се подготвя...</translation>
 <translation id="3088325635286126843">&amp;Преименуване...</translation>
 <translation id="3089137131053189723">Търсенето бе изчистено</translation>
 <translation id="3090193911106258841">Осъществява се достъп до аудио- и видеовхода</translation>
@@ -1593,6 +1601,7 @@
 Описание:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Приложения в Chrome</translation>
+<translation id="3150693969729403281">Старт на функцията за проверка за безопасността</translation>
 <translation id="3150927491400159470">Твърдо презареждане</translation>
 <translation id="315116470104423982">Мобилни данни</translation>
 <translation id="3151539355209957474">Начален час</translation>
@@ -1685,6 +1694,7 @@
 <translation id="3282568296779691940">Вход в Chrome</translation>
 <translation id="3285322247471302225">Нов &amp;раздел</translation>
 <translation id="328571385944182268">Да се запазят ли паролите ви?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> ще може да преглежда <ph name="FILENAME" />, докато не затворите всички раздели с(ъс) <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Разширенията, които се изпълняват в режим за програмисти, могат да навредят на компютъра ви. Ако не сте програмист, за по-голяма безопасност трябва да деактивирате изпълнението им в този режим.</translation>
 <translation id="3289856944988573801">За да проверите за актуализации, моля, използвайте Ethernet или Wi-Fi.</translation>
 <translation id="3290356915286466215">незащитена</translation>
@@ -1793,6 +1803,7 @@
 <translation id="344630545793878684">Четене на данните ви от редица уебсайтове</translation>
 <translation id="3448086340637592206">Допълнителни условия на Google Chrome и Chrome OS</translation>
 <translation id="3448492834076427715">Актуализиране на профила</translation>
+<translation id="3449393517661170867">Нов прозорец с раздели</translation>
 <translation id="3449839693241009168">Натиснете <ph name="SEARCH_KEY" /> за да изпратите командите до <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Процент на използване в състояние на неактивност</translation>
 <translation id="3451332697983754369">Синхронизиране на <ph name="DEVICE_TYPE" /></translation>
@@ -1974,6 +1985,7 @@
 <translation id="3681311097828166361">Благодарим ви за отзива. В момента сте офлайн, така че сигналът ви ще бъде изпратен по-късно.</translation>
 <translation id="3682824389861648626">Праг на движение</translation>
 <translation id="3683524264665795342">Заявка за споделяне на екрана от <ph name="APP_NAME" /></translation>
+<translation id="3686074530047028092">Профил в Education</translation>
 <translation id="368789413795732264">Възникна грешка при опита за запис във файла: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Запис във файлове и папки, които сте отворили в приложението</translation>
 <translation id="3688526734140524629">Промяна на канала</translation>
@@ -2042,6 +2054,7 @@
 <translation id="3759933321830434300">Блокиране на части от уеб страници</translation>
 <translation id="3760460896538743390">Инспектиране на &amp;фоновата страница</translation>
 <translation id="37613671848467444">Отваряне на прозорец в режим „&amp;инкогнито“</translation>
+<translation id="3761556954875533505">Да се разреши ли на сайта да редактира файлове?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Комуникация с USB устройство}other{Комуникация с # USB устройства}}</translation>
 <translation id="3765246971671567135">Правилото за офлайн демонстрационен режим не можа да бъде прочетено.</translation>
 <translation id="3768037234834996183">Предпочитанията ви се синхронизират...</translation>
@@ -2178,6 +2191,7 @@
 <translation id="3927932062596804919">Отказ</translation>
 <translation id="3928570707778085600">Да се запазят ли промените в(ъв) „<ph name="FILE_OR_FOLDER_NAME" />“?</translation>
 <translation id="3929426037718431833">Тези разширения могат да виждат и променят информацията на сайта.</translation>
+<translation id="3930155420525972941">Преместване на групата в нов прозорец</translation>
 <translation id="3930737994424905957">Търсят се устройства</translation>
 <translation id="3930968231047618417">Цвят на фона</translation>
 <translation id="3933283459331715412">Възстановяване на изтритата парола за <ph name="USERNAME" /></translation>
@@ -2336,6 +2350,7 @@
 <translation id="4130750466177569591">Приемам</translation>
 <translation id="413121957363593859">Компоненти</translation>
 <translation id="4131410914670010031">Черно-бяло</translation>
+<translation id="4133076602192971179">Отворете приложението, за да промените паролата си</translation>
 <translation id="4136203100490971508">Нощното осветление ще се изключи автоматично по изгрев</translation>
 <translation id="41365691917097717">Ако продължите, отстраняването на грешки през ADB ще бъде активирано, за да създавате и тествате приложения за Android. Обърнете внимание, че това действие позволява инсталирането на приложения за Android, които не са удостоверени от Google. За деактивирането на ADB е необходимо да бъдат възстановени фабричните настройки.</translation>
 <translation id="4138267921960073861">Потребителските имена и снимките да се показват на екрана за вход</translation>
@@ -2447,6 +2462,7 @@
 <translation id="4330387663455830245">Никога да не се превежда от <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Настройване на родителските контроли</translation>
 <translation id="4333854382783149454">PKCS 1 SHA-1 с RSA шифроване</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Администраторът ви включи 1 потенциално опасно разширение}other{Администраторът ви включи # потенциално опасни разширения}}</translation>
 <translation id="4336434711095810371">Изчистване на всички данни</translation>
 <translation id="4336979451636460645">За регистрационни файлове за мрежата вижте <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> иска да комуникира с приложението „<ph name="EXTENSION_NAME" />“</translation>
@@ -2753,6 +2769,7 @@
 <translation id="4785719467058219317">Използвате ключ за сигурност, който не е регистриран в този уебсайт</translation>
 <translation id="4788092183367008521">Моля, проверете връзката си с мрежата и опитайте отново.</translation>
 <translation id="4792711294155034829">&amp;Подаване на сигнал за проблем...</translation>
+<translation id="4794810983896241342">Актуализациите се управляват от <ph name="BEGIN_LINK" />администратора ви<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Уеб страница, само HTML</translation>
 <translation id="4798236378408895261">Прикачване на <ph name="BEGIN_LINK" />регистрационните файлове за Bluetooth<ph name="END_LINK" /> (вътрешно за Google)</translation>
 <translation id="4801448226354548035">Скриване на профилите</translation>
@@ -2848,6 +2865,7 @@
 <translation id="4908811072292128752">Отворете нов раздел, за да сърфирате в два сайта едновременно</translation>
 <translation id="4909038193460299775">Тъй като този профил се управлява от <ph name="DOMAIN" />, вашите отметки, история, пароли и други настройки ще бъдат изчистени от устройството. Данните ви обаче ще продължат да се съхраняват в профила ви в Google. Можете да ги управлявате от <ph name="BEGIN_LINK" />Google Табло за управление<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Събуждания при неактивност</translation>
+<translation id="4916542008280060967">Да се разреши ли на сайта да редактира <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Преминете към сигурен браузър</translation>
 <translation id="4917385247580444890">Силен</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> иска да комуникира с разширението „<ph name="EXTENSION_NAME" />“</translation>
@@ -2919,6 +2937,7 @@
 <translation id="5017633213534173756">Запомняне</translation>
 <translation id="5018207570537526145">Отваряне на уебсайта на разширението</translation>
 <translation id="5021750053540820849">Още не е актуализиран</translation>
+<translation id="5026806129670917316">Включване на Wi-Fi</translation>
 <translation id="5026874946691314267">Без повторно показване</translation>
 <translation id="5027550639139316293">Сертификат за имейл</translation>
 <translation id="5027562294707732951">Добавяне на разширението</translation>
@@ -3031,6 +3050,7 @@
 <translation id="5184063094292164363">&amp;Конзола на JavaScript</translation>
 <translation id="5184209580557088469">Вече съществува пропуск с това потребителско име</translation>
 <translation id="5184662919967270437">Устройството ви се актуализира</translation>
+<translation id="5185359571430619712">Преглед на разширенията</translation>
 <translation id="5185386675596372454">Най-новата версия на „<ph name="EXTENSION_NAME" />“ бе деактивирана, тъй като изисква повече разрешения.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> иска да изтегли няколко файла</translation>
@@ -3081,6 +3101,7 @@
 <translation id="5260334392110301220">Smart Quotes</translation>
 <translation id="5260508466980570042">За съжаление имейлът или паролата ви не можаха да бъдат потвърдени. Моля, опитайте отново.</translation>
 <translation id="5261683757250193089">Отваряне в уеб магазина</translation>
+<translation id="5262178194499261222">Премахване на паролата</translation>
 <translation id="5264148714798105376">Това може да отнеме около минута.</translation>
 <translation id="5264252276333215551">Моля, свържете се с интернет, за да стартирате приложението си в павилионен режим.</translation>
 <translation id="5265562206369321422">Офлайн за повече от една седмица</translation>
@@ -3507,6 +3528,7 @@
 <translation id="5833726373896279253">Тези настройки могат да се променят само от собственика:</translation>
 <translation id="5834581999798853053">Остават около <ph name="TIME" /> минути</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – записва се чрез камерата или микрофона</translation>
+<translation id="5841270259333717135">Конфигуриране на Ethernet</translation>
 <translation id="5842497610951477805">Активиране на Bluetooth</translation>
 <translation id="5846200638699387931">Синтактична грешка в релацията: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Вече е добавено</translation>
@@ -3552,6 +3574,7 @@
 <translation id="5900358982890952556">Надстройване на Linux (бета)</translation>
 <translation id="5901494423252125310">Вратичката на принтера е отворена</translation>
 <translation id="5901630391730855834">жълто</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Включихте 1 потенциално опасно разширение}other{Включихте # потенциално опасни разширения}}</translation>
 <translation id="5906655207909574370">Актуализирането почти завърши! Остава само да рестартирате устройството си.</translation>
 <translation id="5906732635754427568">Данните, свързани с това приложение, ще бъдат премахнати от устройството.</translation>
 <translation id="5908769186679515905">Блокиране на изпълняването на Flash от сайтове</translation>
@@ -3581,6 +3604,7 @@
 <translation id="59324397759951282">USB устройство от <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Сериен №</translation>
 <translation id="5933376509899483611">Часова зона</translation>
+<translation id="5935656526031444304">Управление на „Безопасно сърфиране“</translation>
 <translation id="5938002010494270685">Налице е надстройка за сигурност</translation>
 <translation id="5939518447894949180">Нулиране</translation>
 <translation id="5941153596444580863">Добавяне на човек...</translation>
@@ -3624,6 +3648,7 @@
 <translation id="5993807461461235661">Този качен файл е шифрован и нарушава правилата за сигурност на организацията ви.</translation>
 <translation id="5997337190805127100">Научете повече за достъпа на сайта</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> резултата за „<ph name="SEARCH_TEXT" />“</translation>
+<translation id="6002210667729577411">Преместване на групата в нов прозорец</translation>
 <translation id="6002458620803359783">Предпочитани гласове</translation>
 <translation id="6006484371116297560">Класическа тема</translation>
 <translation id="6007240208646052708">Функцията за гласово търсене не е налице за езика ви.</translation>
@@ -4162,6 +4187,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Показване на прекия път на работния плот</translation>
 <translation id="6740234557573873150">„<ph name="FILE_NAME" />“ е на пауза</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Администраторът ви<ph name="END_LINK" /> е изключил „Безопасно сърфиране“</translation>
 <translation id="6742339027238151589">Достъпно за скрипт</translation>
 <translation id="6745592621698551453">Актуализиране сега</translation>
 <translation id="6746124502594467657">Придвижване надолу</translation>
@@ -4420,6 +4446,7 @@
 <ph name="BEGIN_BOLD" />Имайте предвид следното:<ph name="END_BOLD" /> Достъп до Асистент може да бъде осъществен и от човек с подобен глас или чрез запис. Можете да премахнете разрешението за Voice Match по-късно, като го изключите от настройките на Асистент.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Обмен на данни с устройствата със следните имена: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Устройството ще се рестартира, когато актуализациите завършат.</translation>
 <translation id="7098389117866926363">Устройство с USB-C (левият порт на гърба)</translation>
 <translation id="7098447629416471489">Тук ще се покажат другите запазени търсещи машини</translation>
 <translation id="7099337801055912064">PPD файлът е твърде голям, за да бъде зареден. Максималният размер е 250 КБ.</translation>
@@ -4892,6 +4919,7 @@
 <translation id="7766807826975222231">Направете обиколка</translation>
 <translation id="7766838926148951335">Приемам разрешенията</translation>
 <translation id="7769672763586021400">Идент. № на модела</translation>
+<translation id="7770651108375708429">Прекратяване на връзката с Wi-Fi</translation>
 <translation id="7771452384635174008">Ориентация</translation>
 <translation id="7772032839648071052">Потвърдете пропуска</translation>
 <translation id="7772127298218883077">Всичко за <ph name="PRODUCT_NAME" /></translation>
@@ -5050,6 +5078,7 @@
 <translation id="7939412583708276221">Запазване въпреки това</translation>
 <translation id="7942349550061667556">червено</translation>
 <translation id="7943837619101191061">Добавяне на местоположение...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 компрометирана парола}other{# компрометирани пароли}}</translation>
 <translation id="7945031593909029181"><ph name="CHROME_EXTENSION_NAME" /> иска да се свърже</translation>
 <translation id="7946586320617670168">Източникът трябва да е сигурен</translation>
 <translation id="794676567536738329">Потвърждаване на разрешенията</translation>
@@ -5149,6 +5178,7 @@
 <translation id="8059417245945632445">&amp;Инспектиране на устройствата</translation>
 <translation id="8059456211585183827">Няма налични принтери за запазване.</translation>
 <translation id="8063235345342641131">Стандартен зелен аватар</translation>
+<translation id="8063535366119089408">Преглед на файла</translation>
 <translation id="8064671687106936412">Ключ:</translation>
 <translation id="8068253693380742035">Докоснете за вход в профила си</translation>
 <translation id="8068809649322155577">Всички данни и „бисквитки“, съхранявани от домейна <ph name="SITE_GROUP_NAME" />, сайтовете в него и съответните инсталирани приложения, ще бъдат изчистени.</translation>
@@ -5214,6 +5244,7 @@
 <translation id="8152091997436726702">Времето за изчакване на регистрацията на принтера изтече. За да я извършите, трябва да я потвърдите на принтера.</translation>
 <translation id="8154790740888707867">Няма файл</translation>
 <translation id="815491593104042026">Ами сега! Удостоверяването не бе успешно, защото конфигурираният за целта URL адрес (<ph name="BLOCKED_URL" />) не е защитен. Моля, свържете се с администратора си.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Няма намерени компрометирани пароли}=1{Открита е {COUNT} компрометирана парола}other{Открити са {COUNT} компрометирани пароли}}</translation>
 <translation id="8157704005178149728">Контролирането се настройва</translation>
 <translation id="8158117992543756526">Това устройство не получава автоматични актуализации на софтуера и сигурността от <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">При задаването на доверие за сертификата възникна грешка</translation>
@@ -5267,6 +5298,7 @@
 <translation id="8226742006292257240">По-долу е произволно генерираната чрез модула TPM парола, която е присвоена на компютъра ви:</translation>
 <translation id="8227119283605456246">Прикачване на файл</translation>
 <translation id="8230134520748321204">Да се запази ли паролата за <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Настройки за интернет</translation>
 <translation id="8234795456569844941">Моля, помогнете на инженерите ни да отстранят този проблем. Кажете ни какво се случи, точно преди да получите съобщението за грешка в потребителския профил:</translation>
 <translation id="8236123533334037984">Организацията ви сканира това качване от съображения за сигурност.</translation>
 <translation id="8236917170563564587">Споделяне на този раздел</translation>
@@ -5604,6 +5636,7 @@
 <translation id="8688579245973331962">Не виждате името си?</translation>
 <translation id="8688591111840995413">Неправилна парола</translation>
 <translation id="8688672835843460752">Свободно място</translation>
+<translation id="8691418731028620688">Свързване с Wi-Fi</translation>
 <translation id="8695825812785969222">Отваряне на &amp;местоположение...</translation>
 <translation id="869884720829132584">Меню „Applications“</translation>
 <translation id="869891660844655955">Дата на валидност</translation>
@@ -5763,6 +5796,7 @@
 <translation id="8872187374998143710">Моля, рестартирайте устройството си, за да използвате Plugin VM.</translation>
 <translation id="8872777911145321141">Извеждане на запитване, когато сайт иска да използва устройствата и данните ви за виртуална реалност (препоръчително)</translation>
 <translation id="8874184842967597500">Няма връзка</translation>
+<translation id="8875775314572167244">Настройки за Ethernet</translation>
 <translation id="8876307312329369159">Тази настройка не може да бъде променена по време на демонстрационна сесия.</translation>
 <translation id="8877448029301136595">[главна директория]</translation>
 <translation id="8878384954777710821">Plugin VM се деинсталира...</translation>
@@ -5804,6 +5838,7 @@
 <translation id="892706138619340876">Някои настройки бяха нулирани</translation>
 <translation id="8930351635855238750">Новите настройки за „бисквитките“ ще влязат в сила след презареждането на страницата</translation>
 <translation id="8931394284949551895">Нови устройства</translation>
+<translation id="8931475688782629595">Управление на синхронизираните данни</translation>
 <translation id="8932894639908691771">Опции за функцията за достъп с превключване</translation>
 <translation id="8933960630081805351">&amp;Показване във Finder</translation>
 <translation id="8934732568177537184">Напред</translation>
@@ -5961,6 +5996,7 @@
 <translation id="9148126808321036104">Влезте отново</translation>
 <translation id="9149866541089851383">Редактиране...</translation>
 <translation id="9150045010208374699">Използване на камерата ви</translation>
+<translation id="9150429437595727962">Настройки за Wi-Fi</translation>
 <translation id="9153934054460603056">Запазване на самоличността и паролата</translation>
 <translation id="9154194610265714752">Актуализирано</translation>
 <translation id="91568222606626347">Създаване на пряк път...</translation>
@@ -6022,6 +6058,7 @@
 <translation id="945522503751344254">Изпращане на отзиви</translation>
 <translation id="947329552760389097">&amp;Инспектиране на елементите</translation>
 <translation id="952992212772159698">Не е активиран</translation>
+<translation id="956500788634395331">Защитени сте от потенциално опасни разширения</translation>
 <translation id="957960681186851048">Този сайт опита да изтегли автоматично няколко файла</translation>
 <translation id="9580706199804957">Не можа да се установи връзка с услугите на Google</translation>
 <translation id="960719561871045870">Код на оператора</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 442cd241..11c6e79 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Postavke pohrane Adobe Flash plejera</translation>
 <translation id="1274997165432133392">Kolačići i drugi podaci o web lokaciji</translation>
 <translation id="1280820357415527819">Traženje mobilnih mreža</translation>
+<translation id="1280965841156951489">Uredi fajlove</translation>
 <translation id="1282420830958964167">Isteklo je ograničenje aplikacije "<ph name="APP_NAME" />" koje je roditelj postavio. Sutra je možeš koristiti <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Nikada ne prevodi ovu web lokaciju</translation>
 <translation id="1285484354230578868">Pohranite podatke na svoj račun na Google Disku</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Tamnoljubičasta</translation>
 <translation id="1692799361700686467">Preuzeti su kolačići s višestrukih web lokacija.</translation>
 <translation id="1697150536837697295">Umjetnost</translation>
+<translation id="1697686431566694143">Uredi fajl</translation>
 <translation id="1698122934742150150">Samo trenutačna anonimna sesija</translation>
 <translation id="1698650002254827833">Ovaj spisak aplikacija se ne može učitati. Pokušajte ponovo.</translation>
 <translation id="1701062906490865540">Ukloni ovu osobu</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Nema instaliranih komponenti.</translation>
 <translation id="1932098463447129402">Ne prije</translation>
 <translation id="1933809209549026293">Povežite miš ili tastaturu. Ako koristite Bluetooth uređaj, provjerite je li spreman za uparivanje.</translation>
+<translation id="1936931585862840749">Koristite broj da naznačite koliko primjeraka želite štampati (od 1 do <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Nije moguće uvesti spremnik čija je arhitektura <ph name="ARCHITECTURE_CONTAINER" /> s ovim uređajem čija je arhitektura <ph name="ARCHITECTURE_DEVICE" />. Možete pokušati vratiti spremnik u drugi uređaj ili možete pristupiti fajlovima unutar slike ovog spremnika otvaranjem aplikacije Files.</translation>
 <translation id="1938351510777341717">Vanjska komanda</translation>
 <translation id="1940546824932169984">Povezani uređaji</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Fokusiraj ovu stranicu</translation>
 <translation id="2344028582131185878">Automatska preuzimanja</translation>
 <translation id="2345723121311404059">1 stranica na štampaču <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">SODA usluga</translation>
 <translation id="2347644257713614136">Korištenje aplikacija Hangouts i Cast for Education podliježe Googleovim Pravilima privatnosti.</translation>
 <translation id="2348176352564285430">Aplikacija: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Ponovo učitano</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Vraćanje Linuxa je otkazano</translation>
 <translation id="2423578206845792524">Saču&amp;vaj sliku kao...</translation>
 <translation id="2428510569851653187">Opišite šta ste radili kada je došlo do pada kartice</translation>
+<translation id="2428939361789119025">Isključite WiFi</translation>
 <translation id="2431027948063157455">Nije moguće učitati Google Asistenta. Provjerite mrežnu vezu i pokušajte ponovo.</translation>
 <translation id="2432753757290432042">Potrebno je ažuriranje beta verzije za Linux</translation>
 <translation id="2433452467737464329">Dodajte parametar upita u URL da automatski osvježite stranicu: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Šaljite podatke o upotrebi i dijagnostici. Poboljšajte svoje iskustvo korištenja Androida automatskim slanjem podataka o dijagnostici, uređaju i korištenju aplikacija Googleu. Ovo će pomoći poboljšati stabilnost sistema i aplikacija i još mnogo toga. Neki zbirni podaci će također pomoći Googleovim aplikacijama i partnerima, kao što su Android programeri. Ako je uključena postavka dodatna Aktivnost na webu i u aplikacijama, ovi podaci će možda biti sačuvani na vaš Google račun. <ph name="BEGIN_LINK1" />Saznajte više<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Dodaj vezu</translation>
 <translation id="2947605845283690091">Pregledanje weba bi trebalo biti brzo. Odvojite malo vremena da sada <ph name="BEGIN_LINK" />provjerite ekstenzije<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{Isključena je 1 potencijalno štetna ekstenzija. Možete je i ukloniti.}one{Isključena je # potencijalno štetna ekstenzija. Možete ih i ukloniti.}few{Isključene su # potencijalno štetne ekstenzije. Možete ih i ukloniti.}other{Isključeno je # potencijalno štetnih ekstenzija. Možete ih i ukloniti.}}</translation>
 <translation id="2948300991547862301">Idite do lokacije <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Brz, jednostavan i siguran preglednik, napravljen za moderni web.</translation>
 <translation id="2949289451367477459">Koristite lokaciju. Dozvolite aplikacijama i uslugama s odobrenjem za lokaciju da koriste lokacije ovog uređaja. Google s vremena na vrijeme može prikupljati podatke o lokaciji i anonimno koristiti te podatke s ciljem poboljšavanja preciznosti lokacije i usluga koje se zasnivaju na lokaciji. <ph name="BEGIN_LINK1" />Saznajte više<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Instalirati aplikaciju?</translation>
 <translation id="3067198360141518313">Pokreni ovaj dodatak</translation>
 <translation id="3071624960923923138">Možete kliknuti ovdje da otvorite novu karticu</translation>
+<translation id="3072775339180057696">Dozvoliti web lokaciji da pregleda fajl <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Za započinjanje Powerwash procesa je potrebno ponovno pokretanje uređaja. Nakon ponovnog pokretanja trebate potvrditi da želite nastaviti.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Vaši podaci za prijavu su izbrisani</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Web lokacija može koristiti vašu kameru</translation>
 <translation id="3085752524577180175">Host računar za SOCKS</translation>
 <translation id="3088052000289932193">Web lokacija koristi MIDI uređaj</translation>
+<translation id="3088128611727407543">Pripremanje profila aplikacije...</translation>
 <translation id="3088325635286126843">&amp;Promijeni naziv…</translation>
 <translation id="3089137131053189723">Pretraživanje je izbrisano</translation>
 <translation id="3090193911106258841">Pristupanje unosu zvuka i videozapisa</translation>
@@ -1596,6 +1604,7 @@
     Opis:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome aplikacije</translation>
+<translation id="3150693969729403281">Pokretanje sigurnosne provjere</translation>
 <translation id="3150927491400159470">Ponovno učitavanje bez keš memorije</translation>
 <translation id="315116470104423982">Mobilni podaci</translation>
 <translation id="3151539355209957474">Vrijeme početka</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Prijava na Chrome</translation>
 <translation id="3285322247471302225">Nova kartica</translation>
 <translation id="328571385944182268">Sačuvati vaše lozinke?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> će moći pregledati fajl <ph name="FILENAME" /> dok ne zatvorite sve <ph name="ORIGIN" /> kartice</translation>
 <translation id="3288047731229977326">Ekstenzije u načinu rada za programere mogu nanijeti štetu vašem računaru. Ako niste programer, radi sigurnosti onemogućite rad ovih ekstenzija u načinu rada za programere.</translation>
 <translation id="3289856944988573801">Da provjerite ima li ažuriranja, koristite Ethernet ili WiFi.</translation>
 <translation id="3290356915286466215">Nezaštićeno</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Čitati vaše podatke na nizu web lokacija</translation>
 <translation id="3448086340637592206">Dodatni uslovi za Google Chrome i Chrome OS</translation>
 <translation id="3448492834076427715">Ažuriraj račun</translation>
+<translation id="3449393517661170867">Novi prozor u kartici</translation>
 <translation id="3449839693241009168">Pritisnite tipku <ph name="SEARCH_KEY" /> da pošaljete komande ekstenziji <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Postotak zauzetosti stanja neaktivnosti</translation>
 <translation id="3451332697983754369">Sinhroniziraj moj <ph name="DEVICE_TYPE" /> uređaj</translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Hvala na povratnim informacijama. Trenutno ste van mreže i vaš će se izvještaj poslati kasnije.</translation>
 <translation id="3682824389861648626">Prag pomjeranja</translation>
 <translation id="3683524264665795342">Zahtjev aplikacije <ph name="APP_NAME" /> za dijeljenje ekrana</translation>
+<translation id="3686074530047028092">Obrazovni račun</translation>
 <translation id="368789413795732264">Došlo je do greške pri ispisivanju fajla: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">pisati u datoteke i mape koje otvorite u aplikaciji</translation>
 <translation id="3688526734140524629">Promijeni kanal</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Blokiranje dijelova web stranica</translation>
 <translation id="3760460896538743390">Pregledaj &amp;stranicu u pozadini</translation>
 <translation id="37613671848467444">Otvori u &amp;anonimnom prozoru</translation>
+<translation id="3761556954875533505">Dozvoliti web lokaciji da uredi fajlove?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Komunicirajte s USB uređajem}one{Komunicirajte s # USB uređajem}few{Komunicirajte s # USB uređaja}other{Komunicirajte s # USB uređaja}}</translation>
 <translation id="3765246971671567135">Čitanje pravila u demo načinu rada van mreže nije uspjelo.</translation>
 <translation id="3768037234834996183">Sinhroniziranje vaših postavki...</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Odbij</translation>
 <translation id="3928570707778085600">Sačuvati izmjene u <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Ove ekstenzije mogu pregledati i promijeniti podatke na ovoj web lokaciji.</translation>
+<translation id="3930155420525972941">Premjesti grupu u novi prozor</translation>
 <translation id="3930737994424905957">Traženje uređaja</translation>
 <translation id="3930968231047618417">Boja pozadine</translation>
 <translation id="3933283459331715412">Vratite izbrisanu lozinku za <ph name="USERNAME" /></translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Slažem se</translation>
 <translation id="413121957363593859">Komponente</translation>
 <translation id="4131410914670010031">Crno-bijelo</translation>
+<translation id="4133076602192971179">Otvorite aplikaciju da promijenite lozinku</translation>
 <translation id="4136203100490971508">Noćno svjetlo će se automatski isključiti u svitanje</translation>
 <translation id="41365691917097717">Ako nastavite, omogućit ćete otklanjanje grešaka putem ADB-a za kreiranje i testiranje Android aplikacija. Imajte na umu da ova radnja omogućava instaliranje Android aplikacija koje Google nije potvrdio. Da onemogućite, vratite na fabričke postavke.</translation>
 <translation id="4138267921960073861">Prikazuje korisnička imena i fotografije na ekranu za prijavu</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Nikada ne prevodi <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Postavite Roditeljski nadzor</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 sa RSA šifriranjem</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Vaš administrator je ponovo uključio 1 potencijalno štetnu ekstenziju}one{Vaš administrator je ponovo uključio # potencijalno štetnu ekstenziju}few{Vaš administrator je ponovo uključio # potencijalno štetne ekstenzije}other{Vaš administrator je ponovo uključio # potencijalno štetnih ekstenzija}}</translation>
 <translation id="4336434711095810371">Obriši sve podatke</translation>
 <translation id="4336979451636460645">Zapisnike mreže pogledajte u: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> želi komunicirati s aplikacijom "<ph name="EXTENSION_NAME" />"</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Koristite sigurnosni ključ koji nije registriran na ovoj web lokaciji</translation>
 <translation id="4788092183367008521">Provjerite mrežnu vezu i pokušajte ponovo.</translation>
 <translation id="4792711294155034829">&amp;Prijavi problem...</translation>
+<translation id="4794810983896241342">Ažuriranjima upravlja <ph name="BEGIN_LINK" />vaš administrator<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Web stranica, samo HTML</translation>
 <translation id="4798236378408895261">Priloži <ph name="BEGIN_LINK" />Bluetooth zapisnike<ph name="END_LINK" /> (Google interno)</translation>
 <translation id="4801448226354548035">Sakrij račune</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Otvorite novu karticu da istovremeno pregledate dvije web lokacije</translation>
 <translation id="4909038193460299775">S obzirom da ovim računom upravlja domena <ph name="DOMAIN" />, vaše oznake, historija, lozinke i druge postavke će se izbrisati s ovog uređaja. Međutim, postojeći podaci će ostati pohranjeni na vašem Google računu i njima možete upravljati na <ph name="BEGIN_LINK" />Google Kontrolnoj tabli<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Buđenja iz neaktivnosti</translation>
+<translation id="4916542008280060967">Dozvoliti web lokaciji da uredi fajl <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Prebaci na sigurni preglednik</translation>
 <translation id="4917385247580444890">Jako</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> želi komunicirati s ekstenzijom "<ph name="EXTENSION_NAME" />"</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Zapamti</translation>
 <translation id="5018207570537526145">Otvori ekstenziju web lokacije</translation>
 <translation id="5021750053540820849">Još uvijek nije ažurirano</translation>
+<translation id="5026806129670917316">Uključite WiFi</translation>
 <translation id="5026874946691314267">Ne prikazuj ponovo</translation>
 <translation id="5027550639139316293">Potvrda za e-poštu</translation>
 <translation id="5027562294707732951">Dodaj ekstenziju</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">&amp;Konzola za JavaScript</translation>
 <translation id="5184209580557088469">Tiket s ovim korisničkim imenom već postoji</translation>
 <translation id="5184662919967270437">Ažuriranje uređaja</translation>
+<translation id="5185359571430619712">Pregledajte ekstenzije</translation>
 <translation id="5185386675596372454">Najnovija verzija ekstenzije "<ph name="EXTENSION_NAME" />" je onemogućena jer joj je potrebno više odobrenja.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> želi preuzeti više fajlova</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Pametni navodnici</translation>
 <translation id="5260508466980570042">Žao nam je, ne možemo potvrditi vašu adresu e-pošte ili lozinku. Pokušajte ponovo.</translation>
 <translation id="5261683757250193089">Otvori u Web trgovini</translation>
+<translation id="5262178194499261222">Ukloni lozinku</translation>
 <translation id="5264148714798105376">Ovo može potrajati minut ili više.</translation>
 <translation id="5264252276333215551">Povežite se na internet da pokrenete aplikaciju u načinu rada kioska.</translation>
 <translation id="5265562206369321422">Van mreže duže od sedmicu dana</translation>
@@ -3507,6 +3528,7 @@
 <translation id="5833726373896279253">Ove postavke može promijeniti samo vlasnik.</translation>
 <translation id="5834581999798853053">Preostalo otprilike <ph name="TIME" /> min</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – Snimanje kamerom ili mikrofonom</translation>
+<translation id="5841270259333717135">Konfigurirajte ethernet</translation>
 <translation id="5842497610951477805">Omogućavanje Bluetootha</translation>
 <translation id="5846200638699387931">Sintaksička greška odnosa: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Već dodano</translation>
@@ -3552,6 +3574,7 @@
 <translation id="5900358982890952556">Nadogradite Linux (Beta)</translation>
 <translation id="5901494423252125310">Otvoren je poklopac štampača</translation>
 <translation id="5901630391730855834">Žuta</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Ponovo ste uključili 1 potencijalno štetnu ekstenziju}one{Ponovo ste uključili # potencijalno štetnu ekstenziju}few{Ponovo ste uključili # potencijalno štetne ekstenzije}other{Ponovo ste uključili # potencijalno štetnih ekstenzija}}</translation>
 <translation id="5906655207909574370">Još malo pa je ažurirano! Ponovo pokrenite uređaj da završite ažuriranje.</translation>
 <translation id="5906732635754427568">Podaci koji su povezani s ovom aplikacijom bit će uklonjeni s ovog uređaja.</translation>
 <translation id="5908769186679515905">Blokiraj pokretanje Flasha na web lokacijama</translation>
@@ -3581,6 +3604,7 @@
 <translation id="59324397759951282">USB uređaj proizvođača <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Serijski broj</translation>
 <translation id="5933376509899483611">Vremenska zona</translation>
+<translation id="5935656526031444304">Upravljanje Sigurnim pregledanjem</translation>
 <translation id="5938002010494270685">Dostupno je sigurnosno ažuriranje</translation>
 <translation id="5939518447894949180">Ponovno postavi</translation>
 <translation id="5941153596444580863">Dodaj osobu…</translation>
@@ -3624,6 +3648,7 @@
 <translation id="5993807461461235661">Ovo ažuriranje je šifrirano i krši sigurnosna pravila vaše organizacije.</translation>
 <translation id="5997337190805127100">Saznajte više o pristupu web lokacijama</translation>
 <translation id="6000758707621254961">Broj rezultata <ph name="RESULT_COUNT" /> za "<ph name="SEARCH_TEXT" />"</translation>
+<translation id="6002210667729577411">Premjesti grupu u novi prozor</translation>
 <translation id="6002458620803359783">Preferirani glasovi</translation>
 <translation id="6006484371116297560">Klasično</translation>
 <translation id="6007240208646052708">Glasovno pretraživanje nije dostupno na vašem jeziku.</translation>
@@ -4162,6 +4187,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Prikaži prečicu na radnoj površini</translation>
 <translation id="6740234557573873150">Pauziran je fajl <ph name="FILE_NAME" /></translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Vaš administrator<ph name="END_LINK" /> je isključio Sigurno pregledanje</translation>
 <translation id="6742339027238151589">Dostupno skripti</translation>
 <translation id="6745592621698551453">Ažuriraj sada</translation>
 <translation id="6746124502594467657">Pomjeri dolje</translation>
@@ -4420,6 +4446,7 @@
     <ph name="BEGIN_BOLD" />Ne zaboravite:<ph name="END_BOLD" /> Sličan glas ili zapis mogu također pristupiti vašem Asistentu. Odobrenje za Voice Match možete ukloniti kasnije u postavkama Asistenta.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Razmjena podataka s uređajima pod nazivom: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Uređaj će se ponovo pokrenuti kada se završe ažuriranja.</translation>
 <translation id="7098389117866926363">USB-C uređaj (lijevi priključak sa zadnje strane)</translation>
 <translation id="7098447629416471489">Ostali sačuvani pretraživači će se pojaviti ovdje</translation>
 <translation id="7099337801055912064">Nije moguće učitati veliki PPD. Maksimalna veličina je 250 kB.</translation>
@@ -4892,6 +4919,7 @@
 <translation id="7766807826975222231">Razgledajte</translation>
 <translation id="7766838926148951335">Prihvati odobrenja</translation>
 <translation id="7769672763586021400">ID modela</translation>
+<translation id="7770651108375708429">Prekinite WiFi vezu</translation>
 <translation id="7771452384635174008">Izgled</translation>
 <translation id="7772032839648071052">Potvrdite pristupni izraz</translation>
 <translation id="7772127298218883077">O proizvodu <ph name="PRODUCT_NAME" /></translation>
@@ -5050,6 +5078,7 @@
 <translation id="7939412583708276221">Ipak zadrži</translation>
 <translation id="7942349550061667556">Crvena</translation>
 <translation id="7943837619101191061">Dodaj lokaciju...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 ugrožena lozinka}one{# ugrožena lozinka}few{# ugrožene lozinke}other{# ugroženih lozinki}}</translation>
 <translation id="7945031593909029181">Ekstenzija "<ph name="CHROME_EXTENSION_NAME" />" se želi povezati</translation>
 <translation id="7946586320617670168">Podrijetlo mora biti sigurno</translation>
 <translation id="794676567536738329">Potvrda dozvola</translation>
@@ -5149,6 +5178,7 @@
 <translation id="8059417245945632445">&amp;Pregledaj uređaje</translation>
 <translation id="8059456211585183827">Nema dostupnih štampača koje možete sačuvati.</translation>
 <translation id="8063235345342641131">Zadani zeleni avatar</translation>
+<translation id="8063535366119089408">Pregledaj fajl</translation>
 <translation id="8064671687106936412">Ključ:</translation>
 <translation id="8068253693380742035">Dodirnite da se prijavite</translation>
 <translation id="8068809649322155577">Ovim će se obrisati svi podaci i kolačići koje je pohranila web lokacija <ph name="SITE_GROUP_NAME" />, sve povezane web lokacije i njene instalirane aplikacije.</translation>
@@ -5214,6 +5244,7 @@
 <translation id="8152091997436726702">Registracija štampača je istekla. Za registraciju štampača morate potvrditi registraciju na štampaču.</translation>
 <translation id="8154790740888707867">Nema fajla</translation>
 <translation id="815491593104042026">Ups!  Autentifikacija nije uspjela jer je konfigurirana da koristi nesigurni URL (<ph name="BLOCKED_URL" />). Obratite se svom administratoru.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Nisu pronađene ugrožene lozinke}=1{{COUNT} ugrožena lozinka}one{{COUNT} ugrožena lozinka}few{{COUNT} ugrožene lozinke}other{{COUNT} ugroženih lozinki}}</translation>
 <translation id="8157704005178149728">Postavljanje nadzora</translation>
 <translation id="8158117992543756526">Ovaj uređaj je prestao primati automatska ažuriranja softvera i sigurnosna ažuriranja (<ph name="MONTH_AND_YEAR" />). <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Greška prilikom postavljanja pouzdanosti potvrde</translation>
@@ -5267,6 +5298,7 @@
 <translation id="8226742006292257240">U nastavku je nasumično generirana TPM lozinka koja je dodijeljena vašem računaru:</translation>
 <translation id="8227119283605456246">Priloži fajl</translation>
 <translation id="8230134520748321204">Sačuvati lozinku za <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Postavke interneta</translation>
 <translation id="8234795456569844941">Pomozite našim inženjerima da riješe ovaj problem. Recite nam šta se dogodilo prije nego što ste dobili poruku o grešci na profilu:</translation>
 <translation id="8236123533334037984">Vaša organizacija skenira ovo otpremanje radi sigurnosnog odobrenja.</translation>
 <translation id="8236917170563564587">Dijeli ovu karticu</translation>
@@ -5604,6 +5636,7 @@
 <translation id="8688579245973331962">Ne vidite svoje ime?</translation>
 <translation id="8688591111840995413">Pogrešna zaporka</translation>
 <translation id="8688672835843460752">Dostupno</translation>
+<translation id="8691418731028620688">Povežite se na WiFi</translation>
 <translation id="8695825812785969222">Otvori &amp;lokaciju...</translation>
 <translation id="869884720829132584">Meni aplikacija</translation>
 <translation id="869891660844655955">Datum isteka</translation>
@@ -5763,6 +5796,7 @@
 <translation id="8872187374998143710">Ponovo pokrenite uređaj da koristite Plugin VM.</translation>
 <translation id="8872777911145321141">Pitaj me kada web lokacija želi koristiti moje uređaje i podatke virtuelne realnosti (preporučeno)</translation>
 <translation id="8874184842967597500">Nije povezano</translation>
+<translation id="8875775314572167244">Postavke etherneta</translation>
 <translation id="8876307312329369159">Ovu postavku ne možete promijeniti u demo sesiji.</translation>
 <translation id="8877448029301136595">[glavni direktorij]</translation>
 <translation id="8878384954777710821">Deinstaliranje Plugin VM-a...</translation>
@@ -5804,6 +5838,7 @@
 <translation id="892706138619340876">Neke postavke su vraćene na zadano</translation>
 <translation id="8930351635855238750">Nove postavke kolačića postat će aktivne nakon ponovnog učitavanja stranice</translation>
 <translation id="8931394284949551895">Novi uređaji</translation>
+<translation id="8931475688782629595">Upravljajte sadržajem koji sinhronizirate</translation>
 <translation id="8932894639908691771">Opcije prekidača za pristup</translation>
 <translation id="8933960630081805351">&amp;Prikaži u Finderu</translation>
 <translation id="8934732568177537184">Nastavi</translation>
@@ -5961,6 +5996,7 @@
 <translation id="9148126808321036104">Prijavi se ponovo</translation>
 <translation id="9149866541089851383">Uredi…</translation>
 <translation id="9150045010208374699">Korištenje kamere</translation>
+<translation id="9150429437595727962">Postavke WiFi mreže</translation>
 <translation id="9153934054460603056">Sačuvaj identitet i lozinku</translation>
 <translation id="9154194610265714752">Ažurirano</translation>
 <translation id="91568222606626347">Napravi prečicu…</translation>
@@ -6022,6 +6058,7 @@
 <translation id="945522503751344254">Slanje povratnih informacija</translation>
 <translation id="947329552760389097">&amp;Provjeri elemente</translation>
 <translation id="952992212772159698">Nije aktivirano</translation>
+<translation id="956500788634395331">Zaštićeni ste od potencijalno štetnih ekstenzija</translation>
 <translation id="957960681186851048">Ova web lokacija je pokušala automatski preuzeti više fajlova</translation>
 <translation id="9580706199804957">Povezivanje s Googleovim uslugama nije uspjelo</translation>
 <translation id="960719561871045870">Kôd operatera</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 1a4515b0..6259f88 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Configuració d'emmagatzematge d'Adobe Flash Player</translation>
 <translation id="1274997165432133392">Galetes i altres dades dels llocs web</translation>
 <translation id="1280820357415527819">S'estan cercant xarxes mòbils</translation>
+<translation id="1280965841156951489">Edita els fitxers</translation>
 <translation id="1282420830958964167">S'ha esgotat el límit que els teus pares han definit per a l'aplicació <ph name="APP_NAME" />. Demà podràs utilitzar-la durant <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">No tradueixis mai aquest lloc</translation>
 <translation id="1285484354230578868">Emmagatzemar les dades al compte de Google Drive</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Porpra fosc</translation>
 <translation id="1692799361700686467">S'admeten les galetes de diversos llocs.</translation>
 <translation id="1697150536837697295">Art</translation>
+<translation id="1697686431566694143">Edita el fitxer</translation>
 <translation id="1698122934742150150">Només la sessió d'incògnit actual</translation>
 <translation id="1698650002254827833">La llista d'aplicacions no es pot carregar. Torna-ho a provar.</translation>
 <translation id="1701062906490865540">Suprimeix aquesta persona</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">No hi ha cap component instal·lat.</translation>
 <translation id="1932098463447129402">No abans</translation>
 <translation id="1933809209549026293">Connecteu un cursor o un teclat. Si feu servir un dispositiu Bluetooth, assegureu-vos que estigui preparat per a la sincronització.</translation>
+<translation id="1936931585862840749">Utilitza un número per indicar quantes còpies vols imprimir (entre 1 i <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">No es pot importar el tipus d'arquitectura de contenidors<ph name="ARCHITECTURE_CONTAINER" /> amb aquest dispositiu, que és <ph name="ARCHITECTURE_DEVICE" />. Pots provar de restaurar el contenidor en un altre dispositiu o accedir als fitxers que inclou la imatge del contenidor obrint l'aplicació Fitxers.</translation>
 <translation id="1938351510777341717">Ordre externa</translation>
 <translation id="1940546824932169984">Dispositius connectats</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Posa el focus en aquesta pestanya</translation>
 <translation id="2344028582131185878">Baixades automàtiques</translation>
 <translation id="2345723121311404059">1 pàgina a <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Servei SODA</translation>
 <translation id="2347644257713614136">L'ús de Hangouts i Cast for Education està regit per la política de privadesa de Google.</translation>
 <translation id="2348176352564285430">Aplicació: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">S'ha tornat a carregar</translation>
@@ -1045,6 +1049,7 @@
 <translation id="2422125132043002186">S'ha cancel·lat la restauració de Linux</translation>
 <translation id="2423578206845792524">De&amp;sa la imatge com a...</translation>
 <translation id="2428510569851653187">Descriu què feies quan la pestanya s'ha bloquejat</translation>
+<translation id="2428939361789119025">Desactiva la Wi‑Fi</translation>
 <translation id="2431027948063157455">L'Assistent de Google no s'ha pogut carregar. Comprova la connexió a Internet i tornar-ho a provar.</translation>
 <translation id="2432753757290432042">Cal actualitzar Linux (versió beta)</translation>
 <translation id="2433452467737464329">Afegiu un paràmetre de consulta a l'URL per actualitzar la pàgina automàticament: chrome://network/?refresh=&lt;seg.&gt;</translation>
@@ -1462,6 +1467,7 @@
 <translation id="2944060181911631861">Envia dades d'ús i de diagnòstic. Ajuda a millorar la teva experiència a Android enviant automàticament a Google dades de diagnòstic, del dispositiu i d''ús d'aplicacions. Aquestes dades ajudaran a millorar l'estabilitat del sistema i de les aplicacions, entre altres característiques. Una part de les dades agregades també serà útil per a les aplicacions i els col·laboradors de Google, com ara els desenvolupadors d'Android. Si tens activada l'opció Activitat al web i en aplicacions addicional, és possible que aquestes dades es desin al teu Compte de Google. <ph name="BEGIN_LINK1" />Més informació<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Afegeix una connexió</translation>
 <translation id="2947605845283690091">La navegació web hauria de ser ràpida. Dedica ara un moment a <ph name="BEGIN_LINK" />consultar les extensions<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{Hi ha 1 extensió potencialment perjudicial desactivada. També la pots suprimir.}other{Hi ha # extensions potencialment perjudicials desactivades. També les pots suprimir.}}</translation>
 <translation id="2948300991547862301">Ves a <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Un navegador web ràpid, senzill i segur dissenyat per al web modern.</translation>
 <translation id="2949289451367477459">Utilitza la ubicació. Permet que les aplicacions i els serveis amb permís d'ubicació utilitzin la ubicació del dispositiu. Google pot recollir dades d'ubicació periòdicament i utilitzar-les de manera anònima per millorar la precisió de la ubicació i els serveis basats en la ubicació. <ph name="BEGIN_LINK1" />Més informació<ph name="END_LINK1" /></translation>
@@ -1542,6 +1548,7 @@
 <translation id="3067198179881736288">Vols instal·lar l'aplicació?</translation>
 <translation id="3067198360141518313">Executa aquest connector</translation>
 <translation id="3071624960923923138">Pots fer clic aquí per obrir una pestanya nova</translation>
+<translation id="3072775339180057696">Vols permetre que el lloc web vegi <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Per començar el procés de Powerwash, cal que reinicieu el dispositiu. Després de fer-ho, haureu de confirmar que voleu continuar.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Les dades d'inici de sessió s'han suprimit</translation>
@@ -1554,6 +1561,7 @@
 <translation id="3085412380278336437">El lloc web pot utilitzar la càmera</translation>
 <translation id="3085752524577180175">Amfitrió SOCKS</translation>
 <translation id="3088052000289932193">El lloc web fa servir MIDI</translation>
+<translation id="3088128611727407543">S'està preparant el perfil de l'aplicació...</translation>
 <translation id="3088325635286126843">&amp;Canvia el nom...</translation>
 <translation id="3089137131053189723">S'ha esborrat la cerca</translation>
 <translation id="3090193911106258841">S'està accedint a l'entrada d'àudio i de vídeo</translation>
@@ -1593,6 +1601,7 @@
 
 Descripció: <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Aplicacions de Chrome</translation>
+<translation id="3150693969729403281">Executa la comprovació de seguretat ara</translation>
 <translation id="3150927491400159470">Torna a carregar de manera forçada</translation>
 <translation id="315116470104423982">Dades mòbils</translation>
 <translation id="3151539355209957474">Hora d'inici</translation>
@@ -1685,6 +1694,7 @@
 <translation id="3282568296779691940">Inicia la sessió a Chrome</translation>
 <translation id="3285322247471302225">Pes&amp;tanya nova</translation>
 <translation id="328571385944182268">Vols desar les contrasenyes?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> podrà veure <ph name="FILENAME" /> mentre no tanquis totes les pestanyes de: <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Les extensions que funcionen amb el mode de desenvolupador poden malmetre el vostre ordinador. Si no sou desenvolupador, hauríeu de desactivar aquestes extensions per continuar protegit.</translation>
 <translation id="3289856944988573801">Per comprovar si hi ha actualitzacions, feu servir Ethernet o Wi-Fi.</translation>
 <translation id="3290356915286466215">No protegida</translation>
@@ -1793,6 +1803,7 @@
 <translation id="344630545793878684">Llegir les dades d'una sèrie de llocs web</translation>
 <translation id="3448086340637592206">Condicions addicionals de Google Chrome i Chrome OS</translation>
 <translation id="3448492834076427715">Actualitza el compte</translation>
+<translation id="3449393517661170867">Finestra amb pestanyes nova</translation>
 <translation id="3449839693241009168">Premeu <ph name="SEARCH_KEY" /> per enviar ordres a <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Percentatge d'ocupació de l'estat d'inactivitat</translation>
 <translation id="3451332697983754369">Sincronitza el meu <ph name="DEVICE_TYPE" /></translation>
@@ -1974,6 +1985,7 @@
 <translation id="3681311097828166361">Gràcies pels teus suggeriments. Ara mateix no tens connexió, de manera que el teu informe s'enviarà més tard.</translation>
 <translation id="3682824389861648626">Llindar de moviment</translation>
 <translation id="3683524264665795342">Sol·licitud de compartició de pantalla de <ph name="APP_NAME" /></translation>
+<translation id="3686074530047028092">Compte d'educació</translation>
 <translation id="368789413795732264">S'ha produït un error quan s'intentava escriure el fitxer: <ph name="ERROR_TEXT" /></translation>
 <translation id="3688507211863392146">Escriure en fitxers i carpetes que s'obrin a l'aplicació</translation>
 <translation id="3688526734140524629">Canvia el canal</translation>
@@ -2042,6 +2054,7 @@
 <translation id="3759933321830434300">Bloquejar elements de pàgines web</translation>
 <translation id="3760460896538743390">Inspecciona la &amp;pàgina de fons</translation>
 <translation id="37613671848467444">Obre en una &amp;finestra d'incògnit</translation>
+<translation id="3761556954875533505">Vols permetre que el lloc web editi els fitxers?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Es comunica amb un dispositiu USB}other{Es comunica amb # dispositius USB}}</translation>
 <translation id="3765246971671567135">No s'ha pogut llegir la política del mode de demostració sense connexió.</translation>
 <translation id="3768037234834996183">S'estan sincronitzant les preferències...</translation>
@@ -2177,6 +2190,7 @@
 <translation id="3927932062596804919">Denega</translation>
 <translation id="3928570707778085600">Vols desar els canvis a <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Aquestes extensions poden veure i modificar la informació d'aquest lloc web.</translation>
+<translation id="3930155420525972941">Mou el grup a una finestra nova</translation>
 <translation id="3930737994424905957">S'estan cercant dispositius</translation>
 <translation id="3930968231047618417">Color de fons</translation>
 <translation id="3933283459331715412">Restaura la contrasenya suprimida de: <ph name="USERNAME" /></translation>
@@ -2334,6 +2348,7 @@
 <translation id="4130750466177569591">Accepto</translation>
 <translation id="413121957363593859">Components</translation>
 <translation id="4131410914670010031">Blanc i negre</translation>
+<translation id="4133076602192971179">Obre l'aplicació per canviar la contrasenya</translation>
 <translation id="4136203100490971508">La funció Llum nocturna es desactivarà automàticament a l'alba</translation>
 <translation id="41365691917097717">Si continues, s'activarà la depuració d'ADB per crear i provar les aplicacions d'Android. Tingues en compte que aquesta acció permet instal·lar aplicacions d'Android que Google no ha verificat. Per desactivar ADB, hauràs de restablir les dades de fàbrica del dispositiu.</translation>
 <translation id="4138267921960073861">Mostra els noms d'usuari i les fotos a la pantalla d'inici de sessió</translation>
@@ -2445,6 +2460,7 @@
 <translation id="4330387663455830245">No tradueixis mai de: <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Configura els controls parentals</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 amb encriptació RSA</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{L'administrador ha tornat a activar 1 extensió potencialment perjudicial}other{L'administrador ha tornat a activar # extensions potencialment perjudicials}}</translation>
 <translation id="4336434711095810371">Esborra totes les dades</translation>
 <translation id="4336979451636460645">Si voleu veure els registres de xarxa, consulteu: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> es vol comunicar amb l'aplicació "<ph name="EXTENSION_NAME" />"</translation>
@@ -2751,6 +2767,7 @@
 <translation id="4785719467058219317">Estàs utilitzant una clau de seguretat que no està registrada en aquest lloc web</translation>
 <translation id="4788092183367008521">Comprova la connexió a la xarxa i torna-ho a provar.</translation>
 <translation id="4792711294155034829">&amp;Informa d'un problema...</translation>
+<translation id="4794810983896241342"><ph name="BEGIN_LINK" />L'administrador<ph name="END_LINK" /> gestiona les actualitzacions</translation>
 <translation id="479536056609751218">Pàgina web, només HTML</translation>
 <translation id="4798236378408895261">Adjunta <ph name="BEGIN_LINK" />registres de Bluetooth<ph name="END_LINK" /> (ús intern de Google)</translation>
 <translation id="4801448226354548035">Amaga els comptes</translation>
@@ -2846,6 +2863,7 @@
 <translation id="4908811072292128752">Obre una pestanya nova per navegar per dos llocs web a la vegada</translation>
 <translation id="4909038193460299775">Com que <ph name="DOMAIN" /> gestiona aquest compte, s'esborraran d'aquest dispositiu les adreces d'interès, l'historial, les contrasenyes i altres opcions de configuració. No obstant això, les dades continuaran emmagatzemades al teu compte de Google i es podran gestionar al <ph name="BEGIN_LINK" />Tauler de control de Google<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Activacions en estat de repòs</translation>
+<translation id="4916542008280060967">Vols permetre que el lloc web editi <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Canvia a un navegador segur</translation>
 <translation id="4917385247580444890">Forta</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> es vol comunicar amb l'extensió "<ph name="EXTENSION_NAME" />"</translation>
@@ -2917,6 +2935,7 @@
 <translation id="5017633213534173756">Recorda</translation>
 <translation id="5018207570537526145">Obre el lloc web de l'extensió</translation>
 <translation id="5021750053540820849">Encara no s'ha actualitzat</translation>
+<translation id="5026806129670917316">Activa la Wi-Fi</translation>
 <translation id="5026874946691314267">No tornis a mostrar aquest missatge</translation>
 <translation id="5027550639139316293">Certificat de correu electrònic</translation>
 <translation id="5027562294707732951">Afegeix l'extensió</translation>
@@ -3029,6 +3048,7 @@
 <translation id="5184063094292164363">Consola de &amp;JavaScript</translation>
 <translation id="5184209580557088469">Ja existeix un tiquet amb aquest nom d'usuari</translation>
 <translation id="5184662919967270437">S'està actualitzant el dispositiu</translation>
+<translation id="5185359571430619712">Revisa les extensions</translation>
 <translation id="5185386675596372454">La darrera versió de "<ph name="EXTENSION_NAME" />" s'ha desactivat perquè necessita més permisos.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> vol baixar diversos fitxers</translation>
@@ -3080,6 +3100,7 @@
 <translation id="5260334392110301220">Cometes intel·ligents</translation>
 <translation id="5260508466980570042">No s'ha pogut verificar el correu electrònic o la contrasenya. Torna-ho a provar.</translation>
 <translation id="5261683757250193089">Obre a Web Store</translation>
+<translation id="5262178194499261222">Suprimeix la contrasenya</translation>
 <translation id="5264148714798105376">Aquesta acció pot tardar més o menys un minut.</translation>
 <translation id="5264252276333215551">Connecteu-vos a Internet per iniciar l'aplicació en el mode quiosc.</translation>
 <translation id="5265562206369321422">Fora de línia des de fa més d'una setmana</translation>
@@ -3506,6 +3527,7 @@
 <translation id="5833726373896279253">Només el propietari d'aquesta configuració la pot modificar:</translation>
 <translation id="5834581999798853053">Queda cosa de <ph name="TIME" /> minuts</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" />: la càmera o el micròfon estan enregistrant contingut</translation>
+<translation id="5841270259333717135">Configura Ethernet</translation>
 <translation id="5842497610951477805">Activa el Bluetooth</translation>
 <translation id="5846200638699387931">Error de sintaxi de la relació: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Ja s'ha afegit</translation>
@@ -3551,6 +3573,7 @@
 <translation id="5900358982890952556">Actualitza Linux (versió beta)</translation>
 <translation id="5901494423252125310">La porta de la impressora és oberta</translation>
 <translation id="5901630391730855834">Groc</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Has tornat a activar 1 extensió potencialment perjudicial}other{Has tornat a activar # extensions potencialment perjudicials}}</translation>
 <translation id="5906655207909574370">Gairebé heu acabat. Reinicieu el dispositiu per completar l'actualització.</translation>
 <translation id="5906732635754427568">Les dades associades a aquesta aplicació se suprimiran del dispositiu.</translation>
 <translation id="5908769186679515905">Impedeix que els llocs executin Flash</translation>
@@ -3580,6 +3603,7 @@
 <translation id="59324397759951282">Dispositiu USB fabricat per <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Número de sèrie</translation>
 <translation id="5933376509899483611">Zona horària</translation>
+<translation id="5935656526031444304">Gestiona Navegació segura</translation>
 <translation id="5938002010494270685">Hi ha una actualització de seguretat disponible</translation>
 <translation id="5939518447894949180">Restableix</translation>
 <translation id="5941153596444580863">Afegeix una persona...</translation>
@@ -3623,6 +3647,7 @@
 <translation id="5993807461461235661">Aquesta pujada està encriptada i infringeix les polítiques de seguretat de la teva organització.</translation>
 <translation id="5997337190805127100">Més informació sobre l'accés als llocs web</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultats per a "<ph name="SEARCH_TEXT" />"</translation>
+<translation id="6002210667729577411">Mou el grup a una finestra nova</translation>
 <translation id="6002458620803359783">Veus preferides</translation>
 <translation id="6006484371116297560">Clàssic</translation>
 <translation id="6007240208646052708">La cerca per veu en el teu idioma no està disponible.</translation>
@@ -4161,6 +4186,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Mostra la drecera de l'escriptori</translation>
 <translation id="6740234557573873150">S'ha aturat la baixada del fitxer <ph name="FILE_NAME" /></translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />L'administrador<ph name="END_LINK" /> ha desactivat Navegació segura</translation>
 <translation id="6742339027238151589">Accessible a l'script</translation>
 <translation id="6745592621698551453">Actualitza ara</translation>
 <translation id="6746124502594467657">Mou avall</translation>
@@ -4419,6 +4445,7 @@
     <ph name="BEGIN_BOLD" />Tingues en compte el següent:<ph name="END_BOLD" /> Pot ser que una veu o una gravació similars a la teva veu també puguin accedir al teu Assistent. Pots suprimir el permís de Voice Match més tard desactivant-lo a Configuració de l'Assistent.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Intercanviar dades amb els dispositius <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">El dispositiu es reiniciarà quan les actualitzacions s'hagin completat.</translation>
 <translation id="7098389117866926363">Dispositiu USB-C (port posterior esquerre)</translation>
 <translation id="7098447629416471489">Els altres motors de cerca desats es mostraran aquí</translation>
 <translation id="7099337801055912064">No es poden carregar fitxers PPD grans. La mida màxima és de 250 kB.</translation>
@@ -4891,6 +4918,7 @@
 <translation id="7766807826975222231">Visita guiada</translation>
 <translation id="7766838926148951335">Accepta els permisos</translation>
 <translation id="7769672763586021400">Identificador del model</translation>
+<translation id="7770651108375708429">Desconnecta la Wi-Fi</translation>
 <translation id="7771452384635174008">Disseny</translation>
 <translation id="7772032839648071052">Confirmeu la frase de contrasenya</translation>
 <translation id="7772127298218883077">Informació sobre <ph name="PRODUCT_NAME" /></translation>
@@ -5049,6 +5077,7 @@
 <translation id="7939412583708276221">Continua de totes maneres</translation>
 <translation id="7942349550061667556">Vermell</translation>
 <translation id="7943837619101191061">Afegeix una ubicació...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 contrasenya en perill}other{# contrasenyes en perill}}</translation>
 <translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" es vol connectar</translation>
 <translation id="7946586320617670168">L'origen ha de ser segur</translation>
 <translation id="794676567536738329">Confirma els permisos</translation>
@@ -5148,6 +5177,7 @@
 <translation id="8059417245945632445">&amp;Inspecciona els dispositius</translation>
 <translation id="8059456211585183827">No hi ha cap impressora disponible per desar.</translation>
 <translation id="8063235345342641131">Avatar verd predeterminat</translation>
+<translation id="8063535366119089408">Mostra el fitxer</translation>
 <translation id="8064671687106936412">Clau:</translation>
 <translation id="8068253693380742035">Toca per iniciar la sessió</translation>
 <translation id="8068809649322155577">Amb aquesta acció s'esborraran totes les dades i galetes emmagatzemades per <ph name="SITE_GROUP_NAME" />, per tots els llocs web que contingui i per les seves aplicacions instal·lades.</translation>
@@ -5212,6 +5242,7 @@
 <translation id="8152091997436726702">El registre de la impressora ha esgotat el temps d'espera. En aquest tipus d'accions, heu de confirmar el registre a la impressora.</translation>
 <translation id="8154790740888707867">No hi ha cap fitxer</translation>
 <translation id="815491593104042026">L'autenticació ha fallat perquè s'ha configurat per utilitzar un URL no segur (<ph name="BLOCKED_URL" />). Contacteu amb l'administrador.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{No s'ha trobat cap contrasenya en perill}=1{{COUNT} contrasenya en perill}other{{COUNT} contrasenyes en perill}}</translation>
 <translation id="8157704005178149728">S'està configurant la supervisió</translation>
 <translation id="8158117992543756526">Aquest dispositiu va deixar de rebre actualitzacions automàtiques de programari i seguretat a partir de: <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Error en configurar la confiança del certificat</translation>
@@ -5265,6 +5296,7 @@
 <translation id="8226742006292257240">A continuació, trobareu la contrasenya de TPM generada aleatòriament que s'ha assignat al vostre ordinador:</translation>
 <translation id="8227119283605456246">Adjunta un fitxer</translation>
 <translation id="8230134520748321204">Vols desar la contrasenya per a <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Configuració d'Internet</translation>
 <translation id="8234795456569844941">Ajuda els nostres enginyers a solucionar aquest problema. Explica'ns què ha passat just abans de rebre el missatge d'error del perfil:</translation>
 <translation id="8236123533334037984">La teva organització està analitzant aquesta pujada per comprovar que sigui segura.</translation>
 <translation id="8236917170563564587">Comparteix aquesta pestanya</translation>
@@ -5603,6 +5635,7 @@
 <translation id="8688579245973331962">No veieu el vostre nom?</translation>
 <translation id="8688591111840995413">Contrasenya incorrecta</translation>
 <translation id="8688672835843460752">Disponible</translation>
+<translation id="8691418731028620688">Connecta la Wi-Fi</translation>
 <translation id="8695825812785969222">Obre la &amp;ubicació...</translation>
 <translation id="869884720829132584">Menú d'aplicacions</translation>
 <translation id="869891660844655955">Data de caducitat</translation>
@@ -5762,6 +5795,7 @@
 <translation id="8872187374998143710">Reinicia el dispositiu per fer servir Plugin VM.</translation>
 <translation id="8872777911145321141">Pregunta'm quan un lloc web vulgui utilitzar les meves dades o els meus dispositius de realitat virtual (opció recomanada)</translation>
 <translation id="8874184842967597500">No connectat</translation>
+<translation id="8875775314572167244">Configuració d'Ethernet</translation>
 <translation id="8876307312329369159">Aquesta opció de configuració no es pot canviar durant una sessió de demostració.</translation>
 <translation id="8877448029301136595">[directori del nivell superior]</translation>
 <translation id="8878384954777710821">S'està desinstal·lant Plugin VM...</translation>
@@ -5803,6 +5837,7 @@
 <translation id="892706138619340876">S'han restablert algunes opcions de configuració</translation>
 <translation id="8930351635855238750">La nova configuració de galetes s'aplicarà quan tornis a carregar la pàgina</translation>
 <translation id="8931394284949551895">Dispositius nous</translation>
+<translation id="8931475688782629595">Gestiona què sincronitzes</translation>
 <translation id="8932894639908691771">Opcions d'accés amb interruptors</translation>
 <translation id="8933960630081805351">&amp;Mostra a Finder</translation>
 <translation id="8934732568177537184">Continua</translation>
@@ -5960,6 +5995,7 @@
 <translation id="9148126808321036104">Torna a iniciar la sessió</translation>
 <translation id="9149866541089851383">Edita...</translation>
 <translation id="9150045010208374699">Utilitzar la càmera</translation>
+<translation id="9150429437595727962">Configuració de la Wi-Fi</translation>
 <translation id="9153934054460603056">Desa la identitat i la contrasenya</translation>
 <translation id="9154194610265714752">S'ha actualitzat.</translation>
 <translation id="91568222606626347">Crea una drecera...</translation>
@@ -6021,6 +6057,7 @@
 <translation id="945522503751344254">Envia suggeriments</translation>
 <translation id="947329552760389097">&amp;Inspecciona els elements</translation>
 <translation id="952992212772159698">No activat</translation>
+<translation id="956500788634395331">Tens protecció contra les extensions potencialment perjudicials</translation>
 <translation id="957960681186851048">Aquest lloc web ha provat de baixar diversos fitxers automàticament</translation>
 <translation id="9580706199804957">No s'ha pogut establir la connexió amb els serveis de Google</translation>
 <translation id="960719561871045870">Codi d'operador</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index dc85694..d380501d 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Vymazat data také z těchto aplikací?</translation>
 <translation id="1045692658517323508">{0,plural, =1{Aktualizovat do 1 minuty}few{Aktualizovat do # minut}many{Aktualizovat do # minuty}other{Aktualizovat do # minut}}</translation>
 <translation id="1046635659603195359">Funkci rozpoznání hlasu Voice Match jste u Asistenta Google už zřejmě nastavili v jiném zařízení. Dřívější nahrávky lze použít k vytvoření hlasového modelu v tomto zařízení. Mělo by to trvat méně než minutu.</translation>
+<translation id="104710386808485638">Restartovat Linux?</translation>
 <translation id="1047431265488717055">Kopírovat te&amp;xt odkazu</translation>
 <translation id="1048286738600630630">Obrazovky</translation>
 <translation id="1049743911850919806">Anonymní režim</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Chcete-li exportovat certifikát klienta, přihlaste se prosím do zařízení <ph name="TOKEN_NAME" />.</translation>
 <translation id="1163931534039071049">Zobrazit zdrojový kód rámu</translation>
 <translation id="1164674268730883318">Vypnout v zařízení <ph name="DEVICE_TYPE" /> funkci Smart Lock?</translation>
+<translation id="1164891049599601209">Zadáno na klamavém webu</translation>
 <translation id="1164899421101904659">Zadejte klíč k odemknutí kódu PIN</translation>
 <translation id="1165039591588034296">Chyba</translation>
 <translation id="1166212789817575481">Zavřít karty napravo</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">Automatický režim veřejného terminálu</translation>
 <translation id="1545775234664667895">Nainstalován motiv <ph name="THEME_NAME" /></translation>
 <translation id="1546280085599573572">Toto rozšíření změnilo stránku, která se zobrazí po kliknutí na tlačítko Domovská stránka.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> chce nainstalovat <ph name="EXTENSION_TYPE" />, které může:</translation>
 <translation id="1549275686094429035">Povoleno ARC</translation>
 <translation id="1549788673239553762">Aplikace <ph name="APP_NAME" /> chce získat přístup ke svazku <ph name="VOLUME_NAME" />. Bude moci upravit nebo smazat vaše soubory.</translation>
 <translation id="1553538517812678578">neomezené</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">Plugin VM</translation>
 <translation id="1679810534535368772">Opravdu chcete skončit?</translation>
 <translation id="167983332380191032">Služba správy odeslala chybu protokolu HTTP.</translation>
+<translation id="1680841347983561661">Zkuste Google Play spustit znovu za chvíli.</translation>
 <translation id="1680849702532889074">Při instalaci vaší aplikace pro Linux došlo k chybě.</translation>
 <translation id="16815041330799488">Nepovolovat webům přístup k textu a obrázkům zkopírovaným do schránky</translation>
 <translation id="1682548588986054654">Nové anonymní okno</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559">Rozšíření <ph name="APP_NAME" /> selhalo. Kliknutím na tuto bublinu rozšíření obnovíte.</translation>
 <translation id="2025891858974379949">Nezabezpečený obsah</translation>
 <translation id="202918510990975568">Chcete-li nakonfigurovat zabezpečení a přihlášení, zadejte heslo</translation>
+<translation id="2030672406208960151">Otevřít terminál pro obnovení</translation>
 <translation id="2034346955588403444">Přidat jinou síť Wi-Fi</translation>
 <translation id="203574396658008164">Povolit psaní poznámek na obrazovce uzamčení</translation>
 <translation id="2037445849770872822">V tomto účtu Google je nastaven dohled. Chcete-li nastavit další rodičovskou kontrolu, vyberte Pokračovat.
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">PIN nebo heslo</translation>
 <translation id="2224444042887712269">Toto nastavení patří uživateli <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">Upravit název složky</translation>
+<translation id="2225864335125757863">Chcete-li zajistit bezpečí svého účtu, ihned změňte tato hesla:</translation>
 <translation id="2226449515541314767">U tohoto webu byla zablokována úplná kontrola zařízení MIDI.</translation>
 <translation id="222704500187107962">Až opustíte aktuální anonymní relaci, bude tato výjimka automaticky odstraněna</translation>
 <translation id="2227179592712503583">Odebrat návrh</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">Přechod na plochu</translation>
 <translation id="2387458720915042159">Typ připojení k proxy serveru</translation>
 <translation id="2391419135980381625">Standardní písmo</translation>
+<translation id="2392163307141705938">Byl vyčerpán časový limit, který pro <ph name="IDS_SHORT_PRODUCT_NAME" /> nastavili rodiče.</translation>
 <translation id="2392369802118427583">Aktivovat</translation>
 <translation id="2394566832561516196">Nastavení budou vymazána při příštím opětovném načtení.</translation>
 <translation id="2395616325548404795">Vaše zařízení <ph name="DEVICE_TYPE" /> bylo úspěšně zaregistrováno do podnikové správy, ale neodeslalo informace o položce a umístění. Zadejte prosím tyto informace pro toto zařízení ručně z administrátorské konzole.</translation>
@@ -1085,6 +1092,7 @@
 <translation id="247949520305900375">Sdílet zvuk</translation>
 <translation id="2480868415629598489">Upravovat data, která kopírujete a vkládáte</translation>
 <translation id="2482878487686419369">Oznámení</translation>
+<translation id="2483610039979585156">Dokud nezavřete všechny karty webu <ph name="ORIGIN" />, bude web <ph name="ORIGIN" /> moci upravovat soubor <ph name="FILENAME" /></translation>
 <translation id="2484959914739448251">Chcete-li vymazat údaje o prohlížení ze všech synchronizovaných zařízení i z účtu Google, <ph name="BEGIN_LINK" />zadejte heslovou frázi<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Heslo bylo uloženo na tomto zařízení</translation>
 <translation id="2485422356828889247">Odinstalovat</translation>
@@ -1298,6 +1306,7 @@
 <translation id="274290345632688601">Obnovování aplikací a souborů systému Linux</translation>
 <translation id="2743387203779672305">Zkopírovat do schránky</translation>
 <translation id="2745080116229976798">Kvalifikované podřízení Microsoft</translation>
+<translation id="2748061034695037846">Web <ph name="DOMAIN" /> je pozastaven</translation>
 <translation id="2749756011735116528">Přihlásit se do prohlížeče <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">Zkontrolovat pravopis a gramatiku</translation>
 <translation id="2751739896257479635">Ověření EAP Phase 2</translation>
@@ -1306,6 +1315,7 @@
 <translation id="275662540872599901">obrazovka je vypnutá</translation>
 <translation id="2762441749940182211">Kamera je blokována</translation>
 <translation id="2765217105034171413">Malé</translation>
+<translation id="2766161002040448006">Požádat rodiče</translation>
 <translation id="276969039800130567">Jste přihlášeni pomocí účtu <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="2770465223704140727">Odstranit ze seznamu</translation>
 <translation id="2770690685823456775">Exportujte hesla do jiné složky</translation>
@@ -1557,6 +1567,7 @@
 <translation id="3115580024857770654">Sbalit vše</translation>
 <translation id="3117362587799608430">Dok není plně kompatibilní</translation>
 <translation id="3118319026408854581">Nápověda aplikace <ph name="PRODUCT_NAME" /></translation>
+<translation id="3118654181216384296">Zkuste Linux spustit znovu za chvíli.</translation>
 <translation id="3120430004221004537">Šifrování je pro danou operaci na zařízení <ph name="DEVICE_NAME" /> nedostatečné.</translation>
 <translation id="3121793941267913344">Resetování tohoto zařízení <ph name="IDS_SHORT_PRODUCT_NAME" /></translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1566,6 +1577,7 @@
 <translation id="3127156390846601284">Touto akcí vymažete všechna data uložená v zařízení pro všechny zobrazené weby. Chcete pokračovat?</translation>
 <translation id="3127860049873093642">Chcete-li předejít problémům s nabíjením a výkonem, používejte kompatibilní síťový adaptér Dell nebo USB Type-C.</translation>
 <translation id="3129173833825111527">Levý okraj</translation>
+<translation id="3129215702932019810">Při spouštění aplikace došlo k chybě</translation>
 <translation id="3130528281680948470">Zařízení bude resetováno a budou odstraněny veškeré uživatelské účty a místní data. Tuto operaci nelze vrátit zpět.</translation>
 <translation id="313205617302240621">Zapomněli jste heslo?</translation>
 <translation id="3132996321662585180">Každý den obnovit</translation>
@@ -1781,6 +1793,7 @@
 <translation id="3441653493275994384">Obrazovka</translation>
 <translation id="3445925074670675829">Zařízení USB Type-C</translation>
 <translation id="344630545793878684">Čtení vašich dat na mnoha webech</translation>
+<translation id="3448086340637592206">Dodatečné smluvní podmínky prohlížeče Google Chrome a systému Chrome OS</translation>
 <translation id="3448492834076427715">Aktualizovat účet</translation>
 <translation id="3449839693241009168">Stiskem klávesy <ph name="SEARCH_KEY" /> odešlete příkazy pro rozšíření <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Procentuální zastoupení stavu nečinnosti</translation>
@@ -2128,6 +2141,7 @@
 <translation id="3873423927483480833">Zobrazit kódy PIN</translation>
 <translation id="3873915545594852654">Došlo k problému s ARC++.</translation>
 <translation id="3879748587602334249">Správce stahování</translation>
+<translation id="3881321138433527084">Bezpečné prohlížení je vypnuto. Chcete-li být na webu v bezpečí, zapněte ho.</translation>
 <translation id="3882165008614329320">Existující video z fotoaparátu nebo soubor</translation>
 <translation id="3886446263141354045">Vaše žádost o přístup k tomuto webu byla odeslána uživateli <ph name="NAME" />.</translation>
 <translation id="3888550877729210209">Pořizování poznámek pomocí aplikace <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2468,6 +2482,7 @@
 <translation id="4384652540891215547">Aktivovat rozšíření</translation>
 <translation id="438503109373656455">Hříbě</translation>
 <translation id="4387004326333427325">Ověřovací certifikát byl vzdáleně odmítnut</translation>
+<translation id="4387890294700445764">Prolomená hesla</translation>
 <translation id="4389091756366370506">Uživatel <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Anonymní}few{# otevřená anonymní okna}many{# otevřeného anonymního okna}other{# otevřených anonymních oken}}</translation>
 <translation id="439266289085815679">Konfiguraci rozhraní Bluetooth spravuje <ph name="USER_EMAIL" />.</translation>
@@ -2499,6 +2514,7 @@
 <translation id="4429030830601238961">Tato data porušují bezpečnostní zásady organizace a nelze je vložit.</translation>
 <translation id="4430019312045809116">Hlasitost</translation>
 <translation id="4430369329743628066">Byla přidána záložka</translation>
+<translation id="4432621511648257259">Nesprávné heslo</translation>
 <translation id="4434045419905280838">Vyskakovací okna a přesměrování</translation>
 <translation id="443454694385851356">Starší (není bezpečné)</translation>
 <translation id="443475966875174318">Aktualizujte nebo odstraňte nekompatibilní aplikace</translation>
@@ -2748,6 +2764,7 @@
 <translation id="4808667324955055115">Byla zablokována vyskakovací okna:</translation>
 <translation id="480990236307250886">Otevřít domovskou stránku</translation>
 <translation id="4811503964269049987">Přidat vybranou kartu do skupiny</translation>
+<translation id="4811818760963189951">Vypnuto, protože jste zakázali synchronizaci historie</translation>
 <translation id="4813136279048157860">Moje obrázky</translation>
 <translation id="4813512666221746211">Chyba sítě</translation>
 <translation id="4814378367953456825">Zadejte název tohoto otisku prstu</translation>
@@ -2777,6 +2794,7 @@
 <translation id="4850669014075537160">Posouvání</translation>
 <translation id="4850886885716139402">Zobrazit</translation>
 <translation id="4853020600495124913">Otevřít v &amp;novém okně</translation>
+<translation id="4854317507773910281">Vyber účet rodiče, který to schválí</translation>
 <translation id="485480310608090163">Další nastavení a oprávnění</translation>
 <translation id="4856478137399998590">Datové služby jsou aktivovány a můžete je začít používat</translation>
 <translation id="4856855265648545577">V režimu tabletu zobrazovat na poličce tlačítka Spouštěč, Zpět a Přehled. Když je aktivovaná funkce ChromeVox (hlasová zpětná vazba) či Přístup pomocí přepínačů, je tato možnost zapnutá.</translation>
@@ -2913,10 +2931,12 @@
 <translation id="5040823038948176460">Další nastavení obsahu</translation>
 <translation id="5042282098504489593">Chcete-li zařízení <ph name="USB_DEVICE_NAME" /> připojit k Linuxu, otevřete Nastavení</translation>
 <translation id="5043913660911154449">Případně zadejte PPD tiskárny <ph name="LINK_BEGIN" />Další informace<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Vypnuto, protože jste synchronizovaná data zašifrovali pomocí heslové fráze</translation>
 <translation id="5045550434625856497">Nesprávné heslo</translation>
 <translation id="504561833207953641">Otevírání v existující relaci prohlížeče.</translation>
 <translation id="5047421709274785093">Bránit webům v používání senzorů pohybu a světla</translation>
 <translation id="5050042263972837708">Název skupiny</translation>
+<translation id="5051073330196664891">Univerzální smluvní podmínky společnosti Google</translation>
 <translation id="5051836348807686060">V jazycích, které jste zadali, není kontrola pravopisu podporována</translation>
 <translation id="5052499409147950210">Upravit web</translation>
 <translation id="5053604404986157245">Náhodně generované heslo TPM není k dispozici. Po použití funkce Powerwash je to normální.</translation>
@@ -2954,6 +2974,7 @@
 <translation id="5097002363526479830">Připojení k síti <ph name="NAME" /> se nezdařilo: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Otevřít všechny záložky</translation>
 <translation id="5101839224773798795">Při zastavení kurzoru automaticky kliknout</translation>
+<translation id="5107443654503185812">Rozšíření vypnulo funkci Bezpečné prohlížení</translation>
 <translation id="5108967062857032718">Nastavení – odstranit aplikace Android</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">Ukončit anonymní režim</translation>
@@ -3040,6 +3061,7 @@
 <translation id="523505283826916779">Nastavení usnadnění přístupu</translation>
 <translation id="5235750401727657667">Nahradit stránku, která se zobrazí po otevření nové karty</translation>
 <translation id="5238278114306905396">Aplikace <ph name="EXTENSION_NAME" /> byla automaticky odebrána.</translation>
+<translation id="5239730228370806996">Tato přetažená data porušují bezpečnostní zásady vaší organizace. Chcete přesto pokračovat?</translation>
 <translation id="5241128660650683457">Čtení veškerých dat na navštívených webových stránkách</translation>
 <translation id="5242724311594467048">Aktivovat rozšíření <ph name="EXTENSION_NAME" />?</translation>
 <translation id="5243522832766285132">Zkuste to znovu za okamžik</translation>
@@ -3327,6 +3349,7 @@
 <translation id="5618075537869101857">Kruci, aplikaci pro režim veřejného terminálu se nepodařilo spustit.</translation>
 <translation id="5618333180342767515">(Může to trvat i několik minut.)</translation>
 <translation id="56197088284879152">Připojení ke vzdálenému zařízení <ph name="DEVICE_NAME" /> je přetížené.</translation>
+<translation id="5620163320393916465">Nemáte žádná uložená hesla</translation>
 <translation id="5620549857835247159">V režimu tabletu zobrazovat na poličce tlačítka Spouštěč, Zpět a Přehled.</translation>
 <translation id="5620568081365989559">Nástroj DevTools požaduje úplný přístup ke složce <ph name="FOLDER_PATH" />. Dejte pozor, abyste mu nezpřístupnili žádné citlivé informace.</translation>
 <translation id="5620612546311710611">statistiky o využívání</translation>
@@ -3420,6 +3443,7 @@
 <translation id="5747785204778348146">Pro vývojáře – nestabilní</translation>
 <translation id="5747809636523347288">Vl&amp;ožit a přejít na adresu <ph name="URL" /></translation>
 <translation id="5750324801516359607">Daleko</translation>
+<translation id="5751887393582880060">Tato nahrávaná data porušují bezpečnostní zásady vaší organizace. Chcete přesto pokračovat?</translation>
 <translation id="5756163054456765343">C&amp;entrum nápovědy</translation>
 <translation id="5759728514498647443">Dokumenty odeslané k tisku prostřednictvím aplikace <ph name="APP_NAME" /> lze číst v aplikaci <ph name="APP_NAME" />.</translation>
 <translation id="5763751966069581670">Nebyla nalezena žádná zařízení USB</translation>
@@ -3629,6 +3653,7 @@
 <translation id="6040852767465482106">Anonymní identita</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Služby určování polohy Google používají zdroje, jako jsou sítě Wi-Fi, mobilní sítě a senzory, pomocí kterých se snaží odhadnout polohu vašeho zařízení.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Určování polohy můžete vypnout tím, že v zařízení deaktivujete hlavní nastavení polohy. V nastavení polohy můžete také vypnout používání sítí Wi-Fi, mobilních sítí a senzorů k určování polohy.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409">Dokud nezavřete všechny karty webu <ph name="ORIGIN" />, bude web <ph name="ORIGIN" /> moci číst soubory ve složce <ph name="FOLDERNAME" /></translation>
 <translation id="6041155700700864984">Ukončit režim celé obrazovky</translation>
 <translation id="604124094241169006">Automaticky</translation>
 <translation id="6042308850641462728">Více</translation>
@@ -3690,6 +3715,7 @@
 <translation id="6104311680260824317">Zařízení do domény nelze přidat. Server nepodporuje zadané typy šifrování Kerberos. Zkontrolujte nastavení šifrování v části Další možnosti.</translation>
 <translation id="6104641575223043670">Organizace <ph name="ORGANIZATION_NAME" /> vyžaduje okamžitou aktualizaci tohoto zařízení</translation>
 <translation id="6106186653986077033">Plugin VM vyžaduje licenci</translation>
+<translation id="6107047744202598802">Umožňuje webům pamatovat si vaši návštěvu a sledovat vás a webu</translation>
 <translation id="6112294629795967147">Klepnutím změníte velikost</translation>
 <translation id="6112727384379533756">Přidat lístek</translation>
 <translation id="6112931163620622315">Zkontrolujte telefon</translation>
@@ -3768,6 +3794,7 @@
 <translation id="622537739776246443">Profil bude smazán</translation>
 <translation id="6225475702458870625">Je k dispozici datové připojení z vašeho zařízení <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Soubor soukromého klíče (volitelné)</translation>
+<translation id="6227280783235722609">rozšíření</translation>
 <translation id="6228691855869374890">Tento web má úplnou kontrolu nad zařízeními MIDI.</translation>
 <translation id="6228720835160974792">Vygenerovat QR kód pro tento obrázek</translation>
 <translation id="6229890768313448549">Smluvní podmínky služby Google Play nelze načíst. Zkuste to prosím znovu.</translation>
@@ -3819,6 +3846,7 @@
 <translation id="6285120108426285413">Soubor <ph name="FILE_NAME" /> se běžně nestahuje a může být nebezpečný.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Nová tiskárna v síti}few{Nové tiskárny v síti}many{Nové tiskárny v síti}other{Nové tiskárny v síti}}</translation>
 <translation id="6286708577777130801">Podrobnosti uloženého hesla</translation>
+<translation id="6291163159361301370">Organizace <ph name="ORGANIZATION_NAME" /> vyžaduje, abyste před spuštěním Linuxu zálohovali data a resetovali tento Chromebook do továrního nastavení.</translation>
 <translation id="6291949900244949761">Zeptat se, když chce web získat přístup k zařízením USB (doporučeno)</translation>
 <translation id="6291953229176937411">Zobrazit ve &amp;službě Finder</translation>
 <translation id="6295158916970320988">Všechny weby</translation>
@@ -4015,6 +4043,7 @@
 <translation id="6561726789132298588">enter</translation>
 <translation id="656293578423618167">Cesta nebo název souboru jsou příliš dlouhé. Použijte kratší název nebo vyberte jiné umístění.</translation>
 <translation id="6563469144985748109">Správce vám přístup na web dosud neschválil.</translation>
+<translation id="6565955132287672866">Zařízení nebylo řádně vypnuto. Linux (Beta) je nutné nejprve restartovat.</translation>
 <translation id="6567688344210276845">Nelze načíst ikonu „<ph name="ICON" />“ pro akci stránky.</translation>
 <translation id="6569934958368283244">Jiní lidé</translation>
 <translation id="657402800789773160">&amp;Načíst tuto stránku znovu</translation>
@@ -4512,6 +4541,7 @@
 <translation id="7258225044283673131">Aplikace neodpovídá. Chcete-li ji zavřít, vyberte Ukončit aplikaci.</translation>
 <translation id="7258697411818564379">PIN byl přidán</translation>
 <translation id="7262004276116528033">Přihlašovací služba je hostována doménou <ph name="SAML_DOMAIN" />.</translation>
+<translation id="7266898409676782635">Nechte si zasílat tipy, nabídky a aktuality týkající se zařízení <ph name="DEVICE_TYPE" /> a poskytujte nám zpětnou vazbu. Můžete se kdykoli odhlásit.</translation>
 <translation id="7268127947535186412">Toto nastavení spravuje vlastník zařízení.</translation>
 <translation id="7270858098575133036">Zeptat se, když chce web využít exkluzivní zprávy systému pro přístup k zařízením MIDI</translation>
 <translation id="7272674038937250585">K dispozici není žádný popis</translation>
@@ -4585,6 +4615,7 @@
 <translation id="7364796246159120393">Vybrat soubor</translation>
 <translation id="7366415735885268578">Přidání webu</translation>
 <translation id="7366909168761621528">Údaje o prohlížení</translation>
+<translation id="7367714965999718019">Generátor QR kódů</translation>
 <translation id="736877393389250337">Adresu <ph name="URL" /> se v prohlížeči <ph name="ALTERNATIVE_BROWSER_NAME" /> nepodařilo otevřít. Kontaktujte administrátora systému.</translation>
 <translation id="7370592524170198497">EAP ethernetu:</translation>
 <translation id="7371006317849674875">Čas zahájení</translation>
@@ -4842,8 +4873,10 @@
 <translation id="7737238973539693982">Vymazat Linux (beta)</translation>
 <translation id="7740996059027112821">Standardně</translation>
 <translation id="7744047395460924128">Zobrazení historie tisku</translation>
+<translation id="7744192722284567281">Nalezeno v porušení zabezpečení údajů</translation>
 <translation id="7746457520633464754">Kvůli detekci nebezpečných aplikací a webů odesílá Chrome do Googlu adresy URL některých navštívených stránek, omezené informace o systému a část obsahu stránek</translation>
 <translation id="7750228210027921155">Obraz v obraze</translation>
+<translation id="7751229152614300329">Bezpečné prohlížení je aktuální a chrání vás před škodlivými weby a soubory ke stažení</translation>
 <translation id="7751260505918304024">Zobrazit vše</translation>
 <translation id="7754704193130578113">Před stažením se vždy zeptat na místo uložení každého souboru</translation>
 <translation id="7755287808199759310">Rodič ti jej může odblokovat.</translation>
@@ -4991,6 +5024,7 @@
 <translation id="7910768399700579500">Nová složka</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Vaše heslo bylo na serveru změněno. Odhlaste se a poté se znovu přihlaste.</translation>
+<translation id="7914583336730284547">Tyto přetažené soubory porušují bezpečnostní zásady vaší organizace. Chcete přesto pokračovat?</translation>
 <translation id="7915457674565721553">Chcete-li nastavit rodičovskou kontrolu, připojte se k internetu</translation>
 <translation id="7915471803647590281">Než nám odešlete zpětnou vazbu, sdělte nám prosím, co se děje.</translation>
 <translation id="7918257978052780342">Zaregistrovat</translation>
@@ -5088,6 +5122,7 @@
 <translation id="8028803902702117856">Stahování souboru <ph name="FILE_NAME" /> – <ph name="SIZE" /></translation>
 <translation id="8028993641010258682">Velikost</translation>
 <translation id="8030656706657716245">Přidat tiskárnu</translation>
+<translation id="8030852056903932865">Schválit</translation>
 <translation id="8032244173881942855">Kartu nelze odeslat.</translation>
 <translation id="8033827949643255796">vybráno</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Otevřít vše v &amp;anonymním okně}=1{Otevřít v &amp;anonymním okně}few{Otevřít vše (#) v &amp;anonymním okně}many{Otevřít vše (#) v &amp;anonymním okně}other{Otevřít vše (#) v &amp;anonymním okně}}</translation>
@@ -5407,6 +5442,7 @@
 <translation id="8472623782143987204">hardwarová</translation>
 <translation id="8473863474539038330">Adresy a další</translation>
 <translation id="8475313423285172237">Jiný program ve vašem počítači nainstaloval rozšíření, které může měnit funkce Chromu.</translation>
+<translation id="8476659515398963495">Tato vložená data porušují bezpečnostní zásady vaší organizace. Chcete přesto pokračovat?</translation>
 <translation id="8477241577829954800">Nahrazen</translation>
 <translation id="8477384620836102176">&amp;Obecné</translation>
 <translation id="8480082892550707549">Stránky mohou být přechodně nebezpečné (napadené) i v případě, že jste z nich již v minulosti soubory stahovali. Zkuste soubor stáhnout později.</translation>
@@ -5460,6 +5496,7 @@
 <translation id="8547013269961688403">Povolit zvětšení obrazovky</translation>
 <translation id="85486688517848470">Podržením vyhledávacího tlačítka přepnete chování tlačítek v horním řádku</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 položka}few{# položky}many{# položky}other{# položek}}</translation>
+<translation id="8550165047974571882">Dokud nezavřete všechny karty webu <ph name="ORIGIN" />, bude web <ph name="ORIGIN" /> moci upravovat soubory ve složce <ph name="FOLDERNAME" /></translation>
 <translation id="8551388862522347954">Licence</translation>
 <translation id="8553342806078037065">Spravovat ostatní uživatele</translation>
 <translation id="8554899698005018844">Žádný jazyk</translation>
@@ -5518,6 +5555,7 @@
 <translation id="8637688295594795546">K dispozici je aktualizace systému. Příprava stahování...</translation>
 <translation id="8639047128869322042">Vyhledávání škodlivého softwaru...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – port</translation>
+<translation id="8641606876632989680">Pokud se přihlásíte pomocí prolomeného hesla, Chrome vám to oznámí</translation>
 <translation id="8642900771896232685">2 sekundy</translation>
 <translation id="8642947597466641025">Zvětšit text</translation>
 <translation id="8644655801811752511">Tento bezpečnostní klíč nelze resetovat. Zkuste tento klíč resetovat ihned po vložení.</translation>
@@ -5567,6 +5605,7 @@
 <translation id="869884720829132584">Nabídka Aplikace</translation>
 <translation id="869891660844655955">Datum vypršení platnosti</translation>
 <translation id="8703346390800944767">Přeskočit reklamu</translation>
+<translation id="870341961648617780">Bezpečné prohlížení a rozšířené nastavení zabezpečení</translation>
 <translation id="8705331520020532516">Sériové číslo</translation>
 <translation id="8705580154597116082">Je k dispozici síť Wi-Fi prostřednictvím telefonu</translation>
 <translation id="8705629851992224300">Váš bezpečnostní klíč nebylo možné přečíst</translation>
@@ -5612,6 +5651,7 @@
 <translation id="874689135111202667">{0,plural, =1{Nahrát jeden soubor na tento web?}few{Nahrát # soubory na tento web?}many{Nahrát # souboru na tento web?}other{Nahrát # souborů na tento web?}}</translation>
 <translation id="8748384418490037181">Možnosti zámku Smart Lock</translation>
 <translation id="8749863574775030885">Přístup k zařízením USB od neznámého dodavatele</translation>
+<translation id="8750133148106010815">Organizace <ph name="ORGANIZATION_NAME" /> vyžaduje, abyste před spuštěním Google Play zálohovali data a resetovali tento Chromebook do továrního nastavení.</translation>
 <translation id="8750155211039279868">Web <ph name="ORIGIN" /> se chce připojit k sériovému portu</translation>
 <translation id="8754200782896249056">&lt;p&gt;Při spuštění aplikace <ph name="PRODUCT_NAME" /> v podporovaném počítačovém prostředí se použijí systémová nastavení proxy serveru. Váš systém však buď není podporován, nebo došlo k problému se spuštěním konfigurace systému.&lt;/p&gt;
 
@@ -5666,6 +5706,7 @@
 <translation id="8809147117840417135">Světle tyrkysová</translation>
 <translation id="8813698869395535039">Přihlášení k účtu <ph name="USERNAME" /> se nezdařilo</translation>
 <translation id="8813811964357448561">list papíru</translation>
+<translation id="8813872945700551674">Požádejte rodiče o schválení rozšíření <ph name="EXTENSION_NAME" /></translation>
 <translation id="8813969267212093033">V tomto jazyce je zobrazen text systému</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Čekejte prosím, probíhá prohledávání archivu...</translation>
@@ -5946,6 +5987,7 @@
 <translation id="9203398526606335860">&amp;Profilování povoleno</translation>
 <translation id="9203904171912129171">Vyberte zařízení</translation>
 <translation id="9203962528777363226">Správce zařízení zakázal přidávat nové uživatele.</translation>
+<translation id="9211177926627870898">Je nutná aktualizace</translation>
 <translation id="9214520840402538427">Jejda! Vypršel časový limit inicializace atributů doby instalace. Kontaktujte zástupce podpory.</translation>
 <translation id="9214695392875603905">Sladký košíček</translation>
 <translation id="9215293857209265904">Bylo přidáno rozšíření <ph name="EXTENSION_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 9627e24..532a1ddb 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Lagerindstillinger for Adobe Flash Player</translation>
 <translation id="1274997165432133392">Cookies og andre websitedata</translation>
 <translation id="1280820357415527819">Søger efter mobilnetværk</translation>
+<translation id="1280965841156951489">Rediger filer</translation>
 <translation id="1282420830958964167">Begrænsningen på "<ph name="APP_NAME" />", som din forælder har indstillet, er udløbet. Du kan bruge den i <ph name="TIME_LIMIT" /> i morgen.</translation>
 <translation id="1285320974508926690">Oversæt aldrig dette website</translation>
 <translation id="1285484354230578868">Gemme data på din Google Drev-konto</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Mørklilla</translation>
 <translation id="1692799361700686467">Cookies fra flere websites er tilladt.</translation>
 <translation id="1697150536837697295">Art</translation>
+<translation id="1697686431566694143">Rediger fil</translation>
 <translation id="1698122934742150150">Kun for den aktuelle inkognitosession</translation>
 <translation id="1698650002254827833">Listen med apps kunne ikke indlæses. Prøv igen.</translation>
 <translation id="1701062906490865540">Fjern denne person</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Der er ikke installeret nogen komponenter.</translation>
 <translation id="1932098463447129402">Ikke før</translation>
 <translation id="1933809209549026293">Tilslut en mus eller et tastatur. Hvis du bruger en Bluetooth-enhed, skal du kontrollere, at den er parat til parring.</translation>
+<translation id="1936931585862840749">Brug et tal til at angive, hvor mange kopier der skal udskrives (1 til <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Containerarkitekturen <ph name="ARCHITECTURE_CONTAINER" /> kan ikke importeres med denne enhed, som kører med <ph name="ARCHITECTURE_DEVICE" />. Du kan prøve at gendanne denne container i en anden enhed, eller også kan du åbne filerne i containerbilledet i appen Filer.</translation>
 <translation id="1938351510777341717">Ekstern kommando</translation>
 <translation id="1940546824932169984">Tilsluttede enheder</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Sæt denne fane i fokus</translation>
 <translation id="2344028582131185878">Automatiske downloads</translation>
 <translation id="2345723121311404059">1 side til <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">SODA-tjeneste</translation>
 <translation id="2347644257713614136">Brugen af Hangouts og Cast for Education styres af Googles privatlivspolitik.</translation>
 <translation id="2348176352564285430">App: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Genindlæst</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Linux-gendannelsen blev annulleret</translation>
 <translation id="2423578206845792524">&amp;Gem billede som...</translation>
 <translation id="2428510569851653187">Beskriv, hvad du foretog dig, da fanen gik ned</translation>
+<translation id="2428939361789119025">Deaktiver Wi-Fi</translation>
 <translation id="2431027948063157455">Google Assistent kunne ikke indlæses. Tjek din netværksforbindelse, og prøv igen.</translation>
 <translation id="2432753757290432042">Linux (beta) skal opdateres</translation>
 <translation id="2433452467737464329">Tilføj et forespørgselsparameter i webadressen for at opdatere siden automatisk: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Send brugs- og diagnosticeringsdata. Hjælp med at forbedre din Android-oplevelse ved automatisk at sende diagnosticerings- og enhedsdata samt data om brug af apps til Google. Dataene bruges til forbedring af bl.a. systemets og appens stabilitet. Visse samlede data hjælper også Google-apps og -partnere, f.eks. Android-udviklere. Hvis indstillingen til yderligere web- og appaktivitet er aktiveret, gemmes disse data muligvis på din Google-konto. <ph name="BEGIN_LINK1" />Få flere oplysninger<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Tilføj forbindelse</translation>
 <translation id="2947605845283690091">Webbrowsing bør være hurtigt. Brug et øjeblik på at <ph name="BEGIN_LINK" />tjekke dine udvidelser<ph name="END_LINK" /> nu.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 potentielt skadelig udvidelse er deaktiveret. Du kan også fjerne den.}one{# potentielt skadelig udvidelse er deaktiveret. Du kan også fjerne den.}other{# potentielt skadelige udvidelser er deaktiveret. Du kan også fjerne dem.}}</translation>
 <translation id="2948300991547862301">Gå til <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">En hurtig, enkel og sikker webbrowser, der er udviklet til det moderne internet.</translation>
 <translation id="2949289451367477459">Brug placering. Tillad, at apps og tjenester med placeringstilladelse kan bruge enhedens placering. Google kan med jævne mellemrum indsamle placeringsdata og bruge oplysningerne anonymt til at gøre placeringen mere nøjagtig og forbedre placeringsbaserede tjenester. <ph name="BEGIN_LINK1" />Få flere oplysninger<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Vil du installere appen?</translation>
 <translation id="3067198360141518313">Kør dette plugin</translation>
 <translation id="3071624960923923138">Du kan klikke her for at åbne en ny fane</translation>
+<translation id="3072775339180057696">Skal websitet kunne se <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Enheden skal genstartes for at begynde Powerwash-processen. Efter genstart vil du blive bedt om at bekræfte, at du vil fortsætte.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Dine logindata blev slettet</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Websitet kan anvende dit kamera</translation>
 <translation id="3085752524577180175">SOCKS-host</translation>
 <translation id="3088052000289932193">Websitet anvender MIDI</translation>
+<translation id="3088128611727407543">Forbereder app-profil…</translation>
 <translation id="3088325635286126843">&amp;Omdøb...</translation>
 <translation id="3089137131053189723">Søgningen blev ryddet</translation>
 <translation id="3090193911106258841">Åbner lyd- og videoinput</translation>
@@ -1596,6 +1604,7 @@
     Beskrivelse:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome-apps</translation>
+<translation id="3150693969729403281">Kør tryghedstjek nu</translation>
 <translation id="3150927491400159470">Genindlæs fuldstændig</translation>
 <translation id="315116470104423982">Mobildata</translation>
 <translation id="3151539355209957474">Starttidspunkt</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Log ind i Chrome</translation>
 <translation id="3285322247471302225">Ny &amp;fane</translation>
 <translation id="328571385944182268">Vil du gemme dine adgangskoder?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> kan se <ph name="FILENAME" />, indtil du lukker alle faner fra <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Udvidelser, der kører i udviklertilstand, kan skade din computer. Hvis du ikke er udvikler, skal du deaktivere udvidelserne, der kører i udviklertilstand, af hensyn til sikkerheden.</translation>
 <translation id="3289856944988573801">Du kan søge efter opdateringer via Ethernet eller Wi-Fi.</translation>
 <translation id="3290356915286466215">Ikke beskyttet</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Læs dine data på en række websites</translation>
 <translation id="3448086340637592206">Yderligere vilkår for Google Chrome og Chrome OS</translation>
 <translation id="3448492834076427715">Opdater konto</translation>
+<translation id="3449393517661170867">Nyt fanevindue</translation>
 <translation id="3449839693241009168">Tryk på <ph name="SEARCH_KEY" /> for at sende kommandoer til <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Anvendt andel for inaktiv tilstand</translation>
 <translation id="3451332697983754369">Synkroniser min <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Tak for din feedback. Du er offline nu, og din rapport sendes senere.</translation>
 <translation id="3682824389861648626">Grænse for bevægelse</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> anmoder om at dele din skærm</translation>
+<translation id="3686074530047028092">Education-konto</translation>
 <translation id="368789413795732264">Der opstod en fejl under forsøg på at skrive filen: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Skrive til filer og mapper, som du åbner i applikationen</translation>
 <translation id="3688526734140524629">Skift kanal</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Blokere dele af websiderne</translation>
 <translation id="3760460896538743390">Undersøg &amp;baggrundsside</translation>
 <translation id="37613671848467444">Åbn i &amp;inkognitovindue</translation>
+<translation id="3761556954875533505">Skal websitet kunne ikke redigere filer?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Kommuniker med en USB-enhed}one{Kommuniker med # USB-enheder}other{Kommuniker med # USB-enheder}}</translation>
 <translation id="3765246971671567135">Politikken for offlinedemotilstand kunne ikke læses.</translation>
 <translation id="3768037234834996183">Synkroniserer dine præferencer...</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Afvis</translation>
 <translation id="3928570707778085600">Vil du gemme ændringerne i <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Disse udvidelser kan se og ændre oplysninger på dette website.</translation>
+<translation id="3930155420525972941">Flyt gruppe til nyt vindue</translation>
 <translation id="3930737994424905957">Søger efter enheder</translation>
 <translation id="3930968231047618417">Baggrundsfarve</translation>
 <translation id="3933283459331715412">Gendan en slettet adgangskode for <ph name="USERNAME" /></translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Jeg accepterer</translation>
 <translation id="413121957363593859">Komponenter</translation>
 <translation id="4131410914670010031">Sort/hvid</translation>
+<translation id="4133076602192971179">Åbn appen for at ændre din adgangskode</translation>
 <translation id="4136203100490971508">Nattelys slukkes automatisk ved solopgang</translation>
 <translation id="41365691917097717">Hvis du fortsætter, aktiveres ADB-fejlretning til oprettelse og test af Android-apps. Bemærk! Denne handling tillader, at Android-apps, der ikke er blevet bekræftet af Google, kan installeres. Du skal gendanne fabriksindstillingerne for at deaktivere dette.</translation>
 <translation id="4138267921960073861">Vis brugernavne og billeder på loginskærmen</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Oversæt aldrig <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Konfigurer børnesikring</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 med RSA-kryptering</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Din administrator har genaktiveret 1 potentielt skadelig udvidelse}one{Din administrator har genaktiveret # potentielt skadelig udvidelse}other{Din administrator har genaktiveret # potentielt skadelige udvidelser}}</translation>
 <translation id="4336434711095810371">Ryd alle data</translation>
 <translation id="4336979451636460645">I forbindelse med netværkslogfiler kan du se: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> ønsker at kommunikere med appen "<ph name="EXTENSION_NAME" />"</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Du bruger en sikkerhedsnøgle, som ikke er registreret på dette website</translation>
 <translation id="4788092183367008521">Tjek din netværksforbindelse, og prøv igen.</translation>
 <translation id="4792711294155034829">&amp;Rapporter et problem...</translation>
+<translation id="4794810983896241342">Opdateringer administreres af din <ph name="BEGIN_LINK" />administrator<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Webside, kun HTML</translation>
 <translation id="4798236378408895261">Vedhæft <ph name="BEGIN_LINK" />Bluetooth-logfiler<ph name="END_LINK" /> (internt hos Google)</translation>
 <translation id="4801448226354548035">Skjul konti</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Åbn en ny fane for at se to websites på én gang</translation>
 <translation id="4909038193460299775">Eftersom denne konto administreres af <ph name="DOMAIN" />, slettes dine bogmærker, din historik, dine adgangskoder og andre indstillinger på denne enhed. Dine data vil dog fortsat være gemt på din Google-konto og kan administreres i <ph name="BEGIN_LINK" />Google Kontrolpanel<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Aktivering efter dvale</translation>
+<translation id="4916542008280060967">Skal websitet kunne redigere <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Skift til en sikker browser</translation>
 <translation id="4917385247580444890">Stærk</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ønsker at kommunikere med udvidelsen "<ph name="EXTENSION_NAME" />"</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Husk</translation>
 <translation id="5018207570537526145">Åbn udvidelsens website</translation>
 <translation id="5021750053540820849">Endnu ikke opdateret</translation>
+<translation id="5026806129670917316">Aktivér Wi-Fi</translation>
 <translation id="5026874946691314267">Vis ikke denne notifikation igen</translation>
 <translation id="5027550639139316293">Mail-certifikat</translation>
 <translation id="5027562294707732951">Tilføj udvidelsen</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">&amp;JavaScript-konsol</translation>
 <translation id="5184209580557088469">Der findes allerede en billet med dette brugernavn</translation>
 <translation id="5184662919967270437">Opdaterer din enhed</translation>
+<translation id="5185359571430619712">Anmeldelsesudvidelser</translation>
 <translation id="5185386675596372454">Den nyeste version af "<ph name="EXTENSION_NAME" />" er blevet deaktiveret, fordi den kræver flere tilladelser.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> vil downloade flere filer</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Smarte citationstegn</translation>
 <translation id="5260508466980570042">Din mail eller adgangskode blev ikke bekræftet. Prøv igen.</translation>
 <translation id="5261683757250193089">Åbn i Webshop</translation>
+<translation id="5262178194499261222">Fjern adgangskode</translation>
 <translation id="5264148714798105376">Dette kan tage et øjeblik.</translation>
 <translation id="5264252276333215551">Opret forbindelse til internettet for at starte din app i terminaltilstand.</translation>
 <translation id="5265562206369321422">Offline i mere end en uge</translation>
@@ -3507,6 +3528,7 @@
 <translation id="5833726373896279253">Disse indstillinger kan kun ændres af ejeren:</translation>
 <translation id="5834581999798853053">Omkring <ph name="TIME" /> minutter tilbage</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – kameraet eller mikrofonen optager</translation>
+<translation id="5841270259333717135">Konfigurer Ethernet</translation>
 <translation id="5842497610951477805">Aktivering af Bluetooth</translation>
 <translation id="5846200638699387931">Fejl i relationens syntaks: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Allerede tilføjet</translation>
@@ -3552,6 +3574,7 @@
 <translation id="5900358982890952556">Opgrader Linux (beta)</translation>
 <translation id="5901494423252125310">Lågen på printeren er åben</translation>
 <translation id="5901630391730855834">Gul</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Du har genaktiveret 1 potentielt skadelig udvidelse}one{Du har genaktiveret # potentielt skadelig udvidelse}other{Du har genaktiveret # potentielt skadelige udvidelser}}</translation>
 <translation id="5906655207909574370">Næsten opdateret. Genstart din enhed for at afslutte opdateringen.</translation>
 <translation id="5906732635754427568">Data, der er knyttet til denne app, bliver fjernet fra enheden.</translation>
 <translation id="5908769186679515905">Bloker websites fra at køre Flash</translation>
@@ -3581,6 +3604,7 @@
 <translation id="59324397759951282">USB-enhed fra <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Serienummer</translation>
 <translation id="5933376509899483611">Tidszone</translation>
+<translation id="5935656526031444304">Administrer Beskyttet browsing</translation>
 <translation id="5938002010494270685">Der er en tilgængelig sikkerhedsopgradering</translation>
 <translation id="5939518447894949180">Nulstil</translation>
 <translation id="5941153596444580863">Tilføj person...</translation>
@@ -3624,6 +3648,7 @@
 <translation id="5993807461461235661">Denne upload er krypteret og overtræder din organisations sikkerhedspolitikker.</translation>
 <translation id="5997337190805127100">Få flere oplysninger om websiteadgang</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultater for "<ph name="SEARCH_TEXT" />"</translation>
+<translation id="6002210667729577411">Flyt gruppe til nyt vindue</translation>
 <translation id="6002458620803359783">Foretrukne stemmer</translation>
 <translation id="6006484371116297560">Klassisk</translation>
 <translation id="6007240208646052708">Talesøgning er ikke tilgængelig på dit sprog.</translation>
@@ -4163,6 +4188,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Vis genvej på skrivebordet</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> er sat på pause</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Din administrator<ph name="END_LINK" /> har deaktiveret Beskyttet browsing</translation>
 <translation id="6742339027238151589">Tilgængelig for script</translation>
 <translation id="6745592621698551453">Opdater nu</translation>
 <translation id="6746124502594467657">Flyt ned</translation>
@@ -4421,6 +4447,7 @@
     <ph name="BEGIN_BOLD" />Husk!<ph name="END_BOLD" /> En lignende stemme eller en optagelse din egen stemme kan muligvis også få adgang til din assistent. Du kan fjerne tilladelsen til Voice Match på et senere tidspunkt ved at deaktivere funktionen i indstillingerne for Google Assistent.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Udveksle data med enhederne ved navn: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Enheden genstartes, når opdateringerne er fuldført.</translation>
 <translation id="7098389117866926363">USB-C-enhed (porten bagpå i venstre side)</translation>
 <translation id="7098447629416471489">Andre gemte søgemaskiner vises her</translation>
 <translation id="7099337801055912064">Den store PPD-fil kan ikke indlæses. Filen må ikke fylde mere end 250 kB.</translation>
@@ -4893,6 +4920,7 @@
 <translation id="7766807826975222231">Få en rundvisning</translation>
 <translation id="7766838926148951335">Acceptér tilladelser</translation>
 <translation id="7769672763586021400">Model-id</translation>
+<translation id="7770651108375708429">Afbryd forbindelsen til Wi-Fi</translation>
 <translation id="7771452384635174008">Layout</translation>
 <translation id="7772032839648071052">Bekræft adgangssætning</translation>
 <translation id="7772127298218883077">Om <ph name="PRODUCT_NAME" /></translation>
@@ -5050,6 +5078,7 @@
 <translation id="7939412583708276221">Behold alligevel</translation>
 <translation id="7942349550061667556">Rød</translation>
 <translation id="7943837619101191061">Tilføj placering...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 kompromitteret adgangskode}one{# kompromitteret adgangskode}other{# kompromitterede adgangskoder}}</translation>
 <translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" vil oprette forbindelse</translation>
 <translation id="7946586320617670168">Oprindelsen skal være sikker</translation>
 <translation id="794676567536738329">Bekræft tilladelser</translation>
@@ -5149,6 +5178,7 @@
 <translation id="8059417245945632445">&amp;Inspicer enheder</translation>
 <translation id="8059456211585183827">Der er ingen printere, som kan gemmes.</translation>
 <translation id="8063235345342641131">Grøn standardavatar</translation>
+<translation id="8063535366119089408">Se fil</translation>
 <translation id="8064671687106936412">Nøgle:</translation>
 <translation id="8068253693380742035">Tryk for at logge ind</translation>
 <translation id="8068809649322155577">Dette rydder alle de data og cookies, der er gemt af <ph name="SITE_GROUP_NAME" />, eventuelle websites i denne gruppe og de apps, den har installeret.</translation>
@@ -5214,6 +5244,7 @@
 <translation id="8152091997436726702">Printerregistreringen har fået timeout, Hvis du vil registrere en printer, skal du bekræfte registreringen på printeren.</translation>
 <translation id="8154790740888707867">Ingen fil</translation>
 <translation id="815491593104042026">Ups! Godkendelsen mislykkedes, fordi den var konfigureret til at bruge en webadresse, som ikke er sikker (<ph name="BLOCKED_URL" />). Kontakt din administrator.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Der blev ikke fundet nogen kompromitterede adgangskoder}=1{{COUNT} kompromitteret adgangskode}one{{COUNT} kompromitteret adgangskode}other{{COUNT} kompromitterede adgangskoder}}</translation>
 <translation id="8157704005178149728">Konfigurerer forældrestyring</translation>
 <translation id="8158117992543756526">Denne enhed stoppede med at modtage automatiske software- og sikkerhedsopdateringer i <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Fejl under konfiguration af certifikattillid</translation>
@@ -5267,6 +5298,7 @@
 <translation id="8226742006292257240">Nedenfor ses den vilkårlige TPM-adgangskode, der er tilknyttet din computer:</translation>
 <translation id="8227119283605456246">Vedhæft fil</translation>
 <translation id="8230134520748321204">Vil du gemme adgangskoden til <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Internetindstillinger</translation>
 <translation id="8234795456569844941">Hjælp vores softwareudviklere med at løse dette problem. Fortæl os, hvad der skete, lige før du fik fejlmeddelelsen for profilen:</translation>
 <translation id="8236123533334037984">Din organisation scanner denne upload for at tjekke, om den er sikkerhedsgodkendt.</translation>
 <translation id="8236917170563564587">Del denne fane i stedet</translation>
@@ -5604,6 +5636,7 @@
 <translation id="8688579245973331962">Kan du ikke se dit navn?</translation>
 <translation id="8688591111840995413">Forkert adgangskode</translation>
 <translation id="8688672835843460752">Tilgængelig</translation>
+<translation id="8691418731028620688">Opret forbindelse til Wi-Fi</translation>
 <translation id="8695825812785969222">Åbn &amp;placering...</translation>
 <translation id="869884720829132584">Programmenu</translation>
 <translation id="869891660844655955">Udløbsdato</translation>
@@ -5764,6 +5797,7 @@
 <translation id="8872187374998143710">Du skal genstarte din enhed for at bruge Plugin VM.</translation>
 <translation id="8872777911145321141">Spørg, når et website gerne vil anvende dine virtual reality-enheder og dine VR-data (anbefales)</translation>
 <translation id="8874184842967597500">Ikke tilsluttet</translation>
+<translation id="8875775314572167244">Indstillinger for Ethernet</translation>
 <translation id="8876307312329369159">Denne indstilling kan ikke ændres i en demosession.</translation>
 <translation id="8877448029301136595">[parent directory]</translation>
 <translation id="8878384954777710821">Afinstallerer Plugin VM...</translation>
@@ -5805,6 +5839,7 @@
 <translation id="892706138619340876">Nogle indstillinger blev nulstillet</translation>
 <translation id="8930351635855238750">De nye indstillinger for cookies træder i kraft, når siden genindlæses</translation>
 <translation id="8931394284949551895">Nye enheder</translation>
+<translation id="8931475688782629595">Administrer, hvad du synkroniserer</translation>
 <translation id="8932894639908691771">Indstillinger for kontaktadgang</translation>
 <translation id="8933960630081805351">&amp;Vis i Finder</translation>
 <translation id="8934732568177537184">Fortsæt</translation>
@@ -5962,6 +5997,7 @@
 <translation id="9148126808321036104">Log ind igen</translation>
 <translation id="9149866541089851383">Rediger...</translation>
 <translation id="9150045010208374699">Bruge dit kamera</translation>
+<translation id="9150429437595727962">Wi-Fi-indstillinger</translation>
 <translation id="9153934054460603056">Gem identitet og adgangskode</translation>
 <translation id="9154194610265714752">Opdateret</translation>
 <translation id="91568222606626347">Opret genvej...</translation>
@@ -6023,6 +6059,7 @@
 <translation id="945522503751344254">Send feedback</translation>
 <translation id="947329552760389097">&amp;Inspect Elements (Undersøg elementer)</translation>
 <translation id="952992212772159698">Ikke aktiveret</translation>
+<translation id="956500788634395331">Du er beskyttet mod potentielt skadelige udvidelser</translation>
 <translation id="957960681186851048">Dette website har forsøgt at downloade flere filer automatisk</translation>
 <translation id="9580706199804957">Der kunne ikke oprettes forbindelse til Google-tjenester</translation>
 <translation id="960719561871045870">Operatørkode</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 409bfd7..bb7e8fe 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Daten auch aus folgenden Apps löschen?</translation>
 <translation id="1045692658517323508">{0,plural, =1{Innerhalb einer Minute aktualisieren}other{Innerhalb von # Minuten aktualisieren}}</translation>
 <translation id="1046635659603195359">Offenbar haben Sie Voice Match bereits auf einem anderen Gerät für Google Assistant eingerichtet. Diese vorherigen Aufnahmen können verwendet werden, um ein Sprachmodell auf diesem Gerät zu erstellen. Dies sollte weniger als eine Minute dauern.</translation>
+<translation id="104710386808485638">Linux neu starten?</translation>
 <translation id="1047431265488717055">Linkte&amp;xt kopieren</translation>
 <translation id="1048286738600630630">Bildschirme</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Melden Sie sich in <ph name="TOKEN_NAME" /> an, um das Clientzertifikat zu exportieren.</translation>
 <translation id="1163931534039071049">Frame-Quelltext &amp;anzeigen</translation>
 <translation id="1164674268730883318">Smart Lock für <ph name="DEVICE_TYPE" /> deaktivieren?</translation>
+<translation id="1164891049599601209">Auf betrügerischer Website eingegeben</translation>
 <translation id="1164899421101904659">PUK eingeben</translation>
 <translation id="1165039591588034296">Fehler</translation>
 <translation id="1166212789817575481">Tabs rechts schließen</translation>
@@ -395,6 +397,7 @@
 <translation id="1545177026077493356">Automatischer Kioskmodus</translation>
 <translation id="1545775234664667895">Design "<ph name="THEME_NAME" />" installiert</translation>
 <translation id="1546280085599573572">Durch diese Erweiterung wurde die Seite geändert, die beim Klicken auf die Schaltfläche "Startseite" erscheint.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> möchte eine <ph name="EXTENSION_TYPE" /> installieren, die folgende Berechtigungen anfordert:</translation>
 <translation id="1549275686094429035">ARC aktiviert</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> möchte auf <ph name="VOLUME_NAME" /> zugreifen. Ihre Dateien können geändert oder gelöscht werden.</translation>
 <translation id="1553538517812678578">unbegrenzt</translation>
@@ -493,6 +496,7 @@
 <translation id="1679806121152819234">Plugin VM</translation>
 <translation id="1679810534535368772">Möchten Sie den Bildschirm wirklich schließen?</translation>
 <translation id="167983332380191032">Der Verwaltungsdienst hat einen HTTP-Fehler gemeldet.</translation>
+<translation id="1680841347983561661">Bitte warten Sie ein paar Minuten und versuchen Sie dann noch einmal, Google Play zu starten.</translation>
 <translation id="1680849702532889074">Bei der Installation Ihrer Linux-Anwendung ist ein Fehler aufgetreten.</translation>
 <translation id="16815041330799488">Websites keinen Zugriff auf Texte und Bilder gewähren, die sich in der Zwischenablage befinden</translation>
 <translation id="1682548588986054654">Neues &amp;Inkognitofenster</translation>
@@ -746,6 +750,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> ist abgestürzt. Klicken Sie auf dieses Fenster, um die Erweiterung erneut zu laden.</translation>
 <translation id="2025891858974379949">Unsichere Inhalte</translation>
 <translation id="202918510990975568">Geben Sie Ihr Passwort ein, um die Sicherheits- und Anmeldungseinstellungen zu konfigurieren</translation>
+<translation id="2030672406208960151">Terminal zur Wiederherstellung öffnen</translation>
 <translation id="2034346955588403444">Anderes WLAN hinzufügen</translation>
 <translation id="203574396658008164">Notizen über Sperrbildschirm aktivieren</translation>
 <translation id="2037445849770872822">Für dieses Google-Konto wurde die Elternaufsicht eingerichtet. Wenn Sie zusätzliche Jugendschutzeinstellungen konfigurieren möchten, wählen Sie "Weiter" aus.
@@ -898,6 +903,7 @@
 <translation id="2220572644011485463">PIN oder Passwort</translation>
 <translation id="2224444042887712269">Inhaber dieser Einstellung ist <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">Ordnername bearbeiten</translation>
+<translation id="2225864335125757863">Bitte ändern Sie umgehend die folgenden Passwörter, um Ihr Konto zu schützen:</translation>
 <translation id="2226449515541314767">Dieser Website wurde keine vollständige Kontrolle über MIDI-Geräte gewährt.</translation>
 <translation id="222704500187107962">Wenn Sie die aktuelle Inkognitositzung beenden, wird diese Ausnahme automatisch entfernt</translation>
 <translation id="2227179592712503583">Vorschlag entfernen</translation>
@@ -1018,6 +1024,7 @@
 <translation id="2387052489799050037">Zum Startbildschirm</translation>
 <translation id="2387458720915042159">Proxy-Verbindungstyp</translation>
 <translation id="2391419135980381625">Standardschrift</translation>
+<translation id="2392163307141705938">Du hast das Zeitlimit erreicht, das deine Eltern für <ph name="IDS_SHORT_PRODUCT_NAME" /> festgelegt haben.</translation>
 <translation id="2392369802118427583">Aktivieren</translation>
 <translation id="2394566832561516196">Die Einstellungen werden bei der nächsten Aktualisierung gelöscht.</translation>
 <translation id="2395616325548404795">Ihr <ph name="DEVICE_TYPE" /> wurde erfolgreich für die Unternehmensverwaltung angemeldet, aber es wurden keine Geräte- und Standortinformationen gesendet. Bitte geben Sie diese Informationen für das Gerät manuell über Ihre Admin-Konsole ein.</translation>
@@ -1082,6 +1089,7 @@
 <translation id="247949520305900375">Audio freigeben</translation>
 <translation id="2480868415629598489">Daten ändern, die Sie kopieren und einfügen</translation>
 <translation id="2482878487686419369">Benachrichtigungen</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> kann dann <ph name="FILENAME" /> ändern, solange Tabs von <ph name="ORIGIN" /> geöffnet sind</translation>
 <translation id="2484959914739448251">Wenn Sie Browserdaten von all Ihren synchronisierten Geräten und aus Ihrem Google-Konto löschen möchten, <ph name="BEGIN_LINK" />geben Sie Ihre Passphrase ein<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Passwort wurde auf diesem Gerät gespeichert</translation>
 <translation id="2485422356828889247">Deinstallieren</translation>
@@ -1295,6 +1303,7 @@
 <translation id="274290345632688601">Linux-Apps und -Dateien werden wiederhergestellt</translation>
 <translation id="2743387203779672305">In die Zwischenablage kopieren</translation>
 <translation id="2745080116229976798">Microsoft - Qualifizierte Unterordnung</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> pausiert</translation>
 <translation id="2749756011735116528">In <ph name="PRODUCT_NAME" /> anmelden</translation>
 <translation id="2749881179542288782">Grammatik zusammen mit Rechtschreibung prüfen</translation>
 <translation id="2751739896257479635">EAP-Phase 2-Authentifizierung</translation>
@@ -1303,6 +1312,7 @@
 <translation id="275662540872599901">Bildschirm aus</translation>
 <translation id="2762441749940182211">Kamera blockiert</translation>
 <translation id="2765217105034171413">Klein</translation>
+<translation id="2766161002040448006">Elternteil fragen</translation>
 <translation id="276969039800130567">Angemeldet als <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="2770465223704140727">Aus Liste entfernen</translation>
 <translation id="2770690685823456775">Exportieren Sie Ihre Passwörter in einen anderen Ordner</translation>
@@ -1554,6 +1564,7 @@
 <translation id="3115580024857770654">Alle ausblenden</translation>
 <translation id="3117362587799608430">Dock nicht vollständig kompatibel</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" />-Hilfe</translation>
+<translation id="3118654181216384296">Bitte warten Sie ein paar Minuten und versuchen Sie dann noch einmal, Linux zu starten.</translation>
 <translation id="3120430004221004537">Unzureichende Verschlüsselung für einen bestimmten Vorgang auf folgendem Gerät: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344"><ph name="IDS_SHORT_PRODUCT_NAME" />-Gerät zurücksetzen</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1563,6 +1574,7 @@
 <translation id="3127156390846601284">Dadurch werden sämtliche für alle angezeigten Websites auf dem Gerät gespeicherten Daten gelöscht. Möchten Sie fortfahren?</translation>
 <translation id="3127860049873093642">Verwenden Sie ein kompatibles Dell- oder USB-Typ-C-Netzteil, um Lade- und Leistungsprobleme zu vermeiden.</translation>
 <translation id="3129173833825111527">Linker Rand</translation>
+<translation id="3129215702932019810">Fehler beim Starten der App</translation>
 <translation id="3130528281680948470">Ihr Gerät wird zurückgesetzt und alle Nutzerkonten und lokalen Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.</translation>
 <translation id="313205617302240621">Passwort vergessen?</translation>
 <translation id="3132996321662585180">Täglich aktualisieren</translation>
@@ -1778,6 +1790,7 @@
 <translation id="3441653493275994384">Bildschirm</translation>
 <translation id="3445925074670675829">USB-C-Gerät</translation>
 <translation id="344630545793878684">Ihre Daten auf verschiedenen Websites lesen</translation>
+<translation id="3448086340637592206">Google Chrome und Chrome OS – zusätzliche Nutzungsbedingungen</translation>
 <translation id="3448492834076427715">Konto aktualisieren</translation>
 <translation id="3449839693241009168">Drücken Sie <ph name="SEARCH_KEY" />, um Befehle an <ph name="EXTENSION_NAME" /> zu senden.</translation>
 <translation id="3450157232394774192">Inaktiver Zustand – Auslastung in Prozent</translation>
@@ -2125,6 +2138,7 @@
 <translation id="3873423927483480833">PINs anzeigen</translation>
 <translation id="3873915545594852654">Ein Problem mit ARC++ ist aufgetreten.</translation>
 <translation id="3879748587602334249">Download-Manager</translation>
+<translation id="3881321138433527084">Safe Browsing ist deaktiviert. Aktivieren Sie die Funktion für einen besseren Schutz im Web.</translation>
 <translation id="3882165008614329320">Vorhandenes Video von der Kamera oder als Datei</translation>
 <translation id="3886446263141354045">Deine Anfrage zum Zugriff auf diese Website wurde an <ph name="NAME" /> gesendet</translation>
 <translation id="3888550877729210209">Notizerstellung mit <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2466,6 +2480,7 @@
 <translation id="4384652540891215547">Erweiterung aktivieren</translation>
 <translation id="438503109373656455">Brauner</translation>
 <translation id="4387004326333427325">Remote-Ablehnung des Authentifizierungszertifikats</translation>
+<translation id="4387890294700445764">Gehackte Passwörter</translation>
 <translation id="4389091756366370506">Nutzer <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Inkognito}other{# offene Inkognitofenster}}</translation>
 <translation id="439266289085815679">Die Bluetooth-Konfiguration wird von <ph name="USER_EMAIL" /> festgelegt.</translation>
@@ -2497,6 +2512,7 @@
 <translation id="4429030830601238961">Diese Daten verstoßen gegen die Sicherheitsrichtlinien Ihres Unternehmens und können nicht eingefügt werden.</translation>
 <translation id="4430019312045809116">Lautstärke</translation>
 <translation id="4430369329743628066">Lesezeichen hinzugefügt</translation>
+<translation id="4432621511648257259">Falsches Passwort</translation>
 <translation id="4434045419905280838">Pop-ups und Weiterleitungen</translation>
 <translation id="443454694385851356">Veraltet (nicht sicher)</translation>
 <translation id="443475966875174318">Nicht kompatible Anwendungen aktualisieren oder entfernen</translation>
@@ -2746,6 +2762,7 @@
 <translation id="4808667324955055115">Pop-ups blockiert:</translation>
 <translation id="480990236307250886">Startseite öffnen</translation>
 <translation id="4811503964269049987">Ausgewählten Tab zu neuer Gruppe hinzufügen</translation>
+<translation id="4811818760963189951">Aus, weil die Synchronisierung des Verlaufs deaktiviert ist</translation>
 <translation id="4813136279048157860">Meine Bilder</translation>
 <translation id="4813512666221746211">Netzwerkfehler</translation>
 <translation id="4814378367953456825">Geben Sie einen Namen für diesen Fingerabdruck ein</translation>
@@ -2775,6 +2792,7 @@
 <translation id="4850669014075537160">Scrollen</translation>
 <translation id="4850886885716139402">Anzeigen</translation>
 <translation id="4853020600495124913">In &amp;neuem Fenster öffnen</translation>
+<translation id="4854317507773910281">Elternkonto für die Genehmigung auswählen</translation>
 <translation id="485480310608090163">Weitere Einstellungen und Berechtigungen</translation>
 <translation id="4856478137399998590">Ihr mobiler Datendienst ist aktiviert und einsatzbereit.</translation>
 <translation id="4856855265648545577">Schaltflächen für Launcher, "Zurück" und "Übersicht" werden im Tablet-Modus in der Ablage angezeigt. Wird aktiviert, wenn ChromeVox (gesprochenes Feedback) oder der Schalterzugriff eingeschaltet ist.</translation>
@@ -2911,10 +2929,12 @@
 <translation id="5040823038948176460">Zusätzliche Inhaltseinstellungen</translation>
 <translation id="5042282098504489593">"Einstellungen" öffnen, um <ph name="USB_DEVICE_NAME" /> mit Linux zu verbinden</translation>
 <translation id="5043913660911154449">Oder Sie können die PPD für den Drucker auswählen <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Deaktiviert, weil Ihre Synchronisierungsdaten mit einer Passphrase verschlüsselt sind</translation>
 <translation id="5045550434625856497">Falsches Passwort</translation>
 <translation id="504561833207953641">Wird in einer aktuellen Browsersitzung geöffnet.</translation>
 <translation id="5047421709274785093">Verwendung von Bewegungs- und Lichtsensoren für Websites blockieren</translation>
 <translation id="5050042263972837708">Gruppenname</translation>
+<translation id="5051073330196664891">Allgemeine Nutzungsbedingungen von Google</translation>
 <translation id="5051836348807686060">Die Rechtschreibprüfung wird für die ausgewählten Sprachen nicht unterstützt</translation>
 <translation id="5052499409147950210">Website bearbeiten</translation>
 <translation id="5053604404986157245">Das nach dem Zufallsprinzip erzeugte TPM-Passwort ist nicht verfügbar. Dies ist nach einem Powerwash normal.</translation>
@@ -2952,6 +2972,7 @@
 <translation id="5097002363526479830">Fehler beim Herstellen einer Verbindung mit dem Netzwerk "<ph name="NAME" />": <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Alle Lesezeichen öffnen</translation>
 <translation id="5101839224773798795">Automatisch klicken, wenn der Cursor anhält</translation>
+<translation id="5107443654503185812">Safe Browsing wurde durch eine Erweiterung deaktiviert</translation>
 <translation id="5108967062857032718">Einstellungen – Android-Apps entfernen</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">Inkognitomodus beenden</translation>
@@ -3038,6 +3059,7 @@
 <translation id="523505283826916779">Einstellungen für Bedienungshilfen</translation>
 <translation id="5235750401727657667">Seite ändern, die beim Öffnen eines neuen Tabs angezeigt wird</translation>
 <translation id="5238278114306905396">Die App "<ph name="EXTENSION_NAME" />" wurde automatisch entfernt.</translation>
+<translation id="5239730228370806996">Die Daten, die Sie abgelegt haben, verstoßen gegen die Sicherheitsrichtlinien Ihres Unternehmens. Möchten Sie trotzdem fortfahren?</translation>
 <translation id="5241128660650683457">Alle Ihre Daten auf von Ihnen besuchten Websites lesen</translation>
 <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" aktivieren?</translation>
 <translation id="5243522832766285132">Bitte versuchen Sie es in einigen Minuten noch einmal</translation>
@@ -3325,6 +3347,7 @@
 <translation id="5618075537869101857">Die Kioskanwendung konnte nicht gestartet werden.</translation>
 <translation id="5618333180342767515">(dies kann einige Minuten dauern)</translation>
 <translation id="56197088284879152">Die Verbindung mit folgendem Remote-Gerät ist überlastet: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">Keine gespeicherten Passwörter</translation>
 <translation id="5620549857835247159">Die Schaltflächen "Launcher", "Zurück" und "Übersicht" werden im Tablet-Modus in der Ablage angezeigt.</translation>
 <translation id="5620568081365989559">DevTools erfordert Vollzugriff auf <ph name="FOLDER_PATH" />. Achten Sie darauf, dass dadurch keine vertraulichen Informationen offengelegt werden.</translation>
 <translation id="5620612546311710611">Nutzungsstatistiken</translation>
@@ -3418,6 +3441,7 @@
 <translation id="5747785204778348146">Entwickler – instabil</translation>
 <translation id="5747809636523347288">Einfügen und <ph name="URL" /> aufrufen</translation>
 <translation id="5750324801516359607">Weit entfernt</translation>
+<translation id="5751887393582880060">Dieser Upload verstößt gegen die Sicherheitsrichtlinien Ihres Unternehmens. Möchten Sie trotzdem fortfahren?</translation>
 <translation id="5756163054456765343">H&amp;ilfe</translation>
 <translation id="5759728514498647443">Dokumente, die Sie über <ph name="APP_NAME" /> zum Druck senden, können von <ph name="APP_NAME" /> gelesen werden.</translation>
 <translation id="5763751966069581670">Keine USB-Geräte gefunden</translation>
@@ -3627,6 +3651,7 @@
 <translation id="6040852767465482106">Anonyme Identität</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Der Standortdienst von Google nutzt Quellen wie WLANs, Mobilfunknetze und Sensoren, um den ungefähren Standort Ihres Geräts zu ermitteln.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Sie können den Standortdienst deaktivieren, indem Sie die Haupteinstellung für den Standort auf Ihrem Gerät ausschalten. In den Standorteinstellungen können Sie auch die Nutzung von WLANs, Mobilfunknetzen und Sensoren für die Standortbestimmung deaktivieren.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> kann dann Dateien im Ordner "<ph name="FOLDERNAME" />" lesen, solange Tabs von <ph name="ORIGIN" /> geöffnet sind</translation>
 <translation id="6041155700700864984">Vollbildmodus beenden</translation>
 <translation id="604124094241169006">Automatisch</translation>
 <translation id="6042308850641462728">Mehr</translation>
@@ -3688,6 +3713,7 @@
 <translation id="6104311680260824317">Das Gerät konnte der Domain nicht beitreten. Der Server bietet keine Unterstützung für die angegebenen Kerberos-Verschlüsselungstypen. Unter "Weitere Optionen" finden Sie die Verschlüsselungseinstellungen.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> verlangt, dass dieses Gerät sofort aktualisiert wird</translation>
 <translation id="6106186653986077033">Plugin VM benötigt eine Lizenz</translation>
+<translation id="6107047744202598802">Erlaubt Websites, Ihren Besuch zu speichern und Ihnen im Web zu folgen</translation>
 <translation id="6112294629795967147">Zum Anpassen der Größe tippen</translation>
 <translation id="6112727384379533756">Ticket hinzufügen</translation>
 <translation id="6112931163620622315">Smartphone prüfen</translation>
@@ -3766,6 +3792,7 @@
 <translation id="622537739776246443">Profil wird gelöscht</translation>
 <translation id="6225475702458870625">Datenverbindung von Ihrem <ph name="PHONE_NAME" /> verfügbar</translation>
 <translation id="6226777517901268232">Private Schlüsseldatei (optional)</translation>
+<translation id="6227280783235722609">Erweiterung</translation>
 <translation id="6228691855869374890">Diese Website hat vollständige Kontrolle über MIDI-Geräte.</translation>
 <translation id="6228720835160974792">QR-Code für dieses Bild generieren</translation>
 <translation id="6229890768313448549">Fehler beim Laden der Google Play-Nutzungsbedingungen. Bitte versuchen Sie es erneut.</translation>
@@ -3817,6 +3844,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> ist ein ungewöhnlicher Download und könnte schädlich sein.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Neuer Drucker in Ihrem Netzwerk gefunden}other{Neue Drucker in Ihrem Netzwerk gefunden}}</translation>
 <translation id="6286708577777130801">Gespeicherte Passwortdetails</translation>
+<translation id="6291163159361301370">Bevor Sie Linux starten können, müssen Sie laut <ph name="ORGANIZATION_NAME" /> Ihre Daten sichern und dieses Chromebook auf die Werkseinstellungen zurücksetzen.</translation>
 <translation id="6291949900244949761">Nachfragen, wenn eine Website auf USB-Geräte zugreifen möchte (empfohlen)</translation>
 <translation id="6291953229176937411">Im Finder &amp;zeigen</translation>
 <translation id="6295158916970320988">Alle Websites</translation>
@@ -4013,6 +4041,7 @@
 <translation id="6561726789132298588">Eingabe</translation>
 <translation id="656293578423618167">Der Dateipfad oder Dateiname ist zu lang. Verwenden Sie bitte einen kürzeren Namen oder einen anderen Speicherort.</translation>
 <translation id="6563469144985748109">Der Administrator hat die Berechtigung noch nicht erteilt</translation>
+<translation id="6565955132287672866">Ihr Gerät wurde nicht ordnungsgemäß heruntergefahren. Wenn Sie Linux (Beta) verwenden möchten, muss es neu gestartet werden.</translation>
 <translation id="6567688344210276845">Symbol "<ph name="ICON" />" konnte nicht für die Seitenaktion geladen werden.</translation>
 <translation id="6569934958368283244">Andere Personen</translation>
 <translation id="657402800789773160">&amp;Diese Seite neu laden</translation>
@@ -4510,6 +4539,7 @@
 <translation id="7258225044283673131">Die Anwendung reagiert nicht. Wählen Sie "Schließen erzwingen" aus, um die App zu beenden.</translation>
 <translation id="7258697411818564379">PIN wurde hinzugefügt</translation>
 <translation id="7262004276116528033">Dieser Anmeldedienst wird von <ph name="SAML_DOMAIN" /> gehostet.</translation>
+<translation id="7266898409676782635">Hier können Sie angeben, ob Sie Tipps, Angebote und Neuigkeiten rund um <ph name="DEVICE_TYPE" /> erhalten und Feedback geben möchten. Sie können sich jederzeit wieder abmelden.</translation>
 <translation id="7268127947535186412">Diese Einstellung wird vom Eigentümer des Geräts verwaltet.</translation>
 <translation id="7270858098575133036">Nachfragen, wenn eine Website versucht, mit systemexklusiven Meldungen auf MIDI-Geräte zuzugreifen</translation>
 <translation id="7272674038937250585">Keine Beschreibung vorhanden</translation>
@@ -4583,6 +4613,7 @@
 <translation id="7364796246159120393">Datei auswählen</translation>
 <translation id="7366415735885268578">Website hinzufügen</translation>
 <translation id="7366909168761621528">Browserdaten</translation>
+<translation id="7367714965999718019">QR-Code-Generator</translation>
 <translation id="736877393389250337"><ph name="URL" /> kann in <ph name="ALTERNATIVE_BROWSER_NAME" /> nicht geöffnet werden. Bitte wenden Sie sich an Ihren Systemadministrator.</translation>
 <translation id="7370592524170198497">Ethernet-EAP:</translation>
 <translation id="7371006317849674875">Startzeit</translation>
@@ -4840,8 +4871,10 @@
 <translation id="7737238973539693982">Linux (Beta) löschen</translation>
 <translation id="7740996059027112821">Standard</translation>
 <translation id="7744047395460924128">Druckverlauf anzeigen</translation>
+<translation id="7744192722284567281">Bei Datenpanne entdeckt</translation>
 <translation id="7746457520633464754">Chrome sendet die URLs einiger von Ihnen besuchter Seiten, bestimmte Systeminformationen und einige Seiteninhalte an Google, um gefährliche Apps und Websites zu erkennen</translation>
 <translation id="7750228210027921155">Bild-in-Bild</translation>
+<translation id="7751229152614300329">Safe Browsing ist auf dem neuesten Stand und schützt Sie gegen schädliche Websites und Downloads</translation>
 <translation id="7751260505918304024">Alle anzeigen</translation>
 <translation id="7754704193130578113">Vor dem Download von Dateien nach dem Speicherort fragen</translation>
 <translation id="7755287808199759310">Deine Eltern können die Blockierung aufheben</translation>
@@ -4989,6 +5022,7 @@
 <translation id="7910768399700579500">&amp;Neuer Ordner</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Ihr Passwort wurde auf dem Server geändert. Bitte melden Sie sich ab und dann wieder an.</translation>
+<translation id="7914583336730284547">Die Dateien, die Sie abgelegt haben, verstoßen gegen die Sicherheitsrichtlinien Ihres Unternehmens. Möchten Sie trotzdem fortfahren?</translation>
 <translation id="7915457674565721553">Es ist eine Internetverbindung notwendig, um Jugendschutzeinstellungen einzurichten</translation>
 <translation id="7915471803647590281">Bitte beschreiben Sie das Problem, bevor Sie das Feedback abschicken.</translation>
 <translation id="7918257978052780342">Anmelden</translation>
@@ -5086,6 +5120,7 @@
 <translation id="8028803902702117856"><ph name="SIZE" /> werden heruntergeladen, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">Größe</translation>
 <translation id="8030656706657716245">Drucker hinzufügen</translation>
+<translation id="8030852056903932865">Genehmigen</translation>
 <translation id="8032244173881942855">Tab kann nicht gestreamt werden.</translation>
 <translation id="8033827949643255796">Ausgewählt</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Alle in &amp;Inkognitofenster öffnen}=1{In &amp;Inkognitofenster öffnen}other{Alle (#) in &amp;Inkognitofenster öffnen}}</translation>
@@ -5405,6 +5440,7 @@
 <translation id="8472623782143987204">Hardwaregestützt</translation>
 <translation id="8473863474539038330">Adressen</translation>
 <translation id="8475313423285172237">Ein anderes Programm auf Ihrem Computer hat eine Erweiterung hinzugefügt, die sich möglicherweise auf die Funktionsweise von Chrome auswirkt.</translation>
+<translation id="8476659515398963495">Die Daten, die Sie eingefügt haben, verstoßen gegen die Sicherheitsrichtlinien Ihres Unternehmens. Möchten Sie trotzdem fortfahren?</translation>
 <translation id="8477241577829954800">Außer Kraft gesetzt</translation>
 <translation id="8477384620836102176">&amp;Allgemein</translation>
 <translation id="8480082892550707549">Selbst wenn Sie zuvor schon Dateien von dieser Website heruntergeladen haben, ist die Website derzeit eventuell kompromittiert, da sie gehackt wurde. Versuchen Sie, die Datei zu einem späteren Zeitpunkt herunterzuladen.</translation>
@@ -5458,6 +5494,7 @@
 <translation id="8547013269961688403">Vollbildlupe aktivieren</translation>
 <translation id="85486688517848470">Halten Sie die Suchtaste gedrückt, um die Funktion der Tasten in der obersten Reihe zu ändern</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 Element}other{# Elemente}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> kann dann Dateien im Ordner "<ph name="FOLDERNAME" />" ändern, solange Tabs von <ph name="ORIGIN" /> geöffnet sind</translation>
 <translation id="8551388862522347954">Lizenzen</translation>
 <translation id="8553342806078037065">Andere Nutzer verwalten</translation>
 <translation id="8554899698005018844">Keine Sprache</translation>
@@ -5516,6 +5553,7 @@
 <translation id="8637688295594795546">Systemupdate verfügbar. Download wird vorbereitet...</translation>
 <translation id="8639047128869322042">Nach schädlicher Software wird gesucht...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – Port</translation>
+<translation id="8641606876632989680">Sie werden von Chrome benachrichtigt, falls Sie sich mit einem gehackten Passwort anmelden</translation>
 <translation id="8642900771896232685">2 Sekunden</translation>
 <translation id="8642947597466641025">Schriftgrad vergrößern</translation>
 <translation id="8644655801811752511">Dieser Sicherheitsschlüssel kann nicht zurückgesetzt werden. Versuchen Sie, den Schlüssel direkt nach dem Einstecken zurückzusetzen.</translation>
@@ -5565,6 +5603,7 @@
 <translation id="869884720829132584">Apps-Menü</translation>
 <translation id="869891660844655955">Ablaufdatum</translation>
 <translation id="8703346390800944767">Werbung überspringen</translation>
+<translation id="870341961648617780">Safe Browsing und erweiterte Sicherheitseinstellungen</translation>
 <translation id="8705331520020532516">Seriennummer</translation>
 <translation id="8705580154597116082">WLAN über Smartphone verfügbar</translation>
 <translation id="8705629851992224300">Ihr Sicherheitsschlüssel konnte nicht gelesen werden</translation>
@@ -5610,6 +5649,7 @@
 <translation id="874689135111202667">{0,plural, =1{Soll eine Datei auf diese Website hochgeladen werden?}other{Sollen # Dateien auf diese Website hochgeladen werden?}}</translation>
 <translation id="8748384418490037181">Smart Lock-Optionen</translation>
 <translation id="8749863574775030885">Auf USB-Geräte von einem unbekannten Anbieter zugreifen</translation>
+<translation id="8750133148106010815">Bevor Sie Google Play starten können, müssen Sie laut <ph name="ORGANIZATION_NAME" /> Ihre Daten sichern und dieses Chromebook auf die Werkseinstellungen zurücksetzen.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> möchte eine Verbindung mit einem seriellen Port herstellen</translation>
 <translation id="8754200782896249056">&lt;p&gt;Bei der Ausführung von <ph name="PRODUCT_NAME" /> in einer unterstützten Desktop-Umgebung werden die Proxy-Einstellungen des Systems verwendet. Allerdings wird entweder Ihr System nicht unterstützt oder Ihre Systemkonfiguration konnte nicht gestartet werden.&lt;/p&gt;
 
@@ -5664,6 +5704,7 @@
 <translation id="8809147117840417135">Helles Blaugrün</translation>
 <translation id="8813698869395535039">Anmeldung unter <ph name="USERNAME" /> nicht möglich</translation>
 <translation id="8813811964357448561">Blatt Papier</translation>
+<translation id="8813872945700551674">Elternteil um Genehmigung von <ph name="EXTENSION_NAME" /> bitten</translation>
 <translation id="8813969267212093033">Systemtext wird in dieser Sprache angezeigt</translation>
 <translation id="8814190375133053267">WLAN</translation>
 <translation id="8814687660896548945">Das Archiv wird geprüft. Bitte warten...</translation>
@@ -5944,6 +5985,7 @@
 <translation id="9203398526606335860">&amp;Profilerstellung aktiviert</translation>
 <translation id="9203904171912129171">Gerät auswählen</translation>
 <translation id="9203962528777363226">Der Administrator dieses Geräts hat die Funktion zum Hinzufügen neuer Nutzer deaktiviert.</translation>
+<translation id="9211177926627870898">Aktualisierung erforderlich</translation>
 <translation id="9214520840402538427">Hoppla! Bei der Initialisierung der Installationszeit-Attribute ist eine Zeitüberschreitung aufgetreten. Bitte wenden Sie sich an Ihren Support-Mitarbeiter.</translation>
 <translation id="9214695392875603905">Cupcake</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" hinzugefügt</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index 7d69f7320..dfe9d1dc 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Ρυθμίσεις αποθήκευσης του Adobe Flash Player</translation>
 <translation id="1274997165432133392">Εμφάνιση cookie και άλλων δεδομένων ιστότοπου</translation>
 <translation id="1280820357415527819">Αναζήτηση για δίκτυα κινητής τηλεφωνίας</translation>
+<translation id="1280965841156951489">Επεξεργασία αρχείων</translation>
 <translation id="1282420830958964167">Συμπληρώθηκε το όριο που έθεσε ο γονέας σου για την εφαρμογή "<ph name="APP_NAME" />". Μπορείς να την χρησιμοποιήσεις αύριο για <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Να μην γίνεται ποτέ μετάφραση αυτού του ιστότοπου</translation>
 <translation id="1285484354230578868">Αποθήκευση δεδομένων στο λογαριασμό σας στο Google Drive</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Σκούρο μοβ</translation>
 <translation id="1692799361700686467">Επιτρέπονται τα cookie από πολλούς ιστότοπους</translation>
 <translation id="1697150536837697295">Art</translation>
+<translation id="1697686431566694143">Επεξεργασία αρχείου</translation>
 <translation id="1698122934742150150">Μόνο για την τρέχουσα περίοδο λειτουργίας σε κατάσταση ανώνυμης περιήγησης</translation>
 <translation id="1698650002254827833">Δεν είναι δυνατή η φόρτωση της λίστας εφαρμογών. Δοκιμάστε ξανά.</translation>
 <translation id="1701062906490865540">Κατάργηση αυτού του ατόμου</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Δεν έχουν εγκατασταθεί στοιχεία.</translation>
 <translation id="1932098463447129402">Όχι πριν από</translation>
 <translation id="1933809209549026293">Συνδέστε ένα ποντίκι ή ένα πληκτρολόγιο. Εάν χρησιμοποιείτε συσκευή Bluetooth, βεβαιωθείτε ότι είναι έτοιμη για σύζευξη.</translation>
+<translation id="1936931585862840749">Χρησιμοποιήστε έναν αριθμό για να υποδείξετε πόσα αντίγραφα θα εκτυπωθούν (1 έως <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Δεν είναι δυνατή η εισαγωγή ενός κοντέινερ με τύπο αρχιτεκτονικής <ph name="ARCHITECTURE_CONTAINER" /> με μια συσκευή της οποίας ο τύπος αρχιτεκτονικής είναι <ph name="ARCHITECTURE_DEVICE" />. Προσπαθήστε να επαναφέρετε αυτό το κοντέινερ σε μια άλλη συσκευή ή αποκτήστε πρόσβαση στα αρχεία αυτής της εικόνας κοντέινερ ανοίγοντάς τη στην εφαρμογή Αρχεία.</translation>
 <translation id="1938351510777341717">Εξωτερικό πλήκτρο Command</translation>
 <translation id="1940546824932169984">Συνδεδεμένες συσκευές</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Εστίαση σε αυτήν την καρτέλα</translation>
 <translation id="2344028582131185878">Αυτόματες λήψεις</translation>
 <translation id="2345723121311404059">1 σελίδα στον εκτυπωτή <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Υπηρεσία SODA</translation>
 <translation id="2347644257713614136">Η χρήση του Hangouts και του Cast for Education διέπεται από την Πολιτική απορρήτου της Google.</translation>
 <translation id="2348176352564285430">Εφαρμογή: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Έγινε επανάληψη φόρτωσης</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Η επαναφορά Linux ακυρώθηκε</translation>
 <translation id="2423578206845792524">Αποθήκευση εικόνας &amp;ως...</translation>
 <translation id="2428510569851653187">Περιγράψτε τι κάνατε όταν παρουσιάστηκε το σφάλμα στην καρτέλα</translation>
+<translation id="2428939361789119025">Απενεργοποιήστε το Wi-Fi</translation>
 <translation id="2431027948063157455">Δεν ήταν δυνατή η φόρτωση του Βοηθού Google. Ελέγξτε τη σύνδεση δικτύου σας και δοκιμάστε ξανά.</translation>
 <translation id="2432753757290432042">Απαιτείται ενημέρωση Linux (beta)</translation>
 <translation id="2433452467737464329">Προσθήκη μιας παραμέτρου ερωτήματος στη διεύθυνση URL για την αυτόματη ανανέωση της σελίδας: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Αποστολή δεδομένων χρήσης και διαγνωστικών. Συμβάλετε στη βελτίωση της εμπειρίας Android με αυτόματη αποστολή διαγνωστικών δεδομένων και δεδομένων συσκευής και χρήσης εφαρμογών στην Google. Με αυτόν τον τρόπο βελτιώνεται η σταθερότητα του συστήματος και των εφαρμογών και παρέχονται επιπλέον βελτιώσεις. Ορισμένα συγκεντρωτικά δεδομένα θα βοηθήσουν επίσης τις εφαρμογές και τους συνεργάτες της Google, όπως τους προγραμματιστές Android. Εάν η ρύθμιση της πρόσθετης Δραστηριότητας ιστού και εφαρμογών είναι ενεργοποιημένη, αυτά τα δεδομένα μπορεί να αποθηκευτούν στον Λογαριασμό σας Google. <ph name="BEGIN_LINK1" />Μάθετε περισσότερα<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Προσθήκη σύνδεσης</translation>
 <translation id="2947605845283690091">Η περιήγηση στον ιστό θα πρέπει να είναι γρήγορη. Αφιερώστε ένα λεπτό για να <ph name="BEGIN_LINK" />ελέγξετε τις επεκτάσεις σας<ph name="END_LINK" /> τώρα.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 δυνητικά επιβλαβής επέκταση είναι απενεργοποιημένη. Μπορείτε επίσης να την καταργήσετε.}other{# δυνητικά επιβλαβείς επεκτάσεις είναι απενεργοποιημένες. Μπορείτε επίσης να τις καταργήσετε.}}</translation>
 <translation id="2948300991547862301">Μετάβαση στη σελίδα <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Ένα γρήγορο, απλό και ασφαλές πρόγραμμα περιήγησης ιστού, το οποίο δημιουργήθηκε για τον σύγχρονο ιστό.</translation>
 <translation id="2949289451367477459">Χρήση της τοποθεσίας. Επιτρέψτε στις εφαρμογές και στις υπηρεσίες που έχουν άδεια χρήσης τοποθεσίας να χρησιμοποιούν την τοποθεσία αυτής της συσκευής. Η Google μπορεί να συλλέγει περιοδικά δεδομένα τοποθεσίας και να τα χρησιμοποιεί ανώνυμα, προκειμένου να βελτιώσει την ακρίβεια της τοποθεσίας και των υπηρεσιών που βασίζονται στην τοποθεσία. <ph name="BEGIN_LINK1" />Μάθετε περισσότερα<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Εγκατάσταση εφαρμογής;</translation>
 <translation id="3067198360141518313">Εκτέλεση αυτής της προσθήκης</translation>
 <translation id="3071624960923923138">Μπορείτε να κάνετε κλικ εδώ, για να ανοίξετε μια νέα καρτέλα</translation>
+<translation id="3072775339180057696">Να επιτρέπεται στον ιστότοπο η προβολή του αρχείου <ph name="FILE_NAME" />;</translation>
 <translation id="3075874217500066906">Απαιτείται επανεκκίνηση προκειμένου να ξεκινήσει η διαδικασία Powerwash. Μετά την επανεκκίνηση, θα σας ζητηθεί να επιβεβαιώσετε ότι θέλετε να συνεχίσετε.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Τα δεδομένα σύνδεσής σας διαγράφηκαν.</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Ο ιστότοπος μπορεί να χρησιμοποιήσει την κάμερά σας</translation>
 <translation id="3085752524577180175">Κεντρικός υπολογιστής SOCKS</translation>
 <translation id="3088052000289932193">Ο ιστότοπος χρησιμοποιεί MIDI.</translation>
+<translation id="3088128611727407543">Προετοιμασία προφίλ εφαρμογής…</translation>
 <translation id="3088325635286126843">&amp;Μετονομασία...</translation>
 <translation id="3089137131053189723">Η αναζήτηση διαγράφηκε</translation>
 <translation id="3090193911106258841">Πρόσβαση στην είσοδο ήχου και βίντεο</translation>
@@ -1596,6 +1604,7 @@
     Περιγραφή:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Εφαρμογές Chrome</translation>
+<translation id="3150693969729403281">Εκτέλεση ελέγχου ασφαλείας τώρα</translation>
 <translation id="3150927491400159470">Υποχρεωτική επανάληψη φόρτωσης</translation>
 <translation id="315116470104423982">Δεδομένα κινητής τηλεφωνίας</translation>
 <translation id="3151539355209957474">Ώρα έναρξης</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Σύνδεση στο Chrome</translation>
 <translation id="3285322247471302225">Νέα &amp;Καρτέλα</translation>
 <translation id="328571385944182268">Αποθήκευση των κωδικών πρόσβασής σας;</translation>
+<translation id="328785681103589998">Το <ph name="ORIGIN" /> θα μπορεί να προβάλλει το αρχείο <ph name="FILENAME" /> έως ότου κλείσετε όλες τις καρτέλες <ph name="ORIGIN" />.</translation>
 <translation id="3288047731229977326">Οι επεκτάσεις που εκτελούνται σε λειτουργία προγραμματιστή μπορούν να βλάψουν τον υπολογιστή σας. Εάν δεν είστε προγραμματιστής, θα πρέπει να απενεργοποιήσετε αυτές τις επεκτάσεις που εκτελούνται σε λειτουργία προγραμματιστή για να διατηρήσετε την ασφάλειά σας.</translation>
 <translation id="3289856944988573801">Για να ελέγξετε για ενημερώσεις, χρησιμοποιήστε δίκτυο Ethernet ή Wi-Fi.</translation>
 <translation id="3290356915286466215">Μη ασφαλές</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Ανάγνωση των δεδομένων σας σε ορισμένους ιστότοπους</translation>
 <translation id="3448086340637592206">Πρόσθετοι Όροι Google Chrome και Chrome OS</translation>
 <translation id="3448492834076427715">Ενημέρωση λογαριασμού</translation>
+<translation id="3449393517661170867">Νέο παράθυρο με καρτέλες</translation>
 <translation id="3449839693241009168">Πατήστε <ph name="SEARCH_KEY" /> για να αποστείλετε εντολές στο <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Ποσοστό κατοχής κατάστασης αδράνειας</translation>
 <translation id="3451332697983754369">Συγχρονισμός της συσκευής <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Σας ευχαριστούμε για τα σχόλιά σας. Βρίσκεστε εκτός σύνδεσης αυτήν τη στιγμή. Η αναφορά σας θα σταλεί αργότερα.</translation>
 <translation id="3682824389861648626">Ελάχιστο όριο κίνησης</translation>
 <translation id="3683524264665795342">Αίτημα κοινής χρήσης οθόνης από την εφαρμογή <ph name="APP_NAME" /></translation>
+<translation id="3686074530047028092">Λογαριασμός εκπαίδευσης</translation>
 <translation id="368789413795732264">Παρουσιάστηκε σφάλμα κατά την απόπειρα εγγραφής στο αρχείο <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Εγγραφή σε αρχεία και φακέλους που ανοίγετε στην εφαρμογή</translation>
 <translation id="3688526734140524629">Αλλαγή καναλιού</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Αποκλεισμός τμημάτων ιστοσελίδων</translation>
 <translation id="3760460896538743390">Έλεγχος &amp;σελίδας παρασκηνίου</translation>
 <translation id="37613671848467444">Άνοιγμα σε παράθυρο ανώνυμης περιήγησης</translation>
+<translation id="3761556954875533505">Να επιτρέπεται στον ιστότοπο η επεξεργασία των αρχείων;</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Επικοινωνία με μια συσκευή USB}other{Επικοινωνία με # συσκευές USB}}</translation>
 <translation id="3765246971671567135">Δεν ήταν δυνατή η ανάγνωση της πολιτικής λειτουργίας επίδειξης εκτός σύνδεσης.</translation>
 <translation id="3768037234834996183">Γίνεται συγχρονισμός των προτιμήσεών σας…</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Άρνηση</translation>
 <translation id="3928570707778085600">Αποθήκευση αλλαγών στο αρχείο <ph name="FILE_OR_FOLDER_NAME" />;</translation>
 <translation id="3929426037718431833">Αυτές οι επεκτάσεις μπορούν να προβάλλουν και να αλλάζουν τις πληροφορίες σε αυτόν τον ιστότοπο.</translation>
+<translation id="3930155420525972941">Μετακίνηση ομάδας σε νέο παράθυρο</translation>
 <translation id="3930737994424905957">Αναζήτηση συσκευών</translation>
 <translation id="3930968231047618417">Χρώμα φόντου</translation>
 <translation id="3933283459331715412">Επαναφορά διαγραμμένου κωδικού πρόσβασης για τον λογαριασμό <ph name="USERNAME" /></translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Συμφωνώ</translation>
 <translation id="413121957363593859">Στοιχεία</translation>
 <translation id="4131410914670010031">Ασπρόμαυρο</translation>
+<translation id="4133076602192971179">Ανοίξτε την εφαρμογή για να αλλάξετε τον κωδικό πρόσβασής σας</translation>
 <translation id="4136203100490971508">Ο Νυχτερινός φωτισμός θα απενεργοποιείται αυτόματα κατά την ανατολή του ηλίου</translation>
 <translation id="41365691917097717">Εάν συνεχίσετε, θα ενεργοποιηθεί ο εντοπισμός και η διόρθωση σφαλμάτων ADB για δημιουργία και δοκιμή εφαρμογών Android. Σημειώστε ότι αυτή η ενέργεια επιτρέπει την εγκατάσταση εφαρμογών Android που δεν έχουν επαληθευτεί από τη Google. Επιπλέον, απαιτείται εργοστασιακή επαναφορά για την απενεργοποίησή της.</translation>
 <translation id="4138267921960073861">Εμφάνιση ονομάτων χρηστών και φωτογραφιών στην οθόνη σύνδεσης</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Να μην γίνεται ποτέ μετάφραση από <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Ρύθμιση γονικών ελέγχων</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 με κρυπτογράφηση RSA</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Ο διαχειριστής σας ενεργοποίησε ξανά 1 δυνητικά επιβλαβή επέκταση.}other{Ο διαχειριστής σας ενεργοποίησε ξανά # δυνητικά επιβλαβείς επεκτάσεις.}}</translation>
 <translation id="4336434711095810371">Διαγραφή όλων των δεδομένων</translation>
 <translation id="4336979451636460645">Για τα αρχεία καταγραφής δικτύου, δείτε: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942">Το <ph name="ORIGIN" /> θέλει να επικοινωνήσει με την εφαρμογή "<ph name="EXTENSION_NAME" />"</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Χρησιμοποιείτε ένα κλειδί ασφαλείας το οποίο δεν είναι εγγεγραμμένο σε αυτόν τον ιστότοπο</translation>
 <translation id="4788092183367008521">Ελέγξτε τη σύνδεση δικτύου σας και δοκιμάστε ξανά.</translation>
 <translation id="4792711294155034829">&amp;Αναφορά προβλήματος...</translation>
+<translation id="4794810983896241342">Η διαχείριση των ενημερώσεων πραγματοποιείται από τον <ph name="BEGIN_LINK" />διαχειριστή σας<ph name="END_LINK" />.</translation>
 <translation id="479536056609751218">Ιστοσελίδα, μόνο HTML</translation>
 <translation id="4798236378408895261">Επισυνάψτε <ph name="BEGIN_LINK" />αρχεία καταγραφής Bluetooth<ph name="END_LINK" /> (για εσωτερική χρήση από την Google)</translation>
 <translation id="4801448226354548035">Απόκρυψη λογαριασμών</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Ανοίξτε μια νέα καρτέλα για ταυτόχρονη περιήγηση σε δύο ιστότοπους</translation>
 <translation id="4909038193460299775">Επειδή η διαχείριση αυτού του λογαριασμού γίνεται από τον τομέα <ph name="DOMAIN" />, οι σελιδοδείκτες, το ιστορικό, οι κωδικοί πρόσβασης και άλλες ρυθμίσεις θα διαγραφούν από αυτήν τη συσκευή. Ωστόσο, τα δεδομένα σας θα παραμείνουν αποθηκευμένα στον Λογαριασμό σας Google και η διαχείρισή τους μπορεί να γίνεται στον <ph name="BEGIN_LINK" />Πίνακα ελέγχου Google<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Έξοδος από την κατάσταση αδράνειας</translation>
+<translation id="4916542008280060967">Να επιτρέπεται στον ιστότοπο η επεξεργασία του αρχείου <ph name="FILE_NAME" />;</translation>
 <translation id="491691592645955587">Κάντε εναλλαγή σε ένα ασφαλές πρόγραμμα περιήγησης</translation>
 <translation id="4917385247580444890">Ισχυρό</translation>
 <translation id="4918021164741308375">Το <ph name="ORIGIN" /> θέλει να επικοινωνήσει με την επέκταση "<ph name="EXTENSION_NAME" />"</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Διατήρηση</translation>
 <translation id="5018207570537526145">Άνοιγμα ιστοτόπου επεκτάσεων</translation>
 <translation id="5021750053540820849">Δεν ενημερώθηκε ακόμη</translation>
+<translation id="5026806129670917316">Ενεργοποίηση Wi-Fi</translation>
 <translation id="5026874946691314267">Να μην εμφανιστεί ξανά</translation>
 <translation id="5027550639139316293">Πιστοποιητικό ηλεκτρονικού ταχυδρομείου</translation>
 <translation id="5027562294707732951">Προσθήκη επέκτασης</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">Κονσόλα &amp;JavaScript</translation>
 <translation id="5184209580557088469">Υπάρχει ήδη ένα εισιτήριο με αυτό το όνομα χρήστη.</translation>
 <translation id="5184662919967270437">Ενημέρωση της συσκευής σας</translation>
+<translation id="5185359571430619712">Επεκτάσεις κριτικής</translation>
 <translation id="5185386675596372454">Η τελευταία έκδοση του " <ph name="EXTENSION_NAME" /> "έχει απενεργοποιηθεί, επειδή απαιτούνται περισσότερα δικαιώματα.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422">Ο ιστότοπος <ph name="ORIGIN" /> θέλει να κατεβάσει πολλά αρχεία</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Έξυπνα εισαγωγικά</translation>
 <translation id="5260508466980570042">Λυπούμαστε, δεν ήταν δυνατή η επαλήθευση της διεύθυνσής σας ηλεκτρονικού ταχυδρομείου ή του κωδικού πρόσβασής σας. Δοκιμάστε ξανά.</translation>
 <translation id="5261683757250193089">Άνοιγμα στο Web Store</translation>
+<translation id="5262178194499261222">Κατάργηση κωδικού πρόσβασης</translation>
 <translation id="5264148714798105376">Αυτή η διαδικασία μπορεί να διαρκέσει περίπου ένα λεπτό.</translation>
 <translation id="5264252276333215551">Για να ξεκινήσετε την εφαρμογή στη λειτουργία kiosk, συνδεθείτε στο διαδίκτυο.</translation>
 <translation id="5265562206369321422">Εκτός σύνδεσης για περισσότερο από μία εβδομάδα</translation>
@@ -3508,6 +3529,7 @@
 <translation id="5833726373896279253">Οι ρυθμίσεις αυτές μπορούν να τροποποιηθούν μόνο από τον κάτοχο:</translation>
 <translation id="5834581999798853053">Απομένουν περίπου <ph name="TIME" /> λεπτά</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Εγγραφή κάμερας ή μικροφώνου</translation>
+<translation id="5841270259333717135">Διαμόρφωση ethernet</translation>
 <translation id="5842497610951477805">Ενεργοποίηση Bluetooth</translation>
 <translation id="5846200638699387931">Σφάλμα σύνταξης σχέσης: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Έχει ήδη προστεθεί</translation>
@@ -3553,6 +3575,7 @@
 <translation id="5900358982890952556">Αναβάθμιση Linux (Beta)</translation>
 <translation id="5901494423252125310">Η θύρα του εκτυπωτή είναι ανοικτή</translation>
 <translation id="5901630391730855834">Κίτρινο</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Ενεργοποιήσατε ξανά 1 δυνητικά επιβλαβή επέκταση.}other{Ενεργοποιήσατε ξανά # δυνητικά επιβλαβείς επεκτάσεις.}}</translation>
 <translation id="5906655207909574370">Η ενημέρωση σχεδόν ολοκληρώθηκε! Επανεκκινήστε τη συσκευή σας για να ολοκληρωθεί η ενημέρωση.</translation>
 <translation id="5906732635754427568">Τα δεδομένα που σχετίζονται με αυτήν την εφαρμογή θα καταργηθούν από αυτήν τη συσκευή.</translation>
 <translation id="5908769186679515905">Αποκλεισμός ιστοτόπων από την εκτέλεση Flash</translation>
@@ -3582,6 +3605,7 @@
 <translation id="59324397759951282">Συσκευή USB από <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Σειριακός</translation>
 <translation id="5933376509899483611">Ζώνη ώρας</translation>
+<translation id="5935656526031444304">Διαχείριση Ασφαλούς περιήγησης</translation>
 <translation id="5938002010494270685">Υπάρχει διαθέσιμη αναβάθμιση ασφάλειας</translation>
 <translation id="5939518447894949180">Επαναφορά</translation>
 <translation id="5941153596444580863">Προσθήκη χρήστη…</translation>
@@ -3625,6 +3649,7 @@
 <translation id="5993807461461235661">Αυτή η μεταφόρτωση είναι κρυπτογραφημένη και παραβαίνει τις πολιτικές ασφαλείας του οργανισμού σας.</translation>
 <translation id="5997337190805127100">Μάθετε περισσότερα για την πρόσβαση ιστοτόπου</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> αποτελέσματα για την αναζήτηση "<ph name="SEARCH_TEXT" />"</translation>
+<translation id="6002210667729577411">Μετακίνηση ομάδας σε νέο παράθυρο</translation>
 <translation id="6002458620803359783">Προτιμώμενες φωνές</translation>
 <translation id="6006484371116297560">Κλασικό</translation>
 <translation id="6007240208646052708">Η Φωνητική αναζήτηση δεν είναι διαθέσιμη στη γλώσσα σας.</translation>
@@ -4163,6 +4188,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Εμφάνιση συντόμευσης επιφάνειας εργασίας</translation>
 <translation id="6740234557573873150">Το αρχείο <ph name="FILE_NAME" /> τέθηκε σε παύση</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Ο διαχειριστής σας<ph name="END_LINK" /> απενεργοποίησε την Ασφαλή περιήγηση.</translation>
 <translation id="6742339027238151589">Δυνατότητα πρόσβασης από το σενάριο</translation>
 <translation id="6745592621698551453">Ενημέρωση τώρα</translation>
 <translation id="6746124502594467657">Μετακίνηση προς τα κάτω</translation>
@@ -4421,6 +4447,7 @@
     <ph name="BEGIN_BOLD" />Λάβετε υπόψη τα εξής:<ph name="END_BOLD" /> Μια παρόμοια φωνή ή ηχογράφηση μπορεί να έχει επίσης πρόσβαση στον Βοηθό σας. Μπορείτε να καταργήσετε την άδεια Voice Match αργότερα απενεργοποιώντας το στις Ρυθμίσεις Βοηθού.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Ανταλλαγή δεδομένων με συσκευές με την ονομασία: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Όταν ολοκληρωθούν οι ενημερώσεις, η συσκευή θα επανεκκινηθεί.</translation>
 <translation id="7098389117866926363">Συσκευή USB-C (πίσω αριστερή θύρα)</translation>
 <translation id="7098447629416471489">Οι άλλες αποθηκευμένες μηχανές αναζήτησης θα εμφανίζονται εδώ.</translation>
 <translation id="7099337801055912064">Δεν είναι δυνατή η φόρτωση μεγάλου PPD. Το μέγιστο μέγεθος είναι 250 KB.</translation>
@@ -4893,6 +4920,7 @@
 <translation id="7766807826975222231">Κάντε μια περιήγηση</translation>
 <translation id="7766838926148951335">Αποδοχή αδειών</translation>
 <translation id="7769672763586021400">Αναγνωριστικό μοντέλου</translation>
+<translation id="7770651108375708429">Αποσύνδεση από Wi-Fi</translation>
 <translation id="7771452384635174008">Διάταξη</translation>
 <translation id="7772032839648071052">Επιβεβαίωση φράσης πρόσβασης</translation>
 <translation id="7772127298218883077">Σχετικά με το <ph name="PRODUCT_NAME" /></translation>
@@ -5051,6 +5079,7 @@
 <translation id="7939412583708276221">Να συνεχιστεί</translation>
 <translation id="7942349550061667556">Κόκκινο</translation>
 <translation id="7943837619101191061">Προσθήκη τοποθεσίας…</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 παραβιασμένος κωδικός πρόσβασης}other{# παραβιασμένοι κωδικοί πρόσβασης}}</translation>
 <translation id="7945031593909029181">Η επέκταση "<ph name="CHROME_EXTENSION_NAME" />" επιθυμεί σύνδεση</translation>
 <translation id="7946586320617670168">Η προέλευση θα πρέπει να είναι ασφαλής</translation>
 <translation id="794676567536738329">Επιβεβαίωση δικαιωμάτων</translation>
@@ -5150,6 +5179,7 @@
 <translation id="8059417245945632445">&amp;Επιθεώρηση συσκευών</translation>
 <translation id="8059456211585183827">Δεν υπάρχουν διαθέσιμοι εκτυπωτές για αποθήκευση.</translation>
 <translation id="8063235345342641131">Προεπιλεγμένο πράσινο avatar</translation>
+<translation id="8063535366119089408">Προβολή αρχείου</translation>
 <translation id="8064671687106936412">Κλειδί:</translation>
 <translation id="8068253693380742035">Αγγίξτε για να συνδεθείτε</translation>
 <translation id="8068809649322155577">Με αυτήν την ενέργεια θα διαγραφούν όλα τα δεδομένα και τα cookie που έχουν αποθηκευτεί από την ομάδα ιστοτόπων <ph name="SITE_GROUP_NAME" />, τυχόν ιστοτόπους που περιλαμβάνονται σε αυτήν και τις εγκατεστημένες εφαρμογές τους.</translation>
@@ -5215,6 +5245,7 @@
 <translation id="8152091997436726702">Η καταχώριση του εκτυπωτή έχει λήξει. Για να καταχωρίσετε κάποιον εκτυπωτή, θα πρέπει να επιβεβαιώσετε την καταχώριση στον εκτυπωτή.</translation>
 <translation id="8154790740888707867">Δεν υπάρχει αρχείο</translation>
 <translation id="815491593104042026">Ωχ! Η διαδικασία ταυτοποίησης απέτυχε γιατί είχε ρυθμιστεί να χρησιμοποιεί μια μη ασφαλή διεύθυνση URL (<ph name="BLOCKED_URL" />).  Επικοινωνήστε με το διαχειριστή σας.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Δεν βρέθηκαν παραβιασμένοι κωδικοί πρόσβασης.}=1{{COUNT} παραβιασμένος κωδικός πρόσβασης}other{{COUNT} παραβιασμένοι κωδικοί πρόσβασης}}</translation>
 <translation id="8157704005178149728">Ρύθμιση επίβλεψης</translation>
 <translation id="8158117992543756526">Από τον <ph name="MONTH_AND_YEAR" />, αυτή η συσκευή δεν λαμβάνει πλέον αυτόματες ενημερώσεις λογισμικού και ασφαλείας. <ph name="LINK_BEGIN" />Μάθετε περισσότερα<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Σφάλμα ρύθμισης της αποδοχής πιστοποιητικού</translation>
@@ -5268,6 +5299,7 @@
 <translation id="8226742006292257240">Ακολουθεί ο κωδικός πρόσβασης TPM που δημιουρήθηκε τυχαία και έχει εκχωρηθεί στον υπολογιστή σας:</translation>
 <translation id="8227119283605456246">Επισύναψη αρχείου</translation>
 <translation id="8230134520748321204">Αποθήκευση κωδικού πρόσβασης για <ph name="ORIGIN" />;</translation>
+<translation id="8233762480744368479">Ρυθμίσεις διαδικτύου</translation>
 <translation id="8234795456569844941">Βοηθήστε τους μηχανικούς μας να επιδιορθώσουν αυτό το πρόβλημα. Πείτε μας τι συνέβη ακριβώς πριν από τη λήψη του μηνύματος σφάλματος προφίλ:</translation>
 <translation id="8236123533334037984">Ο οργανισμός σας σαρώνει αυτήν τη μεταφόρτωση για έγκριση ασφάλειας.</translation>
 <translation id="8236917170563564587">Εναλλακτικά, μοιραστείτε αυτήν την καρτέλα</translation>
@@ -5605,6 +5637,7 @@
 <translation id="8688579245973331962">Δεν βλέπετε το όνομά σας;</translation>
 <translation id="8688591111840995413">Μη αποδεκτός κωδικός πρόσβασης</translation>
 <translation id="8688672835843460752">Διαθέσιμο</translation>
+<translation id="8691418731028620688">Σύνδεση σε Wi-Fi</translation>
 <translation id="8695825812785969222">Άνοιγμα τοποθεσίας...</translation>
 <translation id="869884720829132584">Μενού εφαρμογών</translation>
 <translation id="869891660844655955">Ημερομηνία λήξης</translation>
@@ -5762,6 +5795,7 @@
 <translation id="8872187374998143710">Επανεκκινήστε τη συσκευή σας για να χρησιμοποιήσετε το Plugin VM.</translation>
 <translation id="8872777911145321141">Να γίνεται ερώτηση όταν ένας ιστότοπος θέλει να χρησιμοποιήσει τις συσκευές και τα δεδομένα εικονικής πραγματικότητας (συνιστάται)</translation>
 <translation id="8874184842967597500">Δεν υπάρχει σύνδεση</translation>
+<translation id="8875775314572167244">Ρυθμίσεις ethernet</translation>
 <translation id="8876307312329369159">Δεν είναι δυνατή η αλλαγή αυτής της ρύθμισης σε μια περίοδο σύνδεσης επίδειξης.</translation>
 <translation id="8877448029301136595">[γονικός κατάλογος]</translation>
 <translation id="8878384954777710821">Απεγκατάσταση Plugin VM…</translation>
@@ -5803,6 +5837,7 @@
 <translation id="892706138619340876">Έγινε επαναφορά ορισμένων ρυθμίσεων</translation>
 <translation id="8930351635855238750">Οι ρυθμίσεις νέων cookie θα εφαρμοστούν μετά την επανάληψη φόρτωσης της σελίδας</translation>
 <translation id="8931394284949551895">Νέες συσκευές</translation>
+<translation id="8931475688782629595">Διαχειριστείτε τι θα συγχρονίζεται</translation>
 <translation id="8932894639908691771">Επιλογές πρόσβασης με διακόπτη</translation>
 <translation id="8933960630081805351">&amp;Εμφάνιση στο Finder</translation>
 <translation id="8934732568177537184">Συνέχεια</translation>
@@ -5960,6 +5995,7 @@
 <translation id="9148126808321036104">Συνδεθείτε ξανά</translation>
 <translation id="9149866541089851383">Επεξεργασία...</translation>
 <translation id="9150045010208374699">Χρήση της κάμεράς σας</translation>
+<translation id="9150429437595727962">Ρυθμίσεις Wi-Fi</translation>
 <translation id="9153934054460603056">Αποθήκευση ταυτότητας και κωδικού πρόσβασης</translation>
 <translation id="9154194610265714752">Ενημερώθηκε</translation>
 <translation id="91568222606626347">Δημιουργία συντόμευσης…</translation>
@@ -6021,6 +6057,7 @@
 <translation id="945522503751344254">Αποστολή σχολίων</translation>
 <translation id="947329552760389097">&amp;Inspect Elements</translation>
 <translation id="952992212772159698">Μη ενεργοποιημένο</translation>
+<translation id="956500788634395331">Είστε προστατευμένοι από δυνητικά επιβλαβείς επεκτάσεις.</translation>
 <translation id="957960681186851048">Αυτός ο ιστότοπος επιχείρησε να κατεβάσει αυτόματα πολλά αρχεία</translation>
 <translation id="9580706199804957">Δεν ήταν δυνατή η σύνδεση με τις υπηρεσίες Google</translation>
 <translation id="960719561871045870">Κωδικός τελεστή</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 769b17e..41133fc6 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Adobe Flash Player Storage settings</translation>
 <translation id="1274997165432133392">Cookies and other site data</translation>
 <translation id="1280820357415527819">Searching for mobile networks</translation>
+<translation id="1280965841156951489">Edit files</translation>
 <translation id="1282420830958964167">The limit on '<ph name="APP_NAME" />' that your parent set ran out. You can use it for <ph name="TIME_LIMIT" /> tomorrow.</translation>
 <translation id="1285320974508926690">Never translate this site</translation>
 <translation id="1285484354230578868">Store data in your Google Drive account</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Dark purple</translation>
 <translation id="1692799361700686467">Cookies from multiple sites allowed.</translation>
 <translation id="1697150536837697295">Art</translation>
+<translation id="1697686431566694143">Edit file</translation>
 <translation id="1698122934742150150">Current incognito session only</translation>
 <translation id="1698650002254827833">The list of apps cannot be loaded. Please retry.</translation>
 <translation id="1701062906490865540">Remove this person</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">No components installed.</translation>
 <translation id="1932098463447129402">Not Before</translation>
 <translation id="1933809209549026293">Please connect a mouse or a keyboard. If you are using a Bluetooth device, make sure that it is ready to pair.</translation>
+<translation id="1936931585862840749">Use a number to indicate how many copies to print (1 to <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Cannot import container architecture type <ph name="ARCHITECTURE_CONTAINER" /> with this device which is <ph name="ARCHITECTURE_DEVICE" />. You can try restoring this container into a different device, or you can access the files inside this container image by opening in Files app.</translation>
 <translation id="1938351510777341717">External Command</translation>
 <translation id="1940546824932169984">Connected devices</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Focus This Tab</translation>
 <translation id="2344028582131185878">Automatic downloads</translation>
 <translation id="2345723121311404059">1 page to <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">SODA Service</translation>
 <translation id="2347644257713614136">Use of Hangouts and Cast for Education is governed by the Google Privacy Policy.</translation>
 <translation id="2348176352564285430">App: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Reloaded</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Linux restore cancelled</translation>
 <translation id="2423578206845792524">Sa&amp;ve image as...</translation>
 <translation id="2428510569851653187">Describe what you were doing when the tab crashed</translation>
+<translation id="2428939361789119025">Turn off Wi-Fi</translation>
 <translation id="2431027948063157455">Google Assistant was unable to load. Please check your network connection and retry.</translation>
 <translation id="2432753757290432042">Linux (Beta) update required</translation>
 <translation id="2433452467737464329">Add a query param in URL to auto-refresh the page: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Send usage and diagnostic data. Help improve your Android experience by automatically sending diagnostic, device and app usage data to Google. This will help system and app stability and other improvements. Some aggregate data will also help Google apps and partners, such as Android developers. If your additional Web &amp; App Activity setting is turned on, this data may be saved to your Google Account. <ph name="BEGIN_LINK1" />Find out more<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Add connection</translation>
 <translation id="2947605845283690091">Web browsing should be fast. Take a moment to <ph name="BEGIN_LINK" />check your extensions<ph name="END_LINK" /> now.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 potentially harmful extension is off. You can also remove it.}other{# potentially harmful extensions are off. You can also remove them.}}</translation>
 <translation id="2948300991547862301">Go to <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">A fast, simple and secure web browser, built for the modern web.</translation>
 <translation id="2949289451367477459">Use location. Allow apps and services with location permission to use this device’s location. Google may collect location data periodically and use this data in an anonymous way to improve location accuracy and location-based services. <ph name="BEGIN_LINK1" />Learn More<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Install app?</translation>
 <translation id="3067198360141518313">Run this plug-in</translation>
 <translation id="3071624960923923138">You can click here to open a new tab</translation>
+<translation id="3072775339180057696">Let site view <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">A restart is required to begin the Powerwash process. After restart you will be asked to confirm that you want to proceed.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Your sign-in data was deleted</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Site can use your camera</translation>
 <translation id="3085752524577180175">SOCKS Host</translation>
 <translation id="3088052000289932193">Site is using MIDI</translation>
+<translation id="3088128611727407543">Preparing app profile…</translation>
 <translation id="3088325635286126843">&amp;Rename...</translation>
 <translation id="3089137131053189723">Search cleared</translation>
 <translation id="3090193911106258841">Accessing audio and video input</translation>
@@ -1596,6 +1604,7 @@
     Description:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome Apps</translation>
+<translation id="3150693969729403281">Run safety check now</translation>
 <translation id="3150927491400159470">Hard Reload</translation>
 <translation id="315116470104423982">Mobile data</translation>
 <translation id="3151539355209957474">Start Time</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Sign in to Chrome</translation>
 <translation id="3285322247471302225">New &amp;Tab</translation>
 <translation id="328571385944182268">Save your passwords?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> will be able to view <ph name="FILENAME" /> until you close all <ph name="ORIGIN" /> tabs</translation>
 <translation id="3288047731229977326">Extensions running in developer mode can harm your computer. If you're not a developer, you should disable these extensions running in developer mode to stay safe.</translation>
 <translation id="3289856944988573801">To check for updates, please use Ethernet or Wi-Fi.</translation>
 <translation id="3290356915286466215">Unsecured</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Read your data on a number of websites</translation>
 <translation id="3448086340637592206">Google Chrome and Chrome OS additional terms</translation>
 <translation id="3448492834076427715">Update account</translation>
+<translation id="3449393517661170867">New tabbed window</translation>
 <translation id="3449839693241009168">Press <ph name="SEARCH_KEY" /> to send commands to <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Idle State Occupancy Percentage</translation>
 <translation id="3451332697983754369">Sync my <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Thank you for your feedback. You are offline now, and your report will be sent later.</translation>
 <translation id="3682824389861648626">Movement threshold</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> Screen Sharing Request</translation>
+<translation id="3686074530047028092">Education account</translation>
 <translation id="368789413795732264">There was an error while trying to write the file: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Write to files and folders that you open in the application</translation>
 <translation id="3688526734140524629">Change channel</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Block parts of web pages</translation>
 <translation id="3760460896538743390">Inspect &amp;Background Page</translation>
 <translation id="37613671848467444">Open in &amp;Incognito Window</translation>
+<translation id="3761556954875533505">Let site edit files?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Communicate with a USB device}other{Communicate with # USB devices}}</translation>
 <translation id="3765246971671567135">Could not read offline demo mode policy.</translation>
 <translation id="3768037234834996183">Syncing your preferences...</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Deny</translation>
 <translation id="3928570707778085600">Save changes to <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">These extensions can see and change information on this site.</translation>
+<translation id="3930155420525972941">Move Group to New Window</translation>
 <translation id="3930737994424905957">Looking for devices</translation>
 <translation id="3930968231047618417">Background colour</translation>
 <translation id="3933283459331715412">Restore deleted password for <ph name="USERNAME" /></translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">I agree</translation>
 <translation id="413121957363593859">Components</translation>
 <translation id="4131410914670010031">Black and white</translation>
+<translation id="4133076602192971179">Open the app to change your password</translation>
 <translation id="4136203100490971508">Night Light will turn off automatically at sunrise</translation>
 <translation id="41365691917097717">Continuing will enable ADB debugging for creating and testing Android apps. Note that this action allows installation of Android apps that haven't been verified by Google, and requires a factory reset to disable.</translation>
 <translation id="4138267921960073861">Show usernames and photos on the sign-in screen</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Never Translate <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Set Up Parental Controls</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 With RSA Encryption</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Your administrator turned 1 potentially harmful extension back on}other{Your administrator turned # potentially harmful extensions back on}}</translation>
 <translation id="4336434711095810371">Clear all data</translation>
 <translation id="4336979451636460645">For network logs, see: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> wants to communicate with the app "<ph name="EXTENSION_NAME" />"</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">You're using a security key that's not registered with this website</translation>
 <translation id="4788092183367008521">Please check your network connection and try again.</translation>
 <translation id="4792711294155034829">&amp;Report an Issue...</translation>
+<translation id="4794810983896241342">Updates are managed by <ph name="BEGIN_LINK" />your administrator<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Web Page, HTML Only</translation>
 <translation id="4798236378408895261">Attach <ph name="BEGIN_LINK" />Bluetooth Logs<ph name="END_LINK" /> (Google internal)</translation>
 <translation id="4801448226354548035">Hide accounts</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Open a new tab to browse two sites at once</translation>
 <translation id="4909038193460299775">Because this account is managed by <ph name="DOMAIN" />, your bookmarks, history, passwords and other settings will be cleared from this device. However, your data will remain stored in your Google Account and can be managed on <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Idle Wake Ups</translation>
+<translation id="4916542008280060967">Let site edit <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Switch to a secure browser</translation>
 <translation id="4917385247580444890">Strong</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> wants to communicate with the extension "<ph name="EXTENSION_NAME" />"</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Remember</translation>
 <translation id="5018207570537526145">Open extension website</translation>
 <translation id="5021750053540820849">Not updated yet</translation>
+<translation id="5026806129670917316">Turn on Wi-Fi</translation>
 <translation id="5026874946691314267">Don't show this again</translation>
 <translation id="5027550639139316293">Email Certificate</translation>
 <translation id="5027562294707732951">Add extension</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">&amp;JavaScript Console</translation>
 <translation id="5184209580557088469">A ticket with this username already exists</translation>
 <translation id="5184662919967270437">Updating your device</translation>
+<translation id="5185359571430619712">Review extensions</translation>
 <translation id="5185386675596372454">The newest version of "<ph name="EXTENSION_NAME" />" has been disabled because it requires more permissions.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> wants to download multiple files</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Smart Quotes</translation>
 <translation id="5260508466980570042">Sorry, your email or password could not be verified. Please try again.</translation>
 <translation id="5261683757250193089">Open in Web Store</translation>
+<translation id="5262178194499261222">Remove password</translation>
 <translation id="5264148714798105376">This may take a minute or so.</translation>
 <translation id="5264252276333215551">Please connect to the Internet to launch your app in kiosk mode.</translation>
 <translation id="5265562206369321422">Offline for more than a week</translation>
@@ -3507,6 +3528,7 @@
 <translation id="5833726373896279253">These settings may only be modified by the owner:</translation>
 <translation id="5834581999798853053">About <ph name="TIME" /> minutes left</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – Camera or microphone recording</translation>
+<translation id="5841270259333717135">Configure Ethernet</translation>
 <translation id="5842497610951477805">Bluetooth enable</translation>
 <translation id="5846200638699387931">Relation syntax error: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Already added</translation>
@@ -3552,6 +3574,7 @@
 <translation id="5900358982890952556">Upgrade Linux (beta)</translation>
 <translation id="5901494423252125310">Printer door open</translation>
 <translation id="5901630391730855834">Yellow</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{You turned 1 potentially harmful extension back on}other{You turned # potentially harmful extensions back on}}</translation>
 <translation id="5906655207909574370">Nearly up to date! Restart your device to finish updating.</translation>
 <translation id="5906732635754427568">Data associated with this app will be removed from this device.</translation>
 <translation id="5908769186679515905">Block sites from running Flash</translation>
@@ -3581,6 +3604,7 @@
 <translation id="59324397759951282">USB device from <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Serial</translation>
 <translation id="5933376509899483611">Time Zone</translation>
+<translation id="5935656526031444304">Manage Safe Browsing</translation>
 <translation id="5938002010494270685">Security upgrade available</translation>
 <translation id="5939518447894949180">Reset</translation>
 <translation id="5941153596444580863">Add person</translation>
@@ -3624,6 +3648,7 @@
 <translation id="5993807461461235661">This upload is encrypted and violates your organisation's security policies.</translation>
 <translation id="5997337190805127100">Learn more about site access</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> results for '<ph name="SEARCH_TEXT" />'</translation>
+<translation id="6002210667729577411">Move group to new window</translation>
 <translation id="6002458620803359783">Preferred Voices</translation>
 <translation id="6006484371116297560">Classic</translation>
 <translation id="6007240208646052708">Voice search in your language is not available.</translation>
@@ -4162,6 +4187,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Show desktop shortcut</translation>
 <translation id="6740234557573873150">Paused <ph name="FILE_NAME" /></translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Your administrator<ph name="END_LINK" /> has turned off Safe Browsing</translation>
 <translation id="6742339027238151589">Accessible to script</translation>
 <translation id="6745592621698551453">Update now</translation>
 <translation id="6746124502594467657">Move down</translation>
@@ -4420,6 +4446,7 @@
     <ph name="BEGIN_BOLD" />Bear in mind:<ph name="END_BOLD" /> A similar voice or recording might also be able to access your Assistant. You can remove Voice Match permission later by turning it off in Assistant Settings.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Exchange data with the devices named: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Device will restart when updates are complete.</translation>
 <translation id="7098389117866926363">USB-C device (left port in the back)</translation>
 <translation id="7098447629416471489">Other saved search engines will appear here</translation>
 <translation id="7099337801055912064">Can’t load large PPD. Maximum size is 250 KB.</translation>
@@ -4892,6 +4919,7 @@
 <translation id="7766807826975222231">Take a tour</translation>
 <translation id="7766838926148951335">Accept permissions</translation>
 <translation id="7769672763586021400">Model ID</translation>
+<translation id="7770651108375708429">Disconnect Wi-Fi</translation>
 <translation id="7771452384635174008">Layout</translation>
 <translation id="7772032839648071052">Confirm passphrase</translation>
 <translation id="7772127298218883077">About <ph name="PRODUCT_NAME" /></translation>
@@ -5050,6 +5078,7 @@
 <translation id="7939412583708276221">Keep anyway</translation>
 <translation id="7942349550061667556">Red</translation>
 <translation id="7943837619101191061">Add Location...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 compromised password}other{# compromised passwords}}</translation>
 <translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" wants to connect</translation>
 <translation id="7946586320617670168">Origin must be secure</translation>
 <translation id="794676567536738329">Confirm Permission</translation>
@@ -5149,6 +5178,7 @@
 <translation id="8059417245945632445">&amp;Inspect devices</translation>
 <translation id="8059456211585183827">There are no printers available to save.</translation>
 <translation id="8063235345342641131">Default green avatar</translation>
+<translation id="8063535366119089408">View file</translation>
 <translation id="8064671687106936412">Key:</translation>
 <translation id="8068253693380742035">Touch to sign in</translation>
 <translation id="8068809649322155577">This will clear all data and cookies stored by <ph name="SITE_GROUP_NAME" />, any sites under it, and its installed apps.</translation>
@@ -5214,6 +5244,7 @@
 <translation id="8152091997436726702">Printer registration has timed out. In order to register a printer, you must confirm registration on the printer.</translation>
 <translation id="8154790740888707867">No file</translation>
 <translation id="815491593104042026">Oops!  Authentication failed because it was configured to use a non-secure URL (<ph name="BLOCKED_URL" />).  Please contact your administrator.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{No compromised passwords found}=1{{COUNT} compromised password}other{{COUNT} compromised passwords}}</translation>
 <translation id="8157704005178149728">Setting up supervision</translation>
 <translation id="8158117992543756526">This device stopped getting automatic software and security updates in <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Learn more<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Error While Setting Certificate Trust</translation>
@@ -5267,6 +5298,7 @@
 <translation id="8226742006292257240">Below is the randomly generated TPM password that has been assigned to your computer:</translation>
 <translation id="8227119283605456246">Attach file</translation>
 <translation id="8230134520748321204">Save password for <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Internet settings</translation>
 <translation id="8234795456569844941">Please help our engineers fix this problem. Tell us what happened right before you got the profile error message:</translation>
 <translation id="8236123533334037984">Your organisation is scanning this upload for security approval.</translation>
 <translation id="8236917170563564587">Share this tab instead</translation>
@@ -5604,6 +5636,7 @@
 <translation id="8688579245973331962">Don't see your name?</translation>
 <translation id="8688591111840995413">Bad password</translation>
 <translation id="8688672835843460752">Available</translation>
+<translation id="8691418731028620688">Connect Wi-Fi</translation>
 <translation id="8695825812785969222">Open &amp;Location...</translation>
 <translation id="869884720829132584">Applications menu</translation>
 <translation id="869891660844655955">Expiry date</translation>
@@ -5763,6 +5796,7 @@
 <translation id="8872187374998143710">Please restart your device to use Plugin VM.</translation>
 <translation id="8872777911145321141">Ask when a site wants to use your virtual reality devices and data (recommended)</translation>
 <translation id="8874184842967597500">Not connected</translation>
+<translation id="8875775314572167244">Ethernet settings</translation>
 <translation id="8876307312329369159">This setting can't be changed in a demo session.</translation>
 <translation id="8877448029301136595">[parent directory]</translation>
 <translation id="8878384954777710821">Uninstalling Plugin VM…</translation>
@@ -5804,6 +5838,7 @@
 <translation id="892706138619340876">Some settings were reset</translation>
 <translation id="8930351635855238750">New cookie settings will take effect after reloading the page</translation>
 <translation id="8931394284949551895">New devices</translation>
+<translation id="8931475688782629595">Manage what you sync</translation>
 <translation id="8932894639908691771">Switch Access options</translation>
 <translation id="8933960630081805351">&amp;Show in Finder</translation>
 <translation id="8934732568177537184">Continue</translation>
@@ -5961,6 +5996,7 @@
 <translation id="9148126808321036104">Sign in again</translation>
 <translation id="9149866541089851383">Edit...</translation>
 <translation id="9150045010208374699">Use your camera</translation>
+<translation id="9150429437595727962">Wi-Fi settings</translation>
 <translation id="9153934054460603056">Save identity and password</translation>
 <translation id="9154194610265714752">Updated</translation>
 <translation id="91568222606626347">Create Shortcut...</translation>
@@ -6022,6 +6058,7 @@
 <translation id="945522503751344254">Send feedback</translation>
 <translation id="947329552760389097">&amp;Inspect Elements</translation>
 <translation id="952992212772159698">Not activated</translation>
+<translation id="956500788634395331">You're protected from potentially harmful extensions</translation>
 <translation id="957960681186851048">This site attempted to download multiple files automatically</translation>
 <translation id="9580706199804957">Couldn’t connect with Google services</translation>
 <translation id="960719561871045870">Operator code</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 8fca6905..2ff8736 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">¿También quieres borrar los datos de estas apps?</translation>
 <translation id="1045692658517323508">{0,plural, =1{Actualiza el dispositivo en el transcurso de 1 minuto}other{Actualiza el dispositivo en el transcurso de # minutos}}</translation>
 <translation id="1046635659603195359">Al parecer, ya configuraste Voice Match con tu Asistente de Google en otro dispositivo. Las grabaciones anteriores pueden usarse para crear un modelo de voz en este dispositivo. El proceso debería tomar menos de un minuto.</translation>
+<translation id="104710386808485638">¿Quieres reiniciar Linux?</translation>
 <translation id="1047431265488717055">Copiar texto del vínculo</translation>
 <translation id="1048286738600630630">Pantallas</translation>
 <translation id="1049743911850919806">Incógnito</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Accede a <ph name="TOKEN_NAME" /> para exportar el certificado de cliente.</translation>
 <translation id="1163931534039071049">&amp;Ver fuente de marco</translation>
 <translation id="1164674268730883318">¿Deseas desactivar Smart Lock para el dispositivo <ph name="DEVICE_TYPE" />?</translation>
+<translation id="1164891049599601209">Se ingresó en un sitio engañoso</translation>
 <translation id="1164899421101904659">Ingresa la clave de desbloqueo de PIN</translation>
 <translation id="1165039591588034296">Error</translation>
 <translation id="1166212789817575481">Cerrar pestañas a la derecha</translation>
@@ -395,6 +397,7 @@
 <translation id="1545177026077493356">Modo kiosco automático</translation>
 <translation id="1545775234664667895">Tema instalado "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">Esta extensión cambió la página que se muestra al hacer clic en el botón Página principal.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> quiere instalar una <ph name="EXTENSION_TYPE" /> que puede hacer lo siguiente:</translation>
 <translation id="1549275686094429035">ARC habilitado</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> quiere acceder a <ph name="VOLUME_NAME" />. Podrá modificar o eliminar tus archivos.</translation>
 <translation id="1553538517812678578">ilimitado</translation>
@@ -493,6 +496,7 @@
 <translation id="1679806121152819234">VM del complemento</translation>
 <translation id="1679810534535368772">¿Confirmas que quieres salir?</translation>
 <translation id="167983332380191032">El servicio de administración envió un error de HTTP.</translation>
+<translation id="1680841347983561661">Intenta iniciar Google Play nuevamente en unos minutos.</translation>
 <translation id="1680849702532889074">Se produjo un error durante la instalación de la app de Linux.</translation>
 <translation id="16815041330799488">No permitir que los sitios vean el texto ni las imágenes copiados en el portapapeles</translation>
 <translation id="1682548588986054654">Nueva ventana de incógnito</translation>
@@ -746,6 +750,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> se ha bloqueado. Haz clic en este globo para volver a cargar la extensión.</translation>
 <translation id="2025891858974379949">Contenido no seguro</translation>
 <translation id="202918510990975568">Ingresa tu contraseña para configurar la seguridad y el acceso</translation>
+<translation id="2030672406208960151">Abrir terminal de recuperación</translation>
 <translation id="2034346955588403444">Agregar otra red Wi-Fi</translation>
 <translation id="203574396658008164">Habilitar la toma de notas desde la pantalla bloqueada</translation>
 <translation id="2037445849770872822">Se configuró la supervisión de esta Cuenta de Google. Para configurar más controles parentales, selecciona Continuar.
@@ -898,6 +903,7 @@
 <translation id="2220572644011485463">PIN o contraseña</translation>
 <translation id="2224444042887712269">Esta configuración pertenece a <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">Editar nombre de carpeta</translation>
+<translation id="2225864335125757863">Para mantener tu cuenta segura, cambia estas contraseñas de inmediato:</translation>
 <translation id="2226449515541314767">Se bloqueó este sitio para que no tenga el control total de los dispositivos MIDI</translation>
 <translation id="222704500187107962">Se quitará esta excepción automáticamente después de que salgas de la sesión de incógnito actual.</translation>
 <translation id="2227179592712503583">Quitar sugerencia</translation>
@@ -1018,6 +1024,7 @@
 <translation id="2387052489799050037">Ve a la página principal</translation>
 <translation id="2387458720915042159">Tipo de conexión proxy</translation>
 <translation id="2391419135980381625">Fuente estándar</translation>
+<translation id="2392163307141705938">Alcanzaste el límite de tiempo que tu padre o madre estableció para <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Activar</translation>
 <translation id="2394566832561516196">Se borrará la configuración la próxima vez que se vuelva a cargar la página.</translation>
 <translation id="2395616325548404795">Tu dispositivo <ph name="DEVICE_TYPE" /> se inscribió correctamente para la administración empresarial, pero se produjo un error al intentar enviar la información de la ubicación y del recurso. Ingresa los datos manualmente en la Consola del administrador del dispositivo.</translation>
@@ -1083,6 +1090,7 @@
 <translation id="247949520305900375">Compartir audio</translation>
 <translation id="2480868415629598489">Modificar los datos copiados y pegados</translation>
 <translation id="2482878487686419369">Notificaciones</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> podrá editar <ph name="FILENAME" /> hasta que cierres todas las pestañas de <ph name="ORIGIN" /></translation>
 <translation id="2484959914739448251">Para borrar los datos de navegación de todos los dispositivos sincronizados y de tu Cuenta de Google, <ph name="BEGIN_LINK" />ingresa la frase de contraseña<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Contraseñas guardadas en este dispositivo</translation>
 <translation id="2485422356828889247">Desinstalación</translation>
@@ -1296,6 +1304,7 @@
 <translation id="274290345632688601">Restableciendo los archivos y apps de Linux</translation>
 <translation id="2743387203779672305">Copiar al portapapeles</translation>
 <translation id="2745080116229976798">Subordinación certificada de Microsoft</translation>
+<translation id="2748061034695037846">Se pausó <ph name="DOMAIN" /></translation>
 <translation id="2749756011735116528">Iniciar sesión en <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">Controlar la gramática con la ortografía</translation>
 <translation id="2751739896257479635">Autenticación de fase 2 EAP</translation>
@@ -1304,6 +1313,7 @@
 <translation id="275662540872599901">Pantalla apagada</translation>
 <translation id="2762441749940182211">Cámara bloqueada</translation>
 <translation id="2765217105034171413">Pequeño</translation>
+<translation id="2766161002040448006">Preguntarle a tus padres</translation>
 <translation id="276969039800130567">Se accedió como <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="2770465223704140727">Eliminar de la lista</translation>
 <translation id="2770690685823456775">Exporta tus contraseñas a otra carpeta</translation>
@@ -1555,6 +1565,7 @@
 <translation id="3115580024857770654">Contraer todo</translation>
 <translation id="3117362587799608430">El conector no es completamente compatible</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> Ayuda</translation>
+<translation id="3118654181216384296">Vuelve a intentar iniciar Linux en unos minutos.</translation>
 <translation id="3120430004221004537">La encriptación no fue suficiente para una operación en: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">Restablecer este dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" /></translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1564,6 +1575,7 @@
 <translation id="3127156390846601284">Se borrarán todos los datos que se almacenan en tu dispositivo y se restablecerán los permisos para todos los sitios que se mostraron. ¿Deseas continuar?</translation>
 <translation id="3127860049873093642">Para evitar problemas de carga y rendimiento, usa un adaptador de alimentación compatible de Dell o con conexión USB tipo C.</translation>
 <translation id="3129173833825111527">Margen izquierdo</translation>
+<translation id="3129215702932019810">Error al iniciar la aplicación</translation>
 <translation id="3130528281680948470">El dispositivo se restablecerá y todas las cuentas de usuario y los datos locales se eliminarán. Esta acción no se puede deshacer.</translation>
 <translation id="313205617302240621">¿Olvidaste la contraseña?</translation>
 <translation id="3132996321662585180">Actualizar todos los días</translation>
@@ -1779,6 +1791,7 @@
 <translation id="3441653493275994384">Pantalla</translation>
 <translation id="3445925074670675829">Dispositivo USB-C</translation>
 <translation id="344630545793878684">Leer los datos en un número de sitios web</translation>
+<translation id="3448086340637592206">Condiciones Adicionales del Sistema operativo Chrome y Google Chrome</translation>
 <translation id="3448492834076427715">Actualizar cuenta</translation>
 <translation id="3449839693241009168">Presiona <ph name="SEARCH_KEY" /> para enviar comandos a<ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Porcentaje de ocupación de estado de inactividad</translation>
@@ -2126,6 +2139,7 @@
 <translation id="3873423927483480833">Muestra los PIN</translation>
 <translation id="3873915545594852654">Hubo un problema con ARC++.</translation>
 <translation id="3879748587602334249">Administrador de descargas</translation>
+<translation id="3881321138433527084">La Navegación segura está desactivada. Para mantenerte protegido en la Web, activa esta función.</translation>
 <translation id="3882165008614329320">Video existente de la cámara o archivo</translation>
 <translation id="3886446263141354045">Tu solicitud de acceso a este sitio se envió a <ph name="NAME" /></translation>
 <translation id="3888550877729210209">Tomar notas con <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2467,6 +2481,7 @@
 <translation id="4384652540891215547">Activar la extensión</translation>
 <translation id="438503109373656455">Rocinante</translation>
 <translation id="4387004326333427325">Certificado de autenticación rechazado de forma remota</translation>
+<translation id="4387890294700445764">Contraseñas hackeadas</translation>
 <translation id="4389091756366370506">Usuario <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Incógnito}other{# ventanas de incógnito abiertas}}</translation>
 <translation id="439266289085815679"><ph name="USER_EMAIL" /> controla la configuración de Bluetooth.</translation>
@@ -2498,6 +2513,7 @@
 <translation id="4429030830601238961">No se pueden pegar estos datos porque infringen las políticas de seguridad de tu organización.</translation>
 <translation id="4430019312045809116">Volumen</translation>
 <translation id="4430369329743628066">Se agregó el marcador</translation>
+<translation id="4432621511648257259">La contraseña es incorrecta</translation>
 <translation id="4434045419905280838">Ventanas emergentes y redireccionamientos</translation>
 <translation id="443454694385851356">Heredados (inseguro)</translation>
 <translation id="443475966875174318">Actualizar o quitar las aplicaciones incompatibles</translation>
@@ -2747,6 +2763,7 @@
 <translation id="4808667324955055115">Se bloquearon ventanas emergentes:</translation>
 <translation id="480990236307250886">Abrir la página principal</translation>
 <translation id="4811503964269049987">Crear un grupo con la pestaña seleccionada</translation>
+<translation id="4811818760963189951">Se desactivó porque inhabilitaste la sincronización del historial</translation>
 <translation id="4813136279048157860">Mis imágenes</translation>
 <translation id="4813512666221746211">Error de red</translation>
 <translation id="4814378367953456825">Escribe un nombre para esta huella digital</translation>
@@ -2776,6 +2793,7 @@
 <translation id="4850669014075537160">Desplazamiento</translation>
 <translation id="4850886885716139402">Ver</translation>
 <translation id="4853020600495124913">Abrir en una ventana &amp;nueva</translation>
+<translation id="4854317507773910281">Elige la cuenta parental para la aprobación</translation>
 <translation id="485480310608090163">Más opciones de configuración y permisos</translation>
 <translation id="4856478137399998590">Tu servicio de datos para celulares está activado y listo para ser utilizado</translation>
 <translation id="4856855265648545577">Mostrar los botones Selector, Atrás y Recientes, en la Biblioteca en el modo tablet. Se activa cuando están habilitados ChromeVox (comentarios por voz) o accesibilidad mejorada.</translation>
@@ -2912,10 +2930,12 @@
 <translation id="5040823038948176460">Configuración adicional de contenido</translation>
 <translation id="5042282098504489593">Abrir la configuración para conectar <ph name="USB_DEVICE_NAME" /> a Linux</translation>
 <translation id="5043913660911154449">O especifica el PPD de tu impresora. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Se desactivó porque encriptaste los datos de sincronización con una frase de contraseña</translation>
 <translation id="5045550434625856497">Contraseña incorrecta</translation>
 <translation id="504561833207953641">Abriendo en una sesión existente del navegador</translation>
 <translation id="5047421709274785093">Bloquear el uso de los sensores de luz y movimiento en los sitios</translation>
 <translation id="5050042263972837708">Nombre del grupo</translation>
+<translation id="5051073330196664891">Condiciones del Servicio universales (uToS) de Google</translation>
 <translation id="5051836348807686060">Los idiomas seleccionados no son compatibles con el corrector ortográfico</translation>
 <translation id="5052499409147950210">Editar sitio</translation>
 <translation id="5053604404986157245">La contraseña TPM generada al azar no está disponible. Esto es normal después de un Powerwash.</translation>
@@ -2953,6 +2973,7 @@
 <translation id="5097002363526479830">Error al conectar a la red "<ph name="NAME" />": <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Abrir todos los favoritos</translation>
 <translation id="5101839224773798795">Hacer clic automáticamente cuando se detenga el cursor</translation>
+<translation id="5107443654503185812">Una extensión desactivó la Navegación segura</translation>
 <translation id="5108967062857032718">Configuración - Quitar las apps de Android</translation>
 <translation id="5109044022078737958">Victoria</translation>
 <translation id="5111646998522066203">Salir del modo incógnito</translation>
@@ -3039,6 +3060,7 @@
 <translation id="523505283826916779">Configuración de accesibilidad</translation>
 <translation id="5235750401727657667">Reemplazar la página que ves cuando abres una pestaña nueva</translation>
 <translation id="5238278114306905396">Se eliminó automáticamente la aplicación "<ph name="EXTENSION_NAME" />".</translation>
+<translation id="5239730228370806996">Los datos que se soltaron incumplen las políticas de seguridad de tu organización. ¿Quieres continuar de todos modos?</translation>
 <translation id="5241128660650683457">Leer todos los datos de los sitios web que visitas</translation>
 <translation id="5242724311594467048">¿Habilitar "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="5243522832766285132">Vuelve a intentarlo en unos minutos</translation>
@@ -3326,6 +3348,7 @@
 <translation id="5618075537869101857">No se pudo iniciar la aplicación del kiosco.</translation>
 <translation id="5618333180342767515">(esto puede llevar algunos minutos)</translation>
 <translation id="56197088284879152">La conexión está congestionada en un dispositivo remoto: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">No hay contraseñas guardadas</translation>
 <translation id="5620549857835247159">Se muestran los botones Selector, Atrás y Recientes, en la Biblioteca en el modo tablet.</translation>
 <translation id="5620568081365989559">DevTools solicita acceso completo a <ph name="FOLDER_PATH" />. Asegúrate de no revelar información confidencial.</translation>
 <translation id="5620612546311710611">estadísticas de uso</translation>
@@ -3419,6 +3442,7 @@
 <translation id="5747785204778348146">Programador: versión inestable</translation>
 <translation id="5747809636523347288">&amp;Pegar y dirigirse a <ph name="URL" /></translation>
 <translation id="5750324801516359607">Lejos</translation>
+<translation id="5751887393582880060">Esta carga incumple las políticas de seguridad de tu organización. ¿Quieres continuar de todos modos?</translation>
 <translation id="5756163054456765343">C&amp;entro de ayuda</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> podrá leer los documentos que envíes a imprimir a través de <ph name="APP_NAME" />.</translation>
 <translation id="5763751966069581670">No se encuentraron dispositivos USB</translation>
@@ -3628,6 +3652,7 @@
 <translation id="6040852767465482106">Identidad anónima</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />El servicio de ubicación de Google usa fuentes como conexiones Wi-Fi, redes móviles y sensores para calcular la ubicación de tu dispositivo.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Para inhabilitar la Ubicación, desactiva la configuración de la ubicación principal de tu dispositivo. También puedes desactivar el uso de redes Wi-Fi, redes móviles y sensores para obtener la ubicación en la configuración de la ubicación.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> podrá ver archivos de <ph name="FOLDERNAME" /> hasta que cierres todas las pestañas de <ph name="ORIGIN" /></translation>
 <translation id="6041155700700864984">Salir de la pantalla completa</translation>
 <translation id="604124094241169006">Automático</translation>
 <translation id="6042308850641462728">Más</translation>
@@ -3689,6 +3714,7 @@
 <translation id="6104311680260824317">No se puede unir el dispositivo con el dominio. El servidor no es compatible con los tipos de encriptación de Kerberos especificados. Para conocer la configuración de la encriptación, consulta "Más opciones".</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> necesita actualizar este dispositivo de inmediato</translation>
 <translation id="6106186653986077033">Plugin VM requiere una licencia</translation>
+<translation id="6107047744202598802">Permite que los sitios web recuerden tus visitas y te rastreen en la Web</translation>
 <translation id="6112294629795967147">Tocar para cambiar el tamaño</translation>
 <translation id="6112727384379533756">Agregar un ticket</translation>
 <translation id="6112931163620622315">Revisa el teléfono</translation>
@@ -3767,6 +3793,7 @@
 <translation id="622537739776246443">Se borrará el perfil</translation>
 <translation id="6225475702458870625">Conexión de datos disponibles de tu <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Archivo de clave privada (opcional)</translation>
+<translation id="6227280783235722609">extensión</translation>
 <translation id="6228691855869374890">El sitio tiene el control total de los dispositivos MIDI</translation>
 <translation id="6228720835160974792">Generar código QR para esta imagen</translation>
 <translation id="6229890768313448549">No se pueden cargar las Condiciones del Servicio de Google Play. Vuelve a intentarlo.</translation>
@@ -3818,6 +3845,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> no es un archivo que se descargue de forma habitual y es posible que sea peligroso.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Nueva impresora en la red}other{Nuevas impresoras en la red}}</translation>
 <translation id="6286708577777130801">Detalles de la contraseña guardada</translation>
+<translation id="6291163159361301370">Para iniciar Linux, <ph name="ORGANIZATION_NAME" /> requiere que hagas una copia de seguridad de tus datos y restablezcas esta Chromebook a la configuración de fábrica.</translation>
 <translation id="6291949900244949761">Preguntarme cuando un sitio desee acceder a dispositivos USB (recomendado)</translation>
 <translation id="6291953229176937411">Mo&amp;strar en Buscador</translation>
 <translation id="6295158916970320988">Todos los sitios</translation>
@@ -4014,6 +4042,7 @@
 <translation id="6561726789132298588">ingresar</translation>
 <translation id="656293578423618167">La ruta de acceso o el nombre del archivo es demasiado largo. Guarda con un nombre más corto o en otra ubicación.</translation>
 <translation id="6563469144985748109">Tu administrador aún no lo aprobó</translation>
+<translation id="6565955132287672866">El dispositivo no se apagó correctamente. Para usar Linux (Beta), debes reiniciarlo.</translation>
 <translation id="6567688344210276845">No se pudo cargar el ícono '<ph name="ICON" />' para las acciones de la página.</translation>
 <translation id="6569934958368283244">Otras personas</translation>
 <translation id="657402800789773160">&amp;Volver a cargar esta página</translation>
@@ -4511,6 +4540,7 @@
 <translation id="7258225044283673131">La app no responde. Selecciona "Forzar cierre" para cerrar la app.</translation>
 <translation id="7258697411818564379">Se agregó tu PIN</translation>
 <translation id="7262004276116528033">El servicio de acceso a la cuenta está alojado en <ph name="SAML_DOMAIN" /></translation>
+<translation id="7266898409676782635">Obtén sugerencias, ofertas y actualizaciones de <ph name="DEVICE_TYPE" />, y comparte tus comentarios. Puedes anular la suscripción en cualquier momento.</translation>
 <translation id="7268127947535186412">Esta configuración la administra el propietario del dispositivo.</translation>
 <translation id="7270858098575133036">Preguntarme cuando un sitio quiera usar los mensajes exclusivos del sistema para acceder a dispositivos MIDI</translation>
 <translation id="7272674038937250585">No se proporcionó ninguna descripción</translation>
@@ -4584,6 +4614,7 @@
 <translation id="7364796246159120393">Seleccionar archivo</translation>
 <translation id="7366415735885268578">Agregar un sitio</translation>
 <translation id="7366909168761621528">Datos de navegación</translation>
+<translation id="7367714965999718019">Generador de códigos QR</translation>
 <translation id="736877393389250337"><ph name="URL" /> no se pudo abrir en <ph name="ALTERNATIVE_BROWSER_NAME" />. Comunícate con el administrador del sistema.</translation>
 <translation id="7370592524170198497">Ethernet EAP:</translation>
 <translation id="7371006317849674875">Hora de inicio</translation>
@@ -4841,8 +4872,10 @@
 <translation id="7737238973539693982">Borrar Linux (Beta)</translation>
 <translation id="7740996059027112821">Estándar</translation>
 <translation id="7744047395460924128">Ver tu historial de impresión</translation>
+<translation id="7744192722284567281">Se encontró en una violación de la seguridad de los datos</translation>
 <translation id="7746457520633464754">Para detectar apps y sitios peligrosos, Chrome envía a Google URL de algunas páginas que visitas, información limitada sobre el sistema y contenido de algunas páginas</translation>
 <translation id="7750228210027921155">Pantalla en pantalla</translation>
+<translation id="7751229152614300329">La Navegación segura está actualizada y te protege contra descargas y sitios dañinos</translation>
 <translation id="7751260505918304024">Mostrar todo</translation>
 <translation id="7754704193130578113">Preguntar ubicación antes de descargar</translation>
 <translation id="7755287808199759310">Uno de tus padres puede desbloquearlo por ti</translation>
@@ -4990,6 +5023,7 @@
 <translation id="7910768399700579500">&amp;Nueva carpeta</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Se cambió la contraseña en el servidor. Sal de la cuenta y vuelve a acceder.</translation>
+<translation id="7914583336730284547">Estos archivos que se soltaron incumplen las políticas de seguridad de tu organización. ¿Quieres continuar de todos modos?</translation>
 <translation id="7915457674565721553">Conéctate a Internet para configurar los controles parentales</translation>
 <translation id="7915471803647590281">Comunícanos lo que está pasando antes de enviarnos tus comentarios</translation>
 <translation id="7918257978052780342">Inscribir</translation>
@@ -5087,6 +5121,7 @@
 <translation id="8028803902702117856">Descargando <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">Tamaño</translation>
 <translation id="8030656706657716245">Agregar impresora</translation>
+<translation id="8030852056903932865">Aprobar</translation>
 <translation id="8032244173881942855">No se puede transmitir la pestaña</translation>
 <translation id="8033827949643255796">seleccionados</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Abrir todo en una ventana de &amp;incógnito}=1{Abrir en una ventana de &amp;incógnito}other{Abrir todo (#) en una ventana de &amp;incógnito}}</translation>
@@ -5407,6 +5442,7 @@
 <translation id="8472623782143987204">respaldado por hardware</translation>
 <translation id="8473863474539038330">Direcciones y más</translation>
 <translation id="8475313423285172237">Otro programa en tu computadora agregó una extensión que puede cambiar el funcionamiento de Chrome.</translation>
+<translation id="8476659515398963495">Los datos que se pegaron incumplen las políticas de seguridad de tu organización. ¿Quieres continuar de todos modos?</translation>
 <translation id="8477241577829954800">Reemplazado</translation>
 <translation id="8477384620836102176">&amp;General</translation>
 <translation id="8480082892550707549">Aunque hayas descargado archivos de este sitio anteriormente, es posible que en este momento el sitio esté pirateado. Intenta descargar el archivo más tarde.</translation>
@@ -5460,6 +5496,7 @@
 <translation id="8547013269961688403">Habilitar lupa en pantalla completa</translation>
 <translation id="85486688517848470">Mantén presionada la tecla de búsqueda para cambiar el comportamiento de las teclas en la fila superior</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 elemento}other{# elementos}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> podrá editar archivos de <ph name="FOLDERNAME" /> hasta que cierres todas las pestañas de <ph name="ORIGIN" /></translation>
 <translation id="8551388862522347954">Licencias</translation>
 <translation id="8553342806078037065">Administrar otras personas</translation>
 <translation id="8554899698005018844">Ningún idioma</translation>
@@ -5518,6 +5555,7 @@
 <translation id="8637688295594795546">Actualización del sistema disponible. Preparando para descargar...</translation>
 <translation id="8639047128869322042">Buscando software dañino…</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" />: puerto</translation>
+<translation id="8641606876632989680">Chrome te notificará cuando accedas con una contraseña hackeada</translation>
 <translation id="8642900771896232685">2 segundos</translation>
 <translation id="8642947597466641025">Aumentar el tamaño del texto</translation>
 <translation id="8644655801811752511">No se puede restablecer esta llave de seguridad. Intenta restablecerla inmediatamente después de insertarla.</translation>
@@ -5567,6 +5605,7 @@
 <translation id="869884720829132584">Menú Aplicaciones</translation>
 <translation id="869891660844655955">Fecha de vencimiento</translation>
 <translation id="8703346390800944767">Omitir anuncio</translation>
+<translation id="870341961648617780">Navegación segura y configuración avanzada de seguridad</translation>
 <translation id="8705331520020532516">Número de serie</translation>
 <translation id="8705580154597116082">Wi-Fi disponible mediante el teléfono</translation>
 <translation id="8705629851992224300">No se pudo leer la llave de seguridad</translation>
@@ -5612,6 +5651,7 @@
 <translation id="874689135111202667">{0,plural, =1{¿Deseas cargar un archivo a este sitio?}other{¿Deseas cargar # archivos a este sitio?}}</translation>
 <translation id="8748384418490037181">Opciones de Smart Lock</translation>
 <translation id="8749863574775030885">Acceder a dispositivos USB de un proveedor desconocido</translation>
+<translation id="8750133148106010815">Para iniciar Google Play, <ph name="ORGANIZATION_NAME" /> requiere que hagas una copia de seguridad de los datos y restablezcas esta Chromebook a la configuración de fábrica.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> quiere conectarse a un puerto en serie</translation>
 <translation id="8754200782896249056">&lt;p&gt;Al ejecutar <ph name="PRODUCT_NAME" /> en un entorno admitido de escritorio, se utiliza la configuración proxy del sistema. Sin embargo, o bien el sistema no es admitido, o hubo un problema al lanzar la configuración del sistema.&lt;/p&gt;
 
@@ -5666,6 +5706,7 @@
 <translation id="8809147117840417135">Verde azulado claro</translation>
 <translation id="8813698869395535039">No se puede acceder a <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">hoja de papel</translation>
+<translation id="8813872945700551674">Haz que tu padre o madre aprueben "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="8813969267212093033">El texto del sistema se muestra en este idioma</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Se está analizando el archivo…</translation>
@@ -5946,6 +5987,7 @@
 <translation id="9203398526606335860">&amp;Perfiles activados</translation>
 <translation id="9203904171912129171">Seleccionar un dispositivo</translation>
 <translation id="9203962528777363226">El administrador de este dispositivo ha inhabilitado a nuevos usuarios para evitar que se agreguen.</translation>
+<translation id="9211177926627870898">Actualización necesaria</translation>
 <translation id="9214520840402538427">¡Vaya! Se ha agotado el tiempo de la inicialización de los atributos de tiempo de instalación. Comunícate con el representante de asistencia.</translation>
 <translation id="9214695392875603905">Cupcake</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" agregada</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 76b27ea..5f314ce5 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -5305,7 +5305,7 @@
     <ph name="BEGIN_PARAGRAPH4" />Si has activado la opción Actividad en la Web y en Aplicaciones, es posible que estos datos se guarden en la cuenta de Google de tu hijo. Consulta más información sobre estos ajustes y sobre cómo configurarlos en families.google.com.<ph name="END_PARAGRAPH4" /></translation>
 <translation id="826905130698769948">Certificado de cliente no válido</translation>
 <translation id="8270242299912238708">Documentos PDF</translation>
-<translation id="827097179112817503">Mostrar el botón de la página de inicio</translation>
+<translation id="827097179112817503">Mostrar el botón de la página principal</translation>
 <translation id="8271246892936492311">{COUNT,plural, =1{Se ha eliminado 1 marcador}other{Se han eliminado # marcadores}}</translation>
 <translation id="8272443605911821513">Para administrar tus extensiones, haz clic en la opción Extensiones del menú Más herramientas.</translation>
 <translation id="8274212285504931082">Permite que el Asistente te muestre información relacionada con lo que aparece en tu pantalla</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 7052db7..b444599 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Adobe Flash Playeri salvestusruumi seaded</translation>
 <translation id="1274997165432133392">Küpsised ja muud saidi andmed</translation>
 <translation id="1280820357415527819">Mobiilsidevõrkude otsimine</translation>
+<translation id="1280965841156951489">Muuda faile</translation>
 <translation id="1282420830958964167">Sinu vanema määratud rakenduse „<ph name="APP_NAME" />” limiit sai täis. Saad seda homme kasutada <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Ära kunagi seda saiti tõlgi</translation>
 <translation id="1285484354230578868">Salvestage andmed oma Google Drive'i kontole</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Tumelilla</translation>
 <translation id="1692799361700686467">Mitme saidi küpsised on lubatud.</translation>
 <translation id="1697150536837697295">Kunst</translation>
+<translation id="1697686431566694143">Muuda faili</translation>
 <translation id="1698122934742150150">Ainult praegune inkognito seanss</translation>
 <translation id="1698650002254827833">Rakenduste loendit ei saa laadida. Proovige uuesti.</translation>
 <translation id="1701062906490865540">Eemalda see isik</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Ühtegi komponenti pole installitud.</translation>
 <translation id="1932098463447129402">Mitte enne</translation>
 <translation id="1933809209549026293">Ühendage hiir või klaviatuur. Kui kasutate Bluetoothi seadet, veenduge, et see oleks valmis sidumiseks.</translation>
+<translation id="1936931585862840749">Kasutage numbrit, mis näitab, kui palju koopiaid printida (1 kuni <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Selle seadmega, mis põhineb arhitektuuril <ph name="ARCHITECTURE_DEVICE" />, ei saa konteineri arhitektuuri tüüpi <ph name="ARCHITECTURE_CONTAINER" /> importida. Võite proovida konteineri muus seadmes taastada või rakendusega Failid selles konteinerikujutises olevatele failidele juurde pääseda.</translation>
 <translation id="1938351510777341717">Väline Command-klahv</translation>
 <translation id="1940546824932169984">Ühendatud seadmed</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Tõsta see vaheleht esile</translation>
 <translation id="2344028582131185878">Automaatsed allalaadimised</translation>
 <translation id="2345723121311404059">Üks leht printerisse <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">SODA teenus</translation>
 <translation id="2347644257713614136">Hangoutsi ja Cast for Educationi kasutamisel kehtivad Google'i privaatsuseeskirjad.</translation>
 <translation id="2348176352564285430">Rakendus: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Uuesti laaditud</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Linuxi taastamine tühistati</translation>
 <translation id="2423578206845792524">Sa&amp;lvesta pilt nimega...</translation>
 <translation id="2428510569851653187">Kirjeldage, mida te vahelehe kokkujooksmise ajal tegite</translation>
+<translation id="2428939361789119025">WiFi väljalülitamine</translation>
 <translation id="2431027948063157455">Google'i assistendi laadimine nurjus, kontrollige võrguühendust ja proovige uuesti.</translation>
 <translation id="2432753757290432042">Linux (beetaversioon) nõuab värskendamist</translation>
 <translation id="2433452467737464329">Lisage URL-ile päringu parameetrid, et lehte automaatselt värskendada: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Saada kasutus- ja diagnostikaandmeid. Aidake täiustada Androidi kasutuskogemust, saates Google'ile automaatselt seadme teavet ning rakenduse kasutus- ja  diagnostikaandmeid. See aitab parandada süsteemi ja rakenduse stabiilsust ning muud. Teatud koondandmed on abiks ka Google'i rakendustele ja partneritele, näiteks Androidi arendajatele. Kui täiendavad veebi- ja rakendustegevused on sisse lülitatud, võidakse need andmed salvestada teie Google'i kontole. <ph name="BEGIN_LINK1" />Lisateave<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Lisa ühendus</translation>
 <translation id="2947605845283690091">Veebi peaks saama sirvida kiiresti. Leidke hetk ja <ph name="BEGIN_LINK" />vaadake oma laiendused kohe üle<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 potentsiaalselt ohtlik laiend on välja lülitatud. Võite selle ka eemaldada.}other{# potentsiaalselt ohtlikku laiendust on välja lülitatud. Võite need ka eemaldada.}}</translation>
 <translation id="2948300991547862301">Avage <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Kiire, lihtne ja turvaline veebibrauser, mis on loodud tänapäevase veebi jaoks.</translation>
 <translation id="2949289451367477459">Kasutage asukohta. Lubage asukohale juurdepääsu loaga rakendustel ja teenustel kasutada selle seadme asukohta. Google võib aeg-ajalt koguda asukohaandmeid ja kasutada neid anonüümselt asukoha täpsuse ning asukohapõhiste teenuste parendamiseks. <ph name="BEGIN_LINK1" />Lisateave<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Kas soovite rakenduse installida?</translation>
 <translation id="3067198360141518313">Käita pistikprogramm</translation>
 <translation id="3071624960923923138">Uue vahelehe avamiseks võite klõpsata siin</translation>
+<translation id="3072775339180057696">Kas lubada saidil faili <ph name="FILE_NAME" /> vaadata?</translation>
 <translation id="3075874217500066906">Powerwashi toiminguks on vajalik taaskäivitamine. Pärast taaskäivitamist palutakse teil kinnitada jätkamise soov.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" /> / <ph name="DOWNLOAD_TOTAL" />-st</translation>
 <translation id="3076977359333237641">Teie sisselogimisandmed kustutati</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Sait saab kasutada teie kaamerat</translation>
 <translation id="3085752524577180175">SOCKS-host</translation>
 <translation id="3088052000289932193">Sait kasutab MIDI-seadet</translation>
+<translation id="3088128611727407543">Rakenduse profiili ettevalmistamine …</translation>
 <translation id="3088325635286126843">&amp;Nimeta ümber ...</translation>
 <translation id="3089137131053189723">Otsing on tühjendatud</translation>
 <translation id="3090193911106258841">Juurdepääs heli- ja videosisendile</translation>
@@ -1596,6 +1604,7 @@
     Kirjeldus:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome'i rakendused</translation>
+<translation id="3150693969729403281">Käitage ohutuskontrolli kohe</translation>
 <translation id="3150927491400159470">Põhjalik uuestilaadimine</translation>
 <translation id="315116470104423982">Mobiilne andmeside</translation>
 <translation id="3151539355209957474">Algusaeg</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Chrome'i sisselogimine</translation>
 <translation id="3285322247471302225">Uus &amp;vaheleht</translation>
 <translation id="328571385944182268">Kas salvestada teie paroolid?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> saab vaadata faili <ph name="FILENAME" />, kuni sulgete kõik allika <ph name="ORIGIN" /> vahelehed</translation>
 <translation id="3288047731229977326">Arendaja režiimis töötavad laiendused võivad teie arvutit kahjustada. Kui te pole arendaja, peaksite turvalisuse säilitamiseks nende laienduste käitamise arendaja režiimis keelama.</translation>
 <translation id="3289856944988573801">Kasutage värskenduste otsimiseks Etherneti või WiFi-ühendust.</translation>
 <translation id="3290356915286466215">Kaitsmata</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Lugege oma andmeid mitmel veebisaidil</translation>
 <translation id="3448086340637592206">Google Chrome'i ja Chrome OS-i lisatingimused</translation>
 <translation id="3448492834076427715">Värskenda kontot</translation>
+<translation id="3449393517661170867">Uus vahelehestatud aken</translation>
 <translation id="3449839693241009168">Vajutage nuppu <ph name="SEARCH_KEY" />, et saata käsud teenusesse <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Jõudeoleku protsent</translation>
 <translation id="3451332697983754369">Sünkrooni seade <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Täname teid tagasiside eest. Te pole praegu võrguga ühendatud ja aruanne saadetakse hiljem.</translation>
 <translation id="3682824389861648626">Liikumislävi</translation>
 <translation id="3683524264665795342">Rakenduse <ph name="APP_NAME" /> ekraani jagamise taotlus</translation>
+<translation id="3686074530047028092">Haridusalane konto</translation>
 <translation id="368789413795732264">Ilmnes viga, kui proovisite kirjutada faili: <ph name="ERROR_TEXT" /></translation>
 <translation id="3688507211863392146">Failidesse ja kaustadesse kirjutamine, mille rakenduses avate</translation>
 <translation id="3688526734140524629">Vaheta kanalit</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Veebilehtede osade blokeerimine</translation>
 <translation id="3760460896538743390">Uuri &amp;taustalehte</translation>
 <translation id="37613671848467444">&amp;Ava inkognito aknas</translation>
+<translation id="3761556954875533505">Kas lubada saidil faile muuta?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Ühendus USB-seadmega}other{Ühendus # USB-seadmega}}</translation>
 <translation id="3765246971671567135">Võrguühenduseta demorežiimi reeglit ei saanud lugeda.</translation>
 <translation id="3768037234834996183">Eelistuste sünkroonimine ...</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Keela</translation>
 <translation id="3928570707778085600">Kas soovite üksuse <ph name="FILE_OR_FOLDER_NAME" /> muudatused salvestada?</translation>
 <translation id="3929426037718431833">Need laiendused saavad vaadata ja muuta sellel saidil olevat teavet.</translation>
+<translation id="3930155420525972941">Teisalda grupp uude aknasse</translation>
 <translation id="3930737994424905957">Seadmete otsimine</translation>
 <translation id="3930968231047618417">Taustavärv</translation>
 <translation id="3933283459331715412">Taasta kasutaja <ph name="USERNAME" /> kustutatud paroolid</translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Nõustun</translation>
 <translation id="413121957363593859">Komponendid</translation>
 <translation id="4131410914670010031">Mustvalge</translation>
+<translation id="4133076602192971179">Parooli muutmiseks avage rakendus</translation>
 <translation id="4136203100490971508">Funktsioon Öövalgus lülitub automaatselt välja päikesetõusul</translation>
 <translation id="41365691917097717">Jätkamisel lubatakse Androidi rakenduste loomiseks ja testimiseks ADB silumine. Pange tähele, et see toiming võimaldab selliste Androidi rakenduste installimist, mida Google pole kontrollinud, ja tööriista keelamiseks on nõutav tehaseseadetele lähtestamine.</translation>
 <translation id="4138267921960073861">Kuva sisselogimisekraanil kasutajanimed ja fotod</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Ära kunagi tõlgi <ph name="LANGUAGE" /> keelt</translation>
 <translation id="4332976768901252016">Vanemliku järelevalve seadistamine</translation>
 <translation id="4333854382783149454">PKCS 1 SHA-1 koos RSA krüpteerimisega</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Administraator lülitas 1 potentsiaalselt ohtliku laienduse uuesti sisse}other{Administraator lülitas # potentsiaalselt ohtlikku laiendust uuesti sisse}}</translation>
 <translation id="4336434711095810371">Kustuta kõik andmed</translation>
 <translation id="4336979451636460645">Võrgulogisid vaadake: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> tahab suhelda rakendusega „<ph name="EXTENSION_NAME" />”</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Kasutate turvavõtit, mis ei ole sellel veebisaidil registreeritud</translation>
 <translation id="4788092183367008521">Kontrollige võrguühendust ja proovige uuesti.</translation>
 <translation id="4792711294155034829">&amp;Teata probleemist ...</translation>
+<translation id="4794810983896241342">Värskendusi haldab <ph name="BEGIN_LINK" />administraator<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Veebileht, ainult HTML</translation>
 <translation id="4798236378408895261">Manusta <ph name="BEGIN_LINK" />Bluetoothi logid<ph name="END_LINK" /> (Google'ile sisemiseks kasutamiseks)</translation>
 <translation id="4801448226354548035">Peida kontod</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Avage uus vaheleht, et kahte saiti korraga sirvida</translation>
 <translation id="4909038193460299775">Kuna seda kontot haldab domeen <ph name="DOMAIN" />, kustutatakse sellest seadmest teie järjehoidjad, ajalugu, paroolid ja muud seaded. Teie andmed jäävad teie Google'i kontole siiski alles ja neid saab hallata <ph name="BEGIN_LINK" />Google'i juhtpaneelil<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Jõuderežiimist äratamine</translation>
+<translation id="4916542008280060967">Kas lubada saidil faili <ph name="FILE_NAME" /> muuta?</translation>
 <translation id="491691592645955587">Minge üle turvalisele brauserile</translation>
 <translation id="4917385247580444890">Tugev</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> tahab suhelda laiendusega „<ph name="EXTENSION_NAME" />”</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Pea meeles</translation>
 <translation id="5018207570537526145">Ava laienduse veebisait</translation>
 <translation id="5021750053540820849">Pole veel üles laaditud</translation>
+<translation id="5026806129670917316">WiFi sisselülitamine</translation>
 <translation id="5026874946691314267">Ära näita seda uuesti</translation>
 <translation id="5027550639139316293">Meili sertifikaat</translation>
 <translation id="5027562294707732951">Lisa laiendus</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">&amp;JavaScripti konsool</translation>
 <translation id="5184209580557088469">Selle kasutajanimega pilet on juba olemas</translation>
 <translation id="5184662919967270437">Teie seadme värskendamine</translation>
+<translation id="5185359571430619712">Arvustuste laiendid</translation>
 <translation id="5185386675596372454">Laienduse <ph name="EXTENSION_NAME" /> uusim versioon on keelatud, sest see nõuab rohkem õigusi.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> soovib alla laadida mitu faili</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Nutikad jutumärgid</translation>
 <translation id="5260508466980570042">Kahjuks ei õnnestunud teie meili või parooli kinnitada. Proovige uuesti.</translation>
 <translation id="5261683757250193089">Ava veebipoes</translation>
+<translation id="5262178194499261222">Eemalda parool</translation>
 <translation id="5264148714798105376">Selleks võib kuluda mõni minut.</translation>
 <translation id="5264252276333215551">Rakenduse käivitamiseks kioskirežiimis looge Interneti-ühendus.</translation>
 <translation id="5265562206369321422">Üle ühe nädala võrguühenduseta</translation>
@@ -3507,6 +3528,7 @@
 <translation id="5833726373896279253">Neid seadeid saab muuta ainult omanik:</translation>
 <translation id="5834581999798853053">Jäänud on umbes <ph name="TIME" /> minutit</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – kaamera või mikrofon salvestab</translation>
+<translation id="5841270259333717135">Etherneti seadistamine</translation>
 <translation id="5842497610951477805">Bluetoothi lubamine</translation>
 <translation id="5846200638699387931">Seosesüntaksi viga: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Juba lisatud</translation>
@@ -3552,6 +3574,7 @@
 <translation id="5900358982890952556">Linux versiooniuuendus (beeta)</translation>
 <translation id="5901494423252125310">Printeri luuk on avatud</translation>
 <translation id="5901630391730855834">Kollane</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Lülitasite 1 potentsiaalselt ohtliku laienduse uuesti sisse}other{Lülitasite # potentsiaalselt ohtlikku laiendust uuesti sisse}}</translation>
 <translation id="5906655207909574370">Seade on peaaegu ajakohane. Värskenduse lõpuleviimiseks taaskäivitage seade.</translation>
 <translation id="5906732635754427568">Selle rakendusega seostatud andmed eemaldatakse seadmest.</translation>
 <translation id="5908769186679515905">Keela Flashi käitamine saitidel</translation>
@@ -3581,6 +3604,7 @@
 <translation id="59324397759951282">Tootja <ph name="MANUFACTURER_NAME" /> USB-seade</translation>
 <translation id="5932881020239635062">Seerianumber</translation>
 <translation id="5933376509899483611">Ajavöönd</translation>
+<translation id="5935656526031444304">Google'i ohutu sirvimise haldamine</translation>
 <translation id="5938002010494270685">Turvavärskendus on saadaval</translation>
 <translation id="5939518447894949180">Lähtesta</translation>
 <translation id="5941153596444580863">Lisa isik ...</translation>
@@ -3624,6 +3648,7 @@
 <translation id="5993807461461235661">See üleslaadimine on krüpteeritud ja rikub teie organisatsiooni turvaeeskirju.</translation>
 <translation id="5997337190805127100">Lisateave saidile juurdepääsu kohta</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> tulemust otsingule „<ph name="SEARCH_TEXT" />”</translation>
+<translation id="6002210667729577411">Teisalda grupp uude aknasse</translation>
 <translation id="6002458620803359783">Eelistatud hääled</translation>
 <translation id="6006484371116297560">Klassikaline</translation>
 <translation id="6007240208646052708">Häälotsing pole teie keeles saadaval.</translation>
@@ -4162,6 +4187,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Kuva töölaua otsetee</translation>
 <translation id="6740234557573873150">Peatati fail <ph name="FILE_NAME" /></translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Administraator<ph name="END_LINK" /> lülitas Google'i ohutu sirvimise välja</translation>
 <translation id="6742339027238151589">Kättesaadav skripti jaoks</translation>
 <translation id="6745592621698551453">Värskenda kohe</translation>
 <translation id="6746124502594467657">Liiguta alla</translation>
@@ -4420,6 +4446,7 @@
     <ph name="BEGIN_BOLD" />Pidage meeles järgmist.<ph name="END_BOLD" /> Võib juhtuda, et assistendi saab avada ka sarnase häälega või salvestatud hääle abil. Voice Matchi loa saate hiljem eemaldada, lülitades selle assistendi seadetes välja.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Vaheta andmeid seadmetega <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Seade taaskäivitub pärast värskendamise lõpetamist.</translation>
 <translation id="7098389117866926363">C-tüüpi USB-seade (vasakpoolne port taga)</translation>
 <translation id="7098447629416471489">Muud salvestatud otsingumootorid kuvatakse siin</translation>
 <translation id="7099337801055912064">Suurt PPD-d ei saa laadida. Maksimaalne suurus on 250 kB.</translation>
@@ -4892,6 +4919,7 @@
 <translation id="7766807826975222231">Vaadake esitlust</translation>
 <translation id="7766838926148951335">Nõustu lubadega</translation>
 <translation id="7769672763586021400">Mudeli ID</translation>
+<translation id="7770651108375708429">Katkesta ühendus WiFi-ga</translation>
 <translation id="7771452384635174008">Paigutus</translation>
 <translation id="7772032839648071052">Kinnitage parool</translation>
 <translation id="7772127298218883077">Teave <ph name="PRODUCT_NAME" /> kohta</translation>
@@ -5050,6 +5078,7 @@
 <translation id="7939412583708276221">Säilita ikkagi</translation>
 <translation id="7942349550061667556">Punane</translation>
 <translation id="7943837619101191061">Lisa asukoht ...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 parool on ohus}other{# parooli on ohus}}</translation>
 <translation id="7945031593909029181">Laiendus „<ph name="CHROME_EXTENSION_NAME" />” soovib ühendust luua</translation>
 <translation id="7946586320617670168">Lähtekoht peab olema turvaline</translation>
 <translation id="794676567536738329">Kinnitage load</translation>
@@ -5149,6 +5178,7 @@
 <translation id="8059417245945632445">&amp;Seadmete kontrollimine</translation>
 <translation id="8059456211585183827">Salvestamiseks pole saadaval ühtegi printerit.</translation>
 <translation id="8063235345342641131">Roheline vaikeavatar</translation>
+<translation id="8063535366119089408">Kuva fail</translation>
 <translation id="8064671687106936412">Võti:</translation>
 <translation id="8068253693380742035">Puudutage sisselogimiseks</translation>
 <translation id="8068809649322155577">See kustutab kõik saidigrupi <ph name="SITE_GROUP_NAME" />, selle alla kuuluvate saitide ning selle installitud rakenduste salvestatud andmed ja küpsisefailid.</translation>
@@ -5214,6 +5244,7 @@
 <translation id="8152091997436726702">Printeri registreerimine on aegunud. Printeri registreerimiseks peate registreerimise printeris kinnitama.</translation>
 <translation id="8154790740888707867">Fail puudub</translation>
 <translation id="815491593104042026">Vabandust! Autentimine ebaõnnestus, sest see on konfigureeritud kasutama ebaturvalist URL-i (<ph name="BLOCKED_URL" />). Võtke ühendust administraatoriga.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Ohustatud paroole ei leitud}=1{{COUNT} parool on ohus}other{{COUNT} parooli on ohus}}</translation>
 <translation id="8157704005178149728">Järelevalve seadistamine</translation>
 <translation id="8158117992543756526">See seade ei saa alates <ph name="MONTH_AND_YEAR" /> enam automaatseid tarkvara- ja turvavärskendusi. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Viga usaldusväärse sertifikaadi seades</translation>
@@ -5267,6 +5298,7 @@
 <translation id="8226742006292257240">Alljärgnev on juhuslikult loodud TPM-i parool, mis on teie arvutile määratud:</translation>
 <translation id="8227119283605456246">Manusta fail</translation>
 <translation id="8230134520748321204">Kas salvestada saidi <ph name="ORIGIN" /> parool?</translation>
+<translation id="8233762480744368479">Interneti seaded</translation>
 <translation id="8234795456569844941">Aidake meie spetsialistidel probleemi lahendada. Andke meile teada, mis toimus vahetult enne profiili veateate ilmumist.</translation>
 <translation id="8236123533334037984">Teie organisatsioon kontrollib üleslaadimist, et selle turvalisus kinnitada.</translation>
 <translation id="8236917170563564587">Jaga hoopis seda vahelehte</translation>
@@ -5604,6 +5636,7 @@
 <translation id="8688579245973331962">Kas te ei näe oma nime?</translation>
 <translation id="8688591111840995413">Sobimatu parool</translation>
 <translation id="8688672835843460752">Saadaval</translation>
+<translation id="8691418731028620688">Ühenda WiFi-ga</translation>
 <translation id="8695825812785969222">Ava a&amp;sukoht ...</translation>
 <translation id="869884720829132584">Rakenduste menüü</translation>
 <translation id="869891660844655955">Aegumiskuupäev</translation>
@@ -5763,6 +5796,7 @@
 <translation id="8872187374998143710">Plugin VM-i kasutamiseks taaskäivitage seade.</translation>
 <translation id="8872777911145321141">Küsi, kui sait soovib kasutada teie virtuaalreaalsuse seadmeid ja andmeid (soovitatav)</translation>
 <translation id="8874184842967597500">Ühendus puudub</translation>
+<translation id="8875775314572167244">Etherneti seaded</translation>
 <translation id="8876307312329369159">Seda seadet ei saa demoseansis muuta.</translation>
 <translation id="8877448029301136595">[emakataloog]</translation>
 <translation id="8878384954777710821">Plugin VM-i desinstallimine …</translation>
@@ -5804,6 +5838,7 @@
 <translation id="892706138619340876">Mõned seaded lähtestati</translation>
 <translation id="8930351635855238750">Uued küpsiste seaded rakenduvad pärast lehe uuesti laadimist</translation>
 <translation id="8931394284949551895">Uued seadmed</translation>
+<translation id="8931475688782629595">Hallake, mida sünkroonite</translation>
 <translation id="8932894639908691771">Lülitiga juurdepääsu valikud</translation>
 <translation id="8933960630081805351">&amp;Näita otsijas</translation>
 <translation id="8934732568177537184">Jätka</translation>
@@ -5961,6 +5996,7 @@
 <translation id="9148126808321036104">Logige uuesti sisse</translation>
 <translation id="9149866541089851383">Muuda...</translation>
 <translation id="9150045010208374699">Kaamera kasutamine</translation>
+<translation id="9150429437595727962">WiFi-seaded</translation>
 <translation id="9153934054460603056">Salvesta identiteet ja parool</translation>
 <translation id="9154194610265714752">Värskendatud</translation>
 <translation id="91568222606626347">Otsetee loomine ...</translation>
@@ -6022,6 +6058,7 @@
 <translation id="945522503751344254">Saada tagasisidet</translation>
 <translation id="947329552760389097">&amp;Elementide uurimine</translation>
 <translation id="952992212772159698">Aktiveerimata</translation>
+<translation id="956500788634395331">Olete potentsiaalselt ohtlike laienduste eest kaitstud</translation>
 <translation id="957960681186851048">Sait püüdis automaatselt mitut faili alla laadida</translation>
 <translation id="9580706199804957">Google'i teenustega ei õnnestunud ühendust luua</translation>
 <translation id="960719561871045870">Operaatori kood</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index 0abf0e8..45b69f5c 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Aplikazio hauetako datuak ere garbitu nahi dituzu?</translation>
 <translation id="1045692658517323508">{0,plural, =1{Eguneratu minutu bateko epean}other{Eguneratu # minutuko epean}}</translation>
 <translation id="1046635659603195359">Beste gailu bateko Google-ren Laguntzailea eginbidearekin erabiltzeko daukazu konfiguratuta Voice Match. Ahots-eredua sortzeko, gailu horretako grabaketak erabil genitzake gailu honetan ere. Minutu bat baino gutxiago beharko dugu.</translation>
+<translation id="104710386808485638">Linux berrabiarazi nahi duzu?</translation>
 <translation id="1047431265488717055">Kopiatu estekaren te&amp;stua</translation>
 <translation id="1048286738600630630">Pantaila</translation>
 <translation id="1049743911850919806">Ezkutuko modua</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Bezeroaren ziurtagiria esportatzeko, hasi saioa <ph name="TOKEN_NAME" /> gailuan.</translation>
 <translation id="1163931534039071049">&amp;Ikusi markoaren iturburua</translation>
 <translation id="1164674268730883318">Smart Lock desaktibatu nahi duzu <ph name="DEVICE_TYPE" /> gailuan?</translation>
+<translation id="1164891049599601209">Webgune engainagarri batean idatzi duzu</translation>
 <translation id="1164899421101904659">Idatzi PIN kodea desblokeatzeko gakoa</translation>
 <translation id="1165039591588034296">Errorea</translation>
 <translation id="1166212789817575481">Itxi eskuineko fitxak</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">Kiosko modu automatikoa</translation>
 <translation id="1545775234664667895">Instalatu da "<ph name="THEME_NAME" />" gaia</translation>
 <translation id="1546280085599573572">Luzapenak aldatu egin du Hasiera botoia sakatzean agertzen den orria.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> erabiltzaileak honako hauek egin ditzakeen <ph name="EXTENSION_TYPE" /> luzapena instalatu nahi du:</translation>
 <translation id="1549275686094429035">ARC gaituta</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> aplikazioak <ph name="VOLUME_NAME" /> atzitu nahi du. Fitxategiak alda edo ezaba ditzake.</translation>
 <translation id="1553538517812678578">mugagabea</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">Plugin VM</translation>
 <translation id="1679810534535368772">Ziur irten nahi duzula?</translation>
 <translation id="167983332380191032">HTTP errore bat bidali du kudeaketa-zerbitzuak.</translation>
+<translation id="1680841347983561661">Abiarazi berriro Google Play minutu gutxi batzuk barru.</translation>
 <translation id="1680849702532889074">Errore bat gertatu da Linux aplikazioa instalatzean.</translation>
 <translation id="16815041330799488">Ez utzi ikusten webguneei arbelean kopiatzen dituzun testuak eta irudiak</translation>
 <translation id="1682548588986054654">Ezkutuko leiho berria</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> aplikazioak huts egin du. Luzapena berriro kargatzeko, sakatu globo hau.</translation>
 <translation id="2025891858974379949">Segurua ez den edukia</translation>
 <translation id="202918510990975568">Segurtasuna eta saio-hasiera konfiguratzeko, idatzi pasahitza</translation>
+<translation id="2030672406208960151">Ireki berreskurapen-terminala</translation>
 <translation id="2034346955588403444">Gehitu beste Wi-Fi sare bat</translation>
 <translation id="203574396658008164">Gaitu pantaila blokeatutik oharrak idazteko aukera</translation>
 <translation id="2037445849770872822">Gainbegiratzea konfiguratu da Google-ko kontu honetan. Gurasoen murriztapen gehiago konfiguratzeko, hautatu Egin aurrera.
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">PIN kodea edo pasahitza</translation>
 <translation id="2224444042887712269">Ezarpen hau <ph name="OWNER_EMAIL" /> erabiltzailearena da.</translation>
 <translation id="2224551243087462610">Editatu karpetaren izena</translation>
+<translation id="2225864335125757863">Aldatu honako pasahitz hauek ahal bezain laster kontua babestuta mantentzeko:</translation>
 <translation id="2226449515541314767">Webguneak MIDI gailuen kontrol osoa izateko blokeatuta dago.</translation>
 <translation id="222704500187107962">Salbuespen hau automatikoki kenduko da ezkutuko moduko uneko saiotik irteten zarenean</translation>
 <translation id="2227179592712503583">Kendu iradokizuna</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">Joan hasierako pantailara</translation>
 <translation id="2387458720915042159">Proxy konexio mota</translation>
 <translation id="2391419135980381625">Letra estandarra</translation>
+<translation id="2392163307141705938">Iritsi zara gurasoek <ph name="IDS_SHORT_PRODUCT_NAME" /> erabiltzeko ezarritako denbora-mugara.</translation>
 <translation id="2392369802118427583">Aktibatu</translation>
 <translation id="2394566832561516196">Hurrengo aldiz berriro kargatzean garbituko dira ezarpenak.</translation>
 <translation id="2395616325548404795">Erregistratu da <ph name="DEVICE_TYPE" /> enpresak kudeatzeko, baina ez da bidali haren baliabideen eta kokapenaren gaineko informazioa. Eskuratu informazio hori gailuaren administrazio-kontsolatik eta idatz ezazu eskuz.</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">Partekatu audioa</translation>
 <translation id="2480868415629598489">Aldatu kopiatzen eta itsasten dituzun datuak</translation>
 <translation id="2482878487686419369">Jakinarazpenak</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> webguneak <ph name="FILENAME" /> editatu ahalko du <ph name="ORIGIN" /> webguneko fitxa guztiak ixten dituzun arte</translation>
 <translation id="2484959914739448251">Sinkronizatutako gailu guztietako eta zure Google-ko kontuko arakatze-datuak garbitzeko, <ph name="BEGIN_LINK" />idatzi pasaesaldia<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Gorde da pasahitza gailuan</translation>
 <translation id="2485422356828889247">Desinstalatu</translation>
@@ -1299,6 +1307,7 @@
 <translation id="274290345632688601">Linux aplikazioak eta fitxategiak leheneratzen</translation>
 <translation id="2743387203779672305">Kopiatu arbelean</translation>
 <translation id="2745080116229976798">Microsoft menderakuntza mugatua</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> pausatuta dago</translation>
 <translation id="2749756011735116528">Hasi saioa <ph name="PRODUCT_NAME" />-n</translation>
 <translation id="2749881179542288782">Zuzendu gramatika eta ortografia</translation>
 <translation id="2751739896257479635">EAP 2. fasearen autentifikazioa</translation>
@@ -1307,6 +1316,7 @@
 <translation id="275662540872599901">pantaila itzalita dago</translation>
 <translation id="2762441749940182211">Kamera blokeatuta dago</translation>
 <translation id="2765217105034171413">Txikia</translation>
+<translation id="2766161002040448006">Galdetu guraso bati</translation>
 <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" /> gisa dauka saioa hasita.</translation>
 <translation id="2770465223704140727">Kendu zerrendatik</translation>
 <translation id="2770690685823456775">Esportatu pasahitzak beste karpeta batera</translation>
@@ -1558,6 +1568,7 @@
 <translation id="3115580024857770654">Tolestu guztiak</translation>
 <translation id="3117362587799608430">Oinarria ez da guztiz bateragarria</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> laguntza</translation>
+<translation id="3118654181216384296">Saiatu berriro Linux abiarazten minutu gutxi batzuk barru</translation>
 <translation id="3120430004221004537">"<ph name="DEVICE_NAME" />" gailuko eragiketa jakin bat ez da behar adina enkriptatu.</translation>
 <translation id="3121793941267913344">Berrezarri <ph name="IDS_SHORT_PRODUCT_NAME" /> gailua</translation>
 <translation id="3122464029669770682">PUZ</translation>
@@ -1567,6 +1578,7 @@
 <translation id="3127156390846601284">Zehaztutako webguneek gailuan biltegiratutako datu guztiak ezabatuko dira. Jarraitu nahi duzu?</translation>
 <translation id="3127860049873093642">Kargatzean eta erabiltzean arazorik ez izateko, erabili Dell-eko edo USB Type-C motako egokigailu bateragarri bat.</translation>
 <translation id="3129173833825111527">Ezkerreko marjina</translation>
+<translation id="3129215702932019810">Errore bat gertatu da aplikazioa abiaraztean</translation>
 <translation id="3130528281680948470">Gailua berrezarri egingo da, eta erabiltzaile-kontu eta tokiko datu guztiak kendu egingo dira. Ekintza hau ezin da desegin.</translation>
 <translation id="313205617302240621">Pasahitza ahaztu zaizu?</translation>
 <translation id="3132996321662585180">Freskatu egunero</translation>
@@ -1782,6 +1794,7 @@
 <translation id="3441653493275994384">Pantaila</translation>
 <translation id="3445925074670675829">USB-C gailua</translation>
 <translation id="344630545793878684">Irakurri zenbait webgunetan dituzun datuak</translation>
+<translation id="3448086340637592206">Google Chrome eta Chrome OS zerbitzuen baldintza osagarriak</translation>
 <translation id="3448492834076427715">Eguneratu kontua</translation>
 <translation id="3449839693241009168"><ph name="EXTENSION_NAME" /> luzapenera aginduak bidaltzeko, sakatu <ph name="SEARCH_KEY" /></translation>
 <translation id="3450157232394774192">Inaktibo egoerako denboraren ehuneko proportzionala</translation>
@@ -2129,6 +2142,7 @@
 <translation id="3873423927483480833">Erakutsi PIN kodeak</translation>
 <translation id="3873915545594852654">Arazo bat izan da ARC++ eginbidearekin.</translation>
 <translation id="3879748587602334249">Deskargen kudeatzailea</translation>
+<translation id="3881321138433527084">Arakatze segurua desaktibatuta dago. Sarean babestuta egoteko, aktiba ezazu.</translation>
 <translation id="3882165008614329320">Kamerako bideo bat edo bideo-fitxategi bat (lehendik duzuna)</translation>
 <translation id="3886446263141354045">Bidali zaio webgunean sartzeko eskaera <ph name="NAME" /> erabiltzaileari.</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> aplikazioarekin oharrak idaztea</translation>
@@ -2470,6 +2484,7 @@
 <translation id="4384652540891215547">Aktibatu luzapena</translation>
 <translation id="438503109373656455">Zaldia</translation>
 <translation id="4387004326333427325">Autentifikazio-ziurtagiria urrunetik baztertu da</translation>
+<translation id="4387890294700445764">Arriskuan dauden pasahitzak</translation>
 <translation id="4389091756366370506"><ph name="VALUE" /> erabiltzailea</translation>
 <translation id="4390000551125140321">{0,plural, =1{Ezkutuko modua}other{Ezkutuko moduko # leiho daude irekita}}</translation>
 <translation id="439266289085815679"><ph name="USER_EMAIL" /> erabiltzaileak kontrolatzen du Bluetooth konfigurazioa.</translation>
@@ -2501,6 +2516,7 @@
 <translation id="4429030830601238961">Datu hauek erakundearen segurtasun-gidalerroak urratzen dituzte eta ezin dira itsatsi.</translation>
 <translation id="4430019312045809116">Bolumena</translation>
 <translation id="4430369329743628066">Gehitu da laster-marka</translation>
+<translation id="4432621511648257259">Pasahitz okerra</translation>
 <translation id="4434045419905280838">Leiho gainerak. / Birbideratzeak</translation>
 <translation id="443454694385851356">Aurreko bertsioa (ez da segurua)</translation>
 <translation id="443475966875174318">Eguneratu edo kendu aplikazio bateraezinak</translation>
@@ -2750,6 +2766,7 @@
 <translation id="4808667324955055115">Leiho gainerakorrak blokeatuta daude:</translation>
 <translation id="480990236307250886">Ireki orri nagusia</translation>
 <translation id="4811503964269049987">Taldekatu hautatutako fitxa</translation>
+<translation id="4811818760963189951">Desaktibatu egin da historiaren sinkronizazioa desgaitu duzulako</translation>
 <translation id="4813136279048157860">Nire irudiak</translation>
 <translation id="4813512666221746211">Sarearen errorea</translation>
 <translation id="4814378367953456825">Idatzi hatz-markaren izena</translation>
@@ -2779,6 +2796,7 @@
 <translation id="4850669014075537160">Desplazamendua</translation>
 <translation id="4850886885716139402">Ikusi</translation>
 <translation id="4853020600495124913">Ireki leiho &amp;berrian</translation>
+<translation id="4854317507773910281">Aukeratu gurasoaren zer kontu erabili nahi duzun onartzeko</translation>
 <translation id="485480310608090163">Ezarpen eta baimen gehiago</translation>
 <translation id="4856478137399998590">Mugikorreko datuen zerbitzua aktibatu egin da eta erabiltzeko prest dago</translation>
 <translation id="4856855265648545577">Tableta moduan, erakutsi Abiarazlea, Atzera eta Ikuspegi orokorra botoiak biltegian. Aktibatuta dago ChromeVox (ahozko argibideak) edo erabilerraztasun-osagarria gaituta dagoenean.</translation>
@@ -2915,10 +2933,12 @@
 <translation id="5040823038948176460">Edukiaren ezarpen gehigarriak</translation>
 <translation id="5042282098504489593">Ireki Ezarpenak atala <ph name="USB_DEVICE_NAME" /> gailua Linux-era konektatzeko</translation>
 <translation id="5043913660911154449">Edo zehaztu inprimagailuaren PPD fitxategia <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Desaktibatu egin da pasaesaldi batekin enkriptatu dituzulako sinkronizatutako datuak</translation>
 <translation id="5045550434625856497">Pasahitz okerra</translation>
 <translation id="504561833207953641">Dagoen arakatze-saioan irekitzen.</translation>
 <translation id="5047421709274785093">Ez utzi webguneei mugimendu- eta argi-sentsoreak erabiltzen</translation>
 <translation id="5050042263972837708">Taldearen izena</translation>
+<translation id="5051073330196664891">Google-ren Zerbitzu-baldintza unibertsalak</translation>
 <translation id="5051836348807686060">Ortografia-zuzentzailea ez dago erabilgarri hautatu dituzun hizkuntzetan</translation>
 <translation id="5052499409147950210">Editatu webgunea</translation>
 <translation id="5053604404986157245">Ausaz sortutako TPM pasahitza ez dago erabilgarri. Normala da hori gertatzea fabrikako ezarpenak berrezarri ondoren.</translation>
@@ -2956,6 +2976,7 @@
 <translation id="5097002363526479830">Ezin izan da "<ph name="NAME" />" sarera konektatu: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Ireki laster-marka guztiak</translation>
 <translation id="5101839224773798795">Egin klik automatikoki kurtsorea gelditzen denean</translation>
+<translation id="5107443654503185812">Luzapen batek arakatze segurua desaktibatu du</translation>
 <translation id="5108967062857032718">Ezarpenak - Kendu Android-erako aplikazioak</translation>
 <translation id="5109044022078737958">Amaia</translation>
 <translation id="5111646998522066203">Irten ezkutuko modutik</translation>
@@ -3042,6 +3063,7 @@
 <translation id="523505283826916779">Erabilerraztasun-ezarpenak</translation>
 <translation id="5235750401727657667">Aldatu fitxa berriak irekitzean erakusten den orria</translation>
 <translation id="5238278114306905396">"<ph name="EXTENSION_NAME" />" aplikazioa automatikoki kendu da.</translation>
+<translation id="5239730228370806996">Jaregindako datu hauek erakundearen segurtasun-gidalerroak urratzen dituzte. Aurrera egin nahi duzu dena den?</translation>
 <translation id="5241128660650683457">Irakurri bisitatzen dituzun webguneetan dituzun datu guztiak</translation>
 <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" gaitu nahi duzu?</translation>
 <translation id="5243522832766285132">Saiatu berriro minutu gutxi batzuk barru</translation>
@@ -3329,6 +3351,7 @@
 <translation id="5618075537869101857">Ezin izan da abiarazi aplikazio espezializatua.</translation>
 <translation id="5618333180342767515">(minutu batzuk beharko dira)</translation>
 <translation id="56197088284879152">Trabatu egin da urruneko "<ph name="DEVICE_NAME" />" gailuarekiko konexioa.</translation>
+<translation id="5620163320393916465">Ez dago pasahitzik gordeta</translation>
 <translation id="5620549857835247159">Tableta moduan, erakutsi Abiarazlea, Atzera eta Ikuspegi orokorra botoiak biltegian.</translation>
 <translation id="5620568081365989559">Garatzaileen tresnek sarbide osoa eskatzen dute <ph name="FOLDER_PATH" /> biderako. Ziurtatu ez duzula informazio garrantzitsurik agerian uzten.</translation>
 <translation id="5620612546311710611">erabilera-estatistikak</translation>
@@ -3421,6 +3444,7 @@
 <translation id="5747785204778348146">Garatzailea; egoera ezegonkorra</translation>
 <translation id="5747809636523347288">It&amp;satsi eta joan "<ph name="URL" />" helbidera</translation>
 <translation id="5750324801516359607">Urrun</translation>
+<translation id="5751887393582880060">Karga honek erakundearen segurtasun-gidalerroak urratzen ditu. Aurrera egin nahi duzu dena den?</translation>
 <translation id="5756163054456765343">&amp;Laguntza-zentroa</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> aplikazioaren bidez inprimatzera bidaltzen dituzun dokumentuak <ph name="APP_NAME" /> aplikazioak irakur ditzake.</translation>
 <translation id="5763751966069581670">Ez da aurkitu USB bidezko gailurik</translation>
@@ -3630,6 +3654,7 @@
 <translation id="6040852767465482106">Identitate anonimoa</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Gailuaren kokapena zehazteko, wifi-sarea, sare mugikorrak eta sentsoreak erabiltzen ditu Google-ren kokapen-zerbitzuak.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Kokapena desaktibatzeko, desaktibatu gailuaren kokapen-ezarpen nagusia. Bestela, desaktibatu kokapena zehazteko wifi-sareak, sare mugikorrak eta sentsoreak erabiltzeko aukera kokapen-ezarpenetan.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> webguneak <ph name="FOLDERNAME" /> karpetako fitxategiak ikusi ahalko ditu <ph name="ORIGIN" /> webguneko fitxa guztiak itxi arte</translation>
 <translation id="6041155700700864984">Irten pantaila osoko modutik</translation>
 <translation id="604124094241169006">Automatikoa</translation>
 <translation id="6042308850641462728">Gehiago</translation>
@@ -3691,6 +3716,7 @@
 <translation id="6104311680260824317">Ezin da gehitu gailua domeinuan. Zerbitzariak ez ditu onartzen zehaztutako Kerberos enkriptatze motak. Joan "Aukera gehiago" atalera enkriptatze-ezarpenak ikusteko.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> erakundeak gailu hau berehala eguneratzeko eskatu du</translation>
 <translation id="6106186653986077033">Plugin VM-k lizentzia behar du</translation>
+<translation id="6107047744202598802">Eman baimena webguneei bisita gogoratzeko eta sarean zure jarraipena egiteko</translation>
 <translation id="6112294629795967147">Sakatu tamaina aldatzeko</translation>
 <translation id="6112727384379533756">Gehitu zerbitzu-eskaera bat</translation>
 <translation id="6112931163620622315">Begiratu telefonoan</translation>
@@ -3769,6 +3795,7 @@
 <translation id="622537739776246443">Profila ezabatu egingo da</translation>
 <translation id="6225475702458870625"><ph name="PHONE_NAME" /> telefonoaren datu-konexioa erabil dezakezu</translation>
 <translation id="6226777517901268232">Gako pribatuaren fitxategia (aukerakoa)</translation>
+<translation id="6227280783235722609">luzapena</translation>
 <translation id="6228691855869374890">Webguneak MIDI gailuen kontrol osoa du.</translation>
 <translation id="6228720835160974792">Sortu irudiaren QR kodea</translation>
 <translation id="6229890768313448549">Ezin dira kargatu Google Play-ren Zerbitzu-baldintzak. Saiatu berriro.</translation>
@@ -3820,6 +3847,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> ez da deskargatzen sarriegi, eta arriskutsua izan liteke.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Inprimagailu berria dago sarean}other{Inprimagailu berriak daude sarean}}</translation>
 <translation id="6286708577777130801">Gordetako pasahitzaren xehetasunak</translation>
+<translation id="6291163159361301370">Linux abiarazteko, datuen babeskopia egitea eta Chromebook honen jatorrizko ezarpenak berrezartzea eskatzen du <ph name="ORGANIZATION_NAME" /> erakundeak.</translation>
 <translation id="6291949900244949761">Eskatu nire baimena webguneren batek USB gailuak atzitu nahi dituenean (gomendatua)</translation>
 <translation id="6291953229176937411">&amp;Erakutsi Finder-en</translation>
 <translation id="6295158916970320988">Webgune guztiak</translation>
@@ -4016,6 +4044,7 @@
 <translation id="6561726789132298588">sartu</translation>
 <translation id="656293578423618167">Fitxategi-bidea edo -izena luzeegia da. Gorde izen laburrago batekin edo beste kokapen batean.</translation>
 <translation id="6563469144985748109">Kudeatzaileak ez du onartu eskaera oraindik</translation>
+<translation id="6565955132287672866">Gailua ez da behar bezala itxi. Berrabiaraz ezazu Linux (beta) erabiltzeko.</translation>
 <translation id="6567688344210276845">Ezin izan da kargatu "<ph name="ICON" />" ikonoa orriaren ekintzarako.</translation>
 <translation id="6569934958368283244">Jende gehiago</translation>
 <translation id="657402800789773160">&amp;Kargatu orria berriro</translation>
@@ -4513,6 +4542,7 @@
 <translation id="7258225044283673131">Aplikazioak ez du erantzuten. Ixteko, hautatu "Behartu ixtera".</translation>
 <translation id="7258697411818564379">Gehitu da PIN kodea</translation>
 <translation id="7262004276116528033">Saioa hasteko zerbitzuaren ostalaria <ph name="SAML_DOMAIN" /> da</translation>
+<translation id="7266898409676782635">Lortu <ph name="DEVICE_TYPE" /> gailuari buruzko aholkuak eta eskaintzak, eta partekatu zure iritzia. Kendu harpidetza nahi duzunean.</translation>
 <translation id="7268127947535186412">Gailuaren jabeak kudeatzen du ezarpen hau.</translation>
 <translation id="7270858098575133036">Eskatu nire baimena webgune batek sistemaren mezu esklusiboak erabili nahi dituenean MIDI gailuak atzitzeko</translation>
 <translation id="7272674038937250585">Ez da eman azalpenik</translation>
@@ -4586,6 +4616,7 @@
 <translation id="7364796246159120393">Aukeratu fitxategia</translation>
 <translation id="7366415735885268578">Gehitu webgune bat</translation>
 <translation id="7366909168761621528">Arakatze-datuak</translation>
+<translation id="7367714965999718019">QR kodeen sortzailea</translation>
 <translation id="736877393389250337">Ezin izan da ireki <ph name="URL" /> <ph name="ALTERNATIVE_BROWSER_NAME" /> arakatzailean. Jarri administratzailearekin harremanetan.</translation>
 <translation id="7370592524170198497">Ethernet EAP:</translation>
 <translation id="7371006317849674875">Hasiera-ordua</translation>
@@ -4843,8 +4874,10 @@
 <translation id="7737238973539693982">Ezabatu Linux (Beta)</translation>
 <translation id="7740996059027112821">Estandarra</translation>
 <translation id="7744047395460924128">Ikusi inprimatze-historia</translation>
+<translation id="7744192722284567281">Datuen isilpekotasunaren urratze batean aurkitu da</translation>
 <translation id="7746457520633464754">Aplikazio eta webgune arriskutsuak hautemateko, ireki dituzun orrietako batzuen URLak, sistemari buruzko informazio mugatua eta orrietako edukiaren zati bat bidaltzen dizkio Chrome-k Google-ri.</translation>
 <translation id="7750228210027921155">Pantaila txikia</translation>
+<translation id="7751229152614300329">Arakatze segurua eguneratuta dago, eta webgune eta deskarga kaltegarrietatik babesten zaitu</translation>
 <translation id="7751260505918304024">Erakutsi guztiak</translation>
 <translation id="7754704193130578113">Galdetu fitxategi bakoitza non gorde behar den deskargatu aurretik</translation>
 <translation id="7755287808199759310">Gurasoek desblokea diezazukete</translation>
@@ -4992,6 +5025,7 @@
 <translation id="7910768399700579500">&amp;Karpeta berria</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Pasahitza aldatu egin da zerbitzarian. Amaitu saioa eta has ezazu berriro.</translation>
+<translation id="7914583336730284547">Jaregindako fitxategi hauek erakundearen segurtasun-gidalerroak urratzen dituzte. Aurrera egin nahi duzu dena den?</translation>
 <translation id="7915457674565721553">Konektatu Internetera gurasoen murriztapenak konfiguratzeko</translation>
 <translation id="7915471803647590281">Iritzia bidali aurretik, esan iezaguzu zer gertatzen ari den.</translation>
 <translation id="7918257978052780342">Erregistratu</translation>
@@ -5088,6 +5122,7 @@
 <translation id="8028803902702117856"><ph name="SIZE" /> deskargatzen. Fitxategiaren izena: <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">Tamaina</translation>
 <translation id="8030656706657716245">Gehitu inprimagailua</translation>
+<translation id="8030852056903932865">Onartu</translation>
 <translation id="8032244173881942855">Ezin da igorri fitxa.</translation>
 <translation id="8033827949643255796">hautatuta</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Ireki guztiak &amp;ezkutuko moduko leiho batean}=1{Ireki &amp;ezkutuko moduko leiho batean}other{Ireki guztiak (#) &amp;ezkutuko moduko leiho batean}}</translation>
@@ -5408,6 +5443,7 @@
 <translation id="8472623782143987204">hardwarean gordeak</translation>
 <translation id="8473863474539038330">Helbideak eta beste</translation>
 <translation id="8475313423285172237">Ordenagailuan duzun beste programa batek Chrome-ren funtzionamendua alda dezakeen luzapen bat gehitu du.</translation>
+<translation id="8476659515398963495">Itsatsitako datu hauek erakundearen segurtasun-gidalerroak urratzen dituzte. Aurrera egin nahi duzu dena den?</translation>
 <translation id="8477241577829954800">Ordeztua</translation>
 <translation id="8477384620836102176">&amp;Orokorra</translation>
 <translation id="8480082892550707549">Aurretik webgune honetatik fitxategiak deskargatu badituzu ere, baliteke webgunea aldi baterako segurtasunik ez izatea (hackeatuta egotea). Saiatu geroago deskargatzen fitxategia.</translation>
@@ -5461,6 +5497,7 @@
 <translation id="8547013269961688403">Gaitu pantaila osoko lupa</translation>
 <translation id="85486688517848470">Goiko errenkadako teklen portaera aldatzeko, eduki sakatuta Bilaketa tekla</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 elementu}other{# elementu}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> webguneak <ph name="FOLDERNAME" /> karpetako fitxategiak editatu ahalko ditu <ph name="ORIGIN" /> webguneko fitxa guztiak itxi arte</translation>
 <translation id="8551388862522347954">Lizentziak</translation>
 <translation id="8553342806078037065">Kudeatu beste pertsona batzuk</translation>
 <translation id="8554899698005018844">Ez da zehaztu hizkuntzarik</translation>
@@ -5519,6 +5556,7 @@
 <translation id="8637688295594795546">Sistemaren eguneratzea erabilgarri duzu. Deskargatzeko prestatzen…</translation>
 <translation id="8639047128869322042">Software kaltegarria bilatzen…</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Ataka</translation>
+<translation id="8641606876632989680">Chrome-k jakinarazpen bat bidaliko dizu arriskuan dagoen pasahitz batekin hasten duzunean saioa</translation>
 <translation id="8642900771896232685">2 segundo</translation>
 <translation id="8642947597466641025">Handitu testua</translation>
 <translation id="8644655801811752511">Ezin da berrezarri segurtasun-giltza. Saiatu giltza sartu eta berehala berrezartzen.</translation>
@@ -5568,6 +5606,7 @@
 <translation id="869884720829132584">Aplikazioen menua</translation>
 <translation id="869891660844655955">Iraungitze-data</translation>
 <translation id="8703346390800944767">Saltatu iragarkia</translation>
+<translation id="870341961648617780">Arakatze segurua eta segurtasun-ezarpen aurreratuak</translation>
 <translation id="8705331520020532516">Serie-zenbakia</translation>
 <translation id="8705580154597116082">Telefonoaren bidez erabil dezakezu Wi-Fi konexioa</translation>
 <translation id="8705629851992224300">Ezin izan da irakurri segurtasun-giltza</translation>
@@ -5613,6 +5652,7 @@
 <translation id="874689135111202667">{0,plural, =1{Fitxategi bat kargatu nahi duzu webgune honetara?}other{# fitxategi kargatu nahi dituzu webgune honetara?}}</translation>
 <translation id="8748384418490037181">Smart Lock eginbidearen aukerak</translation>
 <translation id="8749863574775030885">Atzitu saltzaile ezezagunaren USB gailuak</translation>
+<translation id="8750133148106010815">Google Play abiarazteko, datuen babeskopia egitea eta Chromebook honen jatorrizko ezarpenak berrezartzea eskatzen du <ph name="ORGANIZATION_NAME" /> erakundeak.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> webguneak serie-ataka batera konektatu nahi du</translation>
 <translation id="8754200782896249056">&lt;p&gt;Ordenagailu-ingurune bateragarri batean <ph name="PRODUCT_NAME" /> abiarazten duzunean, sistemaren proxy-ezarpenak erabiliko dira. Dena den, zure sistema ez da bateragarria edo arazo bat izan da sistemaren konfigurazioa kargatzean.&lt;/p&gt;
 
@@ -5667,6 +5707,7 @@
 <translation id="8809147117840417135">Anil argia</translation>
 <translation id="8813698869395535039">Ezin da hasi saioa <ph name="USERNAME" /> kontuan</translation>
 <translation id="8813811964357448561">paper-orria</translation>
+<translation id="8813872945700551674">Eskatu guraso bati "<ph name="EXTENSION_NAME" />" onartzeko</translation>
 <translation id="8813969267212093033">Sistemaren testua hizkuntza honetan bistaratzen da</translation>
 <translation id="8814190375133053267">Wi-Fi konexioa</translation>
 <translation id="8814687660896548945">Itxaron artxiboa aztertu bitartean…</translation>
@@ -5947,6 +5988,7 @@
 <translation id="9203398526606335860">&amp;Profilen sorrera gaituta</translation>
 <translation id="9203904171912129171">Hautatu gailua</translation>
 <translation id="9203962528777363226">Gailuaren administratzaileak erabiltzaile berriak gehitzeko aukera desgaitu du</translation>
+<translation id="9211177926627870898">Eguneratu egin behar da</translation>
 <translation id="9214520840402538427">Instalazioko atributuak abiarazteko denbora-muga gainditu da. Jarri harremanetan laguntza emateko ordezkariarekin.</translation>
 <translation id="9214695392875603905">Pasteltxoa</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" gehitu da</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index d11d3b5..fc5692d 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">داده‌های این برنامه‌ها نیز پاک شود؟</translation>
 <translation id="1045692658517323508">{0,plural, =1{به‌روزرسانی ۱ دقیقه دیگر}one{به‌روزرسانی # دقیقه دیگر}other{به‌روزرسانی # دقیقه دیگر}}</translation>
 <translation id="1046635659603195359">‏به‌نظر می‌رسد ازقبل Voice Match را با «دستیار Google» در دستگاه دیگری راه‌اندازی کرده‌اید. از این قطعه‌های قبلاً ضبط‌شده می‌توان برای ایجاد مدل صوتی در این دستگاه استفاده کرد. نباید بیشتر از یک دقیقه طول بکشد.</translation>
+<translation id="104710386808485638">‏Linux بازراه‌اندازی شود؟</translation>
 <translation id="1047431265488717055">کپی کردن متن &amp;پیوند</translation>
 <translation id="1048286738600630630">نمایشگرها</translation>
 <translation id="1049743911850919806">ناشناس</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">لطفاً برای صدور مجوز سرویس گیرنده، به <ph name="TOKEN_NAME" /> وارد شوید.</translation>
 <translation id="1163931534039071049">&amp;نمای منبع قاب</translation>
 <translation id="1164674268730883318">‏Smart Lock برای <ph name="DEVICE_TYPE" /> خاموش شود؟</translation>
+<translation id="1164891049599601209">در سایت فریب‌دهنده وارد شده است</translation>
 <translation id="1164899421101904659">کلید باز کردن قفل پین را وارد کنید</translation>
 <translation id="1165039591588034296">خطا</translation>
 <translation id="1166212789817575481">بستن برگه‌ها به چپ</translation>
@@ -395,6 +397,7 @@
 <translation id="1545177026077493356">حالت کیوسک خودکار</translation>
 <translation id="1545775234664667895">طرح زمینه نصب شده "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">این افزونه، صفحه‌ای را با کلیک روی دکمه صفحه اصلی نمایش داده می‌شود، تغییر داده است.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> می‌خواهد یک <ph name="EXTENSION_TYPE" /> نصب کند که می‌تواند:</translation>
 <translation id="1549275686094429035">‏زمان اجرای برنامه ویژه (ARC) فعال شد</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> می‌خواهد به <ph name="VOLUME_NAME" /> دسترسی یابد. ممکن است فایل‌هایتان را تغییر داده یا حذف کند.</translation>
 <translation id="1553538517812678578">نامحدود</translation>
@@ -493,6 +496,7 @@
 <translation id="1679806121152819234">‏افزایه VM</translation>
 <translation id="1679810534535368772">مطمئنید می‌خواهید خارج شوید؟</translation>
 <translation id="167983332380191032">‏سرویس مدیریت خطای HTTP (اچ‌تی‌تی‌پی) ارسال کرد.</translation>
+<translation id="1680841347983561661">‏لطفاً چند لحظه دیگر Google Play را مجدداً راه‌اندازی کنید.</translation>
 <translation id="1680849702532889074">‏هنگام نصب برنامه Linux خطایی روی داد.</translation>
 <translation id="16815041330799488">به سایت‌ها اجازه داده نشود به نوشتار و تصاویر کپی‌شده در بریده‌دان دسترسی پیدا کنند</translation>
 <translation id="1682548588986054654">پنجره جدید ناشناس</translation>
@@ -746,6 +750,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> خراب شده است. برای تازه‌سازی پسوند بر روی این بالون کلیک کنید.</translation>
 <translation id="2025891858974379949">محتوای ناامن</translation>
 <translation id="202918510990975568">برای پیکربندی امنیت و ورود به سیستم، گذرواژه‌تان را وارد کنید</translation>
+<translation id="2030672406208960151">باز کردن پایانه بازیابی</translation>
 <translation id="2034346955588403444">‏افزودن شبکه WiFi دیگر</translation>
 <translation id="203574396658008164">فعال کردن یادداشت‌برداری از صفحه درحالت قفل</translation>
 <translation id="2037445849770872822">‏برای این «حساب Google» نظارت تنظیم شده است. برای تنظیم کنترل‌های والدین بیشتر، «ادامه» را انتخاب کنید.
@@ -898,6 +903,7 @@
 <translation id="2220572644011485463">پین یا گذرواژه</translation>
 <translation id="2224444042887712269">این تنظیم به <ph name="OWNER_EMAIL" /> متعلق است.</translation>
 <translation id="2224551243087462610">ویرایش نام پوشه</translation>
+<translation id="2225864335125757863">برای حفظ ایمنی حسابتان، این گذرواژه‌ها را فوراً تغییر دهید:</translation>
 <translation id="2226449515541314767">‏این سایت از داشتن کنترل کامل دستگاه‌های MIDI ممانعت شده است.</translation>
 <translation id="222704500187107962">پس از خروج از جلسه ناشناس فعلی، این استثنا به‌طور خودکار برداشته می‌شود</translation>
 <translation id="2227179592712503583">حذف پیشنهاد</translation>
@@ -1018,6 +1024,7 @@
 <translation id="2387052489799050037">رفتن به صفحه اصلی</translation>
 <translation id="2387458720915042159">نوع اتصال پراکسی</translation>
 <translation id="2391419135980381625">قلم استاندارد</translation>
+<translation id="2392163307141705938">به حداکثر زمانی که ولی‌تان برای استفاده از <ph name="IDS_SHORT_PRODUCT_NAME" /> تعیین کرده است رسیده‌اید.</translation>
 <translation id="2392369802118427583">فعالسازی</translation>
 <translation id="2394566832561516196">تنظیمات در تازه‌سازی بعدی حذف می‌شوند.</translation>
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> شما باموفقیت برای مدیریت شرکت ثبت شد اما نتوانست اطلاعات مکان و دارایی‌اش را ارسال کند. لطفاً این اطلاعات را به‌صورت دستی از کنسول سرپرستتان برای این دستگاه وارد کنید.</translation>
@@ -1083,6 +1090,7 @@
 <translation id="247949520305900375">هم‌رسانی صوت</translation>
 <translation id="2480868415629598489">اصلاح داده‌هایی که کپی و جای‌گذاری می‌کنید</translation>
 <translation id="2482878487686419369">اعلان‌ها</translation>
+<translation id="2483610039979585156">تا زمانی‌که همه برگه‌های <ph name="ORIGIN" /> را نبندید، <ph name="ORIGIN" /> می‌تواند <ph name="FILENAME" /> را ویرایش کند</translation>
 <translation id="2484959914739448251">‏برای اینکه داده‌های محصول مرور را از همه دستگاه‌های همگام‌سازی‌شده و حساب Google خود پاک کنید، <ph name="BEGIN_LINK" />عبارت عبورتان را وارد کنید<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">گذرواژه در این دستگاه ذخیره شد</translation>
 <translation id="2485422356828889247">حذف نصب</translation>
@@ -1296,6 +1304,7 @@
 <translation id="274290345632688601">‏بازیابی برنامه‌ها و فایل‌های Linux</translation>
 <translation id="2743387203779672305">کپی در بریده‌دان</translation>
 <translation id="2745080116229976798">‏وابستگی مشروط Microsoft</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> مکث شده است</translation>
 <translation id="2749756011735116528">ورود به سیستم <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">بررسی گرامر با املا</translation>
 <translation id="2751739896257479635">‏احراز هویت مرحله ۲ EAP</translation>
@@ -1304,6 +1313,7 @@
 <translation id="275662540872599901">صفحه خاموش است</translation>
 <translation id="2762441749940182211">دوربین مسدود شده است</translation>
 <translation id="2765217105034171413">کوچک</translation>
+<translation id="2766161002040448006">پرسش از ولی</translation>
 <translation id="276969039800130567">با <ph name="USER_EMAIL_ADDRESS" /> وارد سیستم شد.</translation>
 <translation id="2770465223704140727">حذف از فهرست</translation>
 <translation id="2770690685823456775">گذرواژه‌ها را به پوشه دیگری صادر کنید</translation>
@@ -1555,6 +1565,7 @@
 <translation id="3115580024857770654">کوچک کردن همه موارد</translation>
 <translation id="3117362587799608430">پایه اتصال کاملاً سازگار نیست</translation>
 <translation id="3118319026408854581">راهنمای <ph name="PRODUCT_NAME" /></translation>
+<translation id="3118654181216384296">‏لطفاً چند لحظه دیگر Linux را مجدداً راه‌اندازی کنید.</translation>
 <translation id="3120430004221004537">رمزگذاری برای عملیات موردنظر در این دستگاه کافی نیست: «<ph name="DEVICE_NAME" />».</translation>
 <translation id="3121793941267913344">این دستگاه <ph name="IDS_SHORT_PRODUCT_NAME" /> بازنشانی شود</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1564,6 +1575,7 @@
 <translation id="3127156390846601284">این کار باعث حذف داده‌های ذخیره‌شده روی دستگاهتان برای همه سایت‌های نشان‌داده‌شده می‌شود. می‌خواهید ادامه دهید؟</translation>
 <translation id="3127860049873093642">‏برای اجتناب از مشکلات شارژ و عملکرد، از آداپتور برق Dell یا USB Type-C سازگاری استفاده کنید.</translation>
 <translation id="3129173833825111527">حاشیه چپ</translation>
+<translation id="3129215702932019810">خطا هنگام راه‌اندازی برنامه</translation>
 <translation id="3130528281680948470">دستگاه شما بازنشانی می‌شود و همه حساب‌های کاربری و داده‌های محلی حذف می‌شوند. این کار قابل بازگشت نیست.</translation>
 <translation id="313205617302240621">گذرواژه را فراموش کردید؟</translation>
 <translation id="3132996321662585180">بازخوانی روزانه</translation>
@@ -1779,6 +1791,7 @@
 <translation id="3441653493275994384">صفحه</translation>
 <translation id="3445925074670675829">‏دستگاه USB-C</translation>
 <translation id="344630545793878684">خواندن داده‌های شما در تعدادی از وب‌سایت‌ها</translation>
+<translation id="3448086340637592206">‏شرایط تکمیلی Google Chrome و «سیستم عامل Chrome»</translation>
 <translation id="3448492834076427715">به‌روزرسانی حساب</translation>
 <translation id="3449839693241009168"><ph name="SEARCH_KEY" /> را فشار دهید تا فرمانها به <ph name="EXTENSION_NAME" /> ارسال شود</translation>
 <translation id="3450157232394774192">درصد اشغال حالت بدون فعالیت</translation>
@@ -2126,6 +2139,7 @@
 <translation id="3873423927483480833">نمایش پین‌ها</translation>
 <translation id="3873915545594852654">‏در رابطه با ++ARC مشکلی پیش آمد.</translation>
 <translation id="3879748587602334249">مدیریت بارگیری</translation>
+<translation id="3881321138433527084">«مرور ایمن» خاموش است. برای حفظ ایمنی در وب، آن را روشن کنید.</translation>
 <translation id="3882165008614329320">ویدیوی موجود از دوربین یا فایل</translation>
 <translation id="3886446263141354045">درخواست شما برای دسترسی به این سایت برای <ph name="NAME" /> ارسال شده است</translation>
 <translation id="3888550877729210209">یادداشت‌برداری با <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2467,6 +2481,7 @@
 <translation id="4384652540891215547">فعال کردن افزونه</translation>
 <translation id="438503109373656455">اسب</translation>
 <translation id="4387004326333427325">گواهینامه راستی‌آزمایی، ازراه‌دور، رد شد</translation>
+<translation id="4387890294700445764">گذرواژه‌های لورفته</translation>
 <translation id="4389091756366370506">کاربر <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{حالت ناشناس}one{# پنجره ناشناس}other{# پنجره ناشناس}}</translation>
 <translation id="439266289085815679">‏پیکربندی Bluetooth توسط <ph name="USER_EMAIL" /> کنترل می‌شود.</translation>
@@ -2498,6 +2513,7 @@
 <translation id="4429030830601238961">این داده‌ها خط‌مشی‌های امنیتی سازمانتان را نقض می‌کند و نمی‌تواند جای‌گذاری شود.</translation>
 <translation id="4430019312045809116">میزان صدا</translation>
 <translation id="4430369329743628066">نشانک اضافه شد</translation>
+<translation id="4432621511648257259">گذرواژه نادرست است</translation>
 <translation id="4434045419905280838">پنجره‌های بازشو و هدایت‌ها</translation>
 <translation id="443454694385851356">قدیمی (ناامن)</translation>
 <translation id="443475966875174318">به‌روزرسانی یا برداشتن برنامه‌های ناسازگار</translation>
@@ -2747,6 +2763,7 @@
 <translation id="4808667324955055115">پنجره‌های بازشو مسدود هستند:</translation>
 <translation id="480990236307250886">باز کردن صفحه اصلی</translation>
 <translation id="4811503964269049987">گروه‌بندی برگه انتخابی</translation>
+<translation id="4811818760963189951">چون همگام‌سازی سابقه را غیرفعال کرده‌اید، خاموش شده است</translation>
 <translation id="4813136279048157860">تصاویر من</translation>
 <translation id="4813512666221746211">خطای شبکه</translation>
 <translation id="4814378367953456825">نامی برای این اثرانگشت وارد کنید</translation>
@@ -2776,6 +2793,7 @@
 <translation id="4850669014075537160">پیمایش</translation>
 <translation id="4850886885716139402">نما</translation>
 <translation id="4853020600495124913">باز کردن در پنجره &amp;جدید</translation>
+<translation id="4854317507773910281">حساب ولی را برای تأیید انتخاب کنید</translation>
 <translation id="485480310608090163">تنظیمات و مجوزهای بیشتر</translation>
 <translation id="4856478137399998590">سرویس داده تلفن همراه شما فعال شده و آمادهٔ استفاده است.</translation>
 <translation id="4856855265648545577">‏نمایش دکمه‌های «راه‌انداز»، «برگشت»، «نمای کلی» در «قفسه» در حالت رایانه لوحی. با فعال بودن ChromeVox (بازخورد گفتاری) یا «دسترسی سوئیچ»، روشن می‌شود.</translation>
@@ -2912,10 +2930,12 @@
 <translation id="5040823038948176460">تنظیمات محتوای دیگر</translation>
 <translation id="5042282098504489593">‏برای اتصال <ph name="USB_DEVICE_NAME" /> به Linux، «تنظیمات» را باز کنید</translation>
 <translation id="5043913660911154449">‏یا PPD چاپگرتان را تعیین کنید <ph name="LINK_BEGIN" />بیشتر بدانید<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">چون داده‌های همگام‌سازی‌تان را با عبارت عبور رمزگذاری کرده‌اید، خاموش شده است</translation>
 <translation id="5045550434625856497">گذرواژه نادرست</translation>
 <translation id="504561833207953641">درحال باز شدن در جلسه مرورگر کنونی.</translation>
 <translation id="5047421709274785093">استفاده از حسگرهای نوری و حرکتی توسط سایت‌ها مسدود شود</translation>
 <translation id="5050042263972837708">نام گروه</translation>
+<translation id="5051073330196664891">‏شرایط جهانی خدمات Google ‏(uToS)</translation>
 <translation id="5051836348807686060">غلط گیر املا از زبان‌هایی که انتخاب کرده‌اید پشتیبانی نمی‌کند.</translation>
 <translation id="5052499409147950210">ویرایش سایت</translation>
 <translation id="5053604404986157245">‏‫گذرواژه TPM، که به صورت تصادفی ایجاد می‌شود، در دسترس نیست. پس از Powerwash این اتفاق عادی است.</translation>
@@ -2953,6 +2973,7 @@
 <translation id="5097002363526479830">اتصال ناموفق به شبکه "<ph name="NAME" />":<ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">باز کردن همه نشانک‌ها</translation>
 <translation id="5101839224773798795">کلیک خودکار با توقف مرورگر</translation>
+<translation id="5107443654503185812">افزونه‌ای «مرور ایمن» را خاموش کرده است</translation>
 <translation id="5108967062857032718">‏تنظیمات - حذف برنامه‌های Android</translation>
 <translation id="5109044022078737958">ورزشکار</translation>
 <translation id="5111646998522066203">خروج از حالت ناشناس</translation>
@@ -3039,6 +3060,7 @@
 <translation id="523505283826916779">تنظیمات دسترس‌پذیری</translation>
 <translation id="5235750401727657667">جایگزین کردن صفحه‌ای که هنگام باز کردن برگه جدید می‌بینید</translation>
 <translation id="5238278114306905396">برنامه «<ph name="EXTENSION_NAME" />» به‌طور خودکار حذف شد.</translation>
+<translation id="5239730228370806996">این داده‌های رهاشدهْ خط‌مشی‌های امنیتی سازمانتان را نقض می‌کند. درهرصورت ادامه می‌دهید؟</translation>
 <translation id="5241128660650683457">خواندن همه داده‌هایتان در وب‌سایت‌هایی که بازدید می‌کنید</translation>
 <translation id="5242724311594467048">«<ph name="EXTENSION_NAME" />» فعال شود؟</translation>
 <translation id="5243522832766285132">چند لحظه دیگر دوباره امتحان کنید</translation>
@@ -3326,6 +3348,7 @@
 <translation id="5618075537869101857">وای، برنامه کاربردی کیوسک راه‌اندازی نشد.</translation>
 <translation id="5618333180342767515">(این مرحله ممکن است چند دقیقه طول بکشد)</translation>
 <translation id="56197088284879152">اتصال برای کنترل دستگاه راه دور «<ph name="DEVICE_NAME" />» مسدود شده است.</translation>
+<translation id="5620163320393916465">گذرواژه‌ای ذخیره نشده است</translation>
 <translation id="5620549857835247159">نمایش دکمه‌های «راه‌انداز»، «برگشت»، «نمای کلی» در «قفسه» در حالت رایانه لوحی.</translation>
 <translation id="5620568081365989559">‏DevTools درخواست دسترسی کامل به <ph name="FOLDER_PATH" /> را دارد. مراقب باشید هیچ اطلاعات حساسی را در دسترس قرار ندهید.</translation>
 <translation id="5620612546311710611">آمار استفاده</translation>
@@ -3419,6 +3442,7 @@
 <translation id="5747785204778348146">برنامه‌نویس - ناپایدار</translation>
 <translation id="5747809636523347288">جای‌گذاری و رفتن به <ph name="URL" /></translation>
 <translation id="5750324801516359607">دور</translation>
+<translation id="5751887393582880060">این بارگذاریْ خط‌مشی‌های امنیتی سازمانتان را نقض می‌کند. درهرصورت ادامه می‌دهید؟</translation>
 <translation id="5756163054456765343">مرکز را&amp;هنمایی</translation>
 <translation id="5759728514498647443">اسنادی که از طریق <ph name="APP_NAME" /> برای چاپ ارسال می‌کنید، می‌توانند توسط <ph name="APP_NAME" /> خوانده شوند.</translation>
 <translation id="5763751966069581670">‏هیچ دستگاه USB پیدا نشد</translation>
@@ -3628,6 +3652,7 @@
 <translation id="6040852767465482106">شناسه ناشناس</translation>
 <translation id="6041046205544295907">‏<ph name="BEGIN_PARAGRAPH1" />خدمات مکان Google از منابعی مانند Wi-Fi، شبکه‌های تلفن همراه و حسگرها برای کمک به تخمین مکان دستگاهتان استفاده می‌کند.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />با خاموش کردن تنظیم اصلی «مکان» در دستگاهتان می‌توانید «مکان» را خاموش کنید. همچنین می‌توانید در تنظیمات مکان، استفاده از Wi-Fi، شبکه‌های تلفن همراه و حسگرها را برای مکان خاموش کنید.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409">تا زمانی‌که همه برگه‌های <ph name="ORIGIN" /> را نبندید، <ph name="ORIGIN" /> می‌تواند فایل‌های موجود در <ph name="FOLDERNAME" /> را مشاهده کند</translation>
 <translation id="6041155700700864984">خروج از تمام صفحه</translation>
 <translation id="604124094241169006">خودکار</translation>
 <translation id="6042308850641462728">بیشتر</translation>
@@ -3689,6 +3714,7 @@
 <translation id="6104311680260824317">‏نمی‌توان دستگاه را به دامنه وصل کرد. این سرور از رمزگذاری‌های Kerberos مشخص‌شده پشتیبانی نمی‌کند. برای تنظیمات رمزگذاری «گزینه‌های بیشتر» را بررسی کنید.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> از شما می‌خواهد این دستگاه را فوراً به‌روزرسانی کنید</translation>
 <translation id="6106186653986077033">‏Plugin VM به مجوز نیاز دارد</translation>
+<translation id="6107047744202598802">به وب‌سایت‌ها اجازه می‌دهد بازدیدتان را به‌خاطر داشته باشند و در سراسر وب شما را ردیابی کنند</translation>
 <translation id="6112294629795967147">لمس کردن برای تغییر اندازه</translation>
 <translation id="6112727384379533756">افزودن بلیت</translation>
 <translation id="6112931163620622315">تلفن را بررسی کنید</translation>
@@ -3767,6 +3793,7 @@
 <translation id="622537739776246443">نمایه حذف خواهد شد</translation>
 <translation id="6225475702458870625">اتصال داده از <ph name="PHONE_NAME" /> دردسترس است</translation>
 <translation id="6226777517901268232">فایل کلید خصوصی (اختیاری)</translation>
+<translation id="6227280783235722609">افزونه</translation>
 <translation id="6228691855869374890">‏این سایت کنترل کامل دستگاه‌های MIDI را دارد.</translation>
 <translation id="6228720835160974792">‏ایجاد کد QR برای این تصویر</translation>
 <translation id="6229890768313448549">‏شرایط و ضوابط Google Play نمی‌تواند بارگیری شود. لطفاً دوباره امتحان کنید.</translation>
@@ -3818,6 +3845,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> معمولاً بارگیری نمی‌شود و ممکن است خطرناک باشد.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{چاپگر جدید در شبکه شما}one{چاپگر جدید در شبکه شما}other{چاپگر جدید در شبکه شما}}</translation>
 <translation id="6286708577777130801">جزئیات گذرواژه ذخیره‌شده</translation>
+<translation id="6291163159361301370">‏برای راه‌اندازی Linux، <ph name="ORGANIZATION_NAME" /> از شما می‌خواهد از داده‌هایتان پشتیبان بگیرید و این Chromebook را به تنظیمات کارخانه بازنشانی کنید.</translation>
 <translation id="6291949900244949761">‏وقتی سایتی می‌خواهد به دستگاه‌های USB‌ دسترسی پیدا کند سؤال شود (توصیه می‌شود)</translation>
 <translation id="6291953229176937411">‏&amp;نمایش در Finder</translation>
 <translation id="6295158916970320988">همه سایت‌ها</translation>
@@ -4014,6 +4042,7 @@
 <translation id="6561726789132298588">Enter</translation>
 <translation id="656293578423618167">مسیر یا نام فایل خیلی طولانی است. لطفاً با یک نام کوتاه‌تر یا در محل دیگری ذخیره کنید.</translation>
 <translation id="6563469144985748109">مدیرتان هنوز این سایت را تأیید نکرده است</translation>
+<translation id="6565955132287672866">‏دستگاهتان درست خاموش نشد. برای استفاده از Linux (بتا) باید دوباره راه‌اندازی شود.</translation>
 <translation id="6567688344210276845">بارگیری نماد "<ph name="ICON" />" برای عملکرد صفحه ممکن نیست.</translation>
 <translation id="6569934958368283244">افراد دیگر</translation>
 <translation id="657402800789773160">&amp;بارگیری مجدد این صفحه</translation>
@@ -4511,6 +4540,7 @@
 <translation id="7258225044283673131">برنامه پاسخ نمی‌دهد. برای بستن برنامه، «بستن اجباری» را انتخاب کنید.</translation>
 <translation id="7258697411818564379">پین اضافه شد</translation>
 <translation id="7262004276116528033">این خدمات ورود به سیستم توسط <ph name="SAML_DOMAIN" /> میزبانی شده است</translation>
+<translation id="7266898409676782635">نکته‌ها، پیشنهادها، و به‌روزرسانی‌های مربوط به <ph name="DEVICE_TYPE" /> دریافت کنید و بازخورد ارائه دهید. هرزمان خواستید اشتراک را لغو کنید.</translation>
 <translation id="7268127947535186412">این تنظیم توسط مالک دستگاه مدیریت می‌شود.</translation>
 <translation id="7270858098575133036">‏اگر سایتی می‌خواهد از پیام‌های انحصاری سیستم برای دسترسی به دستگاه‌های MIDI استفاده کند سؤال شود</translation>
 <translation id="7272674038937250585">توضیحی ارائه نشده است</translation>
@@ -4584,6 +4614,7 @@
 <translation id="7364796246159120393">انتخاب فایل</translation>
 <translation id="7366415735885268578">افزودن سایت</translation>
 <translation id="7366909168761621528">داده‌های مرور</translation>
+<translation id="7367714965999718019">‏سازنده کد QR</translation>
 <translation id="736877393389250337"><ph name="URL" /> در <ph name="ALTERNATIVE_BROWSER_NAME" /> باز نشد. لطفاً با سرپرست سیستم تماس بگیرید.</translation>
 <translation id="7370592524170198497">‏EAP مربوط به اترنت:</translation>
 <translation id="7371006317849674875">زمان شروع</translation>
@@ -4841,8 +4872,10 @@
 <translation id="7737238973539693982">‏حذف Linux (بتا)</translation>
 <translation id="7740996059027112821">استاندارد</translation>
 <translation id="7744047395460924128">مشاهده سابقه چاپ کردن</translation>
+<translation id="7744192722284567281">در نقض داده پیدا شد</translation>
 <translation id="7746457520633464754">‏برای حذف برنامه‌ها و سایت‌های خطرناک، Chrome نشانی‌های وب برخی از صفحه‌هایی را که بازدید می‌کنید، اطلاعات سیستم محدود و برخی از محتوای صفحه را به Google می‌فرستد.</translation>
 <translation id="7750228210027921155">تصویردرتصویر</translation>
+<translation id="7751229152614300329">«مرور ایمن» به‌روز شده است و از شما دربرابر سایت‌ها و بارگیری‌های مضر محافظت می‌کند</translation>
 <translation id="7751260505918304024">نمایش همه</translation>
 <translation id="7754704193130578113">قبل از بارگیری هر فایل، درباره مکان ذخیره سؤال شود</translation>
 <translation id="7755287808199759310">والدینتان می‌توانند این سایت را برای شما بگشایند</translation>
@@ -4990,6 +5023,7 @@
 <translation id="7910768399700579500">پوشه &amp;جدید</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">گذرواژه‌تان در سرور تغییر کرده است. لطفاً از سیستم خارج شوید و سپس دوباره به سیستم وارد شوید.</translation>
+<translation id="7914583336730284547">این فایل‌های رهاشدهْ خط‌مشی‌های امنیتی سازمانتان را نقض می‌کند. درهرصورت ادامه می‌دهید؟</translation>
 <translation id="7915457674565721553">برای راه‌اندازی کنترل‌های والدین، به اینترنت متصل شوید</translation>
 <translation id="7915471803647590281">لطفاً قبل از ارسال بازخورد، به ما بگویید چه اتفاقی در حال وقوع است.</translation>
 <translation id="7918257978052780342">ثبت‌نام</translation>
@@ -5087,6 +5121,7 @@
 <translation id="8028803902702117856">درحال بارگیری <ph name="SIZE" />، <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">اندازه</translation>
 <translation id="8030656706657716245">افزودن چاپگر</translation>
+<translation id="8030852056903932865">تأیید</translation>
 <translation id="8032244173881942855">ارسال محتوای برگه امکان‌پذیر نیست.</translation>
 <translation id="8033827949643255796">انتخاب شد</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{باز کردن همه در پنجره ناشناس}=1{باز کردن در پنجره ناشناس}one{باز کردن همه (#) در پنجره ناشناس}other{باز کردن همه (#) در پنجره ناشناس}}</translation>
@@ -5407,6 +5442,7 @@
 <translation id="8472623782143987204">سخت‌افزار پشتیبانی</translation>
 <translation id="8473863474539038330">نشانی‌ها و سایر موارد</translation>
 <translation id="8475313423285172237">‏برنامه‌ای دیگر بر روی رایانه شما یک برنامه افزودنی را اضافه کرده است که ممکن است نحوه کارکرد Chrome را تغییر دهد.</translation>
+<translation id="8476659515398963495">این داده‌های جای‌گذاری‌شدهْ خط‌مشی‌های امنیتی سازمانتان را نقض می‌کند. درهرصورت ادامه می‌دهید؟</translation>
 <translation id="8477241577829954800">از دور خارج شده</translation>
 <translation id="8477384620836102176">&amp;عمومی</translation>
 <translation id="8480082892550707549">حتی اگر قبلاً از این سایت فایل‌هایی را بارگیری کرده باشید، این سایت ممکن است به‌طور موقت غیرایمن باشد (هک شده باشد). این فایل را بعداً بارگیری کنید.</translation>
@@ -5460,6 +5496,7 @@
 <translation id="8547013269961688403">فعال کردن ذره‌بین تمام‌صفحه</translation>
 <translation id="85486688517848470">برای جابه‌جایی بین رفتار کلیدهای ردیف بالا، کلید جستجو را نگه‌دارید</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{۱ مورد}one{# مورد}other{# مورد}}</translation>
+<translation id="8550165047974571882">تا زمانی که همه برگه‌های <ph name="ORIGIN" /> را نبندید، <ph name="ORIGIN" /> می‌تواند فایل‌های موجود در <ph name="FOLDERNAME" /> را ویرایش کند</translation>
 <translation id="8551388862522347954">مجوزها</translation>
 <translation id="8553342806078037065">مدیریت افراد دیگر</translation>
 <translation id="8554899698005018844">زبانی موجود نیست</translation>
@@ -5518,6 +5555,7 @@
 <translation id="8637688295594795546">به‌روزرسانی سیستم موجود است. در حال آماده سازی برای بارگیری...</translation>
 <translation id="8639047128869322042">درحال بررسی وجود نرم‌افزار مضر...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - درگاه</translation>
+<translation id="8641606876632989680">‏وقتی با گذرواژه‌ای لورفته به سیستم وارد شوید، Chrome به شما اطلاع می‌دهد</translation>
 <translation id="8642900771896232685">۲ ثانیه</translation>
 <translation id="8642947597466641025">طولانی تر کردن متن</translation>
 <translation id="8644655801811752511">نمی‌توان این کلید امنیتی را بازنشانی کرد. بازنشاندن این کلید را بلافاصله پس از وارد کردنش امتحان کنید.</translation>
@@ -5567,6 +5605,7 @@
 <translation id="869884720829132584">منوی برنامه</translation>
 <translation id="869891660844655955">تاریخ انقضا</translation>
 <translation id="8703346390800944767">رد کردن آگهی</translation>
+<translation id="870341961648617780">تنظیمات امنیتی پیشرفته و «مرور ایمن»</translation>
 <translation id="8705331520020532516">شمارهٔ سریال</translation>
 <translation id="8705580154597116082">‏Wi-Fi ازطریق تلفن دردسترس است</translation>
 <translation id="8705629851992224300">کلید امنیتی‌تان خوانده نشد</translation>
@@ -5612,6 +5651,7 @@
 <translation id="874689135111202667">{0,plural, =1{یک فایل در این سایت بارگذاری شود؟}one{# فایل در این سایت بارگذاری شود؟}other{# فایل در این سایت بارگذاری شود؟}}</translation>
 <translation id="8748384418490037181">‏گزینه‌های Smart Lock</translation>
 <translation id="8749863574775030885">‏دسترسی به دستگاه‌های USB از ارائه‌دهنده ناشناس</translation>
+<translation id="8750133148106010815">‏برای راه‌اندازی Google Play، <ph name="ORGANIZATION_NAME" /> از شما می‌خواهد از داده‌هایتان پشتیبان بگیرید و این Chromebook را به تنظیمات کارخانه بازنشانی کنید.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> می‌خواهد به درگاه سریالی متصل شود</translation>
 <translation id="8754200782896249056">‏&lt;p&gt;هنگام اجرای <ph name="PRODUCT_NAME" /> تحت محیط پشتیبانی شده دسک تاپ، تنظیمات پروکسی سیستم استفاده خواهد شد. اما، سیستم شما پشتیبانی نمی‌شود یا مشکلی در راه‌اندازی پیکربندی سیستم شما وجود دارد.&lt;/p&gt;
 
@@ -5666,6 +5706,7 @@
 <translation id="8809147117840417135">سبز دودی روشن</translation>
 <translation id="8813698869395535039">ورود به سیستم <ph name="USERNAME" /> امکان‌پذیر نیست</translation>
 <translation id="8813811964357448561">صفحه کاغذ</translation>
+<translation id="8813872945700551674">از یکی از والدین بخواهید «<ph name="EXTENSION_NAME" />» را تأیید کند</translation>
 <translation id="8813969267212093033">نوشتار سیستم به این زبان نشان داده می‌شود</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">لطفاً صبر کنید، بایگانی در حال اسکن شدن است…</translation>
@@ -5946,6 +5987,7 @@
 <translation id="9203398526606335860">&amp;نمایه سازی فعال شد</translation>
 <translation id="9203904171912129171">انتخاب دستگاه</translation>
 <translation id="9203962528777363226">سرپرست این دستگاه امکان افزوده شدن کاربران جدید را غیرفعال کرده است</translation>
+<translation id="9211177926627870898">به‌روزرسانی لازم است</translation>
 <translation id="9214520840402538427">متأسفیم! مهلت مقداردهی اولیه از ویژگی‌های زمان نصب به پایان رسیده است. لطفاً با نماینده پشتیبانی خود تماس بگیرید.</translation>
 <translation id="9214695392875603905">کیک فنجانی</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" اضافه شد</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index e3b509823..14cfe2dd 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Adobe Flash Playerin tallennusasetukset</translation>
 <translation id="1274997165432133392">Evästeet ja muut sivuston tiedot</translation>
 <translation id="1280820357415527819">Haetaan mobiiliverkkoja</translation>
+<translation id="1280965841156951489">Muokkaa tiedostoja</translation>
 <translation id="1282420830958964167">Vanhempiesi asettama raja (<ph name="APP_NAME" />) tuli vastaan. Huomenna voit käyttää sovellusta <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Älä käännä tätä sivustoa</translation>
 <translation id="1285484354230578868">Tallenna tiedot Google Drive -tiliin</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Tummanvioletti</translation>
 <translation id="1692799361700686467">Useiden sivustojen evästeet sallittu.</translation>
 <translation id="1697150536837697295">Taide</translation>
+<translation id="1697686431566694143">Muokkaa tiedostoa</translation>
 <translation id="1698122934742150150">Vain nykyinen incognito-istunto</translation>
 <translation id="1698650002254827833">Sovellusluetteloa ei voi ladata. Yritä uudelleen.</translation>
 <translation id="1701062906490865540">Poista tämä henkilö</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Ei asennettuja osia.</translation>
 <translation id="1932098463447129402">Ei aiemmin kuin</translation>
 <translation id="1933809209549026293">Yhdistä hiiri tai näppäimistö. Jos käytät Bluetooth-laitetta, varmista että se on valmis laiteparin muodostamiseen.</translation>
+<translation id="1936931585862840749">Valitse tulostettavien kappaleiden määrä lisäämällä numero (1–<ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Säilön arkkitehtuurityyppiä <ph name="ARCHITECTURE_CONTAINER" /> ei voi tuoda tällä laitteella, joka on <ph name="ARCHITECTURE_DEVICE" />. Voit yrittää palauttaa säilön eri laitteelle tai voit käyttää säilön sisällä olevia tiedostoja avaamalla Files-sovelluksen.</translation>
 <translation id="1938351510777341717">Ulkoinen Komento-näppäin</translation>
 <translation id="1940546824932169984">Yhdistetyt laitteet</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Aseta tämä välilehti aktiiviseksi</translation>
 <translation id="2344028582131185878">Automaattiset lataukset</translation>
 <translation id="2345723121311404059"><ph name="PRINTER_NAME" /> tulostaa yhden sivun</translation>
+<translation id="2346953515226895098">SODA-palvelu</translation>
 <translation id="2347644257713614136">Hangoutsin ja Cast for Educationin käyttö kuuluu Googlen tietosuojakäytännön piiriin.</translation>
 <translation id="2348176352564285430">Sovellus: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Päivitetty</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Linux-palautus peruutettu</translation>
 <translation id="2423578206845792524">T&amp;allenna kuva nimellä...</translation>
 <translation id="2428510569851653187">Kerro, mitä olit tekemässä juuri ennen kaatumista.</translation>
+<translation id="2428939361789119025">Poista Wi-Fi käytöstä</translation>
 <translation id="2431027948063157455">Google Assistantin lataaminen epäonnistui. Tarkista verkkoyhteys ja yritä uudelleen.</translation>
 <translation id="2432753757290432042">Linux (beta) on päivitettävä</translation>
 <translation id="2433452467737464329">Lisää kyselyparametri URL-osoitteeseen, jos haluat päivittää sivun automaattisesti: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Lähetä käyttö- ja diagnostiikkadataa. Auta parantamaan Android-käyttökokemusta lähettämällä diagnostiikkadataa sekä laitteen ja sovellusten käyttödataa automaattisesti Googlelle. Datan avulla parannetaan esimerkiksi järjestelmän ja sovellusten vakautta. Kootusta datasta on hyötyä myös Googlen sovelluksille ja kumppaneille, kuten Android-kehittäjille. Jos olet ottanut käyttöön muun verkko- ja sovellustoiminnan asetuksen, tätä dataa voidaan tallentaa Google-tilillesi. <ph name="BEGIN_LINK1" />Lue lisää<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Lisää yhteys</translation>
 <translation id="2947605845283690091">Verkon selaamisen pitäisi käydä nopeasti. Käytä nyt hetki <ph name="BEGIN_LINK" />laajennusten tarkistamiseen<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 mahdollisesti haitallinen laajennus poistettiin käytöstä. Voit myös poistaa sen.}other{# mahdollisesti haitallista laajennusta poistettiin käytöstä. Voit myös poistaa ne.}}</translation>
 <translation id="2948300991547862301">Siirry kohtaan <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Nopea, yksinkertainen ja turvallinen verkkoselain, joka on suunniteltu nykypäivän verkon tarpeisiin.</translation>
 <translation id="2949289451367477459">Käytä sijaintia. Salli laitteen sijainnin käyttäminen sovelluksille ja palveluille, joilla on sijainnin käyttöoikeus. Google voi ajoittain kerätä sijaintitietoja ja käyttää niitä ei-yksilöivästi sijainnin tarkkuuden ja sijaintiin perustuvien palvelujen kehittämiseen. <ph name="BEGIN_LINK1" />Lue lisää<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Asennetaanko sovellus?</translation>
 <translation id="3067198360141518313">Suorita laajennus</translation>
 <translation id="3071624960923923138">Klikkaa tätä, niin uusi välilehti avautuu.</translation>
+<translation id="3072775339180057696">Saako sivusto nähdä tiedoston <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Powerwash-prosessin aloittaminen vaatii uudelleenkäynnistyksen. Uudelleenkäynnistyksen jälkeen sinua pyydetään vahvistamaan, että haluat jatkaa.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Kirjautumisdatasi poistettiin</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Sivusto voi käyttää kameraasi</translation>
 <translation id="3085752524577180175">SOCKS-isäntä</translation>
 <translation id="3088052000289932193">Sivusto käyttää MIDIä</translation>
+<translation id="3088128611727407543">Sovellusprofiilia valmistellaan…</translation>
 <translation id="3088325635286126843">Nimeä uudelleen...</translation>
 <translation id="3089137131053189723">Haku tyhjennetty</translation>
 <translation id="3090193911106258841">Ääni- ja videotuloa käytetään</translation>
@@ -1596,6 +1604,7 @@
     Kuvaus:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome-sovellukset</translation>
+<translation id="3150693969729403281">Tee turvatarkistus nyt</translation>
 <translation id="3150927491400159470">Pakotettu päivitys</translation>
 <translation id="315116470104423982">Mobiilitiedonsiirto</translation>
 <translation id="3151539355209957474">Aloitusaika</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Kirjaudu Chromeen</translation>
 <translation id="3285322247471302225">Uusi välileh&amp;ti</translation>
 <translation id="328571385944182268">Tallennetaanko salasanat?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> voi nähdä tiedoston <ph name="FILENAME" />, kunnes suljet kaikki <ph name="ORIGIN" />-välilehdet</translation>
 <translation id="3288047731229977326">Kehittäjätilassa olevat laajennukset voivat vahingoittaa tietokonettasi. Jos et ole kehittäjä, poista kehittäjätilassa olevat laajennukset käytöstä varmuuden vuoksi.</translation>
 <translation id="3289856944988573801">Tarkista päivitykset Ethernetin tai Wi-Fin kautta.</translation>
 <translation id="3290356915286466215">Suojaamaton</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Lukea tietojasi useissa sivustoissa</translation>
 <translation id="3448086340637592206">Google Chromen ja Chrome-käyttöjärjestelmän lisäehdot</translation>
 <translation id="3448492834076427715">Päivitä tili</translation>
+<translation id="3449393517661170867">Uusi välilehdellinen ikkuna</translation>
 <translation id="3449839693241009168">Lähetä laajennukselle <ph name="EXTENSION_NAME" /> komentoja painamalla <ph name="SEARCH_KEY" /></translation>
 <translation id="3450157232394774192">Käyttämätön-tilan käyttöprosentti</translation>
 <translation id="3451332697983754369">Synkronoi <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Kiitos palautteestasi. Olet nyt offline-tilassa, joten ilmoituksesi lähetetään myöhemmin.</translation>
 <translation id="3682824389861648626">Liikkeen raja-arvo</translation>
 <translation id="3683524264665795342">Ruudunjakopyyntö sovellukselta <ph name="APP_NAME" /></translation>
+<translation id="3686074530047028092">Koulutustili</translation>
 <translation id="368789413795732264">Tiedostoa kirjoitettaessa tapahtui virhe: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Kirjoittaa sovelluksessa avaamiisi tiedostoihin ja kansioihin.</translation>
 <translation id="3688526734140524629">Vaihda kanavaa</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Estä joitain verkkosivujen osia</translation>
 <translation id="3760460896538743390">Tarkista &amp;taustasivu</translation>
 <translation id="37613671848467444">Avaa incognito-ikkunassa</translation>
+<translation id="3761556954875533505">Saako sivusto muokata tiedostoja?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Käyttää USB-laitetta}other{Käyttää # USB-laitetta}}</translation>
 <translation id="3765246971671567135">Esittelytilan offline-käytäntöjä ei voitu lukea.</translation>
 <translation id="3768037234834996183">Asetuksia synkronoidaan…</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Estä</translation>
 <translation id="3928570707778085600">Tallennetaanko muutokset (<ph name="FILE_OR_FOLDER_NAME" />)?</translation>
 <translation id="3929426037718431833">Nämä laajennukset voivat nähdä ja muokata sivuston tietoja.</translation>
+<translation id="3930155420525972941">Siirrä ryhmä uuteen ikkunaan</translation>
 <translation id="3930737994424905957">Haetaan laitteita</translation>
 <translation id="3930968231047618417">Taustaväri</translation>
 <translation id="3933283459331715412">Palauta poistettu salasana: <ph name="USERNAME" /></translation>
@@ -2334,6 +2348,7 @@
 <translation id="4130750466177569591">Hyväksyn</translation>
 <translation id="413121957363593859">Osat</translation>
 <translation id="4131410914670010031">Mustavalkoinen</translation>
+<translation id="4133076602192971179">Avaa sovellus muuttaaksesi salasanan</translation>
 <translation id="4136203100490971508">Yövalo sammuu automaattisesti, kun aurinko nousee.</translation>
 <translation id="41365691917097717">Jatkamalla otat ADB-virheenkorjauksen käyttöön Android-sovellusten luomista ja testausta varten. Huomaa, että tämä sallii sellaisten Android-sovellusten asentamisen, joita Google ei ole vahvistanut. Ominaisuuden käytöstä poistaminen edellyttää tehdasasetusten palautusta.</translation>
 <translation id="4138267921960073861">Näytä käyttäjänimet ja valokuvat kirjautumisruudulla</translation>
@@ -2445,6 +2460,7 @@
 <translation id="4330387663455830245">Älä koskaan käännä kieltä <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Lapsilukon määritys</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 ja RSA-salaus</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Järjestelmänvalvoja otti 1 mahdollisesti haitallisen laajennuksen takaisin käyttöön}other{Järjestelmänvalvoja otti # mahdollisesti haitallista laajennusta takaisin käyttöön}}</translation>
 <translation id="4336434711095810371">Poista kaikki data</translation>
 <translation id="4336979451636460645">Verkkolokit ovat täällä: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> haluaa viestiä sovelluksen <ph name="EXTENSION_NAME" /> kanssa.</translation>
@@ -2751,6 +2767,7 @@
 <translation id="4785719467058219317">Käytät suojausavainta, jota ei ole rekisteröity tällä sivustolla.</translation>
 <translation id="4788092183367008521">Tarkista verkkoyhteys ja yritä uudelleen.</translation>
 <translation id="4792711294155034829">&amp;Ilmoita ongelmasta...</translation>
+<translation id="4794810983896241342"><ph name="BEGIN_LINK" />Järjestelmänvalvoja<ph name="END_LINK" /> päättää päivityksistä</translation>
 <translation id="479536056609751218">Verkkosivu, vain HTML</translation>
 <translation id="4798236378408895261">Liitä <ph name="BEGIN_LINK" />Bluetooth-lokit<ph name="END_LINK" /> (Googlen sisäinen)</translation>
 <translation id="4801448226354548035">Piilota tilit</translation>
@@ -2846,6 +2863,7 @@
 <translation id="4908811072292128752">Avaa uusi välilehti, niin voit selailla kahdella sivulla yhtä aikaa.</translation>
 <translation id="4909038193460299775">Koska <ph name="DOMAIN" /> hallinnoi tätä tiliä, kirjanmerkkisi, historiasi, salasanasi ja muut asetuksesi tyhjennetään tältä laitteelta. Tietosi pysyvät kuitenkin Google-tililläsi ja niitä voidaan hallinnoida <ph name="BEGIN_LINK" />Google Hallintapaneelissa<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Käyttämätön-tilasta palautumiset</translation>
+<translation id="4916542008280060967">Saako sivusto muokata tiedostoa <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Siirry käyttämään turvallista selainta.</translation>
 <translation id="4917385247580444890">Vahva</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> haluaa viestiä laajennuksen <ph name="EXTENSION_NAME" /> kanssa.</translation>
@@ -2917,6 +2935,7 @@
 <translation id="5017633213534173756">Muista</translation>
 <translation id="5018207570537526145">Avaa laajennussivusto</translation>
 <translation id="5021750053540820849">Ei vielä päivitetty</translation>
+<translation id="5026806129670917316">Ota Wi-Fi käyttöön</translation>
 <translation id="5026874946691314267">Älä näytä tätä uudelleen</translation>
 <translation id="5027550639139316293">Sähköpostivarmenne</translation>
 <translation id="5027562294707732951">Lisää laajennus</translation>
@@ -3029,6 +3048,7 @@
 <translation id="5184063094292164363">&amp;JavaScript-konsoli</translation>
 <translation id="5184209580557088469">Tukipyyntö tältä käyttäjänimeltä on jo olemassa</translation>
 <translation id="5184662919967270437">Päivitetään laitetta.</translation>
+<translation id="5185359571430619712">Arvostelulaajennukset</translation>
 <translation id="5185386675596372454">Laajennuksen <ph name="EXTENSION_NAME" /> uusin versio on poistettu käytöstä, koska se vaatii enemmän käyttöoikeuksia.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> haluaa ladata useita tiedostoja</translation>
@@ -3079,6 +3099,7 @@
 <translation id="5260334392110301220">Älykkäät lainausmerkit</translation>
 <translation id="5260508466980570042">Sähköpostiosoitteesi tai salasanasi vahvistaminen epäonnistui. Yritä uudelleen.</translation>
 <translation id="5261683757250193089">Avaa Web Storessa</translation>
+<translation id="5262178194499261222">Poista salasana</translation>
 <translation id="5264148714798105376">Tämä voi kestää hetken.</translation>
 <translation id="5264252276333215551">Yhdistä internetiin, jos haluat käynnistää sovelluksesi kioskitilassa.</translation>
 <translation id="5265562206369321422">Offline-tilassa yli viikon</translation>
@@ -3504,6 +3525,7 @@
 <translation id="5833726373896279253">Vain omistaja voi muokata näitä asetuksia:</translation>
 <translation id="5834581999798853053">Noin <ph name="TIME" /> minuuttia jäljellä</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – kamera tai mikrofoni tallentaa sisältöä</translation>
+<translation id="5841270259333717135">Ethernet-asetukset</translation>
 <translation id="5842497610951477805">Bluetoothin käyttöönotto</translation>
 <translation id="5846200638699387931">Suhteen syntaksivirhe: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Lisätty aiemmin</translation>
@@ -3549,6 +3571,7 @@
 <translation id="5900358982890952556">Päivitä Linux (beta)</translation>
 <translation id="5901494423252125310">Tulostimen luukku auki</translation>
 <translation id="5901630391730855834">Keltainen</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Otit 1 mahdollisesti haitallisen laajennuksen takaisin käyttöön}other{Otit # mahdollisesti haitallista laajennusta takaisin käyttöön}}</translation>
 <translation id="5906655207909574370">Melkein ajan tasalla. Viimeistele päivitys käynnistämällä laite uudelleen.</translation>
 <translation id="5906732635754427568">Tähän sovellukseen liittyvät tiedot poistetaan tältä laitteelta.</translation>
 <translation id="5908769186679515905">Estä sivustoja suorittamasta Flashia</translation>
@@ -3578,6 +3601,7 @@
 <translation id="59324397759951282">USB-laite (<ph name="MANUFACTURER_NAME" />)</translation>
 <translation id="5932881020239635062">Sarjanumero</translation>
 <translation id="5933376509899483611">Aikavyöhyke</translation>
+<translation id="5935656526031444304">Muuta Selaussuoja-asetuksia</translation>
 <translation id="5938002010494270685">Turvallisuuspäivitys saatavilla</translation>
 <translation id="5939518447894949180">Tyhjennä</translation>
 <translation id="5941153596444580863">Lisää henkilö…</translation>
@@ -3621,6 +3645,7 @@
 <translation id="5993807461461235661">Tämä lataus on salattu ja rikkoo organisaatiosi suojauskäytäntöjä.</translation>
 <translation id="5997337190805127100">Lisätietoja sivustojen käyttöoikeuksista</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> tulosta: <ph name="SEARCH_TEXT" /></translation>
+<translation id="6002210667729577411">Siirrä ryhmä uuteen ikkunaan</translation>
 <translation id="6002458620803359783">Ensisijaiset äänet</translation>
 <translation id="6006484371116297560">Perinteinen</translation>
 <translation id="6007240208646052708">Puhehaku ei ole käytettävissä kielelläsi.</translation>
@@ -4161,6 +4186,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Näytä työpöydän pikakuvake</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> keskeytetty</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Järjestelmänvalvoja<ph name="END_LINK" /> on laittanut selaussuojan pois päältä</translation>
 <translation id="6742339027238151589">Ohjelman käytettävissä</translation>
 <translation id="6745592621698551453">Päivitä nyt</translation>
 <translation id="6746124502594467657">Siirrä alas</translation>
@@ -4419,6 +4445,7 @@
     <ph name="BEGIN_BOLD" />Muistettavaa:<ph name="END_BOLD" /> Assistantin käyttö voi olla mahdollista myös, jos ääntäsi on nauhoitettu tai jonkun toisen ääni muistuttaa omaasi. Voit poistaa Voice Matchin käyttöoikeuden myöhemmin poistamalla sen käytöstä Assistantin asetuksissa.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Vaihtaa tietoja isäntää <ph name="HOSTNAMES" /> käyttävien laitteiden kanssa.</translation>
+<translation id="7094434674404953373">Laite käynnistyy uudelleen, kun päivitykset ovat valmiit.</translation>
 <translation id="7098389117866926363">C-tyypin USB-laite (vasemmanpuoleinen takaportti)</translation>
 <translation id="7098447629416471489">Tässä näytetään muut tallennetut hakukoneesi.</translation>
 <translation id="7099337801055912064">PPD on liian suuri ladattavaksi. Enimmäiskoko on 250 kt.</translation>
@@ -4891,6 +4918,7 @@
 <translation id="7766807826975222231">Katso esittely</translation>
 <translation id="7766838926148951335">Hyväksy käyttöoikeudet</translation>
 <translation id="7769672763586021400">Mallitunnus</translation>
+<translation id="7770651108375708429">Katkaise Wi-Fi-yhteys</translation>
 <translation id="7771452384635174008">Ulkoasu</translation>
 <translation id="7772032839648071052">Vahvista tunnuslause</translation>
 <translation id="7772127298218883077">Tietoja tuotteesta <ph name="PRODUCT_NAME" /></translation>
@@ -5048,6 +5076,7 @@
 <translation id="7939412583708276221">Säilytä</translation>
 <translation id="7942349550061667556">Punainen</translation>
 <translation id="7943837619101191061">Lisää sijainti…</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 vaarantunut salasana}other{# vaarantunutta salasanaa}}</translation>
 <translation id="7945031593909029181"><ph name="CHROME_EXTENSION_NAME" /> haluaa muodostaa yhteyden</translation>
 <translation id="7946586320617670168">Lähteen on oltava turvallinen</translation>
 <translation id="794676567536738329">Vahvista luvat</translation>
@@ -5147,6 +5176,7 @@
 <translation id="8059417245945632445">Tark&amp;ista laitteet</translation>
 <translation id="8059456211585183827">Tallennettavia tulostimia ei ole.</translation>
 <translation id="8063235345342641131">Vihreä oletusavatar</translation>
+<translation id="8063535366119089408">Näytä tiedosto</translation>
 <translation id="8064671687106936412">Avain:</translation>
 <translation id="8068253693380742035">Kirjaudu sisään koskettamalla</translation>
 <translation id="8068809649322155577">Tämä tyhjentää kaiken datan ja kaikki evästeet, jotka <ph name="SITE_GROUP_NAME" />, sen alisivustot ja sen tallennetut sovellukset ovat tallentaneet.</translation>
@@ -5212,6 +5242,7 @@
 <translation id="8152091997436726702">Tulostimen rekisteröinti aikakatkaistiin. Jotta voit rekisteröidä tulostimen, sinun on vahvistettava tulostimen rekisteröinti.</translation>
 <translation id="8154790740888707867">Ei tiedostoa</translation>
 <translation id="815491593104042026">Hups! Todennus epäonnistui, koska se määritettiin käyttämään suojaamatonta URL-osoitetta (<ph name="BLOCKED_URL" />). Ota yhteyttä järjestelmänvalvojaan.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Vaarantuneita salasanoja ei löytynyt}=1{{COUNT} vaarantunut salasana}other{{COUNT} vaarantunutta salasanaa}}</translation>
 <translation id="8157704005178149728">Määritetään valvontaa</translation>
 <translation id="8158117992543756526">Tämä laite ei ole saanut automaattisia ohjelmisto- ja tietoturvapäivityksiä <ph name="MONTH_AND_YEAR" /> lähtien. <ph name="LINK_BEGIN" />Lue lisää<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Varmenteen luottamusasetusten virhe</translation>
@@ -5265,6 +5296,7 @@
 <translation id="8226742006292257240">Alla on tietokoneellesi myönnetty satunnaisesti luotu TPM-salasana.</translation>
 <translation id="8227119283605456246">Liitä tiedosto</translation>
 <translation id="8230134520748321204">Tallennetaanko salasanat: <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Internetasetukset</translation>
 <translation id="8234795456569844941">Auta tiimiämme ongelman korjaamisessa. Kerro meille, mitä tapahtui juuri ennen profiilivirheviestiä:</translation>
 <translation id="8236123533334037984">Organisaatiosi tarkistaa tämän latauksen suojaushyväksyntää varten.</translation>
 <translation id="8236917170563564587">Jaa sen sijaan tämä välilehti</translation>
@@ -5602,6 +5634,7 @@
 <translation id="8688579245973331962">Eikö nimeäsi näy?</translation>
 <translation id="8688591111840995413">Virheellinen salasana</translation>
 <translation id="8688672835843460752">Saatavilla</translation>
+<translation id="8691418731028620688">Yhdistä Wi-Fi-verkkoon</translation>
 <translation id="8695825812785969222">&amp;Avaa sijainti...</translation>
 <translation id="869884720829132584">Sovellusvalikko</translation>
 <translation id="869891660844655955">Vanhenemispäivämäärä</translation>
@@ -5761,6 +5794,7 @@
 <translation id="8872187374998143710">Käynnistä laite uudelleen käyttääksesi Plugin VM:ää.</translation>
 <translation id="8872777911145321141">Kysy, kun sivusto pyytää lupaa käyttää virtuaalitodellisuuslaitteitasi ja ‑dataasi (suositus)</translation>
 <translation id="8874184842967597500">Ei yhdistetty</translation>
+<translation id="8875775314572167244">Ethernet-asetukset</translation>
 <translation id="8876307312329369159">Tätä asetusta ei voi muuttaa demo-käyttökerralla.</translation>
 <translation id="8877448029301136595">[emohakemisto]</translation>
 <translation id="8878384954777710821">Poistetaan Plugin VM:ää…</translation>
@@ -5802,6 +5836,7 @@
 <translation id="892706138619340876">Jotkin asetukset nollattiin</translation>
 <translation id="8930351635855238750">Uudet evästeasetukset tulevat voimaan päivitettyäsi sivun.</translation>
 <translation id="8931394284949551895">Uudet laitteet</translation>
+<translation id="8931475688782629595">Valitse, mitä synkronoit</translation>
 <translation id="8932894639908691771">Muuta kytkinasetuksia</translation>
 <translation id="8933960630081805351">Näytä Finderi&amp;ssä</translation>
 <translation id="8934732568177537184">Jatka</translation>
@@ -5959,6 +5994,7 @@
 <translation id="9148126808321036104">Kirjaudu sisään uudelleen</translation>
 <translation id="9149866541089851383">Muokkaa...</translation>
 <translation id="9150045010208374699">Käyttää kameraa</translation>
+<translation id="9150429437595727962">Wi-Fi-asetukset</translation>
 <translation id="9153934054460603056">Tallenna henkilöllisyys ja salasana</translation>
 <translation id="9154194610265714752">Päivitetty</translation>
 <translation id="91568222606626347">Luo pikakuvake…</translation>
@@ -6020,6 +6056,7 @@
 <translation id="945522503751344254">Lähetä palautetta</translation>
 <translation id="947329552760389097">Tutk&amp;i elementtejä</translation>
 <translation id="952992212772159698">Ei aktivoitu</translation>
+<translation id="956500788634395331">Sinut on suojattu mahdollisesti haitallisilta laajennuksilta</translation>
 <translation id="957960681186851048">Tämä sivusto yrittää ladata useita tiedostoja automaattisesti</translation>
 <translation id="9580706199804957">Google-palveluihin ei saatu yhteyttä.</translation>
 <translation id="960719561871045870">Operaattorikoodi</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 8e57e8d..87bc54e81 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">I-clear din ang data mula sa mga app na ito?</translation>
 <translation id="1045692658517323508">{0,plural, =1{I-update sa loob ng 1 minuto}one{I-update sa loob ng # minuto}other{I-update sa loob ng # na minuto}}</translation>
 <translation id="1046635659603195359">Mukhang na-set up mo na ang Voice Match sa iyong Google Assistant sa isa pang device. Magagamit ang mga nakaraang recording na ito para gumawa ng voice model sa device na ito. Hindi dapat ito abutin nang mahigit isang minuto.</translation>
+<translation id="104710386808485638">I-restart ang Linux?</translation>
 <translation id="1047431265488717055">Kopyahin ang Text ng Link</translation>
 <translation id="1048286738600630630">Mga Display</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Mangyaring mag-sign in sa <ph name="TOKEN_NAME" /> upang i-export ang certificate ng client.</translation>
 <translation id="1163931534039071049">&amp;View frame source</translation>
 <translation id="1164674268730883318">I-off ang Smart Lock para sa <ph name="DEVICE_TYPE" />?</translation>
+<translation id="1164891049599601209">Inilagay sa mapanlinlang na site</translation>
 <translation id="1164899421101904659">Ilagay ang PIN Unlock Key</translation>
 <translation id="1165039591588034296">Error</translation>
 <translation id="1166212789817575481">Isara ang Mga Tab na nasa Kanan</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">Awtomatikong Kiosk Mode</translation>
 <translation id="1545775234664667895">Naka-install na temang "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">Binago ng extension na ito ang ipinapakitang page kapag na-click mo ang button ng Home.</translation>
+<translation id="1546452108651444655">Gustong mag-install ni <ph name="CHILD_NAME" /> ng <ph name="EXTENSION_TYPE" /> na magagawang:</translation>
 <translation id="1549275686094429035">Naka-enable ang ARC</translation>
 <translation id="1549788673239553762">Gusto ng <ph name="APP_NAME" /> na i-access ang <ph name="VOLUME_NAME" />. Maaari nitong baguhin o i-delete ang iyong mga file.</translation>
 <translation id="1553538517812678578">walang limitasyon</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">Plugin VM</translation>
 <translation id="1679810534535368772">Sigurado ka bang gusto mong lumabas?</translation>
 <translation id="167983332380191032">Nagpadala ang serbisyo ng pamamahala ng HTTP error.</translation>
+<translation id="1680841347983561661">Pakisubukan ulit na simulan ang Google Play pagkalipas ng ilang sandali.</translation>
 <translation id="1680849702532889074">Nagkaroon ng error habang ini-install ang iyong Linux application.</translation>
 <translation id="16815041330799488">Huwag payagan ang mga site na makita ang text at mga larawang kinopya sa clipboard</translation>
 <translation id="1682548588986054654">New Incognito Window</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559">Nag-crash ang <ph name="APP_NAME" />. Mag-click sa lobong ito upang i-reload ang extension.</translation>
 <translation id="2025891858974379949">Hindi secure na content</translation>
 <translation id="202918510990975568">Ilagay ang iyong password para i-configure ang seguridad at pag-sign in</translation>
+<translation id="2030672406208960151">Buksan ang Terminal sa Pag-recover</translation>
 <translation id="2034346955588403444">Magdagdag ng isa pang Wi-Fi network</translation>
 <translation id="203574396658008164">I-enable ang pagtatala mula sa lock screen</translation>
 <translation id="2037445849770872822">Na-set up ang patnubay para sa Google Account na ito. Para mag-set up ng higit pang kontrol ng magulang, piliin ang Magpatuloy.
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">PIN o password</translation>
 <translation id="2224444042887712269">Ang setting na ito ay kay <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">I-edit ang pangalan ng folder</translation>
+<translation id="2225864335125757863">Palitan kaagad ang mga password na ito para mapanatiling ligtas ang iyong account:</translation>
 <translation id="2226449515541314767">Na-block ang site na ito mula sa pagkakaroon ng buong kontrol sa mga MIDI device.</translation>
 <translation id="222704500187107962">Awtomatikong aalisin ang exception na ito pagkatapos mong lumabas sa kasalukuyang Incognito na session</translation>
 <translation id="2227179592712503583">Alisin ang suhestyon</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">Pumunta sa Home</translation>
 <translation id="2387458720915042159">Uri ng koneksyon sa proxy</translation>
 <translation id="2391419135980381625">Karaniwang font</translation>
+<translation id="2392163307141705938">Naabot mo na ang limitasyon sa oras na itinakda ng iyong magulang para sa <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">I-activate</translation>
 <translation id="2394566832561516196">Maki-clear ang mga setting sa susunod na pag-reload.</translation>
 <translation id="2395616325548404795">Matagumpay na na-enroll ang iyong <ph name="DEVICE_TYPE" /> para sa pamamahala ng enterprise, ngunit hindi naipadala ang impormasyon ng asset at lokasyon nito. Pakilagay nang manual ang impormasyong ito na mula sa iyong Admin console para sa device na ito.</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">Ibahagi ang audio</translation>
 <translation id="2480868415629598489">Baguhin ang data na kinokopya at pine-paste mo</translation>
 <translation id="2482878487686419369">Mga Abiso</translation>
+<translation id="2483610039979585156">Mae-edit ng <ph name="ORIGIN" /> ang <ph name="FILENAME" /> hangga't hindi mo isinasara ang lahat ng tab ng <ph name="ORIGIN" /></translation>
 <translation id="2484959914739448251">Para i-clear ang data sa pag-browse sa lahat ng iyong naka-sync na device at sa Google Account mo, <ph name="BEGIN_LINK" />ilagay ang iyong passphrase<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Na-save ang password sa device na ito</translation>
 <translation id="2485422356828889247">I-uninstall</translation>
@@ -1299,6 +1307,7 @@
 <translation id="274290345632688601">Nire-restore ang mga app at file ng Linux</translation>
 <translation id="2743387203779672305">Kopyahin sa clipboard</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
+<translation id="2748061034695037846">Naka-pause ang <ph name="DOMAIN" /></translation>
 <translation id="2749756011735116528">Mag-sign in sa <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">Check Grammar With Spelling</translation>
 <translation id="2751739896257479635">EAP Phase 2 na pag-authenticate</translation>
@@ -1307,6 +1316,7 @@
 <translation id="275662540872599901">naka-off ang screen</translation>
 <translation id="2762441749940182211">Naka-block ang camera</translation>
 <translation id="2765217105034171413">Maliit</translation>
+<translation id="2766161002040448006">Hilingin sa magulang</translation>
 <translation id="276969039800130567">Naka-sign in bilang <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="2770465223704140727">Alisin sa listahan</translation>
 <translation id="2770690685823456775">I-export ang iyong mga password sa isa pang folder</translation>
@@ -1558,6 +1568,7 @@
 <translation id="3115580024857770654">I-collapse lahat</translation>
 <translation id="3117362587799608430">Hindi ganap na compatible ang dock</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> Help</translation>
+<translation id="3118654181216384296">Pakisubukan ulit na simulan ang Linux pagkalipas ng ilang sandali.</translation>
 <translation id="3120430004221004537">Hindi sapat ang pag-encrypt para sa isang partikular na operation sa: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">I-reset ang <ph name="IDS_SHORT_PRODUCT_NAME" /> device na ito</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1567,6 +1578,7 @@
 <translation id="3127156390846601284">Ide-delete nito ang anumang data na naimbak sa iyong device para sa lahat ng site na ipinakita. Gusto mo bang magpatuloy?</translation>
 <translation id="3127860049873093642">Para maiwasan ang mga isyu sa pag-charge at performance, gumamit ng compatible na Dell o USB Type-C na power adapter.</translation>
 <translation id="3129173833825111527">Kaliwang margin</translation>
+<translation id="3129215702932019810">Nagka-error sa paglulunsad ng application</translation>
 <translation id="3130528281680948470">Ire-reset ang iyong device at maaalis ang lahat ng user account at lokal na data. Hindi na ito maaaring bawiin.</translation>
 <translation id="313205617302240621">Nakalimutan mo ba ang iyong password?</translation>
 <translation id="3132996321662585180">I-refresh araw-araw</translation>
@@ -1782,6 +1794,7 @@
 <translation id="3441653493275994384">Screen</translation>
 <translation id="3445925074670675829">USB-C device</translation>
 <translation id="344630545793878684">Basahin ang iyong data sa ilang website</translation>
+<translation id="3448086340637592206">Mga Karagdagang Tuntunin ng Google Chrome at Chrome OS</translation>
 <translation id="3448492834076427715">I-update ang account</translation>
 <translation id="3449839693241009168">Pindutin ang <ph name="SEARCH_KEY" /> upang magpadala ng mga command sa <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Porsyento ng Ginagamit sa Estadong Idle</translation>
@@ -2129,6 +2142,7 @@
 <translation id="3873423927483480833">Ipakita ang Mga PIN</translation>
 <translation id="3873915545594852654">Nagkaproblema sa ARC++.</translation>
 <translation id="3879748587602334249">Download manager</translation>
+<translation id="3881321138433527084">Naka-off ang Ligtas na Pag-browse. Para manatiling ligtas sa web, i-on ito.</translation>
 <translation id="3882165008614329320">Kasalukuyang video mula sa camera o file</translation>
 <translation id="3886446263141354045">Ipinadala ang iyong kahilingang i-access ang site na ito kay <ph name="NAME" /></translation>
 <translation id="3888550877729210209">Nagtatala gamit ang <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2470,6 +2484,7 @@
 <translation id="4384652540891215547">I-activate ang extension</translation>
 <translation id="438503109373656455">Petra</translation>
 <translation id="4387004326333427325">Remote na tinanggihan ang certificate sa pagpapatunay</translation>
+<translation id="4387890294700445764">Mga nakompromisong password</translation>
 <translation id="4389091756366370506">User <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Incognito}one{# nakabukas na incognito window}other{# na nakabukas na incognito window}}</translation>
 <translation id="439266289085815679">Ang configuration ng bluetooth ay kinokontrol ni <ph name="USER_EMAIL" />.</translation>
@@ -2501,6 +2516,7 @@
 <translation id="4429030830601238961">Nilalabag ng data na ito ang mga patakaran sa seguridad ng iyong organisasyon at hindi ito puwedeng i-paste.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Naidagdag na ang bookmark</translation>
+<translation id="4432621511648257259">Mali ang password</translation>
 <translation id="4434045419905280838">Mga pop-up at pag-redirect</translation>
 <translation id="443454694385851356">Legacy (hindi secure)</translation>
 <translation id="443475966875174318">I-update o alisin ang mga hindi compatible na application</translation>
@@ -2750,6 +2766,7 @@
 <translation id="4808667324955055115">Naka-block ang mga pop-up</translation>
 <translation id="480990236307250886">Buksan ang home page</translation>
 <translation id="4811503964269049987">Pagpangkatin ang Napiling Tab</translation>
+<translation id="4811818760963189951">Na-off dahil na-disable mo ang pag-sync ng history</translation>
 <translation id="4813136279048157860">Aking Mga Larawan</translation>
 <translation id="4813512666221746211">Error sa network</translation>
 <translation id="4814378367953456825">Maglagay ng pangalan para sa fingerprint na ito</translation>
@@ -2779,6 +2796,7 @@
 <translation id="4850669014075537160">Pag-ii-scroll</translation>
 <translation id="4850886885716139402">View</translation>
 <translation id="4853020600495124913">Buksan sa &amp;bagong window</translation>
+<translation id="4854317507773910281">Pumili ng account ng magulang para sa pag-apruba</translation>
 <translation id="485480310608090163">Higit pang setting at pahintulot</translation>
 <translation id="4856478137399998590">Na-activate na ang iyong serbisyo ng data ng mobile at handa nang magamit</translation>
 <translation id="4856855265648545577">Ipakita ang mga button ng Launcher, button na Bumalik at Overview sa Shelf sa tablet mode. Naka-on kapag naka-enable ang ChromeVox (pasalitang feedback) o Switch Access.</translation>
@@ -2915,10 +2933,12 @@
 <translation id="5040823038948176460">Mga karagdagang setting ng content</translation>
 <translation id="5042282098504489593">Buksan ang Mga Setting para ikonekta ang <ph name="USB_DEVICE_NAME" /> sa Linux</translation>
 <translation id="5043913660911154449">O tukuyin ang PPD ng iyong printer <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Naka-off dahil na na-encrypt mo ang iyong sini-sync na data gamit ang isang passphrase</translation>
 <translation id="5045550434625856497">Hindi wastong password</translation>
 <translation id="504561833207953641">Binubuksan sa kasalukuyang session ng browser.</translation>
 <translation id="5047421709274785093">I-block ang paggamit ng mga site ng mga motion at light sensor</translation>
 <translation id="5050042263972837708">Pangalan ng pangkat</translation>
+<translation id="5051073330196664891">Pangkalahatang Mga Tuntunin ng Serbisyo (universal Terms of Service o uToS) ng Google</translation>
 <translation id="5051836348807686060">Hindi sinusuportahan ang spellcheck para sa mga pinili mong wika</translation>
 <translation id="5052499409147950210">I-edit ang site</translation>
 <translation id="5053604404986157245">Hindi available ang random na nabuong TPM password. Normal ito pagkatapos ng Powerwash.</translation>
@@ -2956,6 +2976,7 @@
 <translation id="5097002363526479830">Nabigong kumonekta sa network na '<ph name="NAME" />': <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Buksan lahat ng mga bookmark</translation>
 <translation id="5101839224773798795">Awtomatikong mag-click kapag huminto ang cursor</translation>
+<translation id="5107443654503185812">Na-off ng isang extension ang Ligtas na Pag-browse</translation>
 <translation id="5108967062857032718">Mga Setting - Alisin ang mga Android app</translation>
 <translation id="5109044022078737958">Elma</translation>
 <translation id="5111646998522066203">Lumabas sa Incognito</translation>
@@ -3042,6 +3063,7 @@
 <translation id="523505283826916779">Mga setting ng accessibility</translation>
 <translation id="5235750401727657667">Palitan ang page na nakikita mo kapag nagbubukas ng bagong tab</translation>
 <translation id="5238278114306905396">Awtomatikong inalis ang app na "<ph name="EXTENSION_NAME" />."</translation>
+<translation id="5239730228370806996">Lumalabag ang na-drop na data na ito sa mga patakaran sa seguridad ng iyong organisasyon. Gusto mo pa rin bang magpatuloy?</translation>
 <translation id="5241128660650683457">Basahin ang lahat ng iyong data sa mga website na binibisita mo</translation>
 <translation id="5242724311594467048">I-enable ang "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="5243522832766285132">Pakisubukang muli pagkalipas ng ilang sandali</translation>
@@ -3329,6 +3351,7 @@
 <translation id="5618075537869101857">Naku, hindi mailunsad ang kiosk application.</translation>
 <translation id="5618333180342767515">(maaaring tumagal ito nang ilang minuto)</translation>
 <translation id="56197088284879152">Mabagal ang koneksyon sa remote device na: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">Walang naka-save na password</translation>
 <translation id="5620549857835247159">Ipakita ang mga button ng Launcher, button na Bumalik at Overview sa Shelf sa tablet mode.</translation>
 <translation id="5620568081365989559">Humihiling ang DevTools ng ganap na access sa <ph name="FOLDER_PATH" />. Tiyaking hindi ka maglalahad ng anumang sensitibong impormasyon.</translation>
 <translation id="5620612546311710611">mga istatistika sa paggamit</translation>
@@ -3422,6 +3445,7 @@
 <translation id="5747785204778348146">Developer - hindi matatag</translation>
 <translation id="5747809636523347288">I-pa&amp;ste at pumunta sa <ph name="URL" /></translation>
 <translation id="5750324801516359607">Malayo</translation>
+<translation id="5751887393582880060">Lumalabag ang pag-upload na ito sa mga patakaran sa seguridad ng iyong organisasyon. Gusto mo pa rin bang magpatuloy?</translation>
 <translation id="5756163054456765343">Help center</translation>
 <translation id="5759728514498647443">Ang mga dokumentong ipinadadala mo upang i-print sa pamamagitan ng <ph name="APP_NAME" /> ay maaaring buksan ng <ph name="APP_NAME" />.</translation>
 <translation id="5763751966069581670">Walang nahanap na USB device</translation>
@@ -3631,6 +3655,7 @@
 <translation id="6040852767465482106">Anonymous na Pagkakakilanlan</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Gumagamit ang serbisyo ng lokasyon ng Google ng mga source tulad ng mga Wi-Fi at mobile network para makatulong na matantya ang lokasyon ng device na ito.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Maaari mong i-off ang Lokasyon sa pamamagitan ng pag-off sa pangunahing setting ng Lokasyon sa device na ito. Maaari mo ring i-off ang paggamit ng Wi‑Fi, mga mobile network, at mga sensor para sa lokasyon sa mga setting ng lokasyon.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409">Matitingnan ng <ph name="ORIGIN" /> ang mga file sa <ph name="FOLDERNAME" /> hangga't hindi mo isinasara ang lahat ng tab ng <ph name="ORIGIN" /></translation>
 <translation id="6041155700700864984">Lumabas sa Fullscreen</translation>
 <translation id="604124094241169006">Awtomatiko</translation>
 <translation id="6042308850641462728">Higit pa</translation>
@@ -3692,6 +3717,7 @@
 <translation id="6104311680260824317">Hindi maisama ang device sa domain. Hindi sinusuportahan ng server ang mga natukoy na uri ng Kerberos na pag-encrypt. Suriin ang "Higit pang opsyon" para sa mga setting ng pag-encrypt.</translation>
 <translation id="6104641575223043670">Nangangailangan ang <ph name="ORGANIZATION_NAME" /> ng agarang update sa device na ito</translation>
 <translation id="6106186653986077033">Kailangan ng Plugin VM ng lisensya</translation>
+<translation id="6107047744202598802">Pinapayagan ang mga website na matandaan ang pagbisita mo at sinusubaybayan ka sa buong web</translation>
 <translation id="6112294629795967147">Pindutin para i-resize</translation>
 <translation id="6112727384379533756">Magdagdag ng ticket</translation>
 <translation id="6112931163620622315">Tingnan ang iyong telepono</translation>
@@ -3770,6 +3796,7 @@
 <translation id="622537739776246443">Ide-delete ang profile</translation>
 <translation id="6225475702458870625">Available ang koneksyon sa data mula sa iyong <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Pribadong key file (opsyonal)</translation>
+<translation id="6227280783235722609">extension</translation>
 <translation id="6228691855869374890">May buong kontrol sa mga MIDI device ang site na ito.</translation>
 <translation id="6228720835160974792">Bumuo ng QR code para sa larawang ito</translation>
 <translation id="6229890768313448549">Hindi ma-load ang Mga Tuntunin ng Serbisyo ng Google Play. Pakisubukang muli.</translation>
@@ -3821,6 +3848,7 @@
 <translation id="6285120108426285413">Hindi karaniwang dina-download ang <ph name="FILE_NAME" /> at maaaring mapanganib ito.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Bagong printer sa iyong network}one{Mga bagong printer sa iyong network}other{Mga bagong printer sa iyong network}}</translation>
 <translation id="6286708577777130801">Mga naka-save na detalye ng password</translation>
+<translation id="6291163159361301370">Para simulan ang Linux, hihilingin sa iyo ng<ph name="ORGANIZATION_NAME" /> na i-back up ang iyong data at i-reset ang Chromebook na ito sa mga factory setting.</translation>
 <translation id="6291949900244949761">Magtanong kapag gusto ng isang site na i-access ang mga USB device (inirerekomenda)</translation>
 <translation id="6291953229176937411">&amp;Show in Finder</translation>
 <translation id="6295158916970320988">Lahat ng site</translation>
@@ -4017,6 +4045,7 @@
 <translation id="6561726789132298588">enter</translation>
 <translation id="656293578423618167">Masyadong mahaba ang path o pangalan ng file.  Mangyaring i-save nang may mas maikling pangalan o sa isa pang lokasyon.</translation>
 <translation id="6563469144985748109">Hindi pa ito inaaprubahan ng iyong manager</translation>
+<translation id="6565955132287672866">Hindi na-shut down nang tama ang iyong device. Para magamit ang Linux (Beta), dapat itong i-restart.</translation>
 <translation id="6567688344210276845">Maaaring hindi mai-load ang icon '<ph name="ICON" />' para sa pagkilos sa pahina.</translation>
 <translation id="6569934958368283244">Iba pang tao</translation>
 <translation id="657402800789773160">&amp;I-reload ang Pahinang Ito</translation>
@@ -4514,6 +4543,7 @@
 <translation id="7258225044283673131">Hindi tumutugon ang application. Piliin ang "Puwersahang isara" para isara ang app.</translation>
 <translation id="7258697411818564379">Naidagdag ang iyong PIN</translation>
 <translation id="7262004276116528033">Hino-host ng <ph name="SAML_DOMAIN" /> ang serbisyo sa pag-sign in</translation>
+<translation id="7266898409676782635">Makatanggap ng mga tip, alok, at update sa <ph name="DEVICE_TYPE" />, at magbahagi ng feedback. Mag-unsubscribe anumang oras.</translation>
 <translation id="7268127947535186412">Pinapamahalaan ang setting na ito ng may-ari ng device.</translation>
 <translation id="7270858098575133036">Magtanong kapag gustong gumamit ng isang site ng mga eksklusibong mensahe ng system upang mag-access ng mga MIDI device</translation>
 <translation id="7272674038937250585">Walang ibinigay na paglalarawan</translation>
@@ -4587,6 +4617,7 @@
 <translation id="7364796246159120393">Pumili ng File</translation>
 <translation id="7366415735885268578">Magdagdag ng site</translation>
 <translation id="7366909168761621528">Data sa pag-browse</translation>
+<translation id="7367714965999718019">Pambuo ng QR Code</translation>
 <translation id="736877393389250337">Hindi mabuksan ang <ph name="URL" /> sa <ph name="ALTERNATIVE_BROWSER_NAME" />. Makipag-ugnayan sa iyong system administrator.</translation>
 <translation id="7370592524170198497">Ethernet EAP:</translation>
 <translation id="7371006317849674875">Oras ng pagsisimula</translation>
@@ -4844,8 +4875,10 @@
 <translation id="7737238973539693982">I-delete ang Linux (Beta)</translation>
 <translation id="7740996059027112821">Karaniwan</translation>
 <translation id="7744047395460924128">Tingnan ang iyong history ng pag-print</translation>
+<translation id="7744192722284567281">Nakita sa paglabag sa data</translation>
 <translation id="7746457520633464754">Para matukoy ang mapapanganib na app at site, nagpapadala ang Chrome ng mga URL ng ilang page na binibisita mo, limitadong impormasyon ng system, at ilang content ng page sa Google</translation>
 <translation id="7750228210027921155">Picture in picture</translation>
+<translation id="7751229152614300329">Up to date ang Ligtas na Pag-browse at pinoprotektahan ka nito mula sa mga mapaminsalang site at download</translation>
 <translation id="7751260505918304024">Ipakita lahat</translation>
 <translation id="7754704193130578113">Magtanong kung saan ise-save ang bawat file bago ang pagda-download</translation>
 <translation id="7755287808199759310">Maaari itong i-unblock ng iyong magulang para sa iyo</translation>
@@ -4993,6 +5026,7 @@
 <translation id="7910768399700579500">&amp;Bagong folder</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Napalitan na ang iyong password sa server. Mag-sign out at muling mag-sign in.</translation>
+<translation id="7914583336730284547">Lumalabag ang mga na-drop na file na ito sa mga patakaran sa seguridad ng iyong organisasyon. Gusto mo pa rin bang magpatuloy?</translation>
 <translation id="7915457674565721553">Kumonekta sa internet para i-set up ang mga kontrol ng magulang</translation>
 <translation id="7915471803647590281">Mangyaring sabihin sa amin kung ano ang nangyayari bago ang pagpapadala ng feedback.</translation>
 <translation id="7918257978052780342">Magpatala</translation>
@@ -5090,6 +5124,7 @@
 <translation id="8028803902702117856">Dina-download ang <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">Laki</translation>
 <translation id="8030656706657716245">Magdagdag ng Printer</translation>
+<translation id="8030852056903932865">Aprubahan</translation>
 <translation id="8032244173881942855">Hindi ma-cast ang tab.</translation>
 <translation id="8033827949643255796">pinili</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Buksan lahat sa &amp;incognito window}=1{Buksan lahat sa &amp;incognito window}one{Buksan lahat (#) sa &amp;incognito window}other{Buksan lahat (#) sa &amp;incognito window}}</translation>
@@ -5411,6 +5446,7 @@
 <translation id="8472623782143987204">na-hardware-back</translation>
 <translation id="8473863474539038330">Mga address at higit pa</translation>
 <translation id="8475313423285172237">Ang isa pang program sa iyong computer ay nagdagdag ng extension na maaaring magpabago sa paraan ng paggana ng Chrome.</translation>
+<translation id="8476659515398963495">Lumalabag ang na-paste na data na ito sa mga patakaran sa seguridad ng iyong organisasyon. Gusto mo pa rin bang magpatuloy?</translation>
 <translation id="8477241577829954800">Humalili</translation>
 <translation id="8477384620836102176">&amp;Pangkalahatan</translation>
 <translation id="8480082892550707549">Kahit na nakapag-download ka na ng mga file mula sa site na ito dati, maaaring pansamantalang hindi ligtas (na-hack) ang site. Subukang i-download ang file na ito sa ibang pagkakataon.</translation>
@@ -5464,6 +5500,7 @@
 <translation id="8547013269961688403">I-enable ang fullscreen magnifier</translation>
 <translation id="85486688517848470">Pindutin nang matagal ang Key sa paghahanap upang palitan ang gawi ng mga key sa itaas na row</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 item}one{# item}other{# na item}}</translation>
+<translation id="8550165047974571882">Mae-edit ng <ph name="ORIGIN" /> ang mga file sa <ph name="FOLDERNAME" /> hangga't hindi mo isinasara ang lahat ng tab ng <ph name="ORIGIN" /></translation>
 <translation id="8551388862522347954">Mga Lisensya</translation>
 <translation id="8553342806078037065">Pamahalaan ang iba pang mga tao</translation>
 <translation id="8554899698005018844">Walang wika</translation>
@@ -5522,6 +5559,7 @@
 <translation id="8637688295594795546">Available ang update sa system. Hinahandang i-download…</translation>
 <translation id="8639047128869322042">Tinitingnan kung may mapaminsalang software...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Port</translation>
+<translation id="8641606876632989680">Aabisuhan ka ng Chrome kapag nag-sign in ka gamit ang nakompromisong password</translation>
 <translation id="8642900771896232685">2 segundo</translation>
 <translation id="8642947597466641025">Gawing Mas Malaki Ang Teksto</translation>
 <translation id="8644655801811752511">Hindi puwedeng i-reset ang security key na ito. Subukang i-reset kaagad ang key pagkatapos itong ipasok.</translation>
@@ -5571,6 +5609,7 @@
 <translation id="869884720829132584">Menu ng mga application</translation>
 <translation id="869891660844655955">Expiration date</translation>
 <translation id="8703346390800944767">Laktawan ang Ad</translation>
+<translation id="870341961648617780">Mga setting ng Ligtas na Pag-browse at advanced na seguridad</translation>
 <translation id="8705331520020532516">Serial Number</translation>
 <translation id="8705580154597116082">Available ang Wi-Fi sa pamamagitan ng telepono</translation>
 <translation id="8705629851992224300">Hindi mabasa ang iyong security key</translation>
@@ -5616,6 +5655,7 @@
 <translation id="874689135111202667">{0,plural, =1{Mag-upload ng isang file sa site na ito?}one{Mag-upload ng # file sa site na ito?}other{Mag-upload ng # na file sa site na ito?}}</translation>
 <translation id="8748384418490037181">Mga opsyon sa Smart Lock</translation>
 <translation id="8749863574775030885">Mag-access ng mga USB device mula sa isang hindi kilalang vendor</translation>
+<translation id="8750133148106010815">Para simulan ang Google Play, hihilingin sa iyo ng<ph name="ORGANIZATION_NAME" /> na i-back up ang data mo at i-reset ang Chromebook na ito sa mga factory setting.</translation>
 <translation id="8750155211039279868">Gustong kumonekta ng <ph name="ORIGIN" /> sa isang serial port</translation>
 <translation id="8754200782896249056">&lt;p&gt;Kapag pinapatakbo ang <ph name="PRODUCT_NAME" /> sa isang sinusuportahang desktop environment, gagamitin ang mga setting ng proxy ng system.  Gayunpaman, hindi sinusuportahan ang iyong system o nagkaroon ng problema sa paglulunsad ng configuration ng iyong system.&lt;/p&gt;
 
@@ -5670,6 +5710,7 @@
 <translation id="8809147117840417135">Light teal</translation>
 <translation id="8813698869395535039">Hindi makapag-sign in sa <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">piraso ng papel</translation>
+<translation id="8813872945700551674">Ipaapruba sa magulang ang "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="8813969267212093033">Ipinapakita sa wikang ito ang system text</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Maghintay, sini-scan ang archive...</translation>
@@ -5951,6 +5992,7 @@
 <translation id="9203398526606335860">&amp;Pinagana ang pag-profile</translation>
 <translation id="9203904171912129171">Pumili ng device</translation>
 <translation id="9203962528777363226">Hindi pinagana ng administrator ng device na ito ang pagdaragdag ng mga bagong user</translation>
+<translation id="9211177926627870898">Kailangang i-update</translation>
 <translation id="9214520840402538427">Oops!  Nag-time out ang pagpapasimula sa mga katangian ng pag-install at panahon.  Mangyaring makipag-ugnay sa iyong kinatawan ng suporta.</translation>
 <translation id="9214695392875603905">Cupcake</translation>
 <translation id="9215293857209265904">Idinagdag ang "<ph name="EXTENSION_NAME" />"</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 57581bb..7ab8777 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Effacer également les données issues de ces applications?</translation>
 <translation id="1045692658517323508">{0,plural, =1{Mettre à jour d'ici 1 minute}one{Mettre à jour d'ici # minute}other{Mettre à jour d'ici # minutes}}</translation>
 <translation id="1046635659603195359">Il semble que vous avez déjà configuré la fonction Voice Match avec l'Assistant Google sur un autre appareil. Ces enregistrements précédents peuvent être utilisés pour créer un modèle vocal sur cet appareil. L'opération devrait prendre moins d'une minute.</translation>
+<translation id="104710386808485638">Redémarrer Linux?</translation>
 <translation id="1047431265488717055">Copier le texte du lien</translation>
 <translation id="1048286738600630630">Écrans</translation>
 <translation id="1049743911850919806">Navigation privée</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Veuillez vous connecter à <ph name="TOKEN_NAME" /> pour exporter le certificat de client.</translation>
 <translation id="1163931534039071049">&amp;Afficher le code source du cadre</translation>
 <translation id="1164674268730883318">Désactiver Smart Lock pour <ph name="DEVICE_TYPE" />?</translation>
+<translation id="1164891049599601209">Entré sur un site trompeur</translation>
 <translation id="1164899421101904659">Entrer la clé de déverrouillage du NIP</translation>
 <translation id="1165039591588034296">Erreur</translation>
 <translation id="1166212789817575481">Fermer les onglets à la droite</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">Mode kiosque automatique</translation>
 <translation id="1545775234664667895">Thème installé : « <ph name="THEME_NAME" /> »</translation>
 <translation id="1546280085599573572">Cette extension a modifié la page qui s'affiche lorsque vous cliquez sur le bouton Accueil.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> souhaite installer une extension <ph name="EXTENSION_TYPE" />, qui peut :</translation>
 <translation id="1549275686094429035">Technologie ARC activée</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> souhaite accéder à <ph name="VOLUME_NAME" />. Cela peut modifier ou supprimer vos fichiers.</translation>
 <translation id="1553538517812678578">Sans limites</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">MV de plugiciels</translation>
 <translation id="1679810534535368772">Voulez-vous vraiment quitter cette fenêtre?</translation>
 <translation id="167983332380191032">Le service de gestion a envoyé une erreur HTTP.</translation>
+<translation id="1680841347983561661">Veuillez réessayer de lancer Google Play dans quelques instants.</translation>
 <translation id="1680849702532889074">Une erreur s'est produite lors de l'installation de votre application Linux.</translation>
 <translation id="16815041330799488">Ne pas autoriser les sites à voir le texte et les images copiés dans le presse-papiers</translation>
 <translation id="1682548588986054654">Nouvelle fenêtre de navigation privée</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> a planté. Cliquez sur cette infobulle pour redémarrer l'application.</translation>
 <translation id="2025891858974379949">Contenu non sécurisé</translation>
 <translation id="202918510990975568">Entrez votre mot de passe pour configurer la sécurité et la connexion</translation>
+<translation id="2030672406208960151">Ouvrir le terminal de récupération</translation>
 <translation id="2034346955588403444">Ajouter un autre réseau Wi-Fi</translation>
 <translation id="203574396658008164">Activer la prise de notes à partir de l'écran de verrouillage</translation>
 <translation id="2037445849770872822">La supervision est configurée pour ce compte Google. Si vous souhaitez configurer davantage de contrôles parentaux, sélectionnez Continuer.
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">NIP ou mot de passe</translation>
 <translation id="2224444042887712269">Ce paramètre appartient à <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">Modifier le nom du dossier</translation>
+<translation id="2225864335125757863">Veuillez changer ces mots de passe immédiatement pour protéger votre compte :</translation>
 <translation id="2226449515541314767">La commande totale des appareils MIDI a été bloquée pour ce site.</translation>
 <translation id="222704500187107962">Cette exception sera automatiquement supprimée lorsque vous aurez quitté la session de navigation privée en cours</translation>
 <translation id="2227179592712503583">Supprimer la suggestion</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">Retour à la page d'accueil</translation>
 <translation id="2387458720915042159">Type de connexion de mandataire</translation>
 <translation id="2391419135980381625">Police standard</translation>
+<translation id="2392163307141705938">Tu as atteint la durée autorisée par ton parent pour <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Activer</translation>
 <translation id="2394566832561516196">Les paramètres seront effacés lors de la prochaine actualisation.</translation>
 <translation id="2395616325548404795">Votre <ph name="DEVICE_TYPE" /> est bien enregistré pour la gestion d'entreprise, mais l'envoi de ses données de ressource et d'emplacement a échoué. Veuillez entrer manuellement ces données à partir de la console d'administrateur de cet appareil.</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">Partager l'audio</translation>
 <translation id="2480868415629598489">Modifier les données que vous copiez et collez</translation>
 <translation id="2482878487686419369">Notifications</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> sera en mesure de modifier le fichier <ph name="FILENAME" /> jusqu'à ce que vous fermiez tous les onglets de <ph name="ORIGIN" /></translation>
 <translation id="2484959914739448251">Pour effacer les données de navigation de tous vos appareils synchronisés et de votre compte Google, <ph name="BEGIN_LINK" />entrez votre phrase de passe<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Le mot de passe a été enregistré sur cet appareil</translation>
 <translation id="2485422356828889247">Désinstaller</translation>
@@ -1300,6 +1308,7 @@
 <translation id="274290345632688601">Restauration des applications et des fichiers Linux en cours…</translation>
 <translation id="2743387203779672305">Copier dans le presse-papiers</translation>
 <translation id="2745080116229976798">Subordination qualifiée de Microsoft</translation>
+<translation id="2748061034695037846">Le site <ph name="DOMAIN" /> est interrompu</translation>
 <translation id="2749756011735116528">Se connecter à <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">Vérifier la grammaire et l'orthographe</translation>
 <translation id="2751739896257479635">Authentification EAP phase 2</translation>
@@ -1308,6 +1317,7 @@
 <translation id="275662540872599901">écran désactivé</translation>
 <translation id="2762441749940182211">La caméra est bloquée</translation>
 <translation id="2765217105034171413">Petit</translation>
+<translation id="2766161002040448006">Demande à un parent</translation>
 <translation id="276969039800130567">Connecté en tant que <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="2770465223704140727">Retirer de la liste</translation>
 <translation id="2770690685823456775">Exportez vos mots de passe dans un autre dossier</translation>
@@ -1559,6 +1569,7 @@
 <translation id="3115580024857770654">Tout réduire</translation>
 <translation id="3117362587799608430">La station d'accueil n'est pas totalement compatible</translation>
 <translation id="3118319026408854581">Aide de <ph name="PRODUCT_NAME" /></translation>
+<translation id="3118654181216384296">Veuillez réessayer d'ouvrir Linux dans quelques instants.</translation>
 <translation id="3120430004221004537">Chiffrement insuffisant pour une opération donnée sur l'appareil « <ph name="DEVICE_NAME" /> ».</translation>
 <translation id="3121793941267913344">Réinitialiser cet appareil <ph name="IDS_SHORT_PRODUCT_NAME" /></translation>
 <translation id="3122464029669770682">Processeur</translation>
@@ -1568,6 +1579,7 @@
 <translation id="3127156390846601284">Cette action entraînera la suppression de toutes les données stockées sur votre appareil pour tous les sites affichés. Souhaitez-vous continuer?</translation>
 <translation id="3127860049873093642">Pour éviter les problèmes de recharge et de performance, servez-vous d'un adaptateur d'alimentation conçu par Dell ou d'un adaptateur USB de type C.</translation>
 <translation id="3129173833825111527">Marge de gauche</translation>
+<translation id="3129215702932019810">Une erreur s'est produite lors du lancement de l'application</translation>
 <translation id="3130528281680948470">Votre appareil sera réinitialisé, et la totalité des comptes d'utilisateur et des données locales sera supprimée. Cette opération est définitive.</translation>
 <translation id="313205617302240621">Mot de passe oublié?</translation>
 <translation id="3132996321662585180">Actualiser quotidiennement</translation>
@@ -1783,6 +1795,7 @@
 <translation id="3441653493275994384">Écran</translation>
 <translation id="3445925074670675829">Appareil USB-C</translation>
 <translation id="344630545793878684">Lire vos données sur un nombre défini de sites Web</translation>
+<translation id="3448086340637592206">Conditions supplémentaires pour Google Chrome et Chrome OS</translation>
 <translation id="3448492834076427715">Mettre à jour le compte</translation>
 <translation id="3449839693241009168">Appuyez sur <ph name="SEARCH_KEY" /> pour envoyer des commandes à <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Pourcentage d'utilisation à l'état de veille</translation>
@@ -2130,6 +2143,7 @@
 <translation id="3873423927483480833">Afficher les NIP</translation>
 <translation id="3873915545594852654">Un problème avec ARC++ s'est produit.</translation>
 <translation id="3879748587602334249">Gestionnaire de téléchargement</translation>
+<translation id="3881321138433527084">La navigation sécurisée est désactivée. Pour naviguer en toute sécurité sur le Web, activez-la.</translation>
 <translation id="3882165008614329320">Vidéo existante de la caméra ou du fichier</translation>
 <translation id="3886446263141354045">Votre demande d'accès à ce site a été envoyée à <ph name="NAME" /></translation>
 <translation id="3888550877729210209">Prendre des notes avec <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2471,6 +2485,7 @@
 <translation id="4384652540891215547">Activer l'extension</translation>
 <translation id="438503109373656455">Tonnerre</translation>
 <translation id="4387004326333427325">Certificat d'authentification rejeté à distance.</translation>
+<translation id="4387890294700445764">Mots de passe compromis</translation>
 <translation id="4389091756366370506">Utilisateur <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Navigation privée}one{# fenêtre de navigation privée ouverte}other{# fenêtres de navigation privée ouvertes}}</translation>
 <translation id="439266289085815679">La configuration du Bluetooth est contrôlée par <ph name="USER_EMAIL" />.</translation>
@@ -2502,6 +2517,7 @@
 <translation id="4429030830601238961">Ces données violent les politiques de sécurité de votre organisation et ne peuvent pas être collées.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Favori ajouté</translation>
+<translation id="4432621511648257259">Mot de passe incorrect</translation>
 <translation id="4434045419905280838">Fenêt. context. et redirections</translation>
 <translation id="443454694385851356">Héritage (non sécurisé)</translation>
 <translation id="443475966875174318">Mettre à jour ou supprimer les applications incompatibles</translation>
@@ -2751,6 +2767,7 @@
 <translation id="4808667324955055115">Fenêtres contextuelles bloquées :</translation>
 <translation id="480990236307250886">Ouvrir la page d'accueil</translation>
 <translation id="4811503964269049987">Ajouter l'onglet sélectionné à un groupe</translation>
+<translation id="4811818760963189951">Désactivé, parce que vous avez désactivé la synchronisation de l'historique</translation>
 <translation id="4813136279048157860">Mes images</translation>
 <translation id="4813512666221746211">Erreur réseau</translation>
 <translation id="4814378367953456825">Entrez un nom pour cette empreinte digitale</translation>
@@ -2780,6 +2797,7 @@
 <translation id="4850669014075537160">Défilement</translation>
 <translation id="4850886885716139402">Affichage</translation>
 <translation id="4853020600495124913">Ouvrir dans une &amp;nouvelle fenêtre</translation>
+<translation id="4854317507773910281">Sélectionner le compte parental pour l'approbation</translation>
 <translation id="485480310608090163">Plus de paramètres et d'autorisations</translation>
 <translation id="4856478137399998590">Votre service de données mobile est activé et prêt à l'emploi</translation>
 <translation id="4856855265648545577">Afficher les boutons Lanceur d'applications, Retour et Aperçu dans l'étagère en mode Tablette. Cette option est activée lorsque ChromeVox (rétroaction vocale) ou Switch Access est activé.</translation>
@@ -2916,10 +2934,12 @@
 <translation id="5040823038948176460">Paramètres de contenu supplémentaires</translation>
 <translation id="5042282098504489593">Ouvrez le menu Paramètres pour connecter <ph name="USB_DEVICE_NAME" /> à Linux</translation>
 <translation id="5043913660911154449">Ou encore, sélectionnez le fichier PPD de votre imprimante <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Désactivé parce que vous avez chiffré vos données synchronisées avec une phrase de passe.</translation>
 <translation id="5045550434625856497">Mot de passe incorrect</translation>
 <translation id="504561833207953641">Ouverture dans une session de navigateur existante.</translation>
 <translation id="5047421709274785093">Bloquer l'utilisation de capteurs de mouvement et de luminosité par les sites</translation>
 <translation id="5050042263972837708">Nom du groupe</translation>
+<translation id="5051073330196664891">Conditions d'utilisation universelles de Google</translation>
 <translation id="5051836348807686060">Le correcteur orthographique n'est pas pris en charge pour les langues que vous avez sélectionnées</translation>
 <translation id="5052499409147950210">Modifier le site</translation>
 <translation id="5053604404986157245">Le mot de passe TPM généré de manière aléatoire n'est pas accessible, ce qui est normal après une réinitialisation « Powerwash ».</translation>
@@ -2957,6 +2977,7 @@
 <translation id="5097002363526479830">Échec de la connexion au réseau « <ph name="NAME" /> » : <ph name="DETAILS" />.</translation>
 <translation id="5101042277149003567">Ouvrir tous les favoris</translation>
 <translation id="5101839224773798795">Cliquer automatiquement lorsque le curseur s'arrête</translation>
+<translation id="5107443654503185812">Une extension a désactivé la navigation sécurisée</translation>
 <translation id="5108967062857032718">Paramètres - Supprimer les applications Android</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">Quitter les fenêtres de navigation privée</translation>
@@ -3043,6 +3064,7 @@
 <translation id="523505283826916779">Paramètres d'accessibilité</translation>
 <translation id="5235750401727657667">Remplacer la page qui s'affiche lors de l'ouverture d'un nouvel onglet</translation>
 <translation id="5238278114306905396">L'application « <ph name="EXTENSION_NAME" /> » a été automatiquement supprimée.</translation>
+<translation id="5239730228370806996">Cette donnée déposée viole les politiques de sécurité de votre organisation. Souhaitez-vous poursuivre quand même?</translation>
 <translation id="5241128660650683457">Lire toutes vos données sur les sites Web que vous consultez</translation>
 <translation id="5242724311594467048">Activer « <ph name="EXTENSION_NAME" /> »?</translation>
 <translation id="5243522832766285132">Veuillez réessayer dans quelques instants</translation>
@@ -3330,6 +3352,7 @@
 <translation id="5618075537869101857">L'application Kiosque n'a pas pu être lancée.</translation>
 <translation id="5618333180342767515">(cette opération peut prendre quelques minutes)</translation>
 <translation id="56197088284879152">La connexion est surchargée pour l'appareil distant « <ph name="DEVICE_NAME" /> ».</translation>
+<translation id="5620163320393916465">Aucun mot de passe enregistré</translation>
 <translation id="5620549857835247159">Afficher les boutons Lanceur d'applications, Retour et Aperçu dans l'étagère en mode Tablette.</translation>
 <translation id="5620568081365989559">DevTools demande l'accès complet à <ph name="FOLDER_PATH" />. Assurez-vous de ne pas divulguer d'information confidentielle.</translation>
 <translation id="5620612546311710611">statistiques d'utilisation</translation>
@@ -3422,6 +3445,7 @@
 <translation id="5747785204778348146">Développeur (instable)</translation>
 <translation id="5747809636523347288">Coller et a&amp;ccéder à l'adresse <ph name="URL" /></translation>
 <translation id="5750324801516359607">Loin</translation>
+<translation id="5751887393582880060">Ce téléversement viole les politiques de sécurité de votre organisation. Souhaitez-vous poursuivre quand même?</translation>
 <translation id="5756163054456765343">Centre d'aide</translation>
 <translation id="5759728514498647443">Les documents que vous envoyez à l'impression au moyen de <ph name="APP_NAME" /> peuvent être lus par <ph name="APP_NAME" />.</translation>
 <translation id="5763751966069581670">Aucun appareil USB trouvé</translation>
@@ -3631,6 +3655,7 @@
 <translation id="6040852767465482106">Authentification anonyme</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Les services de localisation de Google utilisent des sources comme les réseaux Wi-Fi et cellulaires, ainsi que des capteurs, pour estimer la position de votre appareil.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Vous pouvez couper ce service en désactivant le paramètre de localisation principal de l'appareil. Vous pouvez également désactiver l'utilisation des réseaux Wi‑Fi, des réseaux cellulaires et des capteurs pour la localisation dans les paramètres de localisation.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> sera en mesure d'afficher les fichiers dans le dossier <ph name="FOLDERNAME" /> jusqu'à ce que vous fermiez tous ces onglets de <ph name="ORIGIN" />.</translation>
 <translation id="6041155700700864984">Quitter le mode Plein écran</translation>
 <translation id="604124094241169006">Automatique</translation>
 <translation id="6042308850641462728">Plus</translation>
@@ -3692,6 +3717,7 @@
 <translation id="6104311680260824317">Impossible d'associer l'appareil au domaine. Le serveur ne prend pas en charge les types de chiffrement Kerberos spécifiés. Consultez « Plus d'options » pour afficher les paramètres de chiffrement.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> exige l'installation immédiate d'une mise à jour sur cet appareil</translation>
 <translation id="6106186653986077033">L'application Plugin VM nécessite une licence</translation>
+<translation id="6107047744202598802">Permet aux sites Web de se souvenir de votre visite et de vous suivre sur le Web</translation>
 <translation id="6112294629795967147">Touchez pour redimensionner</translation>
 <translation id="6112727384379533756">Ajouter un ticket</translation>
 <translation id="6112931163620622315">Vérifier votre téléphone</translation>
@@ -3770,6 +3796,7 @@
 <translation id="622537739776246443">Ce profil sera supprimé</translation>
 <translation id="6225475702458870625">Connexion de données possible à partir de votre <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Fichier de clé privée (facultatif)</translation>
+<translation id="6227280783235722609">extension</translation>
 <translation id="6228691855869374890">Ce site commande entièrement les périphériques MIDI.</translation>
 <translation id="6228720835160974792">Créer un code QR pour cette image</translation>
 <translation id="6229890768313448549">Impossible de charger les conditions d'utilisation de Google Play. Veuillez réessayer.</translation>
@@ -3821,6 +3848,7 @@
 <translation id="6285120108426285413">Le fichier <ph name="FILE_NAME" /> n'est pas souvent téléchargé et peut être dangereux.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Nouvelle imprimante sur le réseau}one{Nouvelle imprimante sur le réseau}other{Nouvelles imprimantes sur le réseau}}</translation>
 <translation id="6286708577777130801">Détails sur le mot de passe enregistré</translation>
+<translation id="6291163159361301370">Pour démarrer Linux, <ph name="ORGANIZATION_NAME" /> vous demande de sauvegarder vos données et de réinitialiser ce Chromebook à ses paramètres par défaut.</translation>
 <translation id="6291949900244949761">Demander une autorisation lorsqu'un site veut accéder à des appareils USB (recommandé)</translation>
 <translation id="6291953229176937411">&amp;Afficher dans le Finder</translation>
 <translation id="6295158916970320988">Tous les sites</translation>
@@ -4017,6 +4045,7 @@
 <translation id="6561726789132298588">entrée</translation>
 <translation id="656293578423618167">Le chemin d'accès ou le nom du fichier est trop long. Veuillez raccourcir le nom ou enregistrer le fichier à un autre endroit.</translation>
 <translation id="6563469144985748109">Votre gestionnaire n'a pas encore donné son autorisation</translation>
+<translation id="6565955132287672866">Votre appareil ne s'est pas fermé correctement. Pour utiliser Linux (version bêta), vous devez le redémarrer.</translation>
 <translation id="6567688344210276845">Impossible de charger l'icône « <ph name="ICON" /> » d'action de page.</translation>
 <translation id="6569934958368283244">Autres personnes</translation>
 <translation id="657402800789773160">Actualise&amp;r cette page</translation>
@@ -4514,6 +4543,7 @@
 <translation id="7258225044283673131">L'application ne répond pas. Sélectionnez « Forcer la fermeture » pour fermer l'application.</translation>
 <translation id="7258697411818564379">Votre NIP a été ajouté</translation>
 <translation id="7262004276116528033">Le service de connexion est hébergé par <ph name="SAML_DOMAIN" /></translation>
+<translation id="7266898409676782635">Obtenez des conseils sur votre <ph name="DEVICE_TYPE" />, des offres et des mises à jour, et partagez vos commentaires. Vous pouvez vous désabonner à tout moment.</translation>
 <translation id="7268127947535186412">Ce paramètre est géré par le propriétaire de l'appareil.</translation>
 <translation id="7270858098575133036">Demander lorsqu'un site veut utiliser des messages exclusifs au système pour accéder aux appareils MIDI</translation>
 <translation id="7272674038937250585">Aucune description fournie</translation>
@@ -4587,6 +4617,7 @@
 <translation id="7364796246159120393">Sélectionner un fichier</translation>
 <translation id="7366415735885268578">Ajouter un site</translation>
 <translation id="7366909168761621528">Données de navigation</translation>
+<translation id="7367714965999718019">Générateur de code QR</translation>
 <translation id="736877393389250337">L'adresse <ph name="URL" /> n'a pas pu être ouverte dans <ph name="ALTERNATIVE_BROWSER_NAME" />. Communiquez avec votre administrateur système.</translation>
 <translation id="7370592524170198497">Ethernet EAP :</translation>
 <translation id="7371006317849674875">Heure de début</translation>
@@ -4844,8 +4875,10 @@
 <translation id="7737238973539693982">Supprimer Linux (bêta)</translation>
 <translation id="7740996059027112821">Standard</translation>
 <translation id="7744047395460924128">Afficher votre historique d'impression</translation>
+<translation id="7744192722284567281">Trouvé dans une violation de données</translation>
 <translation id="7746457520633464754">Pour détecter les applications et les sites dangereux, Chrome envoie à Google l'URL de certaines pages que vous visitez, certaines données système et du contenu partiel des pages en question</translation>
 <translation id="7750228210027921155">Incrustation d'image</translation>
+<translation id="7751229152614300329">La navigation sécurisée est à jour et vous protège contre les sites et les téléchargements nuisibles</translation>
 <translation id="7751260505918304024">Tout afficher</translation>
 <translation id="7754704193130578113">Toujours demander où enregistrer les fichiers</translation>
 <translation id="7755287808199759310">L'un de tes parents peut le débloquer pour toi</translation>
@@ -4993,6 +5026,7 @@
 <translation id="7910768399700579500">&amp;Nouveau dossier</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Votre mot de passe a été modifié sur le serveur. Veuillez vous déconnecter, puis vous reconnecter.</translation>
+<translation id="7914583336730284547">Ces fichiers déposés violent les politiques de sécurité de votre organisation. Souhaitez-vous poursuivre quand même?</translation>
 <translation id="7915457674565721553">Connectez-vous à Internet pour configurer les contrôles parentaux</translation>
 <translation id="7915471803647590281">Veuillez nous indiquer ce qui se passe avant d'envoyer votre rapport.</translation>
 <translation id="7918257978052780342">S'inscrire</translation>
@@ -5089,6 +5123,7 @@
 <translation id="8028803902702117856">Téléchargement en cours : <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">Taille</translation>
 <translation id="8030656706657716245">Ajouter une imprimante</translation>
+<translation id="8030852056903932865">Approuver</translation>
 <translation id="8032244173881942855">Impossible de diffuser l'onglet.</translation>
 <translation id="8033827949643255796">caractère sélectionné</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Tout ouvrir dans une fenêtre de &amp;navigation privée}=1{Ouvrir dans une fenêtre de &amp;navigation privée}one{Tout ouvrir (#) dans une fenêtre de &amp;navigation privée}other{Tout ouvrir (#) dans une fenêtre de &amp;navigation privée}}</translation>
@@ -5409,6 +5444,7 @@
 <translation id="8472623782143987204">soutenue par du matériel</translation>
 <translation id="8473863474539038330">Adresses et plus</translation>
 <translation id="8475313423285172237">Un autre programme sur votre ordinateur a ajouté une extension qui risque de modifier le fonctionnement de Google Chrome.</translation>
+<translation id="8476659515398963495">Cette donnée collée viole les politiques de sécurité de votre organisation. Souhaitez-vous poursuivre quand même?</translation>
 <translation id="8477241577829954800">Remplacé</translation>
 <translation id="8477384620836102176">&amp;Général</translation>
 <translation id="8480082892550707549">Même si vous avez déjà téléchargé des fichiers de ce site, il se peut que ce dernier soit temporairement dangereux (suite à du piratage). Réessayez de télécharger ce fichier plus tard.</translation>
@@ -5462,6 +5498,7 @@
 <translation id="8547013269961688403">Activer la loupe en mode plein écran</translation>
 <translation id="85486688517848470">Maintenez le doigt sur la touche de recherche pour modifier la fonction des touches de la rangée supérieure</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 élément}one{# élément}other{# éléments}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> sera en mesure de modifier les fichiers dans le dossier <ph name="FOLDERNAME" /> jusqu'à ce que vous fermiez tous les onglets de <ph name="ORIGIN" /></translation>
 <translation id="8551388862522347954">Licences</translation>
 <translation id="8553342806078037065">Gérer d'autres personnes</translation>
 <translation id="8554899698005018844">Aucune langue</translation>
@@ -5520,6 +5557,7 @@
 <translation id="8637688295594795546">Mise à jour du système possible. Préparation du téléchargement…</translation>
 <translation id="8639047128869322042">Recherche de logiciels nuisibles en cours…</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – Port</translation>
+<translation id="8641606876632989680">Chrome vous avisera lorsque vous utilisez un mot de passe compromis pour vous connecter</translation>
 <translation id="8642900771896232685">2 secondes</translation>
 <translation id="8642947597466641025">Augmenter la taille du texte</translation>
 <translation id="8644655801811752511">Impossible de réinitialiser cette clé de sécurité. Essayez de réinitialiser la clé immédiatement après l'avoir insérée.</translation>
@@ -5569,6 +5607,7 @@
 <translation id="869884720829132584">Menu Applications</translation>
 <translation id="869891660844655955">Date d'expiration</translation>
 <translation id="8703346390800944767">Ignorer l'annonce</translation>
+<translation id="870341961648617780">Navigation sécurisée et paramètres de sécurité avancés</translation>
 <translation id="8705331520020532516">Numéro de série</translation>
 <translation id="8705580154597116082">Connexion Wi-Fi possible à l'aide d'un téléphone</translation>
 <translation id="8705629851992224300">Impossible de lire votre clé de sécurité</translation>
@@ -5614,6 +5653,7 @@
 <translation id="874689135111202667">{0,plural, =1{Téléverser un fichier sur ce site?}one{Téléverser # fichier sur ce site?}other{Téléverser # fichiers sur ce site?}}</translation>
 <translation id="8748384418490037181">Options Smart Lock</translation>
 <translation id="8749863574775030885">Accéder aux appareils USB d’un fournisseur inconnu</translation>
+<translation id="8750133148106010815">Pour démarrer Google Play, <ph name="ORGANIZATION_NAME" /> vous demande de sauvegarder vos données et de réinitialiser ce Chromebook à ses paramètres par défaut.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> veut se connecter à un port de série</translation>
 <translation id="8754200782896249056">&lt;p&gt;Lors de l'exécution de <ph name="PRODUCT_NAME" /> dans un environnement de bureau compatible, les paramètres du serveur mandataire du système seront utilisés. Cependant, soit votre système n'est pas compatible, soit un problème est survenu lors du lancement de votre configuration système.&lt;/p&gt;
 
@@ -5668,6 +5708,7 @@
 <translation id="8809147117840417135">Turquoise clair</translation>
 <translation id="8813698869395535039">Impossible de connecter <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">feuille de papier</translation>
+<translation id="8813872945700551674">Demande à un parent d'approuver l'extension « <ph name="EXTENSION_NAME" /> »</translation>
 <translation id="8813969267212093033">Le texte du système est affiché dans cette langue</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Veuillez patienter, la numérisation de l'archive est en cours…</translation>
@@ -5948,6 +5989,7 @@
 <translation id="9203398526606335860">&amp;Profilage activé</translation>
 <translation id="9203904171912129171">Sélectionner un appareil</translation>
 <translation id="9203962528777363226">L'administrateur de cet appareil a désactivé la fonctionnalité d'ajout de nouveaux utilisateurs</translation>
+<translation id="9211177926627870898">Mise à jour requise</translation>
 <translation id="9214520840402538427">Oups… Le délai alloué à l'initialisation des attributs de temps d'installation a expiré. Veuillez communiquer avec le service d'assistance.</translation>
 <translation id="9214695392875603905">Petit gâteau</translation>
 <translation id="9215293857209265904">« <ph name="EXTENSION_NAME" /> » a été ajouté</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 33331849..45bd9786 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Effacer également les données issues de ces applications ?</translation>
 <translation id="1045692658517323508">{0,plural, =1{Mettre à jour d'ici 1 minute}one{Mettre à jour d'ici # minute}other{Mettre à jour d'ici # minutes}}</translation>
 <translation id="1046635659603195359">Il semble que vous ayez déjà configuré Voice Match avec l'Assistant Google sur un autre appareil. Vous pouvez utiliser ces enregistrements précédents pour créer une empreinte vocale sur cet appareil. Cela devrait prendre moins d'une minute.</translation>
+<translation id="104710386808485638">Redémarrer Linux ?</translation>
 <translation id="1047431265488717055">Copier le te&amp;xte du lien</translation>
 <translation id="1048286738600630630">Affichage</translation>
 <translation id="1049743911850919806">Navigation privée</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Connectez-vous à <ph name="TOKEN_NAME" /> pour exporter le certificat client.</translation>
 <translation id="1163931534039071049">&amp;Afficher le code source du cadre</translation>
 <translation id="1164674268730883318">Désactiver Smart Lock pour l'appareil <ph name="DEVICE_TYPE" /> ?</translation>
+<translation id="1164891049599601209">Saisi sur un site trompeur</translation>
 <translation id="1164899421101904659">Saisir la clé de déverrouillage du code</translation>
 <translation id="1165039591588034296">Erreur</translation>
 <translation id="1166212789817575481">Fermer les onglets sur la droite</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">Mode Kiosque automatique</translation>
 <translation id="1545775234664667895">Thème "<ph name="THEME_NAME" />" installé</translation>
 <translation id="1546280085599573572">Cette extension a modifié la page affichée lorsque vous cliquez sur le bouton Accueil.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> souhaite installer une <ph name="EXTENSION_TYPE" /> disposant des autorisations suivantes :</translation>
 <translation id="1549275686094429035">ARC activé</translation>
 <translation id="1549788673239553762">"<ph name="APP_NAME" />" souhaite accéder à "<ph name="VOLUME_NAME" />". L'application peut modifier ou supprimer vos fichiers.</translation>
 <translation id="1553538517812678578">sans limite</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">VM Plug-in</translation>
 <translation id="1679810534535368772">Voulez-vous vraiment quitter cet écran ?</translation>
 <translation id="167983332380191032">Le service de gestion a renvoyé une erreur HTTP.</translation>
+<translation id="1680841347983561661">Veuillez réessayer d'ouvrir Google Play dans quelques instants.</translation>
 <translation id="1680849702532889074">Une erreur s'est produite pendant l'installation de votre application Linux.</translation>
 <translation id="16815041330799488">Interdire aux sites de voir le texte et les images copiés dans le presse-papiers</translation>
 <translation id="1682548588986054654">Nouvelle fenêtre de navigation privée</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> a planté. Cliquez sur cette info-bulle pour actualiser l'extension.</translation>
 <translation id="2025891858974379949">Contenu non sécurisé</translation>
 <translation id="202918510990975568">Saisissez votre mot de passe pour configurer la sécurité et la connexion</translation>
+<translation id="2030672406208960151">Ouvrir le terminal de récupération</translation>
 <translation id="2034346955588403444">Ajouter un réseau Wi-Fi</translation>
 <translation id="203574396658008164">Activer la prise de notes depuis l'écran de verrouillage</translation>
 <translation id="2037445849770872822">La supervision est configurée pour ce compte Google. Pour configurer des paramètres de contrôle parental supplémentaires, sélectionnez "Continuer".
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">Code ou mot de passe</translation>
 <translation id="2224444042887712269">Ce paramètre appartient à <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">Modifier le nom du dossier</translation>
+<translation id="2225864335125757863">Modifiez ces mots de passe immédiatement pour protéger votre compte :</translation>
 <translation id="2226449515541314767">Le contrôle total des appareils MIDI a été bloqué pour ce site.</translation>
 <translation id="222704500187107962">Cette exception sera automatiquement supprimée une fois que vous aurez quitté la session de navigation privée en cours</translation>
 <translation id="2227179592712503583">Supprimer la suggestion</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">Revenir à l'accueil</translation>
 <translation id="2387458720915042159">Type de connexion proxy</translation>
 <translation id="2391419135980381625">Police standard</translation>
+<translation id="2392163307141705938">Tu as atteint la limite de temps définie par l'un de tes parents pour <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Activer</translation>
 <translation id="2394566832561516196">Les paramètres seront effacés lors du prochain chargement de la page.</translation>
 <translation id="2395616325548404795">Votre <ph name="DEVICE_TYPE" /> a bien été enregistré pour bénéficier de la gestion d'entreprise, mais l'envoi d'informations concernant ses éléments et sa position a échoué. Veuillez saisir ces informations manuellement depuis la console d'administration de cet appareil.</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">Partager le contenu audio</translation>
 <translation id="2480868415629598489">Modifier les données que vous copiez-collez</translation>
 <translation id="2482878487686419369">Notifications</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> pourra modifier le fichier "<ph name="FILENAME" />" jusqu'à ce que vous fermiez tous les onglets du site <ph name="ORIGIN" /></translation>
 <translation id="2484959914739448251">Pour effacer les données de navigation sur tous vos appareils synchronisés et dans votre compte Google, <ph name="BEGIN_LINK" />saisissez votre phrase secrète<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Mot de passe enregistré sur cet appareil</translation>
 <translation id="2485422356828889247">Désinstaller</translation>
@@ -1299,6 +1307,7 @@
 <translation id="274290345632688601">Restauration des applications et fichiers Linux</translation>
 <translation id="2743387203779672305">Copier dans le presse-papiers</translation>
 <translation id="2745080116229976798">Subordination qualifiée Microsoft</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> est mis en pause</translation>
 <translation id="2749756011735116528">Connexion à <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">Vérifier la grammaire et l'orthographe</translation>
 <translation id="2751739896257479635">Authentification EAP phase 2</translation>
@@ -1307,6 +1316,7 @@
 <translation id="275662540872599901">écran désactivé</translation>
 <translation id="2762441749940182211">Caméra bloquée</translation>
 <translation id="2765217105034171413">Petite</translation>
+<translation id="2766161002040448006">Demander à l'un des parents</translation>
 <translation id="276969039800130567">Connecté en tant que <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="2770465223704140727">Retirer de la liste</translation>
 <translation id="2770690685823456775">Exportez vos mots de passe dans un autre dossier</translation>
@@ -1558,6 +1568,7 @@
 <translation id="3115580024857770654">Tout réduire</translation>
 <translation id="3117362587799608430">Cette station d'accueil présente un problème de compatibilité</translation>
 <translation id="3118319026408854581">Aide <ph name="PRODUCT_NAME" /></translation>
+<translation id="3118654181216384296">Veuillez réessayer de démarrer Linux dans quelques instants.</translation>
 <translation id="3120430004221004537">Chiffrement insuffisant pour une opération donnée sur l'appareil <ph name="DEVICE_NAME" />.</translation>
 <translation id="3121793941267913344">Réinitialiser cet appareil <ph name="IDS_SHORT_PRODUCT_NAME" /></translation>
 <translation id="3122464029669770682">UC</translation>
@@ -1567,6 +1578,7 @@
 <translation id="3127156390846601284">Toutes les données enregistrées sur votre appareil seront supprimées pour tous les sites affichés. Voulez-vous continuer ?</translation>
 <translation id="3127860049873093642">Pour éviter tout problème de charge et de performances, utilisez un adaptateur secteur USB Type-C ou Dell compatible.</translation>
 <translation id="3129173833825111527">Marge gauche</translation>
+<translation id="3129215702932019810">Erreur lors du lancement de l'application</translation>
 <translation id="3130528281680948470">Votre appareil va être réinitialisé. Les données locales et les comptes utilisateur qu'il contient vont être supprimés. Cette opération est irréversible.</translation>
 <translation id="313205617302240621">Mot de passe oublié ?</translation>
 <translation id="3132996321662585180">Actualiser quotidiennement</translation>
@@ -1782,6 +1794,7 @@
 <translation id="3441653493275994384">Écran</translation>
 <translation id="3445925074670675829">Appareil USB de type C</translation>
 <translation id="344630545793878684">Lire vos données sur plusieurs sites web</translation>
+<translation id="3448086340637592206">Conditions d'utilisation supplémentaires de Google Chrome et Chrome OS</translation>
 <translation id="3448492834076427715">Mettre à jour le compte</translation>
 <translation id="3449839693241009168">Appuyez sur <ph name="SEARCH_KEY" /> pour envoyer des commandes à <ph name="EXTENSION_NAME" />.</translation>
 <translation id="3450157232394774192">Taux d'occupation en veille</translation>
@@ -2129,6 +2142,7 @@
 <translation id="3873423927483480833">Afficher les codes</translation>
 <translation id="3873915545594852654">Un problème est survenu avec ARC++.</translation>
 <translation id="3879748587602334249">Gestionnaire de téléchargement</translation>
+<translation id="3881321138433527084">La navigation sécurisée est désactivée. Pour naviguer sur le Web de manière sécurisée, activez-la.</translation>
 <translation id="3882165008614329320">Vidéo existante filmée avec la caméra ou lue à partir d'un fichier</translation>
 <translation id="3886446263141354045">Votre demande d'accès à ce site a bien été envoyée à <ph name="NAME" /></translation>
 <translation id="3888550877729210209">Prise de notes avec <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2470,6 +2484,7 @@
 <translation id="4384652540891215547">Activer l'extension</translation>
 <translation id="438503109373656455">Longchamp</translation>
 <translation id="4387004326333427325">Certificat d'authentification rejeté à distance.</translation>
+<translation id="4387890294700445764">Mots de passe compromis</translation>
 <translation id="4389091756366370506">Utilisateur <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Navigation privée}one{# fenêtre de navigation privée ouverte}other{# fenêtres de navigation privée ouvertes}}</translation>
 <translation id="439266289085815679">La configuration Bluetooth est contrôlée par <ph name="USER_EMAIL" />.</translation>
@@ -2501,6 +2516,7 @@
 <translation id="4429030830601238961">Impossible de coller ces données, car elles ne respectent pas les règles de sécurité de votre organisation.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Favori ajouté</translation>
+<translation id="4432621511648257259">Mot de passe incorrect</translation>
 <translation id="4434045419905280838">Pop-up et redirections</translation>
 <translation id="443454694385851356">Anciens types de chiffrement (option non sécurisée)</translation>
 <translation id="443475966875174318">Mettre à jour ou supprimer des applications incompatibles</translation>
@@ -2750,6 +2766,7 @@
 <translation id="4808667324955055115">Pop-up bloqués :</translation>
 <translation id="480990236307250886">Ouvrir la page d'accueil</translation>
 <translation id="4811503964269049987">Regrouper les onglets sélectionnés</translation>
+<translation id="4811818760963189951">Fonctionnalité désactivée, car vous avez arrêté la synchronisation de l'historique</translation>
 <translation id="4813136279048157860">Mes images</translation>
 <translation id="4813512666221746211">Erreur réseau.</translation>
 <translation id="4814378367953456825">Attribuez un nom à cette empreinte</translation>
@@ -2779,6 +2796,7 @@
 <translation id="4850669014075537160">Défilement</translation>
 <translation id="4850886885716139402">Afficher</translation>
 <translation id="4853020600495124913">Ouvrir dans une &amp;nouvelle fenêtre</translation>
+<translation id="4854317507773910281">Sélectionnez un compte parental pour la demande d'autorisation</translation>
 <translation id="485480310608090163">Plus de paramètres et d'autorisations</translation>
 <translation id="4856478137399998590">Votre service Internet mobile est activé et prêt à l'emploi.</translation>
 <translation id="4856855265648545577">Afficher les boutons Lanceur d'applications, Retour et Aperçu sur l'étagère en mode tablette. Ce paramètre est activé lorsque ChromeVox (commentaires audio) ou Switch Access sont activés.</translation>
@@ -2915,10 +2933,12 @@
 <translation id="5040823038948176460">Paramètres de contenu supplémentaires</translation>
 <translation id="5042282098504489593">Ouvrir les paramètres pour connecter <ph name="USB_DEVICE_NAME" /> à Linux</translation>
 <translation id="5043913660911154449">Vous pouvez également préciser le fichier PPD correspondant à votre imprimante <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Fonctionnalité désactivée, car vous avez chiffré vos données synchronisées à l'aide d'une phrase secrète</translation>
 <translation id="5045550434625856497">Mot de passe incorrect</translation>
 <translation id="504561833207953641">Ouverture dans une session de navigateur existante.</translation>
 <translation id="5047421709274785093">Empêcher les sites d'utiliser des capteurs de mouvement et de lumière</translation>
 <translation id="5050042263972837708">Nom du groupe</translation>
+<translation id="5051073330196664891">Conditions d'utilisation universelles de Google</translation>
 <translation id="5051836348807686060">La vérification orthographique n'est pas disponible pour les langues que vous avez sélectionnées</translation>
 <translation id="5052499409147950210">Modifier le site</translation>
 <translation id="5053604404986157245">Le mot de passe TPM généré de manière aléatoire n'est pas disponible, ce qui est normal après un Powerwash.</translation>
@@ -2956,6 +2976,7 @@
 <translation id="5097002363526479830">Échec de la connexion au réseau "<ph name="NAME" />" : <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Ouvrir tous les favoris</translation>
 <translation id="5101839224773798795">Cliquer automatiquement en cas d'arrêt du curseur</translation>
+<translation id="5107443654503185812">Une extension a désactivé la navigation sécurisée</translation>
 <translation id="5108967062857032718">Paramètres – Supprimer les applications Android</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">Quitter le mode navigation privée</translation>
@@ -3042,6 +3063,7 @@
 <translation id="523505283826916779">Paramètres d'accessibilité</translation>
 <translation id="5235750401727657667">Remplace la page qui s'affiche lorsque vous ouvrez un nouvel onglet</translation>
 <translation id="5238278114306905396">L'application "<ph name="EXTENSION_NAME" />" a été automatiquement supprimée.</translation>
+<translation id="5239730228370806996">Ces données déposées ne respectent pas les règles de sécurité de votre organisation. Voulez-vous poursuivre quand même ?</translation>
 <translation id="5241128660650683457">Lire toutes vos données sur les sites auxquels vous accédez</translation>
 <translation id="5242724311594467048">Activer "<ph name="EXTENSION_NAME" />" ?</translation>
 <translation id="5243522832766285132">Veuillez réessayer dans quelques instants</translation>
@@ -3329,6 +3351,7 @@
 <translation id="5618075537869101857">Impossible de lancer l'application kiosque.</translation>
 <translation id="5618333180342767515">Cela peut prendre quelques minutes.</translation>
 <translation id="56197088284879152">La connexion est encombrée sur l'appareil à distance <ph name="DEVICE_NAME" />.</translation>
+<translation id="5620163320393916465">Aucun mot de passe enregistré</translation>
 <translation id="5620549857835247159">Afficher les boutons Lanceur d'applications, Retour et Aperçu sur l'étagère en mode tablette.</translation>
 <translation id="5620568081365989559">Un accès complet à <ph name="FOLDER_PATH" /> est requis pour DevTools.
 Assurez-vous de ne pas dévoiler d'informations sensibles.</translation>
@@ -3423,6 +3446,7 @@
 <translation id="5747785204778348146">Développeur (instable)</translation>
 <translation id="5747809636523347288">Coller et accéder à <ph name="URL" /></translation>
 <translation id="5750324801516359607">Éloigné</translation>
+<translation id="5751887393582880060">Cette importation ne respecte pas les règles de sécurité de votre organisation. Voulez-vous poursuivre quand même ?</translation>
 <translation id="5756163054456765343">C&amp;entre d'aide</translation>
 <translation id="5759728514498647443">Les documents envoyés pour impression via "<ph name="APP_NAME" />" sont lisibles avec "<ph name="APP_NAME" />"</translation>
 <translation id="5763751966069581670">Aucun appareil USB détecté</translation>
@@ -3632,6 +3656,7 @@
 <translation id="6040852767465482106">Authentification anonyme</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Le service de localisation de Google utilise des sources comme le Wi-Fi, les réseaux mobiles et les capteurs pour estimer la position de votre appareil.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Pour arrêter ce service, désactivez le paramètre de localisation principal sur votre appareil. Vous pouvez également désactiver l'utilisation du Wi-Fi, des réseaux mobiles et des capteurs dans vos paramètres de localisation.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> pourra afficher les fichiers du dossier <ph name="FOLDERNAME" /> jusqu'à ce que vous fermiez tous les onglets du site <ph name="ORIGIN" /></translation>
 <translation id="6041155700700864984">Quitter le mode plein écran</translation>
 <translation id="604124094241169006">Automatique</translation>
 <translation id="6042308850641462728">Plus</translation>
@@ -3693,6 +3718,7 @@
 <translation id="6104311680260824317">Impossible d'associer l'appareil au domaine. Le serveur n'accepte pas les types de chiffrement Kerberos spécifiés. Pour consulter les paramètres de chiffrement, sélectionnez "Plus d'options".</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> exige que cet appareil soit mis à jour immédiatement</translation>
 <translation id="6106186653986077033">Plugin VM exige une licence</translation>
+<translation id="6107047744202598802">Autorise les sites Web à mémoriser vos visites et à suivre votre activité sur le Web</translation>
 <translation id="6112294629795967147">Appuyer pour redimensionner</translation>
 <translation id="6112727384379533756">Ajouter un ticket</translation>
 <translation id="6112931163620622315">Vérifier le téléphone</translation>
@@ -3771,6 +3797,7 @@
 <translation id="622537739776246443">Le profil va être supprimé</translation>
 <translation id="6225475702458870625">Connexion de données disponible sur votre <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Fichier de clé privée (facultatif)</translation>
+<translation id="6227280783235722609">extension</translation>
 <translation id="6228691855869374890">Le contrôle total des appareils MIDI est activé pour ce site.</translation>
 <translation id="6228720835160974792">Générer un code QR pour cette image</translation>
 <translation id="6229890768313448549">Impossible de charger les conditions d'utilisation de Google Play. Veuillez réessayer.</translation>
@@ -3822,6 +3849,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> n'est pas un fichier couramment téléchargé. Il est peut-être dangereux.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Nouvelle imprimante sur le réseau}one{Nouvelle imprimante sur le réseau}other{Nouvelles imprimantes sur le réseau}}</translation>
 <translation id="6286708577777130801">Détails du mot de passe enregistré</translation>
+<translation id="6291163159361301370"><ph name="ORGANIZATION_NAME" /> exige que vous sauvegardiez vos données et rétablissiez la configuration d'usine de ce Chromebook pour démarrer Linux.</translation>
 <translation id="6291949900244949761">Me demander lorsqu'un site souhaite accéder aux appareils USB (recommandé)</translation>
 <translation id="6291953229176937411">&amp;Afficher dans le Finder</translation>
 <translation id="6295158916970320988">Tous les sites</translation>
@@ -4018,6 +4046,7 @@
 <translation id="6561726789132298588">entrée</translation>
 <translation id="656293578423618167">Le chemin d'accès ou le nom du fichier est trop long. Veuillez le raccourcir ou changer d'emplacement.</translation>
 <translation id="6563469144985748109">Votre responsable ne l'a pas encore autorisé</translation>
+<translation id="6565955132287672866">Votre appareil ne s'est arrêté pas correctement. Pour utiliser Linux (version bêta), vous devez le redémarrer.</translation>
 <translation id="6567688344210276845">Impossible de charger l'icône "<ph name="ICON" />" d'action de page.</translation>
 <translation id="6569934958368283244">Autres personnes</translation>
 <translation id="657402800789773160">&amp;Rafraîchir cette page</translation>
@@ -4515,6 +4544,7 @@
 <translation id="7258225044283673131">L'application ne répond pas. Sélectionnez "Forcer la fermeture" pour la fermer.</translation>
 <translation id="7258697411818564379">Votre code a bien été ajouté</translation>
 <translation id="7262004276116528033">Ce service de connexion est hébergé par <ph name="SAML_DOMAIN" />.</translation>
+<translation id="7266898409676782635">Recevez des conseils, des offres et des informations sur <ph name="DEVICE_TYPE" />, et partagez vos commentaires. Vous pouvez vous désabonner à tout moment.</translation>
 <translation id="7268127947535186412">Ce paramètre est géré par le propriétaire de l'appareil.</translation>
 <translation id="7270858098575133036">Demander lorsqu'un site souhaite utiliser des messages spécifiques au système pour accéder aux appareils MIDI</translation>
 <translation id="7272674038937250585">Aucune description fournie</translation>
@@ -4588,6 +4618,7 @@
 <translation id="7364796246159120393">Choisir un fichier</translation>
 <translation id="7366415735885268578">Ajouter un site</translation>
 <translation id="7366909168761621528">Données de navigation</translation>
+<translation id="7367714965999718019">Générateur de code QR</translation>
 <translation id="736877393389250337">Impossible d'ouvrir <ph name="URL" /> dans <ph name="ALTERNATIVE_BROWSER_NAME" />. Veuillez contacter votre administrateur système.</translation>
 <translation id="7370592524170198497">EAP Ethernet :</translation>
 <translation id="7371006317849674875">Heure de début</translation>
@@ -4845,8 +4876,10 @@
 <translation id="7737238973539693982">Effacer Linux (Bêta)</translation>
 <translation id="7740996059027112821">Standard</translation>
 <translation id="7744047395460924128">Afficher l'historique d'impression</translation>
+<translation id="7744192722284567281">Détecté lors d'une violation des données</translation>
 <translation id="7746457520633464754">Pour détecter les applications et sites dangereux, Chrome envoie à Google l'URL de certaines pages que vous consultez, ainsi que des informations système limitées et une partie du contenu de certaines pages.</translation>
 <translation id="7750228210027921155">Mode PIP (Picture-in-Picture)</translation>
+<translation id="7751229152614300329">La navigation sécurisée est à jour et vous protège contre les sites et les téléchargements dangereux</translation>
 <translation id="7751260505918304024">Tout afficher</translation>
 <translation id="7754704193130578113">Toujours demander où enregistrer les fichiers</translation>
 <translation id="7755287808199759310">Ton parent peut te le débloquer</translation>
@@ -4994,6 +5027,7 @@
 <translation id="7910768399700579500">&amp;Nouveau dossier</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Votre mot de passe a été modifié sur le serveur. Veuillez vous déconnecter, puis vous reconnecter.</translation>
+<translation id="7914583336730284547">Ces fichiers déposés ne respectent pas les règles de sécurité de votre organisation. Voulez-vous poursuivre quand même ?</translation>
 <translation id="7915457674565721553">Connectez-vous à Internet pour configurer le contrôle parental</translation>
 <translation id="7915471803647590281">Veuillez nous indiquer ce qu'il se passe avant d'envoyer votre rapport.</translation>
 <translation id="7918257978052780342">Enregistrer</translation>
@@ -5091,6 +5125,7 @@
 <translation id="8028803902702117856">Téléchargement en cours : <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">Taille</translation>
 <translation id="8030656706657716245">Ajouter une imprimante</translation>
+<translation id="8030852056903932865">Approuver</translation>
 <translation id="8032244173881942855">Impossible de caster l'onglet.</translation>
 <translation id="8033827949643255796">sélectionné</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Tout ouvrir dans une fenêtre de navigation &amp;privée}=1{Ouvrir dans une fenêtre de navigation &amp;privée}one{Tout ouvrir (#) dans une fenêtre de navigation &amp;privée}other{Tout ouvrir (#) dans une fenêtre de navigation &amp;privée}}</translation>
@@ -5411,6 +5446,7 @@
 <translation id="8472623782143987204">matériel requis</translation>
 <translation id="8473863474539038330">Adresses et autres</translation>
 <translation id="8475313423285172237">Un autre programme sur votre ordinateur a ajouté une extension qui risque de modifier le fonctionnement de Google Chrome.</translation>
+<translation id="8476659515398963495">Ces données collées ne respectent pas les règles de sécurité de votre organisation. Voulez-vous poursuivre quand même ?</translation>
 <translation id="8477241577829954800">Remplacé</translation>
 <translation id="8477384620836102176">&amp;Général</translation>
 <translation id="8480082892550707549">Même si vous avez déjà téléchargé des fichiers provenant de ce site, il est possible que ce dernier soit temporairement dangereux (suite à un piratage). Réessayez de télécharger ce fichier ultérieurement.</translation>
@@ -5464,6 +5500,7 @@
 <translation id="8547013269961688403">Activer la loupe plein écran</translation>
 <translation id="85486688517848470">Maintenir la touche de recherche enfoncée pour modifier la fonction des touches de la rangée supérieure</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 élément}one{# élément}other{# éléments}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> pourra modifier les fichiers du dossier "<ph name="FOLDERNAME" />" jusqu'à ce que vous fermiez tous les onglets du site <ph name="ORIGIN" /></translation>
 <translation id="8551388862522347954">Licences</translation>
 <translation id="8553342806078037065">Gérer d'autres utilisateurs</translation>
 <translation id="8554899698005018844">Aucune langue</translation>
@@ -5522,6 +5559,7 @@
 <translation id="8637688295594795546">Mise à jour du système disponible. Préparation du téléchargement…</translation>
 <translation id="8639047128869322042">Recherche de logiciels malveillants…</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – Port</translation>
+<translation id="8641606876632989680">Chrome vous avertira si vous vous connectez avec un mot de passe compromis</translation>
 <translation id="8642900771896232685">2 secondes</translation>
 <translation id="8642947597466641025">Augmente la taille du texte</translation>
 <translation id="8644655801811752511">Impossible de réinitialiser cette clé de sécurité. Essayez de la réinitialiser immédiatement après l’avoir insérée.</translation>
@@ -5571,6 +5609,7 @@
 <translation id="869884720829132584">Menu Applications</translation>
 <translation id="869891660844655955">Date d'expiration</translation>
 <translation id="8703346390800944767">Ignorer l'annonce</translation>
+<translation id="870341961648617780">Navigation sécurisée et paramètres de sécurité avancés</translation>
 <translation id="8705331520020532516">Numéro de série</translation>
 <translation id="8705580154597116082">Wi-Fi disponible via le téléphone</translation>
 <translation id="8705629851992224300">Impossible de lire votre clé de sécurité</translation>
@@ -5616,6 +5655,7 @@
 <translation id="874689135111202667">{0,plural, =1{Importer un fichier sur ce site ?}one{Importer # fichier sur ce site ?}other{Importer # fichiers sur ce site ?}}</translation>
 <translation id="8748384418490037181">Options Smart Lock</translation>
 <translation id="8749863574775030885">Accéder à des appareils USB d'un fournisseur inconnu</translation>
+<translation id="8750133148106010815"><ph name="ORGANIZATION_NAME" /> exige que vous sauvegardiez vos données et rétablissiez la configuration d'usine de ce Chromebook pour ouvrir Google Play.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> tente de se connecter à un port de série</translation>
 <translation id="8754200782896249056">&lt;p&gt;Lorsque vous exécutez <ph name="PRODUCT_NAME" /> dans un environnement de bureau compatible, les paramètres proxy du système sont utilisés. Cependant, soit votre système n'est pas compatible, soit un problème est survenu lors du lancement de votre configuration système.&lt;/p&gt;
 
@@ -5670,6 +5710,7 @@
 <translation id="8809147117840417135">Turquoise clair</translation>
 <translation id="8813698869395535039">Impossible de se connecter au compte <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">feuille de papier</translation>
+<translation id="8813872945700551674">Demande à l'un de tes parents d'approuver le fichier "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="8813969267212093033">Cette langue est utilisée pour le texte du système</translation>
 <translation id="8814190375133053267">Wi-Fi </translation>
 <translation id="8814687660896548945">Veuillez patienter. Analyse de l'archive…</translation>
@@ -5950,6 +5991,7 @@
 <translation id="9203398526606335860">&amp;Profilage activé</translation>
 <translation id="9203904171912129171">Sélectionner un appareil</translation>
 <translation id="9203962528777363226">L'administrateur de cet appareil a désactivé la fonctionnalité d'ajout de nouveaux utilisateurs</translation>
+<translation id="9211177926627870898">Mise à jour requise</translation>
 <translation id="9214520840402538427">Petit problème… Le délai alloué à l'initialisation des attributs de temps d'installation a expiré. Veuillez contacter le service d'assistance.</translation>
 <translation id="9214695392875603905">Cupcake</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" ajoutée</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index b908ba7..369e5f3 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Postavke pohrane Adobe Flash Playera</translation>
 <translation id="1274997165432133392">Kolačići i ostali podaci o web-lokacijama</translation>
 <translation id="1280820357415527819">Traženje mobilnih mreža</translation>
+<translation id="1280965841156951489">Uredi datoteke</translation>
 <translation id="1282420830958964167">Isteklo je ograničenje za aplikaciju "<ph name="APP_NAME" />" koje su postavili tvoji roditelji. Sutra je možeš koristiti <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Nikad nemoj prevoditi ovu web-lokaciju</translation>
 <translation id="1285484354230578868">spremati podatke na vaš račun na Google disku</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Tamnoljubičasta</translation>
 <translation id="1692799361700686467">Dopušteni su kolačići s više web-mjesta</translation>
 <translation id="1697150536837697295">Umjetnost</translation>
+<translation id="1697686431566694143">Uredi datoteku</translation>
 <translation id="1698122934742150150">Samo trenutačna anonimna sesija</translation>
 <translation id="1698650002254827833">Učitavanje popisa aplikacija nije uspjelo. Pokušajte ponovo.</translation>
 <translation id="1701062906490865540">Ukloni ovu osobu</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Nema instaliranih komponenti.</translation>
 <translation id="1932098463447129402">Ne prije</translation>
 <translation id="1933809209549026293">Priključite miš ili tipkovnicu. Ako upotrebljavate Bluetooth uređaj, provjerite je li spreman za uparivanje.</translation>
+<translation id="1936931585862840749">Kako biste odredili broj primjeraka za ispis, navedite broj (od 1 do <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Nije moguće uvesti vrstu arhitekture spremnika <ph name="ARCHITECTURE_CONTAINER" /> na ovom uređaju jer je njegova arhitektura <ph name="ARCHITECTURE_DEVICE" />. Pokušajte vratiti spremnik na nekom drugom uređaju ili pristupite datotekama u spremniku pomoću aplikacije Datoteke.</translation>
 <translation id="1938351510777341717">Vanjska naredba</translation>
 <translation id="1940546824932169984">Povezani uređaji</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Fokusiraj tu karticu</translation>
 <translation id="2344028582131185878">Automatska preuzimanja</translation>
 <translation id="2345723121311404059">1 stranica na pisač <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Usluga SODA</translation>
 <translation id="2347644257713614136">Upotrebu usluga Hangouts i Cast for Education reguliraju Googleova pravila o privatnosti.</translation>
 <translation id="2348176352564285430">Aplikacija: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Ponovno učitano</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Otkazano je vraćanje Linuxa</translation>
 <translation id="2423578206845792524">Sp&amp;remi sliku kao...</translation>
 <translation id="2428510569851653187">Opišite što ste radili kada se kartica srušila</translation>
+<translation id="2428939361789119025">Isključite Wi-Fi</translation>
 <translation id="2431027948063157455">Učitavanje Google asistenta nije uspjelo, provjerite mrežnu vezu i pokušajte ponovo.</translation>
 <translation id="2432753757290432042">Potrebno je ažurirati Linux (Beta)</translation>
 <translation id="2433452467737464329">Dodajte parametar upita u URL da biste automatski osvježili stranicu: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Slanje podataka o upotrebi i dijagnostici. Pomognite poboljšati Android automatskim slanjem dijagnostičkih podataka te podataka o upotrebi uređaja i aplikacija Googleu. Ti podaci pomoći će poboljšati stabilnost sustava, aplikacija i drugo. Neki skupni podaci pomoći će i Googleovim aplikacijama i partnerima, na primjer razvojnim programerima za Android. Ako je uključena dodatna postavka Aktivnost na webu i u aplikacijama, ti se podaci mogu spremati na vaš Google račun. <ph name="BEGIN_LINK1" />Saznajte više<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Dodaj vezu</translation>
 <translation id="2947605845283690091">Pregledavanje weba treba biti brzo. Odvojite trenutak i <ph name="BEGIN_LINK" />pregledajte svoja proširenja<ph name="END_LINK" /> odmah.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{Isključeno je jedno potencijalno štetno proširenje. Možete ga i ukloniti.}one{Isključeno je # potencijalno štetno proširenje. Možete ih i ukloniti.}few{Isključena su # potencijalno štetna proširenja. Možete ih i ukloniti.}other{Isključeno je # potencijalno štetnih proširenja. Možete ih i ukloniti.}}</translation>
 <translation id="2948300991547862301">Idi na stranicu <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Brz, jednostavan i siguran web-preglednik izrađen za moderni web.</translation>
 <translation id="2949289451367477459">Upotrebljavajte lokaciju. Aplikacijama i uslugama s dopuštenjem za lokaciju dopustite da upotrebljavaju lokaciju ovog uređaja. Google povremeno može prikupljati podatke o lokaciji i upotrebljavati te podatke na anoniman način radi poboljšanja točnosti lokacije i usluga temeljenih na lokaciji.<ph name="BEGIN_LINK1" />Saznajte više<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Želite li instalirati aplikaciju?</translation>
 <translation id="3067198360141518313">Pokrenite ovaj dodatak</translation>
 <translation id="3071624960923923138">Ovdje možete kliknuti za otvaranje nove kartice</translation>
+<translation id="3072775339180057696">Dopustiti web-lokaciji da pregleda <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Za pokretanje postupka Powerwash potrebno je ponovo pokrenuti uređaj. Nakon ponovnog pokretanja morat ćete potvrditi da želite nastaviti.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Podaci za prijavu su izbrisani</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Web-lokacija može upotrebljavati vašu kameru</translation>
 <translation id="3085752524577180175">SOCKS host</translation>
 <translation id="3088052000289932193">Web-lokacija upotrebljava MIDI</translation>
+<translation id="3088128611727407543">Priprema profila aplikacije...</translation>
 <translation id="3088325635286126843">&amp;Preimenuj...</translation>
 <translation id="3089137131053189723">Pretraživanje izbrisano</translation>
 <translation id="3090193911106258841">Pristupanje audio i videoulazu</translation>
@@ -1596,6 +1604,7 @@
     Opis:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Aplikacije sustava Chrome</translation>
+<translation id="3150693969729403281">Odmah pokrenite sigurnosnu provjeru</translation>
 <translation id="3150927491400159470">Tvrdo ponovno učitavanje</translation>
 <translation id="315116470104423982">Mobilni podaci</translation>
 <translation id="3151539355209957474">Vrijeme početka</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Prijavite se u Chrome</translation>
 <translation id="3285322247471302225">Nova &amp;kartica</translation>
 <translation id="328571385944182268">Spremiti zaporke?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> moći će pregledavati <ph name="FILENAME" /> dok ne zatvorite sve <ph name="ORIGIN" /> kartice</translation>
 <translation id="3288047731229977326">Proširenja pokrenuta u načinu rada razvojnog programera mogu naštetiti vašem računalu. Ako niste razvojni programer, trebali biste onemogućiti proširenja koja su pokrenuta u načinu rada razvojnog programera radi svoje zaštite.</translation>
 <translation id="3289856944988573801">Da biste provjerili ima li ažuriranja, upotrijebite Ethernet ili Wi-Fi.</translation>
 <translation id="3290356915286466215">Nije osigurano</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">čitati vaše podatke s raznih web-lokacija</translation>
 <translation id="3448086340637592206">Dodatni uvjeti za Google Chrome i OS Chrome</translation>
 <translation id="3448492834076427715">Ažuriraj račun</translation>
+<translation id="3449393517661170867">Novi prozor s karticama</translation>
 <translation id="3449839693241009168">Pritisnite <ph name="SEARCH_KEY" /> da biste poslali naredbe usluzi <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Postotak zauzetosti u stanju mirovanja</translation>
 <translation id="3451332697983754369">Sinkroniziraj moj uređaj <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Zahvaljujemo vam na povratnim informacijama. Trenutačno ste offline, pa će se izvješće poslati kasnije.</translation>
 <translation id="3682824389861648626">Prag pokreta</translation>
 <translation id="3683524264665795342">Zahtjev aplikacije <ph name="APP_NAME" /> za dijeljenje zaslona</translation>
+<translation id="3686074530047028092">Education račun</translation>
 <translation id="368789413795732264">Došlo je do pogreške pri pokušaju pisanja datoteke: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">pisati u datoteke i mape koje otvorite u aplikaciji</translation>
 <translation id="3688526734140524629">Promijeni kanal</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">blokirati dijelove web-stranica</translation>
 <translation id="3760460896538743390">Provjeri &amp;pozadinsku stranicu</translation>
 <translation id="37613671848467444">Otvori u &amp;anonimnom prozoru</translation>
+<translation id="3761556954875533505">Dopustiti web-lokaciji da uredi datoteke?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Komuniciranje s USB uređajem}one{Komuniciranje s # USB uređajem}few{Komuniciranje s # USB uređaja}other{Komuniciranje s # USB uređaja}}</translation>
 <translation id="3765246971671567135">Nije bilo moguće pročitati pravila izvanmrežnog demo načina.</translation>
 <translation id="3768037234834996183">Sinkroniziranje postavki...</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Odbij</translation>
 <translation id="3928570707778085600">Želite li spremiti promjene u <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Proširenja mogu vidjeti i promijeniti podatke na web-lokaciji.</translation>
+<translation id="3930155420525972941">Premještanje grupe u novi prozor</translation>
 <translation id="3930737994424905957">Traženje uređaja</translation>
 <translation id="3930968231047618417">Boja pozadine</translation>
 <translation id="3933283459331715412">Vratite izbrisanu zaporku za <ph name="USERNAME" /></translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Slažem se</translation>
 <translation id="413121957363593859">Komponente</translation>
 <translation id="4131410914670010031">Crno-bijelo</translation>
+<translation id="4133076602192971179">Otvorite aplikaciju da biste promijenili zaporku</translation>
 <translation id="4136203100490971508">Noćno svjetlo automatski će se isključiti nakon izlaska sunca</translation>
 <translation id="41365691917097717">Nastavak će omogućiti ADB otklanjanje pogrešaka za izradu i testiranje Android aplikacija. Napominjemo da se time omogućuje instaliranje Android aplikacija koje Google nije potvrdio i da je za onemogućivanje potrebno vraćanje na tvorničke postavke.</translation>
 <translation id="4138267921960073861">Prikaži korisnička imena i fotografije na zaslonu za prijavu</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Nikad ne prevodi <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Postavljanje roditeljskog nadzora</translation>
 <translation id="4333854382783149454">PKCS br. 1 SHA-1 s RSA enkripcijom</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Vaš je administrator ponovo uključio jedno potencijalno štetno proširenje}one{Vaš je administrator ponovo uključio # potencijalno štetno proširenje}few{Vaš je administrator ponovo uključio # potencijalno štetna proširenja}other{Vaš je administrator ponovo uključio # potencijalno štetnih proširenja}}</translation>
 <translation id="4336434711095810371">Izbriši sve podatke</translation>
 <translation id="4336979451636460645">Za mrežne zapisnike pogledajte: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> želi komunicirati s aplikacijom "<ph name="EXTENSION_NAME" />"</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Upotrebljavate sigurnosni ključ koji nije registriran na toj web-lokaciji</translation>
 <translation id="4788092183367008521">Provjerite mrežnu vezu i pokušajte ponovo.</translation>
 <translation id="4792711294155034829">&amp;Prijavljivanje problema...</translation>
+<translation id="4794810983896241342">Ažuriranjima upravlja <ph name="BEGIN_LINK" />vaš administrator<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Web-stranica, samo HTML</translation>
 <translation id="4798236378408895261">Priloži <ph name="BEGIN_LINK" />Bluetooth zapisnike<ph name="END_LINK" /> (Google interno)</translation>
 <translation id="4801448226354548035">Sakrij račune</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Otvorite novu karticu za istodobni pregled dvije stranice</translation>
 <translation id="4909038193460299775">Budući da ovim računom upravlja <ph name="DOMAIN" />, vaše oznake, povijest, zaporke i druge postavke izbrisat će se s ovog uređaja. No vaši podaci ostat će pohranjeni na vašem Google računu i možete upravljati njima na <ph name="BEGIN_LINK" />Google nadzornoj ploči<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Buđenja iz stanja mirovanja</translation>
+<translation id="4916542008280060967">Dopustiti web-lokaciji da uredi <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Prijeđite na siguran preglednik</translation>
 <translation id="4917385247580444890">Jak</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> želi komunicirati s proširenjem "<ph name="EXTENSION_NAME" />"</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Zapamti</translation>
 <translation id="5018207570537526145">Otvori web-lokaciju proširenja</translation>
 <translation id="5021750053540820849">Još nije ažurirano</translation>
+<translation id="5026806129670917316">Uključite Wi-Fi</translation>
 <translation id="5026874946691314267">Ne prikazuj to ponovo</translation>
 <translation id="5027550639139316293">Certifikat e-pošte</translation>
 <translation id="5027562294707732951">Dodaj proširenje</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">&amp;Konzola JavaScripta</translation>
 <translation id="5184209580557088469">Već postoji tiket s tim korisničkim imenom</translation>
 <translation id="5184662919967270437">Ažuriranje uređaja</translation>
+<translation id="5185359571430619712">Proširenja za recenzije</translation>
 <translation id="5185386675596372454">Najnovija verzija "<ph name="EXTENSION_NAME" />" onemogućena je jer zahtijeva više dozvola.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> želi preuzeti više datoteka</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Pametni navodnici</translation>
 <translation id="5260508466980570042">Žao nam je, nije bilo moguće potvrditi e-adresu ili zaporku. Pokušajte ponovo.</translation>
 <translation id="5261683757250193089">Otvori u web-trgovini</translation>
+<translation id="5262178194499261222">Ukloni zaporku</translation>
 <translation id="5264148714798105376">To može potrajati otprilike minutu.</translation>
 <translation id="5264252276333215551">Povežite se s internetom da biste pokrenuli svoju aplikaciju u načinu kioska.</translation>
 <translation id="5265562206369321422">Izvan mreže više od tjedan dana</translation>
@@ -3507,6 +3528,7 @@
 <translation id="5833726373896279253">Ove postavke može izmjenjivati samo vlasnik:</translation>
 <translation id="5834581999798853053">Preostalo je oko <ph name="TIME" /> min</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – kamera ili mikrofon snimaju</translation>
+<translation id="5841270259333717135">Konfigurirajte ethernet</translation>
 <translation id="5842497610951477805">Omogućivanje Bluetootha</translation>
 <translation id="5846200638699387931">Sintaktička pogreška odnosa: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Već je dodano</translation>
@@ -3552,6 +3574,7 @@
 <translation id="5900358982890952556">Nadogradnja Linuxa (Beta)</translation>
 <translation id="5901494423252125310">Otvorena su vratašca pisača</translation>
 <translation id="5901630391730855834">Žuta</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Ponovo ste uključili jedno potencijalno štetno proširenje}one{Ponovo ste uključili # potencijalno štetno proširenje}few{Ponovo ste uključili # potencijalno štetna proširenja}other{Ponovo ste uključili # potencijalno štetnih proširenja}}</translation>
 <translation id="5906655207909574370">Ažuriranje će uskoro biti gotovo. Za dovršetak ponovo pokrenite uređaj.</translation>
 <translation id="5906732635754427568">Podaci povezani s tom aplikacijom uklonit će se s uređaja.</translation>
 <translation id="5908769186679515905">Onemogući web-lokacijama pokretanje Flasha</translation>
@@ -3581,6 +3604,7 @@
 <translation id="59324397759951282">USB uređaj proizvođača <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Serijski</translation>
 <translation id="5933376509899483611">Vremenska zona</translation>
+<translation id="5935656526031444304">Upravljajte Sigurnim pregledavanjem</translation>
 <translation id="5938002010494270685">Dostupna je sigurnosna nadogradnja</translation>
 <translation id="5939518447894949180">Ponovno postavi</translation>
 <translation id="5941153596444580863">Dodavanje osobe...</translation>
@@ -3624,6 +3648,7 @@
 <translation id="5993807461461235661">Prijenos je kriptiran i krši sigurnosna pravila vaše organizacije.</translation>
 <translation id="5997337190805127100">Saznajte više o pristupu web-lokacijama</translation>
 <translation id="6000758707621254961">Rezultata za upit "<ph name="SEARCH_TEXT" />" ima <ph name="RESULT_COUNT" /></translation>
+<translation id="6002210667729577411">Premjesti grupu u novi prozor</translation>
 <translation id="6002458620803359783">Preferirani glasovi</translation>
 <translation id="6006484371116297560">Klasična</translation>
 <translation id="6007240208646052708">Glasovno pretraživanje na vašem jeziku nije dostupno.</translation>
@@ -4162,6 +4187,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Prikaži prečac na radnoj površini</translation>
 <translation id="6740234557573873150">Dokument <ph name="FILE_NAME" /> pauziran</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Vaš administrator<ph name="END_LINK" /> isključio je Sigurno pregledavanje</translation>
 <translation id="6742339027238151589">Dostupno za skriptu</translation>
 <translation id="6745592621698551453">Ažuriraj sada</translation>
 <translation id="6746124502594467657">Pomakni dolje</translation>
@@ -4420,6 +4446,7 @@
     <ph name="BEGIN_BOLD" />Napomene:<ph name="END_BOLD" /> Asistentu bi mogao pristupiti i netko sa sličnim glasom ili snimkom vašeg glasa. Dopuštenje za Voice Match možete ukloniti kasnije tako da ga isključite u postavkama Asistenta.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">razmjenjivati podatke s uređajima naziva: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Uređaj će se ponovo pokrenuti kad ažuriranje završi.</translation>
 <translation id="7098389117866926363">USB-C uređaj (lijevi priključak sa stražnje strane)</translation>
 <translation id="7098447629416471489">Ovdje će se pojaviti ostale spremljene tražilice</translation>
 <translation id="7099337801055912064">Nije moguće učitati veliki PPD. Maksimalna veličina iznosi 250 KB.</translation>
@@ -4892,6 +4919,7 @@
 <translation id="7766807826975222231">Krenite u obilazak</translation>
 <translation id="7766838926148951335">Prihvati dopuštenja</translation>
 <translation id="7769672763586021400">ID modela</translation>
+<translation id="7770651108375708429">Prekinite vezu s Wi-Fijem</translation>
 <translation id="7771452384635174008">Izgled</translation>
 <translation id="7772032839648071052">Potvrdi zaporku</translation>
 <translation id="7772127298218883077">O proizvodu <ph name="PRODUCT_NAME" /></translation>
@@ -5050,6 +5078,7 @@
 <translation id="7939412583708276221">Svejedno zadrži</translation>
 <translation id="7942349550061667556">Crvena</translation>
 <translation id="7943837619101191061">Dodaj lokaciju...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{Jedna ugrožena zaporka}one{# ugrožena zaporka}few{# ugrožene zaporke}other{# ugroženih zaporki}}</translation>
 <translation id="7945031593909029181">Proširenje "<ph name="CHROME_EXTENSION_NAME" />" želi se povezati</translation>
 <translation id="7946586320617670168">Podrijetlo mora biti sigurno</translation>
 <translation id="794676567536738329">Potvrda dozvola</translation>
@@ -5149,6 +5178,7 @@
 <translation id="8059417245945632445">&amp;Provjeri uređaje</translation>
 <translation id="8059456211585183827">Nema dostupnih pisača za spremanje.</translation>
 <translation id="8063235345342641131">Zadani zeleni avatar</translation>
+<translation id="8063535366119089408">Pregledaj datoteku</translation>
 <translation id="8064671687106936412">Ključ:</translation>
 <translation id="8068253693380742035">Dodirnite za prijavu</translation>
 <translation id="8068809649322155577">Izbrisat će se svi podaci i kolačići koje je spremila web-lokacija <ph name="SITE_GROUP_NAME" /> i sve njezine pripadajuće web-lokacije i instalirane aplikacije.</translation>
@@ -5214,6 +5244,7 @@
 <translation id="8152091997436726702">Isteklo je vrijeme registracije pisača. Da biste registrirali pisač, morate potvrditi registraciju na pisaču.</translation>
 <translation id="8154790740888707867">Nema datoteke</translation>
 <translation id="815491593104042026">Ups! Autentifikacija nije uspjela jer je konfigurirana za upotrebu nesigurnog URL-a (<ph name="BLOCKED_URL" />). Obratite se administratoru.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Nije pronađena nijedna ugrožena zaporka}=1{{COUNT} ugrožena zaporka}one{{COUNT} ugrožena zaporka}few{{COUNT} ugrožene zaporke}other{{COUNT} ugroženih zaporki}}</translation>
 <translation id="8157704005178149728">Postavljanje nadzora</translation>
 <translation id="8158117992543756526">Uređaj je prestao primati automatska softverska i sigurnosna ažuriranja u <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Pogreška u postavljanju pouzdanosti certifikata</translation>
@@ -5267,6 +5298,7 @@
 <translation id="8226742006292257240">Dolje je nasumice generirana zaporka modula pouzdane platforme dodijeljena vašem računalu:</translation>
 <translation id="8227119283605456246">Priloži datoteku</translation>
 <translation id="8230134520748321204">Želite li spremiti zaporku za <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Postavke interneta</translation>
 <translation id="8234795456569844941">Pomognite našim inženjerima da riješe taj problem. Opišite što se dogodilo neposredno prije nego što se prikazala poruka pogreške za profil:</translation>
 <translation id="8236123533334037984">Vaša organizacija skenira ovaj prijenos radi sigurnosnog odobrenja.</translation>
 <translation id="8236917170563564587">Dijeli ovu karticu</translation>
@@ -5604,6 +5636,7 @@
 <translation id="8688579245973331962">Ne vidite svoje ime?</translation>
 <translation id="8688591111840995413">Pogrešna zaporka</translation>
 <translation id="8688672835843460752">Dostupno</translation>
+<translation id="8691418731028620688">Povežite se s Wi-Fijem</translation>
 <translation id="8695825812785969222">Open &amp;Location... (Otvori Lokaciju...)</translation>
 <translation id="869884720829132584">Izbornik aplikacija</translation>
 <translation id="869891660844655955">Datum isteka</translation>
@@ -5763,6 +5796,7 @@
 <translation id="8872187374998143710">Ponovo pokrenite uređaj da biste koristili Plugin VM.</translation>
 <translation id="8872777911145321141">Kad web-lokacija želi koristiti uređaje i podatke virtualne stvarnosti, prikaži upit (preporučeno)</translation>
 <translation id="8874184842967597500">Niste povezani</translation>
+<translation id="8875775314572167244">Postavke etherneta</translation>
 <translation id="8876307312329369159">Ta se postavka ne može promijeniti u demo sesiji.</translation>
 <translation id="8877448029301136595">[matični direktorij]</translation>
 <translation id="8878384954777710821">Deinstaliranje Plugin VM-a...</translation>
@@ -5804,6 +5838,7 @@
 <translation id="892706138619340876">Neke postavke vraćene su na zadano</translation>
 <translation id="8930351635855238750">Nove postavke kolačića postat će aktivne nakon ponovnog učitavanja stranice</translation>
 <translation id="8931394284949551895">Novi uređaji</translation>
+<translation id="8931475688782629595">Odredite što će se sinkronizirati</translation>
 <translation id="8932894639908691771">Opcije prekidača za pristup</translation>
 <translation id="8933960630081805351">&amp;Prikaži u programu Finder</translation>
 <translation id="8934732568177537184">Nastavi</translation>
@@ -5961,6 +5996,7 @@
 <translation id="9148126808321036104">Prijavite se ponovno</translation>
 <translation id="9149866541089851383">Uredi...</translation>
 <translation id="9150045010208374699">upotrijebiti vašu kameru</translation>
+<translation id="9150429437595727962">Postavke Wi-Fi mreže</translation>
 <translation id="9153934054460603056">Spremi identitet i zaporku</translation>
 <translation id="9154194610265714752">Ažurirano</translation>
 <translation id="91568222606626347">Napravi prečac...</translation>
@@ -6022,6 +6058,7 @@
 <translation id="945522503751344254">Slanje povratnih informacija</translation>
 <translation id="947329552760389097">&amp;Provjeri elemente</translation>
 <translation id="952992212772159698">Nije aktivirano</translation>
+<translation id="956500788634395331">Zaštićeni ste od potencijalno štetnih proširenja</translation>
 <translation id="957960681186851048">Ta je web-lokacija pokušala automatski preuzeti više datoteka</translation>
 <translation id="9580706199804957">Povezivanje s Googleovim uslugama nije uspjelo</translation>
 <translation id="960719561871045870">Kôd operatera</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 777c9b2..45f77f7f 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Adobe Flash Player tárolási beállítások</translation>
 <translation id="1274997165432133392">Cookie-k és egyéb webhelyadatok</translation>
 <translation id="1280820357415527819">Mobilhálózatok keresése…</translation>
+<translation id="1280965841156951489">Fájlok szerkesztése</translation>
 <translation id="1282420830958964167">Lejárt a szülőd által beállított korlátozás a következő alkalmazásnál: <ph name="APP_NAME" />. Holnap újra használhatod a megadott ideig (<ph name="TIME_LIMIT" />).</translation>
 <translation id="1285320974508926690">Ezt a webhelyet soha ne fordítsa le</translation>
 <translation id="1285484354230578868">Adattárolás a Google Drive-fiókban</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Sötétlila</translation>
 <translation id="1692799361700686467">A több webhelyről származó cookie-k engedélyezve.</translation>
 <translation id="1697150536837697295">Művészet</translation>
+<translation id="1697686431566694143">Fájl szerkesztése</translation>
 <translation id="1698122934742150150">Csak a jelenlegi inkognitó munkamenet</translation>
 <translation id="1698650002254827833">Nem sikerült az alkalmazáslista betöltése. Próbálja újra.</translation>
 <translation id="1701062906490865540">Személy eltávolítása</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Nincsenek összetevők telepítve.</translation>
 <translation id="1932098463447129402">Ez előtt nem:</translation>
 <translation id="1933809209549026293">Csatlakoztasson egy egeret vagy billentyűzetet. Ha Bluetooth-eszközt használ, győződjön meg róla, hogy az készen áll a párosításra.</translation>
+<translation id="1936931585862840749">Számmal jelezze, hogy hány példányt szeretne nyomtatni (1–<ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Nem lehet importálni a tároló <ph name="ARCHITECTURE_CONTAINER" /> architektúratípusát, ugyanis az eszköz architektúrájának típusa <ph name="ARCHITECTURE_DEVICE" />. Megpróbálhatja helyreállítani ezt a tárolót egy másik eszközön, vagy a Fájlok alkalmazás megnyitásával hozzáférhet a tároló lemezképében lévő fájlokhoz.</translation>
 <translation id="1938351510777341717">Külső parancs</translation>
 <translation id="1940546824932169984">Társított eszközök</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Fókusz erre a lapra</translation>
 <translation id="2344028582131185878">Automatikus letöltések</translation>
 <translation id="2345723121311404059">1 oldal nyomtatása a következőn: <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">SODA-szolgáltatás</translation>
 <translation id="2347644257713614136">A Hangouts és a Cast for Education használatára a Google Adatvédelmi irányelvei vonatkoznak.</translation>
 <translation id="2348176352564285430">Alkalmazás: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Újratöltve</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">A Linux-visszaállítás megszakítva</translation>
 <translation id="2423578206845792524">Ké&amp;p mentése másként...</translation>
 <translation id="2428510569851653187">Írja le, hogy mit csinált a lap összeomlásakor</translation>
+<translation id="2428939361789119025">A Wi-Fi kikapcsolása</translation>
 <translation id="2431027948063157455">A Google Segéd betöltése sikertelen volt. Ellenőrizze a hálózati kapcsolatot, majd próbálja újra.</translation>
 <translation id="2432753757290432042">A Linux (béta) frissítése szükséges</translation>
 <translation id="2433452467737464329">Adjon meg egy lekérdezési paramétert az URL-címben az oldal automatikus frissítéséhez: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Használati és diagnosztikai adatok küldése. Segítsen az Android-élmény továbbfejlesztésében azzal, hogy automatikusan diagnosztikai, valamint eszköz- és alkalmazáshasználati adatokat küld a Google-nak. Az adatok a rendszer- és alkalmazásstabilitás javításában, valamint más fejlesztésekben segítenek. Bizonyos összesített adatok a Google-alkalmazásoknak és -partnereknek, például az Android-fejlesztőknek is segítenek. Ha az Internetes és alkalmazástevékenységek beállítás is be van kapcsolva, akkor a rendszer ezeket az adatokat az Ön Google-fiókjába is mentheti. <ph name="BEGIN_LINK1" />További információ.<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Kapcsolat hozzáadása</translation>
 <translation id="2947605845283690091">Az internetes böngészésnek gyorsnak kell lennie. Szánjon egy pillanatot <ph name="BEGIN_LINK" />bővítményeinek ellenőrzésére<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 potenciálisan kártékony bővítmény ki van kapcsolva. Akár el is távolíthatja.}other{# potenciálisan kártékony bővítmény ki van kapcsolva. Akár el is távolíthatja.}}</translation>
 <translation id="2948300991547862301">Ugrás: <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">A modern internetre szabott gyors, egyszerű és biztonságos böngésző.</translation>
 <translation id="2949289451367477459">A tartózkodási hely használata. A helymeghatározási jogosultsággal rendelkező alkalmazások és szolgáltatások számára lehetővé teszi az eszköz tartózkodási helyének használatát. A Google időről időre helyadatokat gyűjthet, és ezen adatok anonim módon történő felhasználásával javíthatja a helymeghatározás pontosságát, valamint a helyalapú szolgáltatásokat. <ph name="BEGIN_LINK1" />További információ<ph name="END_LINK1" />.</translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Telepíti az alkalmazást?</translation>
 <translation id="3067198360141518313">A plug-in futtatása</translation>
 <translation id="3071624960923923138">Ide kattintva új lapot nyithat meg</translation>
+<translation id="3072775339180057696">Engedélyezi a webhelynek a következő megtekintését: <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">A Powerwash művelet elindításához újraindítás szükséges. Az újraindítás után a rendszer kéri a folytatás megerősítését.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Bejelentkezési adatai törlődtek</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">A webhely használhatja a kameráját</translation>
 <translation id="3085752524577180175">SOCKS-szerver</translation>
 <translation id="3088052000289932193">A webhely MIDI-eszközt használ</translation>
+<translation id="3088128611727407543">Alkalmazásprofil előkészítése…</translation>
 <translation id="3088325635286126843">Át&amp;nevezés...</translation>
 <translation id="3089137131053189723">Keresés törölve</translation>
 <translation id="3090193911106258841">Hozzáférés a hang- és videobementhez</translation>
@@ -1596,6 +1604,7 @@
     Leírás:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome-alkalmazások</translation>
+<translation id="3150693969729403281">Biztonsági ellenőrzés végrehajtása most</translation>
 <translation id="3150927491400159470">Teljes újratöltés</translation>
 <translation id="315116470104423982">Mobiladatok</translation>
 <translation id="3151539355209957474">Kezdés ideje</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Bejelentkezés a Chrome-ba</translation>
 <translation id="3285322247471302225">Új lap</translation>
 <translation id="328571385944182268">Szeretné menteni a jelszavait?</translation>
+<translation id="328785681103589998">A(z) <ph name="ORIGIN" /> addig tudja megtekinteni a(z) <ph name="FILENAME" /> mappa fájljait, amíg Ön be nem zárja az összes <ph name="ORIGIN" />-lapot</translation>
 <translation id="3288047731229977326">A fejlesztői módban futó bővítmények kárt okozhatnak számítógépén. Ha Ön nem fejlesztő, akkor a biztonság kedvéért kapcsolja ki a fejlesztői módban futó bővítményeket.</translation>
 <translation id="3289856944988573801">Kérjük, frissítések kereséséhez Ethernetet vagy Wi-Fit használjon.</translation>
 <translation id="3290356915286466215">Nem biztonságos</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Adatok beolvasása számos webhelyen</translation>
 <translation id="3448086340637592206">A Google Chrome és a Chrome OS Kiegészítő Általános Szerződési Feltételei</translation>
 <translation id="3448492834076427715">Fiók frissítése</translation>
+<translation id="3449393517661170867">Új ablak lapokkal</translation>
 <translation id="3449839693241009168">Nyomja meg a(z) <ph name="SEARCH_KEY" /> billentyűt a parancsok elküldéséhez a következőre: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Tétlenségi állapot lefoglaltsága százalékban</translation>
 <translation id="3451332697983754369"><ph name="DEVICE_TYPE" /> szinkronizálása</translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Köszönjük visszajelzését. Most nincs internetkapcsolata, ezért a jelentést később küldi el a böngésző.</translation>
 <translation id="3682824389861648626">Mozgási küszöbérték</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> – Képernyő-megosztási kérés</translation>
+<translation id="3686074530047028092">Oktatási fiók</translation>
 <translation id="368789413795732264">A fájl írásakor hiba történt: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Az alkalmazásban megnyitott fájlok és mappák írása</translation>
 <translation id="3688526734140524629">Csatornaváltás</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Weboldalak adott részeinek letiltása</translation>
 <translation id="3760460896538743390">&amp;Háttéroldal vizsgálata</translation>
 <translation id="37613671848467444">Megnyitás &amp;inkognitóablakban</translation>
+<translation id="3761556954875533505">Engedélyezi a webhelynek a fájlok szerkesztését?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Kommunikáció egy USB-eszközzel}other{Kommunikáció # USB-eszközzel}}</translation>
 <translation id="3765246971671567135">Nem sikerült a demó mód offline házirendjének olvasása.</translation>
 <translation id="3768037234834996183">Beállítások szinkronizálása…</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Megtagadás</translation>
 <translation id="3928570707778085600">Menti a(z) <ph name="FILE_OR_FOLDER_NAME" /> módosításait?</translation>
 <translation id="3929426037718431833">Ezek a bővítmények láthatják és módosíthatják az ezen a webhelyen található információkat.</translation>
+<translation id="3930155420525972941">Csoport áthelyezése új ablakba</translation>
 <translation id="3930737994424905957">Eszközök keresése…</translation>
 <translation id="3930968231047618417">Háttérszín</translation>
 <translation id="3933283459331715412"><ph name="USERNAME" /> törölt jelszavának visszaállítása</translation>
@@ -2336,6 +2350,7 @@
 <translation id="4130750466177569591">Elfogadom</translation>
 <translation id="413121957363593859">Összetevők</translation>
 <translation id="4131410914670010031">Fekete-fehér</translation>
+<translation id="4133076602192971179">A jelszó módosításához nyissa meg az alkalmazást</translation>
 <translation id="4136203100490971508">Az Éjszakai fény automatikusan kikapcsol napkeltekor</translation>
 <translation id="41365691917097717">A folytatással engedélyezi az ADB-hibakeresés számára az Android-alkalmazások létrehozását és tesztelését. Ne feledje, hogy ez a művelet engedélyezi a Google által nem jóváhagyott Android-alkalmazások telepítését, és az eszköz letiltásához szükség van az eszköz gyári beállításainak visszaállítására.</translation>
 <translation id="4138267921960073861">Felhasználónevek és képek megjelenítése a bejelentkezési oldalon</translation>
@@ -2447,6 +2462,7 @@
 <translation id="4330387663455830245">Soha ne fordítsa le a(z) <ph name="LANGUAGE" /> nyelvű szöveget</translation>
 <translation id="4332976768901252016">Szülői felügyelet beállítása</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 RSA titkosítással</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{A rendszergazda 1 potenciálisan kártékony bővítményt visszakapcsolt}other{A rendszergazda # potenciálisan kártékony bővítményt visszakapcsolt}}</translation>
 <translation id="4336434711095810371">Az összes adat törlése</translation>
 <translation id="4336979451636460645">A hálózati naplók a következő helyen találhatók: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> kommunikálni szeretne a(z) „<ph name="EXTENSION_NAME" />” alkalmazással.</translation>
@@ -2541,7 +2557,7 @@
 <translation id="4469477701382819144">Letiltva a tolakodó vagy félrevezető hirdetéseket megjelenítő webhelyeken</translation>
 <translation id="4469762931504673593">A(z) <ph name="ORIGIN" /> szerkesztheti a(z) <ph name="FOLDERNAME" /> mappában lévő fájlokat</translation>
 <translation id="4470957202018033307">Külső tárhely beállításai</translation>
-<translation id="447252321002412580">Segítség a Chrome funkcióinak és teljesítményének javítása érdekében</translation>
+<translation id="447252321002412580">Hozzájárulás a Chrome funkcióinak és teljesítményének javításához</translation>
 <translation id="4472575034687746823">Kezdő lépések</translation>
 <translation id="4474155171896946103">Összes lap hozzáadása a könyvjelzőkhöz...</translation>
 <translation id="4474461121892222090">A mobiladatok aktiválása akár 15 percet is igénybe vehet.</translation>
@@ -2753,6 +2769,7 @@
 <translation id="4785719467058219317">Olyan biztonsági hardverkulcsot használ, amely nincs regisztrálva ezen a webhelyen</translation>
 <translation id="4788092183367008521">Ellenőrizze a hálózati kapcsolatot, és próbálkozzon újra.</translation>
 <translation id="4792711294155034829">&amp;Hibabejelentés...</translation>
+<translation id="4794810983896241342">A frissítéseket a <ph name="BEGIN_LINK" />rendszergazdája<ph name="END_LINK" /> kezeli</translation>
 <translation id="479536056609751218">Weboldal -- csak HTML</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />Bluetooth-naplók<ph name="END_LINK" /> csatolása (a Google általi belső felhasználásra)</translation>
 <translation id="4801448226354548035">Fiókok elrejtése</translation>
@@ -2848,6 +2865,7 @@
 <translation id="4908811072292128752">Új lap megnyitása két webhely egyidejű böngészéséhez</translation>
 <translation id="4909038193460299775">Mivel ezt a fiókot a(z) <ph name="DOMAIN" /> domain kezeli, könyvjelzői, előzményei, jelszavai és más beállításai törlődnek erről az eszközről. Meglévő adatait azonban továbbra is tárolni fogja Google-fiókja, és azokat a <ph name="BEGIN_LINK" />Google Irányítópulton<ph name="END_LINK" /> kezelheti.</translation>
 <translation id="4912643508233590958">Tétlen aktiválások</translation>
+<translation id="4916542008280060967">Engedélyezi a webhelynek a következő szerkesztését: <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Váltás biztonságos böngészőre</translation>
 <translation id="4917385247580444890">Erős</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> kommunikálni szeretne a(z) „<ph name="EXTENSION_NAME" />” bővítménnyel.</translation>
@@ -2919,6 +2937,7 @@
 <translation id="5017633213534173756">Emlékezz rá</translation>
 <translation id="5018207570537526145">Bővítmény webhelyének megnyitása</translation>
 <translation id="5021750053540820849">Még nincs frissítve</translation>
+<translation id="5026806129670917316">Wi-Fi bekapcsolása</translation>
 <translation id="5026874946691314267">Ez ne jelenjen meg többé</translation>
 <translation id="5027550639139316293">E-mail tanúsítvány</translation>
 <translation id="5027562294707732951">Bővítmény hozzáadása</translation>
@@ -3031,6 +3050,7 @@
 <translation id="5184063094292164363">&amp;JavaScript-konzol</translation>
 <translation id="5184209580557088469">Már létezik jegy ezzel a felhasználónévvel.</translation>
 <translation id="5184662919967270437">Az eszköz frissítése folyamatban van</translation>
+<translation id="5185359571430619712">Bővítmények áttekintése</translation>
 <translation id="5185386675596372454">"<ph name="EXTENSION_NAME" />" legújabb verziója ki van kapcsolva, mert több jogosultság kell hozzá.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422">A(z) <ph name="ORIGIN" /> több fájlt szeretne letölteni</translation>
@@ -3081,6 +3101,7 @@
 <translation id="5260334392110301220">Intelligens idézőjelek</translation>
 <translation id="5260508466980570042">Sajnáljuk, e-mail-címét vagy jelszavát nem sikerült megerősíteni. Próbálja ismét.</translation>
 <translation id="5261683757250193089">Megnyitás az Internetes áruházban</translation>
+<translation id="5262178194499261222">Jelszó eltávolítása</translation>
 <translation id="5264148714798105376">Ez eltarthat egy-két percig.</translation>
 <translation id="5264252276333215551">Csatlakozzon az internethez az alkalmazás kioszk módban való indításához.</translation>
 <translation id="5265562206369321422">Több mint egy hete offline</translation>
@@ -3508,6 +3529,7 @@
 <translation id="5833726373896279253">Ezeket a beállításokat csak a tulajdonos módosíthatja:</translation>
 <translation id="5834581999798853053">Körülbelül <ph name="TIME" /> perc van hátra</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – A kamera vagy a mikrofon felvételt készít</translation>
+<translation id="5841270259333717135">Ethernet konfigurálása</translation>
 <translation id="5842497610951477805">Bluetooth bekapcsolása</translation>
 <translation id="5846200638699387931">Relációs szintaktikai hiba: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Már hozzáadva</translation>
@@ -3553,6 +3575,7 @@
 <translation id="5900358982890952556">A Linux (béta) frissítése</translation>
 <translation id="5901494423252125310">A nyomtató fedele nyitva van</translation>
 <translation id="5901630391730855834">Sárga</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{1 potenciálisan kártékony bővítményt visszakapcsolt}other{# potenciálisan kártékony bővítményt visszakapcsolt}}</translation>
 <translation id="5906655207909574370">Már majdnem naprakész! Indítsa újra az eszközt a frissítés befejezéséhez.</translation>
 <translation id="5906732635754427568">Az alkalmazáshoz kapcsolódó adatok törlődnek erről az eszközről.</translation>
 <translation id="5908769186679515905">A Flash futtatásának tiltása a webhelyeken</translation>
@@ -3582,6 +3605,7 @@
 <translation id="59324397759951282">USB-eszköz a következő gyártótól: <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Sorozatszám</translation>
 <translation id="5933376509899483611">Időzóna</translation>
+<translation id="5935656526031444304">A Biztonságos Böngészés kezelése</translation>
 <translation id="5938002010494270685">Rendelkezésre áll egy biztonsági frissítés</translation>
 <translation id="5939518447894949180">Visszaállítás</translation>
 <translation id="5941153596444580863">Személy hozzáadása…</translation>
@@ -3625,6 +3649,7 @@
 <translation id="5993807461461235661">Ez a feltöltés titkosítva van, így sérti szervezete biztonsági szabályait.</translation>
 <translation id="5997337190805127100">További információ a webhelyekhez való hozzáférésről</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> találat a következőre: <ph name="SEARCH_TEXT" /></translation>
+<translation id="6002210667729577411">Csoport áthelyezése új ablakba</translation>
 <translation id="6002458620803359783">Előnyben részesített hangok</translation>
 <translation id="6006484371116297560">Klasszikus</translation>
 <translation id="6007240208646052708">A hangalapú keresés nem áll rendelkezésre az Ön nyelvén.</translation>
@@ -4042,7 +4067,7 @@
 <translation id="6555810572223193255">Az eltávolítási funkció jelenleg nem áll rendelkezésre</translation>
 <translation id="6556866813142980365">Újra</translation>
 <translation id="6557290421156335491">Saját parancsikonok</translation>
-<translation id="6561560012278703671">Halkabb üzenetküldés használata (letiltja az értesítéseket, hogy ne zavarják meg Önt)</translation>
+<translation id="6561560012278703671">Csendesebb üzenetküldés használata (letiltja az értesítéseket, hogy ne zavarják meg Önt)</translation>
 <translation id="6561726789132298588">enter</translation>
 <translation id="656293578423618167">A fájl elérési útja vagy neve túl hosszú. Kérjük, mentse rövidebb névvel, illetve másik helyre.</translation>
 <translation id="6563469144985748109">A kezelő még nem hagyta jóvá</translation>
@@ -4163,6 +4188,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Asztali parancsikon megjelenítése</translation>
 <translation id="6740234557573873150">A(z) <ph name="FILE_NAME" /> letöltése szünetel</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Az Ön rendszergazdája<ph name="END_LINK" /> kikapcsolta a Biztonságos Böngészést</translation>
 <translation id="6742339027238151589">Szkript számára elérhető</translation>
 <translation id="6745592621698551453">Frissítés most</translation>
 <translation id="6746124502594467657">Mozgatás lefelé</translation>
@@ -4421,6 +4447,7 @@
     <ph name="BEGIN_BOLD" />Ne feledje:<ph name="END_BOLD" /> Előfordulhat, hogy hasonló hangú személy vagy hangfelvétel segítségével is hozzá lehet férni az Ön Segédjéhez. A Voice Match engedélyét bármikor visszavonhatja úgy, hogy kikapcsolja a Segéd beállításaiban.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Adatok cseréje a(z) <ph name="HOSTNAMES" /> nevű eszközökkel</translation>
+<translation id="7094434674404953373">Az eszköz újraindul a frissítés befejezése után.</translation>
 <translation id="7098389117866926363">C típusú USB-vel kompatibilis eszköz (bal hátsó port)</translation>
 <translation id="7098447629416471489">A többi mentett keresőmotor itt jelennek meg</translation>
 <translation id="7099337801055912064">Nem használható túl nagy PPD. A maximális méret 250 kB.</translation>
@@ -4893,6 +4920,7 @@
 <translation id="7766807826975222231">Bemutató megtekintése</translation>
 <translation id="7766838926148951335">Engedélyek elfogadása</translation>
 <translation id="7769672763586021400">Modellazonosító</translation>
+<translation id="7770651108375708429">Wi-Fi-kapcsolat bontása</translation>
 <translation id="7771452384635174008">Elrendezés</translation>
 <translation id="7772032839648071052">Összetett jelszó megerősítése</translation>
 <translation id="7772127298218883077">A <ph name="PRODUCT_NAME" /> névjegye</translation>
@@ -5051,6 +5079,7 @@
 <translation id="7939412583708276221">Megtartás</translation>
 <translation id="7942349550061667556">Piros</translation>
 <translation id="7943837619101191061">Hely hozzáadása...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 nyilvánosságra került jelszó}other{# nyilvánosságra került jelszó}}</translation>
 <translation id="7945031593909029181">A(z) „<ph name="CHROME_EXTENSION_NAME" />” szeretne csatlakozni</translation>
 <translation id="7946586320617670168">Az eredetnek biztonságosnak kell lennie</translation>
 <translation id="794676567536738329">Engedélyek megerősítése</translation>
@@ -5150,6 +5179,7 @@
 <translation id="8059417245945632445">&amp;Eszközök vizsgálata</translation>
 <translation id="8059456211585183827">Nincsenek menthető nyomtatók.</translation>
 <translation id="8063235345342641131">Alapértelmezett zöld avatar</translation>
+<translation id="8063535366119089408">Fájl megtekintése</translation>
 <translation id="8064671687106936412">Kulcs:</translation>
 <translation id="8068253693380742035">Érintse meg a bejelentkezéshez</translation>
 <translation id="8068809649322155577">Ezzel törli a(z) <ph name="SITE_GROUP_NAME" />, a hozzá tartozó webhelyek és a telepített alkalmazásai által tárolt összes adatot és cookie-t.</translation>
@@ -5215,6 +5245,7 @@
 <translation id="8152091997436726702">A nyomtató regisztrálása során időtúllépés történt. A nyomtató regisztrálásához meg kell erősítenie a regisztrációt a nyomtatón.</translation>
 <translation id="8154790740888707867">Nincs fájl</translation>
 <translation id="815491593104042026">Hoppá! A hitelesítés nem sikerült, mert azt egy nem biztonságos URL használatára állították be (<ph name="BLOCKED_URL" />). Kérjük, forduljon rendszergazdájához.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Nincs nyilvánosságra került jelszó}=1{{COUNT} nyilvánosságra került jelszó}other{{COUNT} nyilvánosságra került jelszó}}</translation>
 <translation id="8157704005178149728">A felügyelet beállítása folyamatban van</translation>
 <translation id="8158117992543756526">Ez az eszköz a következő időpont óta nem kap automatikus szoftver- és rendszerfrissítéseket: <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation>
 <translation id="816055135686411707">Hiba a tanúsítvány bizalmi beállításainál</translation>
@@ -5268,6 +5299,7 @@
 <translation id="8226742006292257240">Alább látható a véletlenszerűen generált TPM-jelszó, amelyet a számítógépéhez rendeltünk:</translation>
 <translation id="8227119283605456246">Fájl csatolása</translation>
 <translation id="8230134520748321204">Szeretné elmenteni a(z) <ph name="ORIGIN" /> jelszavát?</translation>
+<translation id="8233762480744368479">Internetbeállítások</translation>
 <translation id="8234795456569844941">Kérjük, segítsen mérnökeinknek a hiba kijavításában. Mondja el nekünk, hogy mi történt közvetlenül a profilhiba-üzenet megjelenése előtt:</translation>
 <translation id="8236123533334037984">Szervezete biztonsági jóváhagyás érdekében megvizsgálja ezt a feltöltést.</translation>
 <translation id="8236917170563564587">Jelenlegi lap megosztása</translation>
@@ -5605,6 +5637,7 @@
 <translation id="8688579245973331962">Nem látja a nevét?</translation>
 <translation id="8688591111840995413">Helytelen jelszó</translation>
 <translation id="8688672835843460752">Rendelkezésre áll</translation>
+<translation id="8691418731028620688">Csatlakozás Wi-Fi-hez</translation>
 <translation id="8695825812785969222">&amp;Hely megnyitása...</translation>
 <translation id="869884720829132584">Alkalmazások menü</translation>
 <translation id="869891660844655955">Lejárati dátum</translation>
@@ -5764,6 +5797,7 @@
 <translation id="8872187374998143710">Indítsa újra eszközét a Plugin VM használatához.</translation>
 <translation id="8872777911145321141">Kérdezzen rá, ha valamelyik webhely használni szeretné az Ön virtuálisvalóság-eszközeit vagy -adatait (ajánlott)</translation>
 <translation id="8874184842967597500">Nincs csatlakozva</translation>
+<translation id="8875775314572167244">Ethernet-beállítások</translation>
 <translation id="8876307312329369159">Ezt a beállítást nem lehet módosítani demó munkamenetben.</translation>
 <translation id="8877448029301136595">[szülőkönyvtár]</translation>
 <translation id="8878384954777710821">A Plugin VM eltávolítása folyamatban van…</translation>
@@ -5805,6 +5839,7 @@
 <translation id="892706138619340876">Egyes beállítások alaphelyzetbe álltak</translation>
 <translation id="8930351635855238750">Az új cookie-beállítások az oldal ismételt betöltése után lépnek életbe</translation>
 <translation id="8931394284949551895">Új eszközök</translation>
+<translation id="8931475688782629595">Szinkronizálandó adatok kezelése</translation>
 <translation id="8932894639908691771">Kapcsolóalapú hozzáférés beállításai</translation>
 <translation id="8933960630081805351">&amp;Megjelenítés a Finderben</translation>
 <translation id="8934732568177537184">Tovább</translation>
@@ -5962,6 +5997,7 @@
 <translation id="9148126808321036104">Jelentkezzen be újra</translation>
 <translation id="9149866541089851383">Szerkesztés...</translation>
 <translation id="9150045010208374699">Kamera használata</translation>
+<translation id="9150429437595727962">Wi-Fi-beállítások</translation>
 <translation id="9153934054460603056">Azonosítás és jelszó mentése</translation>
 <translation id="9154194610265714752">Frissítve</translation>
 <translation id="91568222606626347">Parancsikon létrehozása</translation>
@@ -6023,6 +6059,7 @@
 <translation id="945522503751344254">Visszajelzés küldése</translation>
 <translation id="947329552760389097">&amp;Elemek vizsgálata</translation>
 <translation id="952992212772159698">Nincs aktiválva</translation>
+<translation id="956500788634395331">Védelmet élvez a potenciálisan kártékony bővítményekkel szemben</translation>
 <translation id="957960681186851048">Ez a webhely megpróbált automatikusan letölteni több fájlt</translation>
 <translation id="9580706199804957">Nem sikerült csatlakozni a Google-szolgáltatásokhoz</translation>
 <translation id="960719561871045870">Operátorkód</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 515bfa2e..e52a5c39 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Hapus data dari aplikasi ini juga?</translation>
 <translation id="1045692658517323508">{0,plural, =1{Update dalam 1 menit}other{Update dalam # menit}}</translation>
 <translation id="1046635659603195359">Sepertinya Anda sudah menyiapkan Voice Match dengan Asisten Google di perangkat lainnya. Rekaman sebelumnya tersebut dapat digunakan untuk membuat model suara di perangkat ini. Tindakan ini perlu waktu kurang dari satu menit.</translation>
+<translation id="104710386808485638">Mulai ulang Linux?</translation>
 <translation id="1047431265488717055">Salin Te&amp;ks Tautan</translation>
 <translation id="1048286738600630630">Tampilan</translation>
 <translation id="1049743911850919806">Samaran</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Masuklah ke <ph name="TOKEN_NAME" /> untuk mengeskpor sertifikat klien.</translation>
 <translation id="1163931534039071049">&amp;Lihat sumber bingkai</translation>
 <translation id="1164674268730883318">Nonaktifkan Smart Lock untuk <ph name="DEVICE_TYPE" />?</translation>
+<translation id="1164891049599601209">Dimasukkan pada situs penipuan</translation>
 <translation id="1164899421101904659">Masukkan Kunci Pembuka PIN</translation>
 <translation id="1165039591588034296">Kesalahan</translation>
 <translation id="1166212789817575481">Tutup Tab di Sebelah Kanan</translation>
@@ -205,6 +207,7 @@
 <translation id="1274977772557788323">Setelan Penyimpanan Adobe Flash Player</translation>
 <translation id="1274997165432133392">Cookie dan data situs lainnya</translation>
 <translation id="1280820357415527819">Menelusuri jaringan seluler</translation>
+<translation id="1280965841156951489">Edit file</translation>
 <translation id="1282420830958964167">Batas waktu pada "<ph name="APP_NAME" />" yang disetel oleh orang tuamu telah habis. Kamu bisa menggunakannya besok selama <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Jangan pernah terjemahkan situs ini</translation>
 <translation id="1285484354230578868">Simpan data di akun Google Drive Anda</translation>
@@ -398,6 +401,7 @@
 <translation id="1545177026077493356">Mode Kios Otomatis</translation>
 <translation id="1545775234664667895">Tema "<ph name="THEME_NAME" />" telah terinstal</translation>
 <translation id="1546280085599573572">Ekstensi ini telah mengubah halaman apa yang ditampilkan saat Anda mengeklik tombol Beranda.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> ingin menginstal <ph name="EXTENSION_TYPE" /> yang dapat:</translation>
 <translation id="1549275686094429035">ARC Aktif</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> ingin mengakses <ph name="VOLUME_NAME" />. Ini dapat mengubah atau menghapus file Anda.</translation>
 <translation id="1553538517812678578">tidak terbatas</translation>
@@ -496,6 +500,7 @@
 <translation id="1679806121152819234">VM Plugin</translation>
 <translation id="1679810534535368772">Yakin ingin keluar?</translation>
 <translation id="167983332380191032">Layanan pengelolaan mengirim error HTTP.</translation>
+<translation id="1680841347983561661">Coba buka Google Play lagi setelah beberapa saat.</translation>
 <translation id="1680849702532889074">Terjadi error saat menginstal aplikasi Linux.</translation>
 <translation id="16815041330799488">Jangan izinkan situs melihat teks dan gambar yang disalin ke papan klip</translation>
 <translation id="1682548588986054654">Jendela Samaran Baru</translation>
@@ -509,6 +514,7 @@
 <translation id="1692210323591458290">Ungu tua</translation>
 <translation id="1692799361700686467">Cookie dari berbagai situs diizinkan.</translation>
 <translation id="1697150536837697295">Seni</translation>
+<translation id="1697686431566694143">Edit file</translation>
 <translation id="1698122934742150150">Sesi samaran saat ini saja</translation>
 <translation id="1698650002254827833">Daftar aplikasi tidak dapat dimuat. Coba lagi.</translation>
 <translation id="1701062906490865540">Hapus orang ini</translation>
@@ -694,6 +700,7 @@
 <translation id="1931152874660185993">Tidak ada komponen yang dipasang.</translation>
 <translation id="1932098463447129402">Tidak Sebelum</translation>
 <translation id="1933809209549026293">Sambungkan mouse atau keyboard. Jika Anda menggunakan perangkat Bluetooth, pastikan perangkat siap disandingkan.</translation>
+<translation id="1936931585862840749">Gunakan angka untuk menunjukkan jumlah salinan yang akan dicetak (1 sampai <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Tidak dapat mengimpor jenis arsitektur container <ph name="ARCHITECTURE_CONTAINER" /> dengan perangkat ini yang menggunakan arsitektur <ph name="ARCHITECTURE_DEVICE" />. Anda dapat mencoba memulihkan container ini ke dalam perangkat berbeda, atau mengakses file di dalam gambar container ini dengan membukanya di aplikasi File.</translation>
 <translation id="1938351510777341717">External Command</translation>
 <translation id="1940546824932169984">Perangkat yang terhubung</translation>
@@ -749,6 +756,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> ngadat. Klik balon ini untuk memuat ulang ekstensi.</translation>
 <translation id="2025891858974379949">Konten tidak aman</translation>
 <translation id="202918510990975568">Masukkan sandi Anda untuk mengonfigurasi keamanan dan login</translation>
+<translation id="2030672406208960151">Buka Terminal Pemulihan</translation>
 <translation id="2034346955588403444">Tambahkan jaringan Wi-Fi lainnya</translation>
 <translation id="203574396658008164">Aktifkan pencatat dari layar kunci</translation>
 <translation id="2037445849770872822">Pengawasan disiapkan untuk Akun Google ini. Untuk menyiapkan kontrol orang tua lain, pilih Lanjutkan.
@@ -901,6 +909,7 @@
 <translation id="2220572644011485463">PIN atau sandi</translation>
 <translation id="2224444042887712269">Setelan ini adalah milik <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">Edit nama folder</translation>
+<translation id="2225864335125757863">Segera ubah sandi ini untuk menjaga keamanan akun Anda:</translation>
 <translation id="2226449515541314767">Situs ini diblokir agar tidak memiliki kontrol penuh atas perangkat MIDI.</translation>
 <translation id="222704500187107962">Pengecualian ini akan dihapus secara otomatis setelah Anda keluar dari sesi Samaran saat ini</translation>
 <translation id="2227179592712503583">Hapus saran</translation>
@@ -987,6 +996,7 @@
 <translation id="2343747224442182863">Fokuskan Tab Ini</translation>
 <translation id="2344028582131185878">Download Otomatis</translation>
 <translation id="2345723121311404059">1 halaman ke <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Layanan SODA</translation>
 <translation id="2347644257713614136">Penggunaan Hangouts dan Cast for Education diatur oleh Kebijakan Privasi Google.</translation>
 <translation id="2348176352564285430">Aplikasi: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Dimuat ulang</translation>
@@ -1021,6 +1031,7 @@
 <translation id="2387052489799050037">Ke Layar Utama</translation>
 <translation id="2387458720915042159">Jenis sambungan proxy</translation>
 <translation id="2391419135980381625">Font standar</translation>
+<translation id="2392163307141705938">Kamu sudah mencapai batas waktu yang ditetapkan orang tuamu untuk <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Aktifkan</translation>
 <translation id="2394566832561516196">Setelan akan dihapus pada pemuatan ulang berikutnya.</translation>
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> berhasil didaftarkan untuk pengelolaan perusahaan, namun gagal mengirimkan informasi lokasi dan asetnya. Masukkan informasi ini secara manual dari Konsol Admin untuk perangkat ini.</translation>
@@ -1039,6 +1050,7 @@
 <translation id="2422125132043002186">Pemulihan Linux dibatalkan</translation>
 <translation id="2423578206845792524">Sim&amp;pan gambar sebagai...</translation>
 <translation id="2428510569851653187">Jelaskan yang Anda lakukan saat tab error</translation>
+<translation id="2428939361789119025">Nonaktifkan Wi-Fi</translation>
 <translation id="2431027948063157455">Asisten Google tidak dapat dimuat, periksa sambungan internet dan coba lagi.</translation>
 <translation id="2432753757290432042">Perlu update Linux (Beta)</translation>
 <translation id="2433452467737464329">Tambahkan parameter kueri di URL untuk menyegarkan halaman secara otomatis: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1086,6 +1098,7 @@
 <translation id="247949520305900375">Bagikan audio</translation>
 <translation id="2480868415629598489">Mengubah data yang Anda copy-paste</translation>
 <translation id="2482878487686419369">Notifikasi</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> akan dapat mengedit <ph name="FILENAME" /> hingga Anda menutup semua tab <ph name="ORIGIN" /></translation>
 <translation id="2484959914739448251">Untuk menghapus data browsing dari semua perangkat yang disinkronkan dan dari Akun Google, <ph name="BEGIN_LINK" />masukkan frasa sandi<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Sandi disimpan di perangkat ini</translation>
 <translation id="2485422356828889247">Uninstal</translation>
@@ -1299,6 +1312,7 @@
 <translation id="274290345632688601">Memulihkan file &amp; aplikasi Linux</translation>
 <translation id="2743387203779672305">Salin ke papan klip</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> dijeda</translation>
 <translation id="2749756011735116528">Login ke <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">Periksa Grammar Dengan Ejaaan</translation>
 <translation id="2751739896257479635">Autentikasi tahap 2 EAP</translation>
@@ -1307,6 +1321,7 @@
 <translation id="275662540872599901">layar nonaktif</translation>
 <translation id="2762441749940182211">Kamera diblokir</translation>
 <translation id="2765217105034171413">Kecil</translation>
+<translation id="2766161002040448006">Tanyakan kepada orang tua</translation>
 <translation id="276969039800130567">Login sebagai <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="2770465223704140727">Hapus dari daftar</translation>
 <translation id="2770690685823456775">Ekspor sandi Anda ke folder lain</translation>
@@ -1453,6 +1468,7 @@
 <translation id="2944060181911631861">Kirim data penggunaan dan diagnostik. Bantuan sempurnakan pengalaman Android Anda dengan otomatis mengirim data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini akan membantu sistem dan stabilitas aplikasi serta peningkatan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Jika setelan Aktivitas Web &amp; Aplikasi tambahan diaktifkan, data ini mungkin akan disimpan ke Akun Google Anda. <ph name="BEGIN_LINK1" />Pelajari Lebih Lanjut<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Tambahkan koneksi</translation>
 <translation id="2947605845283690091">Penjelajahan web seharusnya cepat. Sempatkan untuk <ph name="BEGIN_LINK" />memeriksa ekstensi Anda<ph name="END_LINK" /> sekarang.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 ekstensi yang berpotensi berbahaya nonaktif. Anda juga dapat menghapusnya.}other{# ekstensi yang berpotensi berbahaya nonaktif. Anda juga dapat menghapusnya.}}</translation>
 <translation id="2948300991547862301">Buka <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Browser web yang cepat, sederhana, dan aman, yang diciptakan untuk web modern.</translation>
 <translation id="2949289451367477459">Gunakan lokasi. Izinkan aplikasi dan layanan yang memiliki izin akses lokasi untuk menggunakan lokasi perangkat ini. Google dapat mengumpulkan data lokasi secara berkala dan menggunakan data ini secara anonim untuk meningkatkan akurasi lokasi dan layanan berdasarkan lokasi. <ph name="BEGIN_LINK1" />Pelajari Lebih Lanjut<ph name="END_LINK1" /></translation>
@@ -1533,6 +1549,7 @@
 <translation id="3067198179881736288">Instal aplikasi?</translation>
 <translation id="3067198360141518313">Jalankan plugin ini</translation>
 <translation id="3071624960923923138">Anda dapat mengklik di sini untuk membuka tab baru</translation>
+<translation id="3072775339180057696">Izinkan situs melihat <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Anda perlu memulai ulang untuk memulai proses Powerwash. Setelah proses mulai ulang, Anda akan diminta untuk mengonfirmasi apakah ingin melanjutkan.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Data login Anda telah dihapus</translation>
@@ -1545,6 +1562,7 @@
 <translation id="3085412380278336437">Situs dapat menggunakan kamera Anda</translation>
 <translation id="3085752524577180175">Host SOCKS</translation>
 <translation id="3088052000289932193">Situs menggunakan MIDI</translation>
+<translation id="3088128611727407543">Menyiapkan profil aplikasi ...</translation>
 <translation id="3088325635286126843">&amp;Ubah nama...</translation>
 <translation id="3089137131053189723">Penelusuran dihapus</translation>
 <translation id="3090193911106258841">Mengakses masukan audio dan video</translation>
@@ -1558,6 +1576,7 @@
 <translation id="3115580024857770654">Ciutkan semua</translation>
 <translation id="3117362587799608430">Dok tidak sepenuhnya kompatibel</translation>
 <translation id="3118319026408854581">Bantuan <ph name="PRODUCT_NAME" /></translation>
+<translation id="3118654181216384296">Coba mulai Linux lagi setelah beberapa saat.</translation>
 <translation id="3120430004221004537">Enkripsi tidak mencukupi untuk operasi yang diberikan di: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">Setel ulang perangkat <ph name="IDS_SHORT_PRODUCT_NAME" /> ini</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1567,6 +1586,7 @@
 <translation id="3127156390846601284">Tindakan ini akan menghapus semua data yang disimpan di perangkat untuk semua situs yang ditampilkan. Ingin melanjutkan?</translation>
 <translation id="3127860049873093642">Untuk menghindari masalah pengisian daya dan performa, gunakan adaptor daya USB Type-C atau Dell yang kompatibel.</translation>
 <translation id="3129173833825111527">Batas kiri</translation>
+<translation id="3129215702932019810">Error saat meluncurkan aplikasi</translation>
 <translation id="3130528281680948470">Perangkat Anda akan disetel ulang dan semua akun pengguna serta data lokal akan dibuang. Tindakan ini tidak dapat diurungkan.</translation>
 <translation id="313205617302240621">Lupa sandi?</translation>
 <translation id="3132996321662585180">Refresh tiap hari</translation>
@@ -1582,6 +1602,7 @@
     Deskripsi <ph name="LINUX_VERSION" />:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Aplikasi Chrome</translation>
+<translation id="3150693969729403281">Jalankan pemeriksaan keselamatan sekarang</translation>
 <translation id="3150927491400159470">Muat Ulang Keras</translation>
 <translation id="315116470104423982">Data seluler</translation>
 <translation id="3151539355209957474">Waktu Mulai</translation>
@@ -1674,6 +1695,7 @@
 <translation id="3282568296779691940">Login ke Chrome</translation>
 <translation id="3285322247471302225">&amp;Tab Baru</translation>
 <translation id="328571385944182268">Simpan sandi Anda?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> akan dapat melihat <ph name="FILENAME" /> hingga Anda menutup semua tab <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Ekstensi yang berjalan dalam mode pengembang dapat membahayakan komputer Anda. Jika Anda bukan pengembang, Anda sebaiknya menonaktifkan ekstensi yang berjalan dalam mode pengembang ini agar tetap aman.</translation>
 <translation id="3289856944988573801">Untuk memeriksa pembaruan, gunakan Ethernet atau Wi-Fi.</translation>
 <translation id="3290356915286466215">Tidak aman</translation>
@@ -1780,7 +1802,9 @@
 <translation id="3441653493275994384">Layar</translation>
 <translation id="3445925074670675829">Perangkat USB-C</translation>
 <translation id="344630545793878684">Membaca data Anda di sejumlah situs</translation>
+<translation id="3448086340637592206">Persyaratan Tambahan Google Chrome dan Chrome OS</translation>
 <translation id="3448492834076427715">Perbarui akun</translation>
+<translation id="3449393517661170867">Jendela dengan tab baru</translation>
 <translation id="3449839693241009168">Tekan <ph name="SEARCH_KEY" /> untuk mengirimkan perintah ke <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Persentase Pemakaian Status Menganggur</translation>
 <translation id="3451332697983754369">Sinkronkan <ph name="DEVICE_TYPE" /> saya</translation>
@@ -1961,6 +1985,7 @@
 <translation id="3681311097828166361">Terima kasih atas masukannya. Anda sedang offline, laporan akan dikirim nanti.</translation>
 <translation id="3682824389861648626">Ambang batas gerakan</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> Permintaan Berbagi Layar</translation>
+<translation id="3686074530047028092">Akun Education</translation>
 <translation id="368789413795732264">Terdapat kesalahan saat mencoba menulis file: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Menulis ke file dan folder yang Anda buka di aplikasi</translation>
 <translation id="3688526734140524629">Ubah saluran</translation>
@@ -2029,6 +2054,7 @@
 <translation id="3759933321830434300">Blokir bagian halaman web</translation>
 <translation id="3760460896538743390">Periksa Halaman Latar &amp;Belakang</translation>
 <translation id="37613671848467444">Buka di &amp;Jendela Samaran</translation>
+<translation id="3761556954875533505">Izinkan situs mengedit file?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Berkomunikasi dengan satu perangkat USB}other{Berkomunikasi dengan # perangkat USB}}</translation>
 <translation id="3765246971671567135">Tidak dapat membaca kebijakan mode demo offline.</translation>
 <translation id="3768037234834996183">Menyinkronkan preferensi Anda...</translation>
@@ -2127,6 +2153,7 @@
 <translation id="3873423927483480833">Tampilkan PIN</translation>
 <translation id="3873915545594852654">Terjadi masalah dengan ARC++.</translation>
 <translation id="3879748587602334249">Pengelola download</translation>
+<translation id="3881321138433527084">Safe Browsing nonaktif. Aktifkan agar tetap aman di web.</translation>
 <translation id="3882165008614329320">Video yang sudah ada dari kamera atau file</translation>
 <translation id="3886446263141354045">Permintaan Anda untuk mengakses situs ini telah dikirim ke <ph name="NAME" /></translation>
 <translation id="3888550877729210209">Mencatat dengan <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2163,6 +2190,7 @@
 <translation id="3927932062596804919">Tolak</translation>
 <translation id="3928570707778085600">Simpan perubahan ke <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Ekstensi ini dapat melihat dan mengubah informasi pada situs ini.</translation>
+<translation id="3930155420525972941">Pindahkan Grup ke Jendela Baru</translation>
 <translation id="3930737994424905957">Mencari perangkat</translation>
 <translation id="3930968231047618417">Warna latar belakang</translation>
 <translation id="3933283459331715412">Pulihkan sandi yang dihapus untuk <ph name="USERNAME" /></translation>
@@ -2321,6 +2349,7 @@
 <translation id="4130750466177569591">Saya setuju</translation>
 <translation id="413121957363593859">Komponen</translation>
 <translation id="4131410914670010031">Hitam dan putih</translation>
+<translation id="4133076602192971179">Buka aplikasi untuk mengubah sandi</translation>
 <translation id="4136203100490971508">Fitur Cahaya Malam akan otomatis dinonaktifkan saat matahari terbit</translation>
 <translation id="41365691917097717">Dengan melanjutkan, proses debug ADB akan diaktifkan untuk membuat dan menguji aplikasi Android. Perhatikan bahwa tindakan ini dapat menginstal aplikasi Android yang belum diverifikasi oleh Google, dan perlu reset ke setelan pabrik untuk menonaktifkannya.</translation>
 <translation id="4138267921960073861">Tampilkan nama pengguna dan foto pada layar masuk</translation>
@@ -2432,6 +2461,7 @@
 <translation id="4330387663455830245">Jangan Pernah Terjemahkan <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Menyiapkan Kontrol Orang Tua</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 Dengan Enkripsi RSA</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Administrator Anda mengaktifkan kembali 1 ekstensi yang berpotensi berbahaya}other{Administrator Anda mengaktifkan kembali # ekstensi yang berpotensi berbahaya}}</translation>
 <translation id="4336434711095810371">Hapus semua data</translation>
 <translation id="4336979451636460645">Untuk log jaringan, lihat: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> ingin berkomunikasi dengan aplikasi "<ph name="EXTENSION_NAME" />"</translation>
@@ -2468,6 +2498,7 @@
 <translation id="4384652540891215547">Aktifkan ekstensi</translation>
 <translation id="438503109373656455">Sembrani</translation>
 <translation id="4387004326333427325">Sertifikat atutentikasi ditolak dari jarak jauh</translation>
+<translation id="4387890294700445764">Sandi yang telah dibobol</translation>
 <translation id="4389091756366370506">Pengguna <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Samaran}other{# jendela samaran terbuka}}</translation>
 <translation id="439266289085815679">Konfigurasi Bluetooth dikontrol oleh <ph name="USER_EMAIL" />.</translation>
@@ -2499,6 +2530,7 @@
 <translation id="4429030830601238961">Data ini melanggar kebijakan keamanan organisasi Anda dan tidak dapat ditempel.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Bookmark ditambahkan</translation>
+<translation id="4432621511648257259">Sandi salah</translation>
 <translation id="4434045419905280838">Pop-up dan pengalihan</translation>
 <translation id="443454694385851356">Lama (tidak aman)</translation>
 <translation id="443475966875174318">Update atau hapus aplikasi yang tidak kompatibel</translation>
@@ -2736,6 +2768,7 @@
 <translation id="4785719467058219317">Anda menggunakan kunci keamanan yang tidak terdaftar di situs ini</translation>
 <translation id="4788092183367008521">Periksa sambungan jaringan Anda, lalu coba lagi.</translation>
 <translation id="4792711294155034829">Lapo&amp;rkan Masalah...</translation>
+<translation id="4794810983896241342">Update dikelola oleh <ph name="BEGIN_LINK" />administrator Anda<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Halaman Web, HTML Saja</translation>
 <translation id="4798236378408895261">Lampirkan <ph name="BEGIN_LINK" />Log Bluetooth<ph name="END_LINK" /> (internal Google)</translation>
 <translation id="4801448226354548035">Sembunyikan akun</translation>
@@ -2748,6 +2781,7 @@
 <translation id="4808667324955055115">Pop-up diblokir:</translation>
 <translation id="480990236307250886">Buka beranda</translation>
 <translation id="4811503964269049987">Masukkan Tab yang Dipilih ke Grup</translation>
+<translation id="4811818760963189951">Dinonaktifkan karena Anda menonaktifkan sinkronisasi histori</translation>
 <translation id="4813136279048157860">Gambar Saya</translation>
 <translation id="4813512666221746211">Kesalahan jaringan</translation>
 <translation id="4814378367953456825">Masukkan nama untuk sidik jari ini</translation>
@@ -2777,6 +2811,7 @@
 <translation id="4850669014075537160">Gulir</translation>
 <translation id="4850886885716139402">Lihat</translation>
 <translation id="4853020600495124913">Buka di &amp;jendela baru</translation>
+<translation id="4854317507773910281">Pilih akun orang tua yang akan memberi persetujuan</translation>
 <translation id="485480310608090163">Setelan dan izin lainnya</translation>
 <translation id="4856478137399998590">Layangan data seluler Anda diaktifkan dan siap untuk digunakan</translation>
 <translation id="4856855265648545577">Menampilkan tombol Peluncur, Kembali, Ringkasan di Rak dalam mode tablet. Diaktifkan saat ChromeVox (masukan lisan) atau Tombol Akses aktif.</translation>
@@ -2829,6 +2864,7 @@
 <translation id="4908811072292128752">Buka tab baru untuk mengakses 2 situs sekaligus</translation>
 <translation id="4909038193460299775">Karena akun ini dikelola oleh <ph name="DOMAIN" />, bookmark, histori, sandi, dan setelan yang lain akan dihapus dari perangkat ini. Namun, data Anda akan tetap disimpan di Akun Google dan dapat dikelola di <ph name="BEGIN_LINK" />Google Dasbor<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Bangun saat Nganggur</translation>
+<translation id="4916542008280060967">Izinkan situs mengedit <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Beralih ke browser yang aman</translation>
 <translation id="4917385247580444890">Kuat</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ingin berkomunikasi dengan ekstensi "<ph name="EXTENSION_NAME" />"</translation>
@@ -2900,6 +2936,7 @@
 <translation id="5017633213534173756">Ingat</translation>
 <translation id="5018207570537526145">Buka situs ekstensi</translation>
 <translation id="5021750053540820849">Belum diperbarui</translation>
+<translation id="5026806129670917316">Aktifkan Wi-Fi</translation>
 <translation id="5026874946691314267">Jangan tampilkan pemberitahuan ini lagi</translation>
 <translation id="5027550639139316293">Sertifikat Email</translation>
 <translation id="5027562294707732951">Tambahkan ekstensi</translation>
@@ -2913,10 +2950,12 @@
 <translation id="5040823038948176460">Setelan konten tambahan</translation>
 <translation id="5042282098504489593">Buka Setelan untuk menghubungkan <ph name="USB_DEVICE_NAME" /> ke Linux</translation>
 <translation id="5043913660911154449">Atau tentukan PPD printer <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Dinonaktifkan karena Anda mengenkripsi data yang disinkronkan dengan frasa sandi</translation>
 <translation id="5045550434625856497">Sandi salah</translation>
 <translation id="504561833207953641">Membuka di sesi browser yang ada.</translation>
 <translation id="5047421709274785093">Blokir situs agar tidak menggunakan sensor gerakan dan cahaya</translation>
 <translation id="5050042263972837708">Nama grup</translation>
+<translation id="5051073330196664891">Persyaratan Layanan universal (uToS) Google</translation>
 <translation id="5051836348807686060">Fitur periksa ejaan tidak didukung untuk bahasa yang Anda pilih</translation>
 <translation id="5052499409147950210">Edit situs</translation>
 <translation id="5053604404986157245">Sandi TPM yang dibuat secara acak tidak tersedia. Hal ini normal setelah menjalankan Powerwash.</translation>
@@ -2954,6 +2993,7 @@
 <translation id="5097002363526479830">Gagal menyambung ke jaringan '<ph name="NAME" />': <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Buka semua bookmark</translation>
 <translation id="5101839224773798795">Klik secara otomatis saat kursor berhenti</translation>
+<translation id="5107443654503185812">Ekstensi telah menonaktifkan Safe Browsing</translation>
 <translation id="5108967062857032718">Setelan - Hapus aplikasi Android</translation>
 <translation id="5109044022078737958">Susanti</translation>
 <translation id="5111646998522066203">Keluar dari Mode Samaran</translation>
@@ -3009,6 +3049,7 @@
 <translation id="5184063094292164363">Konsol &amp;JavaScript</translation>
 <translation id="5184209580557088469">Sudah ada tiket dengan nama pengguna ini</translation>
 <translation id="5184662919967270437">Memperbarui perangkat</translation>
+<translation id="5185359571430619712">Ekstensi ulasan</translation>
 <translation id="5185386675596372454">Versi terbaru dari "<ph name="EXTENSION_NAME" />" telah dinonaktifkan karena versi tersebut memerlukan tingkat izin yang lebih tinggi.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> ingin mendownload beberapa file</translation>
@@ -3040,6 +3081,7 @@
 <translation id="523505283826916779">Setelan aksesibilitas</translation>
 <translation id="5235750401727657667">Ganti halaman yang ditampilkan saat membuka tab baru</translation>
 <translation id="5238278114306905396">Aplikasi "<ph name="EXTENSION_NAME" />" dihapus secara otomatis.</translation>
+<translation id="5239730228370806996">Data yang dilepaskan ini melanggar kebijakan keamanan organisasi Anda. Anda ingin tetap melanjutkan?</translation>
 <translation id="5241128660650683457">Membaca semua data pada situs web yang Anda kunjungi</translation>
 <translation id="5242724311594467048">Aktifkan "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="5243522832766285132">Coba lagi setelah beberapa saat</translation>
@@ -3058,6 +3100,7 @@
 <translation id="5260334392110301220">Smart Quotes</translation>
 <translation id="5260508466980570042">Maaf, email atau sandi Anda tidak dapat diverifikasi. Harap coba lagi.</translation>
 <translation id="5261683757250193089">Buka di Toko Web</translation>
+<translation id="5262178194499261222">Hapus sandi</translation>
 <translation id="5264148714798105376">Tindakan ini perlu waktu beberapa menit.</translation>
 <translation id="5264252276333215551">Sambungkan ke internet untuk meluncurkan aplikasi Anda dalam mode kios.</translation>
 <translation id="5265562206369321422">Offline selama lebih dari satu minggu</translation>
@@ -3327,6 +3370,7 @@
 <translation id="5618075537869101857">Waduh, aplikasi kios tidak dapat diluncurkan.</translation>
 <translation id="5618333180342767515">(mungkin membutuhkan beberapa menit)</translation>
 <translation id="56197088284879152">Sambungan tersendat ke perangkat jarak jauh: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">Tidak ada sandi yang tersimpan</translation>
 <translation id="5620549857835247159">Menampilkan tombol Peluncur, Kembali, dan Ringkasan di Rak dalam mode tablet.</translation>
 <translation id="5620568081365989559">DevTools meminta akses penuh ke <ph name="FOLDER_PATH" />. Pastikan Anda tidak memiliki informasi penting apa pun.</translation>
 <translation id="5620612546311710611">statistik penggunaan</translation>
@@ -3420,6 +3464,7 @@
 <translation id="5747785204778348146">Pengembang - tidak stabil</translation>
 <translation id="5747809636523347288">Tempel dan buka <ph name="URL" /></translation>
 <translation id="5750324801516359607">Jauh</translation>
+<translation id="5751887393582880060">File yang diupload ini melanggar kebijakan keamanan organisasi Anda. Anda ingin tetap melanjutkan?</translation>
 <translation id="5756163054456765343">Pusat bantuan</translation>
 <translation id="5759728514498647443">Dokumen yang Anda kirim untuk dicetak melalui <ph name="APP_NAME" /> dapat dibaca oleh <ph name="APP_NAME" />.</translation>
 <translation id="5763751966069581670">Tidak ada perangkat USB yang ditemukan</translation>
@@ -3481,6 +3526,7 @@
 <translation id="5833726373896279253">Setelan ini hanya boleh diubah-ubah oleh pemiliknya:</translation>
 <translation id="5834581999798853053">Sekitar <ph name="TIME" /> menit lagi</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Perekaman kamera atau mikrofon</translation>
+<translation id="5841270259333717135">Konfigurasi Ethernet</translation>
 <translation id="5842497610951477805">Bluetooth aktif</translation>
 <translation id="5846200638699387931">Sintaks hubungan error: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Telah ditambahkan</translation>
@@ -3526,6 +3572,7 @@
 <translation id="5900358982890952556">Upgrade Linux (Beta)</translation>
 <translation id="5901494423252125310">Tutup printer terbuka</translation>
 <translation id="5901630391730855834">Kuning</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Anda mengaktifkan kembali 1 ekstensi yang berpotensi berbahaya}other{Anda mengaktifkan kembali # ekstensi yang berpotensi berbahaya}}</translation>
 <translation id="5906655207909574370">Hampir selesai diperbarui! Mulai ulang perangkat untuk menyelesaikan pembaruan.</translation>
 <translation id="5906732635754427568">Data yang dikaitkan dengan aplikasi ini akan dihapus dari perangkat ini.</translation>
 <translation id="5908769186679515905">Blokir situs agar tidak menjalankan Flash</translation>
@@ -3555,6 +3602,7 @@
 <translation id="59324397759951282">Perangkat USB dari <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Nomor Seri</translation>
 <translation id="5933376509899483611">Zona waktu</translation>
+<translation id="5935656526031444304">Kelola Safe Browsing</translation>
 <translation id="5938002010494270685">Upgrade keamanan tersedia</translation>
 <translation id="5939518447894949180">Setel ulang</translation>
 <translation id="5941153596444580863">Tambahkan pengguna...</translation>
@@ -3598,6 +3646,7 @@
 <translation id="5993807461461235661">File yang diupload ini dienkripsi dan melanggar kebijakan keamanan organisasi Anda.</translation>
 <translation id="5997337190805127100">Pelajari Akses Situs Lebih Lanjut</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> hasil untuk '<ph name="SEARCH_TEXT" />'</translation>
+<translation id="6002210667729577411">Pindahkan grup ke jendela baru</translation>
 <translation id="6002458620803359783">Suara Pilihan</translation>
 <translation id="6006484371116297560">Klasik</translation>
 <translation id="6007240208646052708">Penelusuran suara dalam bahasa Anda tidak tersedia.</translation>
@@ -3629,6 +3678,7 @@
 <translation id="6040852767465482106">Identitas Anonim</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Layanan lokasi Google menggunakan sumber seperti Wi‑Fi, jaringan seluler, dan sensor untuk membantu memperkirakan lokasi perangkat Anda.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Anda dapat menonaktifkan Lokasi dengan menonaktifkan setelan Lokasi utama di perangkat. Anda juga dapat menonaktifkan penggunaan Wi-Fi, jaringan seluler, dan sensor untuk lokasi di setelan lokasi.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> akan dapat melihat semua file di <ph name="FOLDERNAME" /> hingga Anda menutup semua tab <ph name="ORIGIN" /></translation>
 <translation id="6041155700700864984">Keluar dari Layar Penuh</translation>
 <translation id="604124094241169006">Otomatis</translation>
 <translation id="6042308850641462728">Lainnya</translation>
@@ -3690,6 +3740,7 @@
 <translation id="6104311680260824317">Tidak dapat menggabungkan perangkat ke domain. Server tidak mendukung jenis enkripsi Kerberos yang ditentukan. Centang "Opsi lainnya" untuk melihat setelan enkripsi.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> meminta agar perangkat ini segera diupdate</translation>
 <translation id="6106186653986077033">Plugin VM memerlukan lisensi</translation>
+<translation id="6107047744202598802">Mengizinkan situs mengingat kunjungan Anda dan melacak Anda di seluruh web</translation>
 <translation id="6112294629795967147">Sentuh untuk mengubah ukuran</translation>
 <translation id="6112727384379533756">Tambahkan tiket</translation>
 <translation id="6112931163620622315">Periksa ponsel Anda</translation>
@@ -3768,6 +3819,7 @@
 <translation id="622537739776246443">Profil akan dihapus</translation>
 <translation id="6225475702458870625">Koneksi data tersedia dari <ph name="PHONE_NAME" /> Anda</translation>
 <translation id="6226777517901268232">File kunci pribadi (opsional)</translation>
+<translation id="6227280783235722609">ekstensi</translation>
 <translation id="6228691855869374890">Situs ini memiliki kontrol penuh atas perangkat MIDI.</translation>
 <translation id="6228720835160974792">Hasilkan kode QR untuk gambar ini</translation>
 <translation id="6229890768313448549">Persyaratan Layanan Google Play tidak dapat dimuat. Coba lagi.</translation>
@@ -3819,6 +3871,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> tidak biasa didownload dan mungkin berbahaya.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Printer baru di jaringan Anda}other{Printer baru di jaringan Anda}}</translation>
 <translation id="6286708577777130801">Detail sandi tersimpan</translation>
+<translation id="6291163159361301370">Untuk memulai Linux, <ph name="ORGANIZATION_NAME" /> mengharuskan Anda mencadangkan data dan menyetel ulang Chromebook ini ke setelan pabrik.</translation>
 <translation id="6291949900244949761">Tanyakan saat situs ingin mengakses perangkat USB (direkomendasikan)</translation>
 <translation id="6291953229176937411">&amp;Tampilkan di Penemu</translation>
 <translation id="6295158916970320988">Semua situs</translation>
@@ -4015,6 +4068,7 @@
 <translation id="6561726789132298588">masuk</translation>
 <translation id="656293578423618167">Jalur atau nama file terlalu panjang. Simpan dengan nama yang lebih pendek atau ke lokasi lain.</translation>
 <translation id="6563469144985748109">Pengelola Anda belum menyetujuinya</translation>
+<translation id="6565955132287672866">Perangkat Anda tidak dimatikan dengan benar. Untuk menggunakan Linux (Beta), perangkat harus dimulai ulang.</translation>
 <translation id="6567688344210276845">Tidak dapat memuat ikon '<ph name="ICON" />' untuk tindakan halaman.</translation>
 <translation id="6569934958368283244">Orang lain</translation>
 <translation id="657402800789773160">&amp;Muat Ulang Halaman Ini</translation>
@@ -4131,6 +4185,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Tampilkan pintasan desktop</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> dijeda</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Administrator Anda<ph name="END_LINK" /> telah menonaktifkan Safe Browsing</translation>
 <translation id="6742339027238151589">Dapat diakses ke skrip</translation>
 <translation id="6745592621698551453">Perbarui sekarang</translation>
 <translation id="6746124502594467657">Berpindah ke bawah</translation>
@@ -4389,6 +4444,7 @@
     <ph name="BEGIN_BOLD" />Harap diperhatikan:<ph name="END_BOLD" /> Suara atau rekaman yang mirip mungkin juga dapat digunakan untuk mengakses Asisten. Anda dapat menghapus izin Voice Match di lain waktu dengan menonaktifkannya di Setelan Asisten.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Menukar data dengan perangkat yang bernama: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Perangkat akan dimulai ulang saat update selesai.</translation>
 <translation id="7098389117866926363">Perangkat USB-C (port belakang sebelah kiri)</translation>
 <translation id="7098447629416471489">Mesin telusur lain yang disimpan akan muncul di sini</translation>
 <translation id="7099337801055912064">Tidak dapat memuat PPD yang besar. Ukuran maksimumnya adalah 250 kB.</translation>
@@ -4512,6 +4568,7 @@
 <translation id="7258225044283673131">Aplikasi tidak merespons. Pilih "Tutup paksa" untuk menutup aplikasi.</translation>
 <translation id="7258697411818564379">PIN Anda ditambahkan</translation>
 <translation id="7262004276116528033">Layanan masuk ini dihosting oleh <ph name="SAML_DOMAIN" /></translation>
+<translation id="7266898409676782635">Dapatkan tips <ph name="DEVICE_TYPE" />, penawaran dan informasi terbaru, serta berikan masukan. Anda dapat berhenti berlangganan kapan saja.</translation>
 <translation id="7268127947535186412">Setelan ini dikelola oleh pemilik perangkat.</translation>
 <translation id="7270858098575133036">Tanyakan saat situs ingin menggunakan pesan eksklusif sistem untuk mengakses perangkat MIDI</translation>
 <translation id="7272674038937250585">Tidak tersedia deskripsi</translation>
@@ -4585,6 +4642,7 @@
 <translation id="7364796246159120393">Pilih File</translation>
 <translation id="7366415735885268578">Tambahkan situs</translation>
 <translation id="7366909168761621528">Data browsing</translation>
+<translation id="7367714965999718019">Generator Kode QR</translation>
 <translation id="736877393389250337"><ph name="URL" /> tidak dapat dibuka di <ph name="ALTERNATIVE_BROWSER_NAME" />. Harap hubungi administrator sistem Anda.</translation>
 <translation id="7370592524170198497">Ethernet EAP:</translation>
 <translation id="7371006317849674875">Waktu mulai</translation>
@@ -4842,8 +4900,10 @@
 <translation id="7737238973539693982">Hapus Linux (Beta)</translation>
 <translation id="7740996059027112821">Standar</translation>
 <translation id="7744047395460924128">Lihat histori pencetakan Anda</translation>
+<translation id="7744192722284567281">Ditemukan di pelanggaran data</translation>
 <translation id="7746457520633464754">Untuk mendeteksi aplikasi dan situs berbahaya, Chrome mengirimkan URL beberapa halaman yang Anda kunjungi, informasi sistem terbatas, dan beberapa konten halaman ke Google</translation>
 <translation id="7750228210027921155">Picture-in-picture</translation>
+<translation id="7751229152614300329">Safe Browsing sudah versi terbaru dan melindungi Anda dari situs dan download berbahaya</translation>
 <translation id="7751260505918304024">Tampilkan semua</translation>
 <translation id="7754704193130578113">Tanyakan lokasi penyimpanan setiap file sebelum mendownload</translation>
 <translation id="7755287808199759310">Orang tua dapat membuka blokirnya untukmu</translation>
@@ -4857,6 +4917,7 @@
 <translation id="7766807826975222231">Ikuti tur</translation>
 <translation id="7766838926148951335">Terima izin</translation>
 <translation id="7769672763586021400">ID Model</translation>
+<translation id="7770651108375708429">Putuskan koneksi Wi-Fi</translation>
 <translation id="7771452384635174008">Tata letak</translation>
 <translation id="7772032839648071052">Konfirmasi frasa sandi</translation>
 <translation id="7772127298218883077">Tentang <ph name="PRODUCT_NAME" /></translation>
@@ -4991,6 +5052,7 @@
 <translation id="7910768399700579500">&amp;Map baru</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Sandi Anda telah diubah di server. Harap logout, lalu login kembali.</translation>
+<translation id="7914583336730284547">File yang dibuang ini melanggar kebijakan keamanan organisasi Anda. Anda ingin tetap melanjutkan?</translation>
 <translation id="7915457674565721553">Sambungkan ke internet untuk menyiapkan kontrol orang tua</translation>
 <translation id="7915471803647590281">Beri tahu kami apa yang terjadi sebelum mengirim masukan.</translation>
 <translation id="7918257978052780342">Daftarkan</translation>
@@ -5014,6 +5076,7 @@
 <translation id="7939412583708276221">Lanjutkan saja</translation>
 <translation id="7942349550061667556">Merah</translation>
 <translation id="7943837619101191061">Tambahkan Lokasi...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 sandi yang telah dibobol}other{# sandi yang telah dibobol}}</translation>
 <translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" ingin terhubung</translation>
 <translation id="7946586320617670168">Nama domain harus aman</translation>
 <translation id="794676567536738329">Konfirmasi Izin</translation>
@@ -5088,6 +5151,7 @@
 <translation id="8028803902702117856">Mendownload <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">Ukuran</translation>
 <translation id="8030656706657716245">Tambahkan Printer</translation>
+<translation id="8030852056903932865">Setuju</translation>
 <translation id="8032244173881942855">Tidak dapat mentransmisi tab.</translation>
 <translation id="8033827949643255796">dipilih</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Buka semua di &amp;jendela samaran}=1{Buka di &amp;jendela samaran}other{Buka semua (#) di &amp;jendela samaran}}</translation>
@@ -5112,6 +5176,7 @@
 <translation id="8059417245945632445">&amp;Periksa perangkat</translation>
 <translation id="8059456211585183827">Tidak ada printer yang tersedia untuk disimpan.</translation>
 <translation id="8063235345342641131">Avatar hijau default</translation>
+<translation id="8063535366119089408">Lihat file</translation>
 <translation id="8064671687106936412">Kunci:</translation>
 <translation id="8068253693380742035">Sentuh untuk login</translation>
 <translation id="8068809649322155577">Ini akan menghapus semua data dan cookie yang disimpan oleh <ph name="SITE_GROUP_NAME" />, semua situs dalam grup tersebut, dan aplikasi yang terinstal di dalamnya.</translation>
@@ -5177,6 +5242,7 @@
 <translation id="8152091997436726702">Waktu pendaftaran printer telah habis. Untuk mendaftarkan printer, Anda harus mengonfirmasi pendaftaran di printer tersebut.</translation>
 <translation id="8154790740888707867">Tidak ada file</translation>
 <translation id="815491593104042026">Ups!  Autentikasi gagal karena telah dikonfigurasi untuk menggunakan URL yang tidak aman (<ph name="BLOCKED_URL" />).  Hubungi administrator Anda.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Tidak ditemukan sandi yang telah dibobol}=1{{COUNT} sandi yang telah dibobol}other{{COUNT} sandi yang telah dibobol}}</translation>
 <translation id="8157704005178149728">Menyiapkan pengawasan</translation>
 <translation id="8158117992543756526">Perangkat ini berhenti mendapatkan update software dan keamanan otomatis pada <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Kesalahan Saat Menyetel Kepercayaan Sertifikat</translation>
@@ -5230,6 +5296,7 @@
 <translation id="8226742006292257240">Di bawah adalah sandi TPM yang dibuat secara acak yang telah ditetapkan untuk komputer Anda:</translation>
 <translation id="8227119283605456246">Lampirkan file</translation>
 <translation id="8230134520748321204">Simpan sandi untuk <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Setelan Internet</translation>
 <translation id="8234795456569844941">Bantu engineer kami memperbaiki masalah ini. Beri tahu kami yang terjadi tepat sebelum Anda mendapatkan pesan error profil:</translation>
 <translation id="8236123533334037984">Organisasi Anda memindai file yang diupload ini untuk persetujuan keamanan.</translation>
 <translation id="8236917170563564587">Bagikan tab ini saja</translation>
@@ -5408,6 +5475,7 @@
 <translation id="8472623782143987204">cadangan hardware</translation>
 <translation id="8473863474539038330">Alamat dan lain-lain</translation>
 <translation id="8475313423285172237">Program lain di komputer Anda menambahkan ekstensi yang dapat mengubah cara kerja Chrome.</translation>
+<translation id="8476659515398963495">Data yang ditempel ini melanggar kebijakan keamanan organisasi Anda. Anda ingin tetap melanjutkan?</translation>
 <translation id="8477241577829954800">Diganti</translation>
 <translation id="8477384620836102176">&amp;Umum</translation>
 <translation id="8480082892550707549">Meskipun sebelumnya Anda telah mendownload file dari situs ini, situs mungkin sementara tidak aman (diretas). Coba download file ini nanti.</translation>
@@ -5461,6 +5529,7 @@
 <translation id="8547013269961688403">Aktifkan kaca pembesar layar penuh</translation>
 <translation id="85486688517848470">Tahan tombol Penelusuran untuk mengalihkan perilaku tombol baris atas</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 item}other{# item}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> akan dapat mengedit file di <ph name="FOLDERNAME" /> hingga Anda menutup semua tab <ph name="ORIGIN" /></translation>
 <translation id="8551388862522347954">Lisensi</translation>
 <translation id="8553342806078037065">Kelola orang lain</translation>
 <translation id="8554899698005018844">Tidak ada bahasa</translation>
@@ -5519,6 +5588,7 @@
 <translation id="8637688295594795546">Pembaruan sistem tersedia. Bersiap mendownload...</translation>
 <translation id="8639047128869322042">Memeriksa software berbahaya...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Port</translation>
+<translation id="8641606876632989680">Chrome akan memberi tahu Anda saat Anda login dengan sandi yang telah dibobol</translation>
 <translation id="8642900771896232685">2 detik</translation>
 <translation id="8642947597466641025">Perbesar Teks</translation>
 <translation id="8644655801811752511">Tidak dapat menyetel ulang kunci keamanan. Coba setel ulang kunci setelah memasukkannya.</translation>
@@ -5564,10 +5634,12 @@
 <translation id="8688579245973331962">Tidak melihat nama Anda?</translation>
 <translation id="8688591111840995413">Sandi lemah</translation>
 <translation id="8688672835843460752">Tersedia</translation>
+<translation id="8691418731028620688">Sambungkan ke Wi-Fi</translation>
 <translation id="8695825812785969222">Buka &amp;Lokasi...</translation>
 <translation id="869884720829132584">Menu aplikasi</translation>
 <translation id="869891660844655955">Masa berlaku</translation>
 <translation id="8703346390800944767">Lewati Iklan</translation>
+<translation id="870341961648617780">Setelan Safe Browsing dan keamanan lanjutan</translation>
 <translation id="8705331520020532516">Nomor Seri</translation>
 <translation id="8705580154597116082">Wi-Fi tersedia melalui ponsel</translation>
 <translation id="8705629851992224300">Kunci keamanan Anda tidak dapat dibaca</translation>
@@ -5613,6 +5685,7 @@
 <translation id="874689135111202667">{0,plural, =1{Upload 1 file ke situs ini?}other{Upload # file ke situs ini?}}</translation>
 <translation id="8748384418490037181">Opsi Smart Lock</translation>
 <translation id="8749863574775030885">Akses perangkat USB dari vendor tak dikenal</translation>
+<translation id="8750133148106010815">Untuk memulai Google Play, <ph name="ORGANIZATION_NAME" /> mengharuskan Anda mencadangkan data dan menyetel ulang Chomebook ini ke setelan pabrik.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ingin terhubung ke port serial</translation>
 <translation id="8754200782896249056">&lt;p&gt;Saat mengoperasikan <ph name="PRODUCT_NAME" /> pada lingkungan desktop yang didukung, setelan proxy sistem akan digunakan. Akan tetapi, tampaknya kami tidak dapat mendukung sistem Anda atau mungkin ada masalah saat meluncurkan konfigurasi sistem.&lt;/p&gt;
 
@@ -5667,6 +5740,7 @@
 <translation id="8809147117840417135">Hijau kebiruan terang</translation>
 <translation id="8813698869395535039">Tidak dapat masuk ke <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">lembaran kertas</translation>
+<translation id="8813872945700551674">Minta orang tuamu menyetujui "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="8813969267212093033">Teks sistem ditampilkan dalam bahasa ini</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Harap tunggu, arsip sedang dipindai...</translation>
@@ -5720,6 +5794,7 @@
 <translation id="8872187374998143710">Mulai ulang perangkat Anda untuk menggunakan Plugin VM.</translation>
 <translation id="8872777911145321141">Tanyakan saat situs ingin menggunakan perangkat dan data virtual reality Anda (direkomendasikan)</translation>
 <translation id="8874184842967597500">Tidak tersambung</translation>
+<translation id="8875775314572167244">Setelan ethernet</translation>
 <translation id="8876307312329369159">Setelan ini tidak dapat diubah dalam sesi demo.</translation>
 <translation id="8877448029301136595">[direktori induk]</translation>
 <translation id="8878384954777710821">Meng-uninstal Plugin VM ...</translation>
@@ -5761,6 +5836,7 @@
 <translation id="892706138619340876">Beberapa setelan telah disetel ulang</translation>
 <translation id="8930351635855238750">Setelan cookie baru akan berlaku setelah halaman dimuat ulang</translation>
 <translation id="8931394284949551895">Perangkat baru</translation>
+<translation id="8931475688782629595">Kelola yang Anda sinkronkan</translation>
 <translation id="8932894639908691771">Opsi Tombol Akses</translation>
 <translation id="8933960630081805351">&amp;Tampilkan dalam Penemu</translation>
 <translation id="8934732568177537184">Lanjutkan</translation>
@@ -5918,6 +5994,7 @@
 <translation id="9148126808321036104">Login sekali lagi</translation>
 <translation id="9149866541089851383">Edit...</translation>
 <translation id="9150045010208374699">Menggunakan kamera Anda</translation>
+<translation id="9150429437595727962">Setelan Wi-Fi</translation>
 <translation id="9153934054460603056">Simpan identitas dan sandi</translation>
 <translation id="9154194610265714752">Diperbarui</translation>
 <translation id="91568222606626347">Membuat Pintasan...</translation>
@@ -5947,6 +6024,7 @@
 <translation id="9203398526606335860">&amp;Penyidikan diaktifkan</translation>
 <translation id="9203904171912129171">Pilih perangkat</translation>
 <translation id="9203962528777363226">Administrator perangkat ini telah menonaktifkan pengguna baru agar tidak ditambahkan</translation>
+<translation id="9211177926627870898">Perlu update</translation>
 <translation id="9214520840402538427">Uups!  Waktu pemulaian atribut waktu pemasangan telah habis.  Hubungi perwakilan dukungan Anda.</translation>
 <translation id="9214695392875603905">Kue mangkok</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" ditambahkan</translation>
@@ -5978,6 +6056,7 @@
 <translation id="945522503751344254">Kirim masukan</translation>
 <translation id="947329552760389097">&amp;Periksa Elemen</translation>
 <translation id="952992212772159698">Tidak diaktifkan</translation>
+<translation id="956500788634395331">Anda dilindungi dari ekstensi yang berpotensi berbahaya</translation>
 <translation id="957960681186851048">Situs ini berupaya mendownload beberapa file secara otomatis</translation>
 <translation id="9580706199804957">Tidak dapat terhubung dengan layanan Google</translation>
 <translation id="960719561871045870">Kode operator</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index cc3753bd..1e32000 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Geymslustillingar Adobe Flash Player</translation>
 <translation id="1274997165432133392">Fótspor og önnur gögn vefsvæðis</translation>
 <translation id="1280820357415527819">Leitar að farsímakerfum</translation>
+<translation id="1280965841156951489">Breyta skrám</translation>
 <translation id="1282420830958964167">Þú hefur náð hámarkinu sem foreldri þitt valdi fyrir „<ph name="APP_NAME" />“. Þú getur notað það í <ph name="TIME_LIMIT" /> á morgun.</translation>
 <translation id="1285320974508926690">Aldrei þýða þetta vefsvæði</translation>
 <translation id="1285484354230578868">Vista gögn á Google Drive reikningnum þínum</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Dökkfjólublár</translation>
 <translation id="1692799361700686467">Fótspor frá mörgum vefsvæðum leyfð.</translation>
 <translation id="1697150536837697295">List</translation>
+<translation id="1697686431566694143">Breyta skrá</translation>
 <translation id="1698122934742150150">Aðeins yfirstandandi huliðslota</translation>
 <translation id="1698650002254827833">Ekki er hægt að sækja lista yfir forrit. Reyndu aftur.</translation>
 <translation id="1701062906490865540">Fjarlægja þennan notanda</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Engar íhlutir eru uppsettir.</translation>
 <translation id="1932098463447129402">Ekki fyrir</translation>
 <translation id="1933809209549026293">Tengdu mús eða lyklaborð. Ef þú ert að nota Bluetooth-tæki skaltu gæta þess að það sé tilbúið fyrir pörun.</translation>
+<translation id="1936931585862840749">Notaðu tölu til að gefa til kynna fjölda eintaka sem á að prenta (1 upp í <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Ekki er hægt að flytja inn rammaskipulagsgerð <ph name="ARCHITECTURE_CONTAINER" /> með þessu tæki, sem er <ph name="ARCHITECTURE_DEVICE" />. Þú getur prófað að endurheimta þennan ramma í öðru tæki eða opnað skrárnar í þessari rammamynd í skráaforritinu.</translation>
 <translation id="1938351510777341717">Ytri skipanalykill</translation>
 <translation id="1940546824932169984">Tengd tæki</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Setja þennan flipa í fókus</translation>
 <translation id="2344028582131185878">Sjálfvirkt niðurhal</translation>
 <translation id="2345723121311404059">Ein síða til <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">SODA Service</translation>
 <translation id="2347644257713614136">Notkun Hangouts og Cast for Education fellur undir persónuverndarstefnu Google.</translation>
 <translation id="2348176352564285430">Forrit: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Endurhlaðið</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Hætt við Linux-endurheimt</translation>
 <translation id="2423578206845792524">&amp;Vista mynd sem...</translation>
 <translation id="2428510569851653187">Lýstu því hvað þú varst að gera þegar flipinn hrundi</translation>
+<translation id="2428939361789119025">Slökkva á Wi-Fi</translation>
 <translation id="2431027948063157455">Ekki var hægt að hlaða Google hjálparanum. Athugaðu nettenginguna og reyndu aftur.</translation>
 <translation id="2432753757290432042">Uppfæra þarf Linux (tilraunaútgáfa)</translation>
 <translation id="2433452467737464329">Bættu fyrirspurnarbreytu við vefslóðina til að endurnýja síðuna sjálfkrafa: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Senda notkunar- og greiningargögn. Hjálpaðu okkur að bæta Android fyrir þig með því að senda sjálfkrafa greiningargögn, tækisgögn og upplýsingar um forritanotkun til Google. Þetta mun stuðla að því að bæta stöðugleika kerfa og forrita auk annarra endurbóta. Sum uppsöfnuð gögn munu einnig gagnast forritum og samstarfsaðilum Google, til dæmis þróunaraðilum Android. Ef kveikt er á ítarlegri vef- og forritavirkni geta þessi gögn verið vistuð á Google reikningnum þínum. <ph name="BEGIN_LINK1" />Frekari upplýsingar<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Bæta tengingu við</translation>
 <translation id="2947605845283690091">Vefskoðun ætti að vera hraðvirk. Gefðu þér tíma til að <ph name="BEGIN_LINK" />athuga með viðbæturnar þínar<ph name="END_LINK" /> núna.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{Slökkt er á einni hugsanlega hættulegri viðbót. Þú getur einnig fjarlægt hana.}one{Slökkt er á # hugsanlega hættulegri viðbót. Þú getur einnig fjarlægt þær.}other{Slökkt er á # hugsanlega hættulegum viðbótum. Þú getur einnig fjarlægt þær.}}</translation>
 <translation id="2948300991547862301">Fara á <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Fljótvirkur, einfaldur og öruggur vafri fyrir nútíma vefnotkun.</translation>
 <translation id="2949289451367477459">Nota staðsetningu. Leyfa forritum og þjónustu sem hafa staðsetningarheimild að nota staðsetningu þessa tækis. Google kann að safna staðsetningargögnum öðru hverju og nota þau gögn á nafnlausan hátt til að gera staðsetningar nákvæmari og bæta þjónustu sem styðst við staðsetningar. <ph name="BEGIN_LINK1" />Frekari upplýsingar<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Setja upp forrit?</translation>
 <translation id="3067198360141518313">Keyra þessa viðbót</translation>
 <translation id="3071624960923923138">Þú getur smellt hér til að opna nýjan flipa</translation>
+<translation id="3072775339180057696">Viltu leyfa þessu svæði að skoða <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Endurræsingar er krafist til að hefja djúphreinsun. Að endurræsingu lokinni þarftu að staðfesta að þú viljir halda áfram.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Innskráningargögnum þínum var eytt</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Vefsvæði getur notað myndavélina þína</translation>
 <translation id="3085752524577180175">SOCKS-hýsill</translation>
 <translation id="3088052000289932193">Vefsvæði notar MIDI-tæki</translation>
+<translation id="3088128611727407543">Undirbýr forritaprófíl...</translation>
 <translation id="3088325635286126843">Endu&amp;rnefna...</translation>
 <translation id="3089137131053189723">Leit hreinsuð</translation>
 <translation id="3090193911106258841">Fær aðgang að hljóð- og myndinntaki</translation>
@@ -1596,6 +1604,7 @@
     Lýsing:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome forrit</translation>
+<translation id="3150693969729403281">Keyra öryggisathugun núna</translation>
 <translation id="3150927491400159470">Algjör endurhleðsla</translation>
 <translation id="315116470104423982">Farsímagögn</translation>
 <translation id="3151539355209957474">Upphafstími</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Skráðu þig inn á Chrome</translation>
 <translation id="3285322247471302225">Nýr flipi</translation>
 <translation id="328571385944182268">Vista aðgangsorðin þín?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> mun geta skoðað <ph name="FILENAME" /> þar til þú lokar öllum <ph name="ORIGIN" /> flipum</translation>
 <translation id="3288047731229977326">Viðbætur sem keyra í forritarastillingu geta skaðað tölvuna þína. Ef þú ert ekki forritari ættirðu að gera þessar viðbætur sem keyra í forritarastillingu óvirkar til öryggis.</translation>
 <translation id="3289856944988573801">Notaðu Ethernet-tengingu eða Wi-Fi til að leita að uppfærslum.</translation>
 <translation id="3290356915286466215">Ótryggt</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Lesa gögnin þín á fjölda vefsvæða</translation>
 <translation id="3448086340637592206">Viðbótarskilmálar Google Chrome og Chrome OS</translation>
 <translation id="3448492834076427715">Uppfæra reikning</translation>
+<translation id="3449393517661170867">Nýr flipagluggi</translation>
 <translation id="3449839693241009168">Ýttu á <ph name="SEARCH_KEY" /> til að senda skipanir til <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Nýtingarhlutfall biðstöðu</translation>
 <translation id="3451332697983754369">Samstilla <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Takk fyrir ábendinguna. Þú ert án nettengingar sem stendur og tilkynningin verður send síðar.</translation>
 <translation id="3682824389861648626">Hreyfingarmörk</translation>
 <translation id="3683524264665795342">Beiðni frá <ph name="APP_NAME" /> um að deila skjánum</translation>
+<translation id="3686074530047028092">Skólareikningur</translation>
 <translation id="368789413795732264">Villa kom upp við að reyna að skrifa skrána: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Skrifa í skrár og möppur sem þú opnar í forritinu</translation>
 <translation id="3688526734140524629">Skipta um rás</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Loka á hluta vefsíðna</translation>
 <translation id="3760460896538743390">Kanna &amp;bakgrunnssíðu</translation>
 <translation id="37613671848467444">Opna í hul&amp;iðsglugga</translation>
+<translation id="3761556954875533505">Viltu leyfa svæði að breyta skrám?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Eiga samskipti við USB-tæki}one{Eiga samskipti við # USB-tæki}other{Eiga samskipti við # USB-tæki}}</translation>
 <translation id="3765246971671567135">Ekki tókst að lesa reglu ónettengdrar prufustillingar.</translation>
 <translation id="3768037234834996183">Samstillir kjörstillingar...</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Hafna</translation>
 <translation id="3928570707778085600">Viltu vista breytingar á <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Þessar viðbætur geta séð og breytt upplýsingum á þessu vefsvæði.</translation>
+<translation id="3930155420525972941">Færa hóp í nýjan glugga</translation>
 <translation id="3930737994424905957">Leitar að tækjum</translation>
 <translation id="3930968231047618417">Bakgrunnslitur</translation>
 <translation id="3933283459331715412">Endurheimta aðgangsorð sem var eytt fyrir <ph name="USERNAME" /></translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Ég samþykki</translation>
 <translation id="413121957363593859">Íhlutir</translation>
 <translation id="4131410914670010031">Svarthvítt</translation>
+<translation id="4133076602192971179">Opnaðu forritið til að breyta aðgangsorðinu þínu</translation>
 <translation id="4136203100490971508">Slekkur sjálfkrafa á næturljósi við sólsetur</translation>
 <translation id="41365691917097717">Ef þú heldur áfram kveikir þú á ADB-villuleit til að búa til og prófa Android forrit. Hafðu í huga að þessi aðgerð gerir þér kleift að setja upp Android forrit sem eru ekki staðfest af Google. Núllstilla þarf tækið til að slökkva á þessu.</translation>
 <translation id="4138267921960073861">Sýna notendanöfn og myndir á innskráningarskjánum</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Þýða aldrei <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Setja upp barnalæsingu</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 með RSA-dulkóðun</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Kerfisstjórinn þinn virkjaði aftur 1 viðbót sem er hugsanlega hættuleg}one{Kerfisstjórinn þinn virkjaði aftur # viðbót sem er hugsanlega hættuleg}other{Kerfisstjórinn þinn virkjaði aftur # viðbætur sem eru hugsanlega hættulegar}}</translation>
 <translation id="4336434711095810371">Hreinsa öll gögn</translation>
 <translation id="4336979451636460645">Netannálar eru á: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> vill eiga samskipti við forritið „<ph name="EXTENSION_NAME" />“</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Þú ert að nota öryggislykil sem er ekki skráður hjá þessu vefsvæði</translation>
 <translation id="4788092183367008521">Athugaðu nettenginguna og reyndu aftur.</translation>
 <translation id="4792711294155034829">Tilkynna vandamál...</translation>
+<translation id="4794810983896241342"><ph name="BEGIN_LINK" />Kerfisstjórinn<ph name="END_LINK" /> þinn stjórnar uppfærslum</translation>
 <translation id="479536056609751218">Vefsíða, aðeins HTML</translation>
 <translation id="4798236378408895261">Hengja við <ph name="BEGIN_LINK" />Bluetooth-skrár<ph name="END_LINK" /> (innanhúss hjá Google)</translation>
 <translation id="4801448226354548035">Fela reikninga</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Opnaðu flipa til að vafra á tveimur vefsvæðum samtímis</translation>
 <translation id="4909038193460299775">Þar sem <ph name="DOMAIN" /> stýrir þessum reikningi verða bókamerkin þín, ferillinn, aðgangsorðin og aðrar stillingar hreinsuð af tækinu. Gögnin þín verða þó áfram vistuð á Google reikningnum þínum og hægt er að hafa umsjón með þeim á <ph name="BEGIN_LINK" />stjórnborði Google<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Vakningar í aðgerðaleysi</translation>
+<translation id="4916542008280060967">Viltu leyfa svæði að breyta <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Skipta í öruggan vafra</translation>
 <translation id="4917385247580444890">Mikill</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> vill eiga samskipti við viðbótina „<ph name="EXTENSION_NAME" />“</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Muna</translation>
 <translation id="5018207570537526145">Opna vefsvæði viðbótar</translation>
 <translation id="5021750053540820849">Ekki uppfært enn</translation>
+<translation id="5026806129670917316">Kveikja á Wi-Fi</translation>
 <translation id="5026874946691314267">Ekki sýna þetta aftur</translation>
 <translation id="5027550639139316293">Vottorð tölvupósts</translation>
 <translation id="5027562294707732951">Bæta viðbót við</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">&amp;JavaScript-stjórnborð</translation>
 <translation id="5184209580557088469">Miði með þessu notandanafni er þegar til</translation>
 <translation id="5184662919967270437">Uppfærir tækið þitt</translation>
+<translation id="5185359571430619712">Fara yfir viðbætur</translation>
 <translation id="5185386675596372454">Nýjasta útgáfa <ph name="EXTENSION_NAME" /> hefur verið gerð óvirk því að hún krefst frekari heimilda.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> vill sækja margar skrár</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Sjálfvirkar gæsalappir</translation>
 <translation id="5260508466980570042">Því miður tókst ekki að staðfesta netfangið þitt eða aðgangsorðið. Reyndu aftur.</translation>
 <translation id="5261683757250193089">Opna í vefverslun</translation>
+<translation id="5262178194499261222">Fjarlægja aðgangsorð</translation>
 <translation id="5264148714798105376">Þetta gæti tekið um það bil mínútu.</translation>
 <translation id="5264252276333215551">Tengstu internetinu til að ræsa forritið í sjálfsalastillingu.</translation>
 <translation id="5265562206369321422">Ónettengdur í meira en viku</translation>
@@ -3506,6 +3527,7 @@
 <translation id="5833726373896279253">Einungis eigandinn getur breytt þessum stillingum:</translation>
 <translation id="5834581999798853053">Um <ph name="TIME" /> mínútur eftir</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – upptaka á myndavél eða hljóðnema</translation>
+<translation id="5841270259333717135">Stilla Ethernet</translation>
 <translation id="5842497610951477805">Virkjun á Bluetooth</translation>
 <translation id="5846200638699387931">Málskipunarvilla tengsla: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Þegar bætt við</translation>
@@ -3551,6 +3573,7 @@
 <translation id="5900358982890952556">Uppfæra Linux (tilraunaútgáfa)</translation>
 <translation id="5901494423252125310">Prenthlíf er opin</translation>
 <translation id="5901630391730855834">Gulur</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Þú virkjaðir aftur 1 viðbót sem er hugsanlega hættuleg}one{Þú virkjaðir aftur # viðbót sem er hugsanlega hættuleg}other{Þú virkjaðir aftur # viðbætur sem eru hugsanlega hættulegar}}</translation>
 <translation id="5906655207909574370">Uppfærslan er næstum tilbúin! Endurræstu tækið til að ljúka uppfærslunni.</translation>
 <translation id="5906732635754427568">Gögn sem tengjast þessu forriti verða fjarlægð úr tækinu.</translation>
 <translation id="5908769186679515905">Loka fyrir að vefsvæði noti Flash</translation>
@@ -3580,6 +3603,7 @@
 <translation id="59324397759951282">USB-tæki frá <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Raðnúmer</translation>
 <translation id="5933376509899483611">Tímabelti</translation>
+<translation id="5935656526031444304">Stjórna öruggri vefskoðun</translation>
 <translation id="5938002010494270685">Öryggisuppfærsla í boði</translation>
 <translation id="5939518447894949180">Endurstilla</translation>
 <translation id="5941153596444580863">Bæta notanda við...</translation>
@@ -3623,6 +3647,7 @@
 <translation id="5993807461461235661">Þessi flutningur er dulkóðaður og brýtur gegn öryggisreglum fyrirtækisins þíns.</translation>
 <translation id="5997337190805127100">Frekari upplýsingar um aðgang að vefsvæðum</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> niðurstöður fyrir „<ph name="SEARCH_TEXT" />“</translation>
+<translation id="6002210667729577411">Færa hóp í nýjan glugga</translation>
 <translation id="6002458620803359783">Valdar raddir</translation>
 <translation id="6006484371116297560">Hefðbundið</translation>
 <translation id="6007240208646052708">Raddleit er ekki í boði á þínu tungumáli.</translation>
@@ -4161,6 +4186,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Sýna skjáborðsflýtileið</translation>
 <translation id="6740234557573873150">Hlé gert á <ph name="FILE_NAME" /></translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Kerfisstjórinn þinn<ph name="END_LINK" /> hefur slökkt á öruggri vefskoðun</translation>
 <translation id="6742339027238151589">Aðgengilegt skriftu</translation>
 <translation id="6745592621698551453">Uppfæra núna</translation>
 <translation id="6746124502594467657">Færa niður</translation>
@@ -4419,6 +4445,7 @@
     <ph name="BEGIN_BOLD" />Hafðu í huga:<ph name="END_BOLD" /> Svipuð rödd gæti hugsanlega einnig fengið aðgang að hjálparanum þínum. Þú getur fjarlægt heimildina fyrir Voice Match síðar með því að gera hana óvirka í stillingum hjálparans.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Skiptast á gögnum við tækin sem heita: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Tækið mun endurræsast að uppfærslum loknum.</translation>
 <translation id="7098389117866926363">USB-C tæki (vinstra tengi að aftan)</translation>
 <translation id="7098447629416471489">Aðrar vistaðar leitarvélar birtast hér</translation>
 <translation id="7099337801055912064">Ekki er hægt að hlaða inn stórri PPD-skrá. Hámarksstærð er 250 kB.</translation>
@@ -4891,6 +4918,7 @@
 <translation id="7766807826975222231">Skoða kynningu</translation>
 <translation id="7766838926148951335">Samþykkja heimildir</translation>
 <translation id="7769672763586021400">Auðkenni gerðar</translation>
+<translation id="7770651108375708429">Aftengja Wi-Fi</translation>
 <translation id="7771452384635174008">Útlit</translation>
 <translation id="7772032839648071052">Staðfestu aðgangsorðið</translation>
 <translation id="7772127298218883077">Um <ph name="PRODUCT_NAME" /></translation>
@@ -5049,6 +5077,7 @@
 <translation id="7939412583708276221">Halda samt</translation>
 <translation id="7942349550061667556">Rauður</translation>
 <translation id="7943837619101191061">Bæta staðsetningu við...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 aðgangsorð í hættu}one{# aðgangsorð í hættu}other{# aðgangsorð í hættu}}</translation>
 <translation id="7945031593909029181">„<ph name="CHROME_EXTENSION_NAME" />“ vill tengjast</translation>
 <translation id="7946586320617670168">Uppruni verður að vera öruggur</translation>
 <translation id="794676567536738329">Staðfestu heimildir</translation>
@@ -5147,6 +5176,7 @@
 <translation id="8059417245945632445">Kanna tæk&amp;i</translation>
 <translation id="8059456211585183827">Engir tiltækir prentarar til að vista.</translation>
 <translation id="8063235345342641131">Sjálfgefin græn notandamynd</translation>
+<translation id="8063535366119089408">Skoða skrá</translation>
 <translation id="8064671687106936412">Lykill:</translation>
 <translation id="8068253693380742035">Snertu til að skrá þig inn</translation>
 <translation id="8068809649322155577">Þetta hreinsar öll gögn og fótspor sem <ph name="SITE_GROUP_NAME" />, undirsíður og uppsett forrit þess nota.</translation>
@@ -5212,6 +5242,7 @@
 <translation id="8152091997436726702">Prentaraskráning rann út á tíma. Til að skrá prentara þarftu að staðfesta skráninguna í prentaranum.</translation>
 <translation id="8154790740888707867">Engin skrá</translation>
 <translation id="815491593104042026">Úbbs! Auðkenning mistókst vegna þess að hún var stillt á að nota óörugga vefslóð (<ph name="BLOCKED_URL" />). Hafðu samband við stjórnanda.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Engin aðgangsorð í hættu fundust}=1{{COUNT} aðgangsorð í hættu}one{{COUNT} aðgangsorð í hættu}other{{COUNT} aðgangsorð í hættu}}</translation>
 <translation id="8157704005178149728">Setja upp eftirlit</translation>
 <translation id="8158117992543756526">Þetta tæki hætti að fá sjálfvirkar hugbúnaðar- og öryggisuppfærslur <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Frekari upplýsingar<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Villa við að stilla traust vottorðs</translation>
@@ -5265,6 +5296,7 @@
 <translation id="8226742006292257240">Hér fyrir neðan er TPM-aðgangsorð sem valið var af handahófi og úthlutað til tölvunnar þinnar:</translation>
 <translation id="8227119283605456246">Hengja skrá við</translation>
 <translation id="8230134520748321204">Vista aðgangsorð fyrir <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Internetstillingar</translation>
 <translation id="8234795456569844941">Hjálpaðu verkfræðingum okkar að leysa vandamálið. Segðu okkur hvað gerðist rétt áður en þú fékkst þessi prófílvilluskilaboð.</translation>
 <translation id="8236123533334037984">Fyrirtækið þitt er að skanna þennan gagnaflutning til að kanna hvort hann standist öryggisreglur.</translation>
 <translation id="8236917170563564587">Deila þessum flipa í staðinn</translation>
@@ -5602,6 +5634,7 @@
 <translation id="8688579245973331962">Sérðu ekki nafnið þitt?</translation>
 <translation id="8688591111840995413">Rangt aðgangsorð</translation>
 <translation id="8688672835843460752">Laust</translation>
+<translation id="8691418731028620688">Tengjast við Wi-Fi</translation>
 <translation id="8695825812785969222">Opna staðsetningu...</translation>
 <translation id="869884720829132584">Forritavalmynd</translation>
 <translation id="869891660844655955">Lokadagsetning</translation>
@@ -5761,6 +5794,7 @@
 <translation id="8872187374998143710">Endurræstu tækið til að nota Plugin VM.</translation>
 <translation id="8872777911145321141">Spyrja þegar vefsvæði vill nota sýndarveruleikatækin og -gögnin þín (ráðlagt)</translation>
 <translation id="8874184842967597500">Ekki tengt</translation>
+<translation id="8875775314572167244">Ethernet-stillingar</translation>
 <translation id="8876307312329369159">Ekki er hægt að breyta þessari stillingu í prufuútgáfu.</translation>
 <translation id="8877448029301136595">[yfirmappa]</translation>
 <translation id="8878384954777710821">Fjarlægir Plugin VM...</translation>
@@ -5802,6 +5836,7 @@
 <translation id="892706138619340876">Sumar stillingar voru endurstilltar</translation>
 <translation id="8930351635855238750">Nýjar fótsporastillingar taka gildi þegar síðan hefur verið endurhlaðin</translation>
 <translation id="8931394284949551895">Ný tæki</translation>
+<translation id="8931475688782629595">Stjórnaðu því hvað þú samstillir</translation>
 <translation id="8932894639908691771">Skipta um aðgengismöguleika</translation>
 <translation id="8933960630081805351">&amp;Sýna í Finder</translation>
 <translation id="8934732568177537184">Halda áfram</translation>
@@ -5959,6 +5994,7 @@
 <translation id="9148126808321036104">Skrá inn aftur</translation>
 <translation id="9149866541089851383">Breyta...</translation>
 <translation id="9150045010208374699">Nota myndavélina þína</translation>
+<translation id="9150429437595727962">Wi-Fi stillingar</translation>
 <translation id="9153934054460603056">Vista auðkenni og aðgangsorð</translation>
 <translation id="9154194610265714752">Uppfært</translation>
 <translation id="91568222606626347">Búa til flýtileið...</translation>
@@ -6020,6 +6056,7 @@
 <translation id="945522503751344254">Senda ábendingu</translation>
 <translation id="947329552760389097">&amp;Kanna einingar</translation>
 <translation id="952992212772159698">Ekki virkjuð</translation>
+<translation id="956500788634395331">Tækið er varið gegn viðbótum sem kunna að vera hættulegar</translation>
 <translation id="957960681186851048">Þetta vefsvæði reyndi að sækja margar skrár sjálfkrafa</translation>
 <translation id="9580706199804957">Ekki tókst að tengjast þjónustu Google</translation>
 <translation id="960719561871045870">Kóði símafyrirtækis</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 652ab33..21f98e79 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Impostazioni di archiviazione Adobe Flash Player</translation>
 <translation id="1274997165432133392">Cookie e altri dati dei siti</translation>
 <translation id="1280820357415527819">Ricerca di reti mobili in corso</translation>
+<translation id="1280965841156951489">Modifica file</translation>
 <translation id="1282420830958964167">Hai raggiunto il limite impostato dal tuo genitore per "<ph name="APP_NAME" />". Domani potrai utilizzare l'app per <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Non tradurre mai questo sito</translation>
 <translation id="1285484354230578868">Memorizza dati nel tuo account Google Drive</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Viola scuro</translation>
 <translation id="1692799361700686467">Sono consentiti cookie provenienti da più siti.</translation>
 <translation id="1697150536837697295">Arte</translation>
+<translation id="1697686431566694143">Modifica file</translation>
 <translation id="1698122934742150150">Solo per la sessione di navigazione in incognito corrente</translation>
 <translation id="1698650002254827833">Impossibile caricare l'elenco delle app. Riprova.</translation>
 <translation id="1701062906490865540">Rimuovi questa persona</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Nessun componente installato.</translation>
 <translation id="1932098463447129402">Non prima</translation>
 <translation id="1933809209549026293">Collega un mouse o una tastiera. Se utilizzi un dispositivo Bluetooth, assicurati che sia pronto per essere accoppiato.</translation>
+<translation id="1936931585862840749">Specifica un numero per indicare la quantità di copie da stampare (da 1 a <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Impossibile importare il tipo di architettura del contenitore <ph name="ARCHITECTURE_CONTAINER" /> con questo dispositivo che invece è <ph name="ARCHITECTURE_DEVICE" />. Puoi provare a ripristinare questo contenitore in un diverso dispositivo oppure puoi accedere ai file all'interno dell'immagine del contenitore aprendoli nell'app File.</translation>
 <translation id="1938351510777341717">Comando esterno</translation>
 <translation id="1940546824932169984">Dispositivi connessi</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Imposta stato attivo su questa scheda</translation>
 <translation id="2344028582131185878">Download automatici</translation>
 <translation id="2345723121311404059">1 pagina con <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Servizio SODA</translation>
 <translation id="2347644257713614136">L'utilizzo di Hangouts e Cast for Education è regolato dalle Norme sulla privacy di Google.</translation>
 <translation id="2348176352564285430">App: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Ricaricata</translation>
@@ -1045,6 +1049,7 @@
 <translation id="2422125132043002186">Ripristino di Linux annullato</translation>
 <translation id="2423578206845792524">Sa&amp;lva immagine con nome...</translation>
 <translation id="2428510569851653187">Descrivi cosa stavi facendo quando la scheda si è arrestata in modo anomalo</translation>
+<translation id="2428939361789119025">Disattiva Wi-Fi</translation>
 <translation id="2431027948063157455">Impossibile caricare l'Assistente Google, controlla la connessione di rete e riprova.</translation>
 <translation id="2432753757290432042">Richiesto aggiornamento di Linux (beta)</translation>
 <translation id="2433452467737464329">Aggiungi un parametro di ricerca nell'URL per aggiornare automaticamente la pagina: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1462,6 +1467,7 @@
 <translation id="2944060181911631861">Invia dati diagnostici e sull'utilizzo. Contribuisci a migliorare la tua esperienza Android tramite l'invio automatico a Google di dati diagnostici e sull'utilizzo delle app e del dispositivo. Tali dati contribuiranno alla stabilità di app e sistema, nonché ad altri miglioramenti. Alcuni dati aggregati saranno utili anche alle app e ai partner di Google, ad esempio agli sviluppatori Android. Se hai attivato l'impostazione Attività web e app aggiuntiva, queste informazioni potrebbero essere salvate nel tuo Account Google. <ph name="BEGIN_LINK1" />Ulteriori informazioni<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Aggiungi connessione</translation>
 <translation id="2947605845283690091">La navigazione sul Web deve essere veloce. Prenditi un attimo per <ph name="BEGIN_LINK" />controllare ora le tue estensioni<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 estensione potenzialmente dannosa è stata disattivata. Puoi anche rimuoverla.}other{# estensioni potenzialmente dannose sono state disattivate. Puoi anche rimuoverle.}}</translation>
 <translation id="2948300991547862301">Vai a <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Un browser web veloce, semplice e sicuro, ideato per il Web moderno.</translation>
 <translation id="2949289451367477459">Utilizza la geolocalizzazione. Consenti ad app e servizi che dispongono dell'autorizzazione di accesso alla posizione di usare la posizione del dispositivo. Google potrebbe raccogliere periodicamente dati sulla posizione da usare in forma anonima per migliorare la precisione della geolocalizzazione e i servizi basati sulla posizione. <ph name="BEGIN_LINK1" />Ulteriori informazioni<ph name="END_LINK1" /></translation>
@@ -1542,6 +1548,7 @@
 <translation id="3067198179881736288">Vuoi installare l'app?</translation>
 <translation id="3067198360141518313">Esegui questo plug-in</translation>
 <translation id="3071624960923923138">Puoi fare clic qui per aprire una nuova scheda</translation>
+<translation id="3072775339180057696">Vuoi consentire al sito di visualizzare il file <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">È necessario riavviare per iniziare la procedura di Powerwash. Dopo il riavvio ti verrà chiesto di confermare di voler procedere.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">I dati di accesso sono stati eliminati</translation>
@@ -1554,6 +1561,7 @@
 <translation id="3085412380278336437">Il sito può usare la videocamera</translation>
 <translation id="3085752524577180175">Host SOCKS</translation>
 <translation id="3088052000289932193">Il sito usa un dispositivo MIDI</translation>
+<translation id="3088128611727407543">Preparazione del profilo dell'app…</translation>
 <translation id="3088325635286126843">&amp;Rinomina...</translation>
 <translation id="3089137131053189723">Ricerca cancellata</translation>
 <translation id="3090193911106258841">Accesso all'input audio e video in corso</translation>
@@ -1595,6 +1603,7 @@
     Descrizione:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Applicazioni Chrome</translation>
+<translation id="3150693969729403281">Esegui subito il controllo di sicurezza</translation>
 <translation id="3150927491400159470">Ricaricamento manuale</translation>
 <translation id="315116470104423982">Dati mobili</translation>
 <translation id="3151539355209957474">Ora di inizio</translation>
@@ -1687,6 +1696,7 @@
 <translation id="3282568296779691940">Accedi a Chrome</translation>
 <translation id="3285322247471302225">Nuova &amp;scheda</translation>
 <translation id="328571385944182268">Vuoi salvare le password?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> potrà visualizzare il file <ph name="FILENAME" /> fino alla chiusura di tutte le schede <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Le estensioni in esecuzione in modalità sviluppatore potrebbero danneggiare il computer. Se non sei uno sviluppatore, dovresti disattivare queste estensioni per la tua sicurezza.</translation>
 <translation id="3289856944988573801">Per verificare la disponibilità di aggiornamenti, utilizza una rete Ethernet o Wi-Fi.</translation>
 <translation id="3290356915286466215">Non protetta</translation>
@@ -1795,6 +1805,7 @@
 <translation id="344630545793878684">Lettura dei dati su una serie di siti web</translation>
 <translation id="3448086340637592206">Termini aggiuntivi di Google Chrome e Chrome OS</translation>
 <translation id="3448492834076427715">Aggiorna account</translation>
+<translation id="3449393517661170867">Nuova finestra a schede</translation>
 <translation id="3449839693241009168">Premi <ph name="SEARCH_KEY" /> per inviare comandi a <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Percentuale di occupazione dello stato di inattività</translation>
 <translation id="3451332697983754369">Sincronizza il mio <ph name="DEVICE_TYPE" /></translation>
@@ -1975,6 +1986,7 @@
 <translation id="3681311097828166361">Grazie per il tuo feedback. Adesso sei offline; il tuo rapporto verrà inviato in un secondo momento.</translation>
 <translation id="3682824389861648626">Soglia del movimento</translation>
 <translation id="3683524264665795342">Richiesta di condivisione dello schermo da parte di <ph name="APP_NAME" /></translation>
+<translation id="3686074530047028092">Account Education</translation>
 <translation id="368789413795732264">Si è verificato un errore durante la scrittura del file: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Accedere in modalità di scrittura a file e cartelle aperte nell'applicazione</translation>
 <translation id="3688526734140524629">Cambia canale</translation>
@@ -2043,6 +2055,7 @@
 <translation id="3759933321830434300">Blocco di parti delle pagine web</translation>
 <translation id="3760460896538743390">Ispeziona pagina in &amp;background</translation>
 <translation id="37613671848467444">Apri in finestra di navigazione in &amp;incognito</translation>
+<translation id="3761556954875533505">Vuoi consentire al sito di modificare file?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Comunicazione con un dispositivo USB}other{Comunicazione con # dispositivi USB}}</translation>
 <translation id="3765246971671567135">Impossibile leggere le norme offline relative alla modalità demo.</translation>
 <translation id="3768037234834996183">Sincronizzazione delle preferenze...</translation>
@@ -2178,6 +2191,7 @@
 <translation id="3927932062596804919">Non consentire</translation>
 <translation id="3928570707778085600">Salvare le modifiche per <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Queste estensioni possono vedere e modificare le informazioni sul sito.</translation>
+<translation id="3930155420525972941">Sposta gruppo in una nuova finestra</translation>
 <translation id="3930737994424905957">Ricerca di dispositivi in corso</translation>
 <translation id="3930968231047618417">Colore sfondo</translation>
 <translation id="3933283459331715412">Ripristina la password eliminata di <ph name="USERNAME" /></translation>
@@ -2336,6 +2350,7 @@
 <translation id="4130750466177569591">Accetto</translation>
 <translation id="413121957363593859">Componenti</translation>
 <translation id="4131410914670010031">In bianco e nero</translation>
+<translation id="4133076602192971179">Apri l'app per cambiare la password</translation>
 <translation id="4136203100490971508">La funzione Luminosità notturna verrà disattivata automaticamente all'alba</translation>
 <translation id="41365691917097717">Se continui, verrà attivato il debug ADB per creare e testare app Android. Tieni presente che questa azione consente l'installazione di app Android che non sono state verificate da Google. Per disattivare la funzionalità è necessario ripristinare le impostazioni di fabbrica.</translation>
 <translation id="4138267921960073861">Visualizza nomi e foto dell'utente sulla schermata di accesso</translation>
@@ -2447,6 +2462,7 @@
 <translation id="4330387663455830245">Non tradurre mai <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Configura il Controllo genitori</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 con crittografia RSA</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{L'amministratore ha riattivato 1 estensione potenzialmente dannosa}other{L'amministratore ha riattivato # estensioni potenzialmente dannose}}</translation>
 <translation id="4336434711095810371">Cancella tutti i dati</translation>
 <translation id="4336979451636460645">Per i log di rete, vedi: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> vuole comunicare con l'app "<ph name="EXTENSION_NAME" />"</translation>
@@ -2753,6 +2769,7 @@
 <translation id="4785719467058219317">Stai usando un token di sicurezza non registrato su questo sito web</translation>
 <translation id="4788092183367008521">Controlla la connessione di rete e riprova.</translation>
 <translation id="4792711294155034829">&amp;Segnala un problema...</translation>
+<translation id="4794810983896241342">Gli aggiornamenti sono gestiti dall'<ph name="BEGIN_LINK" />amministratore<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Pagina web, solo HTML</translation>
 <translation id="4798236378408895261">Allega <ph name="BEGIN_LINK" />log Bluetooth<ph name="END_LINK" /> (interno di Google)</translation>
 <translation id="4801448226354548035">Nascondi account</translation>
@@ -2848,6 +2865,7 @@
 <translation id="4908811072292128752">Apri una nuova scheda per visitare due siti contemporaneamente</translation>
 <translation id="4909038193460299775">Questo account è gestito da <ph name="DOMAIN" />, pertanto i preferiti, la cronologia, le password e altre impostazioni verranno cancellati da questo dispositivo. I tuoi dati rimarranno però memorizzati nel tuo Account Google e potrai gestirli su <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Riattivazioni</translation>
+<translation id="4916542008280060967">Vuoi consentire al sito di modificare il file <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Passa a un browser sicuro</translation>
 <translation id="4917385247580444890">Forte</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> vuole comunicare con l'estensione "<ph name="EXTENSION_NAME" />"</translation>
@@ -2919,6 +2937,7 @@
 <translation id="5017633213534173756">Memorizza</translation>
 <translation id="5018207570537526145">Apri sito web dell'estensione</translation>
 <translation id="5021750053540820849">Non ancora aggiornato</translation>
+<translation id="5026806129670917316">Attiva Wi-Fi</translation>
 <translation id="5026874946691314267">Non visualizzare più</translation>
 <translation id="5027550639139316293">Certificato email</translation>
 <translation id="5027562294707732951">Aggiungi estensione</translation>
@@ -3031,6 +3050,7 @@
 <translation id="5184063094292164363">Console &amp;JavaScript</translation>
 <translation id="5184209580557088469">Esiste già una richiesta con questo nome utente</translation>
 <translation id="5184662919967270437">Aggiornamento del dispositivo in corso</translation>
+<translation id="5185359571430619712">Controlla le estensioni</translation>
 <translation id="5185386675596372454">La versione più recente di "<ph name="EXTENSION_NAME" />" è stata disattivata perché richiede altre autorizzazioni.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> vuole scaricare più file</translation>
@@ -3081,6 +3101,7 @@
 <translation id="5260334392110301220">Virgolette smart</translation>
 <translation id="5260508466980570042">Spiacenti, impossibile verificare l'email o la password. Riprova.</translation>
 <translation id="5261683757250193089">Apri nel Web Store</translation>
+<translation id="5262178194499261222">Rimuovi password</translation>
 <translation id="5264148714798105376">L'operazione potrebbe richiedere un minuto circa.</translation>
 <translation id="5264252276333215551">Connettiti a Internet per avviare l'app in modalità kiosk.</translation>
 <translation id="5265562206369321422">Offline per più di una settimana</translation>
@@ -3506,6 +3527,7 @@
 <translation id="5833726373896279253">Queste impostazioni possono essere modificate solo dal proprietario:</translation>
 <translation id="5834581999798853053">Circa <ph name="TIME" /> minuti rimanenti</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Registrazione tramite fotocamera o microfono in corso</translation>
+<translation id="5841270259333717135">Configura Ethernet</translation>
 <translation id="5842497610951477805">Bluetooth attivato</translation>
 <translation id="5846200638699387931">Errore di sintassi nella relazione: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Già aggiunta</translation>
@@ -3551,6 +3573,7 @@
 <translation id="5900358982890952556">Esegui l'upgrade di Linux (beta)</translation>
 <translation id="5901494423252125310">Sportello della stampante aperto</translation>
 <translation id="5901630391730855834">Giallo</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Hai riattivato 1 estensione potenzialmente dannosa}other{Hai riattivato # estensioni potenzialmente dannose}}</translation>
 <translation id="5906655207909574370">Aggiornamento quasi completato. Riavvia il dispositivo per terminare l'aggiornamento.</translation>
 <translation id="5906732635754427568">I dati associati a questa app verranno rimossi dal dispositivo.</translation>
 <translation id="5908769186679515905">Impedisci ai siti di eseguire Flash</translation>
@@ -3580,6 +3603,7 @@
 <translation id="59324397759951282">Dispositivo USB da <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Numero di serie</translation>
 <translation id="5933376509899483611">Fuso orario</translation>
+<translation id="5935656526031444304">Gestisci Navigazione sicura</translation>
 <translation id="5938002010494270685">Upgrade di sicurezza disponibile</translation>
 <translation id="5939518447894949180">Reimposta</translation>
 <translation id="5941153596444580863">Aggiungi persona...</translation>
@@ -3623,6 +3647,7 @@
 <translation id="5993807461461235661">Questo caricamento è criptato e viola le norme di sicurezza della tua organizzazione.</translation>
 <translation id="5997337190805127100">Ulteriori informazioni sull'accesso ai siti</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> risultati per "<ph name="SEARCH_TEXT" />"</translation>
+<translation id="6002210667729577411">Sposta gruppo in una nuova finestra</translation>
 <translation id="6002458620803359783">Voci preferite</translation>
 <translation id="6006484371116297560">Classico</translation>
 <translation id="6007240208646052708">La ricerca vocale nella tua lingua non è disponibile.</translation>
@@ -4161,6 +4186,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Mostra collegamento sul desktop</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> in pausa</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />L'amministratore<ph name="END_LINK" /> ha disattivato Navigazione sicura</translation>
 <translation id="6742339027238151589">Accessibile allo script</translation>
 <translation id="6745592621698551453">Aggiorna ora</translation>
 <translation id="6746124502594467657">Sposta giù</translation>
@@ -4419,6 +4445,7 @@
     <ph name="BEGIN_BOLD" />Tieni presente che:<ph name="END_BOLD" /> Sarebbe possibile accedere all'assistente anche con una voce simile alla tua o con una registrazione della tua voce. Puoi rimuovere l'autorizzazione di utilizzo di Voice Match in un secondo momento disattivando la funzionalità nelle Impostazioni dell'assistente.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Scambio di dati con i dispositivi: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Il dispositivo verrà riavviato al termine degli aggiornamenti.</translation>
 <translation id="7098389117866926363">Dispositivo USB-C (porta posteriore sinistra)</translation>
 <translation id="7098447629416471489">Altri motori di ricerca salvati saranno visualizzati qui</translation>
 <translation id="7099337801055912064">Impossibile caricare il file PPD. Dimensioni massime: 250 kB.</translation>
@@ -4891,6 +4918,7 @@
 <translation id="7766807826975222231">Fai un tour</translation>
 <translation id="7766838926148951335">Accetta le autorizzazioni</translation>
 <translation id="7769672763586021400">ID modello</translation>
+<translation id="7770651108375708429">Disconnettiti dal Wi-Fi</translation>
 <translation id="7771452384635174008">Layout</translation>
 <translation id="7772032839648071052">Conferma passphrase</translation>
 <translation id="7772127298218883077">Informazioni su <ph name="PRODUCT_NAME" /></translation>
@@ -5049,6 +5077,7 @@
 <translation id="7939412583708276221">Mantieni comunque</translation>
 <translation id="7942349550061667556">Rosso</translation>
 <translation id="7943837619101191061">Aggiungi posizione...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 password compromessa}other{# password compromesse}}</translation>
 <translation id="7945031593909029181">L'estensione "<ph name="CHROME_EXTENSION_NAME" />" desidera collegarsi</translation>
 <translation id="7946586320617670168">L'origine deve essere sicura</translation>
 <translation id="794676567536738329">Conferma autorizzazioni</translation>
@@ -5148,6 +5177,7 @@
 <translation id="8059417245945632445">&amp;Ispeziona dispositivi</translation>
 <translation id="8059456211585183827">Nessuna stampante disponibile da salvare.</translation>
 <translation id="8063235345342641131">Avatar verde predefinito</translation>
+<translation id="8063535366119089408">Visualizza file</translation>
 <translation id="8064671687106936412">Chiave:</translation>
 <translation id="8068253693380742035">Tocca per accedere</translation>
 <translation id="8068809649322155577">Tutti i dati e i cookie memorizzati da <ph name="SITE_GROUP_NAME" />, dai siti al suo interno e dalle app installate verranno cancellati.</translation>
@@ -5212,6 +5242,7 @@
 <translation id="8152091997436726702">La registrazione della stampante è scaduta. Per registrare una stampante devi confermarne la registrazione.</translation>
 <translation id="8154790740888707867">Nessun file</translation>
 <translation id="815491593104042026">Spiacenti, impossibile eseguire l'autenticazione perché è stato configurato l'utilizzo di un URL non protetto (<ph name="BLOCKED_URL" />). Contatta l'amministratore.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Non sono state trovate password compromesse}=1{{COUNT} password compromessa}other{{COUNT} password compromesse}}</translation>
 <translation id="8157704005178149728">Impostazione della supervisione</translation>
 <translation id="8158117992543756526">Questo dispositivo non riceve più aggiornamenti automatici di software e sicurezza da <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Errore durante l'impostazione dell'attendibilità del certificato</translation>
@@ -5265,6 +5296,7 @@
 <translation id="8226742006292257240">Di seguito viene indicata la password TPM generata in modo casuale che è stata assegnata al tuo computer:</translation>
 <translation id="8227119283605456246">Allega file</translation>
 <translation id="8230134520748321204">Salvare la password per <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Impostazioni Internet</translation>
 <translation id="8234795456569844941">Aiuta i nostri tecnici a risolvere il problema. Descrivi cosa è accaduto subito prima di ricevere il messaggio di errore del profilo:</translation>
 <translation id="8236123533334037984">La tua organizzazione sta eseguendo la scansione del caricamento per l'approvazione di sicurezza.</translation>
 <translation id="8236917170563564587">Condividi questa scheda invece</translation>
@@ -5602,6 +5634,7 @@
 <translation id="8688579245973331962">Non riesci a visualizzare il tuo nome?</translation>
 <translation id="8688591111840995413">Password non valida</translation>
 <translation id="8688672835843460752">Disponibile</translation>
+<translation id="8691418731028620688">Connettiti al Wi-Fi</translation>
 <translation id="8695825812785969222">Apri &amp;percorso...</translation>
 <translation id="869884720829132584">Menu Applicazioni</translation>
 <translation id="869891660844655955">Data di scadenza</translation>
@@ -5761,6 +5794,7 @@
 <translation id="8872187374998143710">Riavvia il dispositivo per usare Plugin VM.</translation>
 <translation id="8872777911145321141">Chiedi conferma quando un sito vuole usare i dati e dispositivi per realtà virtuale (opzione consigliata)</translation>
 <translation id="8874184842967597500">Non connessa</translation>
+<translation id="8875775314572167244">Impostazioni Ethernet</translation>
 <translation id="8876307312329369159">Questa impostazione non può essere modificata in una sessione demo.</translation>
 <translation id="8877448029301136595">[directory principale]</translation>
 <translation id="8878384954777710821">Disinstallazione di Plugin VM…</translation>
@@ -5802,6 +5836,7 @@
 <translation id="892706138619340876">Alcune impostazioni sono state reimpostate</translation>
 <translation id="8930351635855238750">Le nuove impostazioni dei cookie verranno applicate dopo aver ricaricato la pagina</translation>
 <translation id="8931394284949551895">Nuovi dispositivi</translation>
+<translation id="8931475688782629595">Gestisci i dati da sincronizzare</translation>
 <translation id="8932894639908691771">Opzioni di Switch Access</translation>
 <translation id="8933960630081805351">Mo&amp;stra nel Finder</translation>
 <translation id="8934732568177537184">Continua</translation>
@@ -5959,6 +5994,7 @@
 <translation id="9148126808321036104">Esegui di nuovo l'accesso</translation>
 <translation id="9149866541089851383">Modifica...</translation>
 <translation id="9150045010208374699">Utilizzare la fotocamera</translation>
+<translation id="9150429437595727962">Impostazioni Wi-Fi</translation>
 <translation id="9153934054460603056">Salva identità e password</translation>
 <translation id="9154194610265714752">Aggiornato</translation>
 <translation id="91568222606626347">Crea scorciatoia...</translation>
@@ -6020,6 +6056,7 @@
 <translation id="945522503751344254">Invia feedback</translation>
 <translation id="947329552760389097">&amp;Ispeziona elementi</translation>
 <translation id="952992212772159698">Non attivo</translation>
+<translation id="956500788634395331">È attiva la protezione da estensioni potenzialmente dannose</translation>
 <translation id="957960681186851048">Questo sito ha tentato di scaricare automaticamente più file</translation>
 <translation id="9580706199804957">Impossibile connettersi ai servizi Google</translation>
 <translation id="960719561871045870">Codice operatore</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index 1d07953..0640adf8 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">‏הגדרות אחסון של Adobe Flash Player</translation>
 <translation id="1274997165432133392">‏קובצי Cookie ונתוני אתר נוספים</translation>
 <translation id="1280820357415527819">מחפש רשתות סלולריות</translation>
+<translation id="1280965841156951489">אישור לערוך קבצים</translation>
 <translation id="1282420830958964167">נגמר הזמן שהוגדר על-ידי ההורים שלך ב-"<ph name="APP_NAME" />". מחר תהיה לך אפשרות להשתמש באפליקציה למשך <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">איני רוצה לקבל תרגום של אתר זה</translation>
 <translation id="1285484354230578868">‏אחסן נתונים בחשבון Google Drive</translation>
@@ -510,6 +511,7 @@
 <translation id="1692210323591458290">סגול כהה</translation>
 <translation id="1692799361700686467">‏קובצי Cookie מאתרים מרובים מותרים.</translation>
 <translation id="1697150536837697295">אומנות</translation>
+<translation id="1697686431566694143">אישור לערוך את הקובץ</translation>
 <translation id="1698122934742150150">הפעלה נוכחית בלבד במצב גלישה בסתר</translation>
 <translation id="1698650002254827833">אי אפשר לטעון את רשימת האפליקציות. צריך לנסות שוב.</translation>
 <translation id="1701062906490865540">הסרת משתמש זה</translation>
@@ -695,6 +697,7 @@
 <translation id="1931152874660185993">לא מותקנים רכיבים.</translation>
 <translation id="1932098463447129402">לא לפני</translation>
 <translation id="1933809209549026293">‏חבר עכבר או מקלדת. אם ברצונך להשתמש במכשיר Bluetooth, ודא שהוא מוכן להתאמה.</translation>
+<translation id="1936931585862840749">יש להזין מספר שמציין כמה עותקים יש להדפיס (1 עד <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">לא ניתן לייבא ארכיטקטורת מאגר מסוג <ph name="ARCHITECTURE_CONTAINER" /> באמצעות המכשיר הזה, כי הוא מסוג <ph name="ARCHITECTURE_DEVICE" />. אפשר לנסות לשחזר את המאגר במכשיר אחר או לפתוח את האפליקציה 'קבצים' כדי לגשת לקבצים בתוך תמונת המאגר.</translation>
 <translation id="1938351510777341717">‏מקש Command חיצוני</translation>
 <translation id="1940546824932169984">מכשירים מחוברים</translation>
@@ -990,6 +993,7 @@
 <translation id="2343747224442182863">הדגשת הכרטיסייה הזו</translation>
 <translation id="2344028582131185878">הורדות אוטומטיות</translation>
 <translation id="2345723121311404059">עמוד אחד אל <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">‏שירות SODA</translation>
 <translation id="2347644257713614136">‏השימוש ב-Hangouts וב-Cast for Education כפוף למדיניות הפרטיות של Google.</translation>
 <translation id="2348176352564285430">יישום: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">נטען מחדש</translation>
@@ -1043,6 +1047,7 @@
 <translation id="2422125132043002186">‏שחזור Linux בוטל</translation>
 <translation id="2423578206845792524">שמ&amp;ור תמונה בשם...</translation>
 <translation id="2428510569851653187">תאר מה עשית לפני שהכרטיסייה קרסה</translation>
+<translation id="2428939361789119025">‏כיבוי Wi-Fi</translation>
 <translation id="2431027948063157455">‏לא ניתן היה לטעון את Google Assistant. יש לבדוק את חיבור הרשת ולנסות שוב.</translation>
 <translation id="2432753757290432042">‏צריך לעדכן את Linux (בטא)</translation>
 <translation id="2433452467737464329">‏הוסף פרמטר שאילתה בכתובת אתר לרענון אוטומטי של הדף: chrome://network/?refresh=&lt;sec&gt;‎</translation>
@@ -1460,6 +1465,7 @@
 <translation id="2944060181911631861">‏שליחה של נתוני אבחון ונתונים על השימוש. אפשר לעזור בשיפור החוויה ב-Android. לשם כך יש לשלוח אל Google באופן אוטומטי נתוני אבחון ונתונים לגבי השימוש במכשיר ובאפליקציות. נתונים אלה יעזרו לשמור על יציבות המערכת והאפליקציות, כמו גם לביצוע שיפורים אחרים. חלק מהנתונים הנצברים יעזרו גם לאפליקציות ולשותפים של Google, כמו מפתחי Android. אם הופעלה האפשרות 'פעילות באתרי אינטרנט ובאפליקציות נוספים', ייתכן שהנתונים יישמרו בחשבון Google שלך. <ph name="BEGIN_LINK1" />מידע נוסף<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">הוסף חיבור</translation>
 <translation id="2947605845283690091">הגלישה באינטרנט צריכה להיות מהירה. כדאי להקדיש כמה רגעים כדי <ph name="BEGIN_LINK" />לבדוק עכשיו את התוספים<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{תוסף אחד שעשוי להיות מזיק כבוי עכשיו. אפשר גם להסיר אותו.}two{# תוספים שעשויים להיות מזיקים כבויים עכשיו. אפשר גם להסיר אותם.}many{# תוספים שעשויים להיות מזיקים כבויים עכשיו. אפשר גם להסיר אותם.}other{# תוספים שעשויים להיות מזיקים כבויים עכשיו. אפשר גם להסיר אותם.}}</translation>
 <translation id="2948300991547862301">עבור אל <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">דפדפן אינטרנט מהיר, פשוט ובטוח, המותאם לאינטרנט המודרני.</translation>
 <translation id="2949289451367477459">‏שימוש במיקום. מתן רשות לשירותים עם הרשאות מיקום להשתמש במיקום המכשיר הזה. Google עשויה לאסוף מדי פעם נתוני מיקום ולהשתמש בהם באופן אנונימי כדי לשפר את דיוק המיקום ושירותים מבוססי-מיקום. <ph name="BEGIN_LINK1" />מידע נוסף<ph name="END_LINK1" /></translation>
@@ -1540,6 +1546,7 @@
 <translation id="3067198179881736288">להתקין את האפליקציה?</translation>
 <translation id="3067198360141518313">הרץ פלאגין זה</translation>
 <translation id="3071624960923923138">אפשר ללחוץ כאן כדי לפתוח כרטיסייה חדשה</translation>
+<translation id="3072775339180057696">האם לאפשר לאתר לראות את <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">‏נדרשת הפעלה מחדש על מנת להתחיל את תהליך ה-Powerwash. לאחר ההפעלה מחדש תתבקש לאשר שברצונך להמשיך.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">פרטי הכניסה שלך נמחקו</translation>
@@ -1552,6 +1559,7 @@
 <translation id="3085412380278336437">האתר רשאי להשתמש במצלמה</translation>
 <translation id="3085752524577180175">‏מארח SOCKS</translation>
 <translation id="3088052000289932193">‏האתר משתמש ב-MIDI</translation>
+<translation id="3088128611727407543">פרופיל האפליקציה בהכנה...</translation>
 <translation id="3088325635286126843">&amp;שנה שם...</translation>
 <translation id="3089137131053189723">החיפוש נוקה</translation>
 <translation id="3090193911106258841">גישה לקלט אודיו ווידאו</translation>
@@ -1593,6 +1601,7 @@
     תיאור:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">‏אפליקציות Chrome</translation>
+<translation id="3150693969729403281">הפעלת בדיקת בטיחות</translation>
 <translation id="3150927491400159470">טעינה מחדש קשיחה</translation>
 <translation id="315116470104423982">נתוני נייד</translation>
 <translation id="3151539355209957474">שעת התחלה</translation>
@@ -1685,6 +1694,7 @@
 <translation id="3282568296779691940">‏כניסה ל-Chrome</translation>
 <translation id="3285322247471302225">כרטיסייה &amp;חדשה</translation>
 <translation id="328571385944182268">לשמור את הסיסמאות?</translation>
+<translation id="328785681103589998">ל-<ph name="ORIGIN" /> תהיה הרשאה לראות את <ph name="FILENAME" /> עד לסגירת כל הכרטיסיות של <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">תוספים הרצים במצב מפתח יכולים להזיק למחשב שלך. אם אינך מפתח, עליך להשבית את התוספים הרצים במצב מפתח כדי לשמור על ביטחונך.</translation>
 <translation id="3289856944988573801">‏כדי לבדוק אם יש עדכונים, השתמש ב-Ethernet או ב-Wi-Fi.</translation>
 <translation id="3290356915286466215">לא מאובטחת</translation>
@@ -1793,6 +1803,7 @@
 <translation id="344630545793878684">קריאת הנתונים שלך במספר אתרים</translation>
 <translation id="3448086340637592206">‏תנאים נוספים של Google Chrome ו-Chrome OS</translation>
 <translation id="3448492834076427715">עדכון חשבון</translation>
+<translation id="3449393517661170867">חלון מרובה כרטיסיות חדש</translation>
 <translation id="3449839693241009168">יש ללחוץ על <ph name="SEARCH_KEY" /> כדי לשלוח פקודות אל <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">אחוז תפוסה במצב לא פעיל</translation>
 <translation id="3451332697983754369">סנכרון ה-<ph name="DEVICE_TYPE" /> שלי</translation>
@@ -1973,6 +1984,7 @@
 <translation id="3681311097828166361">תודה על המשוב. כרגע אינך מחובר לאינטרנט, כך שהדוח שלך יישלח מאוחר יותר.</translation>
 <translation id="3682824389861648626">סף תנועה</translation>
 <translation id="3683524264665795342">בקשה לשיתוף מסך של <ph name="APP_NAME" /></translation>
+<translation id="3686074530047028092">חשבון לימודים</translation>
 <translation id="368789413795732264">אירעה שגיאה בעת ניסיון לכתוב את הקובץ: <ph name="ERROR_TEXT" /></translation>
 <translation id="3688507211863392146">כתיבה לקבצים ותיקיות שאתה פותח ביישום</translation>
 <translation id="3688526734140524629">מעבר לערוץ אחר</translation>
@@ -2041,6 +2053,7 @@
 <translation id="3759933321830434300">חסימת חלקים של דפי אינטרנט</translation>
 <translation id="3760460896538743390">בדיקת דף ה&amp;רקע</translation>
 <translation id="37613671848467444">פתח בחלון &amp;גלישה בסתר</translation>
+<translation id="3761556954875533505">האם לאפשר לאתר לערוך קבצים?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{‏תקשורת עם מכשיר USB אחד}two{‏תקשורת עם # מכשירי USB}many{‏תקשורת עם # מכשירי USB}other{‏תקשורת עם # מכשירי USB}}</translation>
 <translation id="3765246971671567135">לא ניתן לקרוא מדיניות של מצב הדגמה לא מקוון.</translation>
 <translation id="3768037234834996183">מסנכרן את ההעדפות שלך...</translation>
@@ -2176,6 +2189,7 @@
 <translation id="3927932062596804919">דחה</translation>
 <translation id="3928570707778085600">שינית את <ph name="FILE_OR_FOLDER_NAME" />. לשמור את השינויים?</translation>
 <translation id="3929426037718431833">התוספים האלה עשויים להציג ולשנות את המידע באתר הזה.</translation>
+<translation id="3930155420525972941">העברת הקבוצה לחלון חדש</translation>
 <translation id="3930737994424905957">חיפוש מכשירים</translation>
 <translation id="3930968231047618417">צבע רקע</translation>
 <translation id="3933283459331715412">שחזור הסיסמה של <ph name="USERNAME" /> שנמחקה</translation>
@@ -2334,6 +2348,7 @@
 <translation id="4130750466177569591">מקובל עליי</translation>
 <translation id="413121957363593859">רכיבים</translation>
 <translation id="4131410914670010031">שחור ולבן</translation>
+<translation id="4133076602192971179">כדי לשנות את הסיסמה, יש לפתוח את האפליקציה</translation>
 <translation id="4136203100490971508">תאורת הלילה תכבה באופן אוטומטי בשעת הזריחה</translation>
 <translation id="41365691917097717">‏בחירה להמשיך תגרום להפעלת ניפוי באגים באמצעות ADB במהלך היצירה והבדיקה של אפליקציות ל-Android. חשוב לשים לב שהפעולה הזו מאפשרת את ההתקנה של אפליקציות ל-Android שלא אומתו על ידי Google. כדי להשבית את התכונה, יש לאפס את המכשיר להגדרות המקוריות.</translation>
 <translation id="4138267921960073861">הצג שמות משתמשים ותמונות במסך הכניסה</translation>
@@ -2445,6 +2460,7 @@
 <translation id="4330387663455830245">איני רוצה לקבל תרגום מ<ph name="LANGUAGE" /> בכלל</translation>
 <translation id="4332976768901252016">הגדרה של בקרת הורים</translation>
 <translation id="4333854382783149454">‏PKCS #1 SHA-1 עם הצפנת RSA</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{מנהל המערכת הפעיל מחדש תוסף אחד שעשוי להיות מזיק}two{מנהל המערכת הפעיל מחדש # תוספים שעשויים להיות מזיקים}many{מנהל המערכת הפעיל מחדש # תוספים שעשויים להיות מזיקים}other{מנהל המערכת הפעיל מחדש # תוספים שעשויים להיות מזיקים}}</translation>
 <translation id="4336434711095810371">ניקוי כל הנתונים</translation>
 <translation id="4336979451636460645">ליומני רשת, ראה: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> רוצה לתקשר עם האפליקציה "<ph name="EXTENSION_NAME" />"</translation>
@@ -2751,6 +2767,7 @@
 <translation id="4785719467058219317">בחרת להשתמש במפתח אבטחה שלא רשום עבור האתר הזה</translation>
 <translation id="4788092183367008521">כדאי לבדוק את החיבור לרשת ולנסות שוב.</translation>
 <translation id="4792711294155034829">&amp;דווח על בעיה...</translation>
+<translation id="4794810983896241342">העדכונים מנוהלים על ידי <ph name="BEGIN_LINK" />מנהל המערכת<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">‏דף אינטרנט, HTML בלבד</translation>
 <translation id="4798236378408895261">‏צירוף של <ph name="BEGIN_LINK" />יומני Bluetooth<ph name="END_LINK" /> (מידע פנימי של Google)</translation>
 <translation id="4801448226354548035">הסתר חשבונות</translation>
@@ -2846,6 +2863,7 @@
 <translation id="4908811072292128752">פתח כרטיסייה חדשה כדי לגלוש בשני אתרים בו-זמנית</translation>
 <translation id="4909038193460299775">‏החשבון הזה מנוהל על-ידי <ph name="DOMAIN" />, ולכן הסימניות, ההיסטוריה, הסיסמאות והגדרות אחרות יימחקו מהמכשיר הזה. עם זאת, הנתונים עדיין יישארו בחשבון Google שלך ותוכל לנהל אותם ב<ph name="BEGIN_LINK" />מרכז השליטה של Google<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">הוצאות לא פעילות ממצב שינה</translation>
+<translation id="4916542008280060967">האם לאפשר לאתר לערוך את <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">החלף לדפדפן בטוח</translation>
 <translation id="4917385247580444890">חזק</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> רוצה לתקשר עם התוסף"<ph name="EXTENSION_NAME" />"</translation>
@@ -2917,6 +2935,7 @@
 <translation id="5017633213534173756">שמירה</translation>
 <translation id="5018207570537526145">פתיחת אתר התוסף</translation>
 <translation id="5021750053540820849">עדיין לא מעודכן</translation>
+<translation id="5026806129670917316">‏הפעלת Wi-Fi</translation>
 <translation id="5026874946691314267">אל תציג הודעה זו שוב</translation>
 <translation id="5027550639139316293">אישור אימייל</translation>
 <translation id="5027562294707732951">התקנת התוסף</translation>
@@ -3029,6 +3048,7 @@
 <translation id="5184063094292164363">‏קונסולת JavaScript&amp; </translation>
 <translation id="5184209580557088469">כבר קיים כרטיס עם שם המשתמש הזה</translation>
 <translation id="5184662919967270437">מעדכן את המכשיר שלך</translation>
+<translation id="5185359571430619712">בדיקת הגדרות התוספים</translation>
 <translation id="5185386675596372454">הגרסה החדשה ביותר של "<ph name="EXTENSION_NAME" />" הושבתה מכיוון שהיא דורשת הרשאות נרחבות יותר.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> ‏(<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> רוצה להוריד מספר קבצים</translation>
@@ -3079,6 +3099,7 @@
 <translation id="5260334392110301220">מירכאות חכמות</translation>
 <translation id="5260508466980570042">מצטערים, לא ניתן לאמת את האימייל או את הסיסמה שלך. נסה שוב.</translation>
 <translation id="5261683757250193089">פתח בחנות האינטרנט</translation>
+<translation id="5262178194499261222">הסרת הסיסמה</translation>
 <translation id="5264148714798105376">הפעולה יכולה להימשך כדקה.</translation>
 <translation id="5264252276333215551">התחבר לאינטרנט כדי להפעיל את היישום במצב קיוסק.</translation>
 <translation id="5265562206369321422">לא מקוונת במשך יותר משבוע</translation>
@@ -3504,6 +3525,7 @@
 <translation id="5833726373896279253">רק הבעלים יכול לשנות הגדרות אלה:</translation>
 <translation id="5834581999798853053">נותרו בערך <ph name="TIME" /> דקות</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - הקלטה במצלמה או במיקרופון</translation>
+<translation id="5841270259333717135">‏הגדרת Ethernet</translation>
 <translation id="5842497610951477805">‏הפעלה של Bluetooth</translation>
 <translation id="5846200638699387931">שגיאה בתחביר המציין את הקשר: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">כבר נוספה</translation>
@@ -3549,6 +3571,7 @@
 <translation id="5900358982890952556">‏שדרוג Linux (בטא)</translation>
 <translation id="5901494423252125310">דלת המדפסת פתוחה</translation>
 <translation id="5901630391730855834">צהוב</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{הפעלת מחדש תוסף אחד שעשוי להיות מזיק}two{הפעלת מחדש # תוספים שעשויים להיות מזיקים}many{הפעלת מחדש # תוספים שעשויים להיות מזיקים}other{הפעלת מחדש # תוספים שעשויים להיות מזיקים}}</translation>
 <translation id="5906655207909574370">העדכון כמעט הושלם! הפעל מחדש את המכשיר כדי לסיים את העדכון.</translation>
 <translation id="5906732635754427568">המערכת תסיר מהמכשיר הזה נתונים המשויכים לאפליקציה הזו.</translation>
 <translation id="5908769186679515905">‏חסום הפעלה של Flash על-ידי אתרים</translation>
@@ -3578,6 +3601,7 @@
 <translation id="59324397759951282">‏התקן USB של <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">סידורי</translation>
 <translation id="5933376509899483611">אזור זמן</translation>
+<translation id="5935656526031444304">ניהול גלישה בטוחה</translation>
 <translation id="5938002010494270685">יש שדרוג אבטחה זמין</translation>
 <translation id="5939518447894949180">אפס</translation>
 <translation id="5941153596444580863">הוספת משתמש...</translation>
@@ -3621,6 +3645,7 @@
 <translation id="5993807461461235661">ההעלאה הזו מוצפנת ומפרה את מדיניות האבטחה של הארגון שלך.</translation>
 <translation id="5997337190805127100">מידע נוסף על גישה לאתרים</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> תוצאות בשביל '<ph name="SEARCH_TEXT" />'</translation>
+<translation id="6002210667729577411">העברת הקבוצה לחלון חדש</translation>
 <translation id="6002458620803359783">קולות מועדפים</translation>
 <translation id="6006484371116297560">קלאסי</translation>
 <translation id="6007240208646052708">לא ניתן לבצע חיפוש קולי בשפה שלך.</translation>
@@ -4159,6 +4184,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> ‏[<ph name="ISSUED_TO" />]‏</translation>
 <translation id="6739923123728562974">הצג קיצור דרך בשולחן העבודה</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> הושהה</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />מנהל המערכת<ph name="END_LINK" /> כיבה את הגלישה הבטוחה</translation>
 <translation id="6742339027238151589">נגיש לסקריפט</translation>
 <translation id="6745592621698551453">עדכן כעת</translation>
 <translation id="6746124502594467657">הזז למטה</translation>
@@ -4417,6 +4443,7 @@
     <ph name="BEGIN_BOLD" />חשוב לזכור:<ph name="END_BOLD" /> ייתכן שיהיה אפשר לגשת ל-Assistant שלך גם באמצעות קול דומה או הקלטה. אפשר להסיר את ההרשאה של Voice Match בשלב מאוחר יותר. כדי לעשות זאת, יש להשבית את ההרשאה דרך ההגדרות של Assistant.</translation>
 <translation id="7093434536568905704">GTK+‎</translation>
 <translation id="7093866338626856921">החלפת נתונים עם המכשירים ששמותיהם: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">המכשיר יופעל מחדש אחרי שהעדכונים יושלמו.</translation>
 <translation id="7098389117866926363">‏מכשיר עם יציאת USB-C (יציאה שמאלית מאחור)</translation>
 <translation id="7098447629416471489">כאן יופיעו מנועי חיפוש אחרים ששמרת</translation>
 <translation id="7099337801055912064">‏לא ניתן לטעון קובץ PPD גדול. הגודל המקסימלי הוא ‎250 kB.</translation>
@@ -4889,6 +4916,7 @@
 <translation id="7766807826975222231">הצטרף לסיור</translation>
 <translation id="7766838926148951335">אשר הרשאות</translation>
 <translation id="7769672763586021400">מזהה דגם</translation>
+<translation id="7770651108375708429">‏התנתקות מרשת ה-Wi-Fi</translation>
 <translation id="7771452384635174008">פריסה</translation>
 <translation id="7772032839648071052">אשר משפט-סיסמה</translation>
 <translation id="7772127298218883077">מידע על <ph name="PRODUCT_NAME" /></translation>
@@ -5046,6 +5074,7 @@
 <translation id="7939412583708276221">שמור בכל מקרה</translation>
 <translation id="7942349550061667556">אדום</translation>
 <translation id="7943837619101191061">הוסף מיקום...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{סיסמה אחת שנחשפה}two{# סיסמאות שנחשפו}many{# סיסמאות שנחשפו}other{# סיסמאות שנחשפו}}</translation>
 <translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" רוצה להתחבר אל</translation>
 <translation id="7946586320617670168">המקור חייב להיות מאובטח</translation>
 <translation id="794676567536738329">אשר הרשאות</translation>
@@ -5145,6 +5174,7 @@
 <translation id="8059417245945632445">&amp;בדוק מכשירים</translation>
 <translation id="8059456211585183827">אין מדפסות זמינות לשמירה.</translation>
 <translation id="8063235345342641131">דמות ברירת מחדל ירוקה</translation>
+<translation id="8063535366119089408">אישור לראות את הקובץ</translation>
 <translation id="8064671687106936412">מפתח:</translation>
 <translation id="8068253693380742035">גע כדי להיכנס</translation>
 <translation id="8068809649322155577">‏הפעולה הזו תגרום למחיקת כל הנתונים וקובצי ה-cookie שאוחסנו על ידי קבוצת האתרים <ph name="SITE_GROUP_NAME" />, כל האתרים שכלולים בה וכל האפליקציות המותקנות שמשויכות אליה.</translation>
@@ -5212,6 +5242,7 @@
 <translation id="8152091997436726702">פג הזמן הקצוב של רישום המדפסת. על מנת לרשום מדפסת, עליך לאמת את הרישום במדפסת.</translation>
 <translation id="8154790740888707867">אין קובץ</translation>
 <translation id="815491593104042026">אופס! האימות נכשל מפני שהוא הוגדר להשתמש בכתובת אתר לא-מאובטחת (<ph name="BLOCKED_URL" />). פנה למנהל המערכת שלך.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{לא נמצאו סיסמאות שנחשפו}=1{סיסמה אחת ({COUNT}) שנחשפה}two{{COUNT} סיסמאות שנחשפו}many{{COUNT} סיסמאות שנחשפו}other{{COUNT} סיסמאות שנחשפו}}</translation>
 <translation id="8157704005178149728">המערכת מגדירה פיקוח</translation>
 <translation id="8158117992543756526">המכשיר הזה לא מקבל עדכוני תוכנה ואבטחה אוטומטיים מאז <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">שגיאה בהגדרת אמון באישור</translation>
@@ -5265,6 +5296,7 @@
 <translation id="8226742006292257240">‏סיסמת TPM שנוצרה באקראי והוקצתה למחשב שלך:</translation>
 <translation id="8227119283605456246">צירוף קובץ</translation>
 <translation id="8230134520748321204">האם לשמור את הסיסמה של <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">הגדרות אינטרנט</translation>
 <translation id="8234795456569844941">עזור למהנדסים שלנו לפתור את הבעיה הזו. ספר לנו מה קרה לפני שהוצגה לך הודעת השגיאה לגבי הפרופיל:</translation>
 <translation id="8236123533334037984">הארגון שלך סורק את ההעלאה הזו למטרת אישור בטיחות.</translation>
 <translation id="8236917170563564587">שיתוף הכרטיסייה הזו</translation>
@@ -5602,6 +5634,7 @@
 <translation id="8688579245973331962">לא רואה את השם שלך?</translation>
 <translation id="8688591111840995413">סיסמה שגויה</translation>
 <translation id="8688672835843460752">פנוי</translation>
+<translation id="8691418731028620688">‏התחברות לרשת Wi-Fi</translation>
 <translation id="8695825812785969222">פתח &amp;מיקום...</translation>
 <translation id="869884720829132584">תפריט יישומים</translation>
 <translation id="869891660844655955">תאריך תפוגה</translation>
@@ -5761,6 +5794,7 @@
 <translation id="8872187374998143710">‏כדי להשתמש ב-Plugin VM, יש להפעיל מחדש את המכשיר.</translation>
 <translation id="8872777911145321141">תוצג שאלה כשאתר ירצה להשתמש במכשירי המציאות המדומה ובנתוני המציאות המדומה שלך (מומלץ)</translation>
 <translation id="8874184842967597500">לא מחובר</translation>
+<translation id="8875775314572167244">‏הגדרות Ethernet</translation>
 <translation id="8876307312329369159">לא ניתן לשנות את ההגדרה הזו בסשן להדגמה.</translation>
 <translation id="8877448029301136595">[ספריית אב]</translation>
 <translation id="8878384954777710821">‏המערכת מסירה את Plugin VM…</translation>
@@ -5802,6 +5836,7 @@
 <translation id="892706138619340876">בוצע איפוס של חלק מההגדרות</translation>
 <translation id="8930351635855238750">‏הגדרות חדשות של קובצי Cookie ייכנסו לתוקף לאחר הטעינה מחדש של הדף</translation>
 <translation id="8931394284949551895">מכשירים חדשים</translation>
+<translation id="8931475688782629595">ניהול הסנכרון</translation>
 <translation id="8932894639908691771">אפשרויות גישה באמצעות מתג</translation>
 <translation id="8933960630081805351">‏ה&amp;צג ב-Finder</translation>
 <translation id="8934732568177537184">המשך</translation>
@@ -5959,6 +5994,7 @@
 <translation id="9148126808321036104">היכנס שוב</translation>
 <translation id="9149866541089851383">עריכה…</translation>
 <translation id="9150045010208374699">להשתמש במצלמה</translation>
+<translation id="9150429437595727962">‏הגדרות Wi-Fi</translation>
 <translation id="9153934054460603056">שמור זהות וסיסמה</translation>
 <translation id="9154194610265714752">עודכן</translation>
 <translation id="91568222606626347">צור מקש קיצור...</translation>
@@ -6020,6 +6056,7 @@
 <translation id="945522503751344254"> שליחת משוב</translation>
 <translation id="947329552760389097">&amp;בדיקת רכיבים</translation>
 <translation id="952992212772159698">לא פעיל</translation>
+<translation id="956500788634395331">המערכת מגינה עליך מפני תוספים שעשויים להיות מזיקים</translation>
 <translation id="957960681186851048">האתר הזה ניסה להוריד קבצים מרובים באופן אוטומטי</translation>
 <translation id="9580706199804957">‏לא ניתן היה להתחבר אל שירותי Google</translation>
 <translation id="960719561871045870">קוד ספק</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index a347b6d1..917dc8a 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">次のアプリのデータも削除しますか?</translation>
 <translation id="1045692658517323508">{0,plural, =1{1 分以内に更新してください}other{# 分以内に更新してください}}</translation>
 <translation id="1046635659603195359">別のデバイスの Google アシスタントで Voice Match をすでに設定しているようです。そこですでに登録してある音声を使ってこのデバイスで音声モデルを作成できます。処理にかかる時間は 1 分以内です。</translation>
+<translation id="104710386808485638">Linux を再起動しますか?</translation>
 <translation id="1047431265488717055">リンクテキストをコピー(&amp;X)</translation>
 <translation id="1048286738600630630">ディスプレイ</translation>
 <translation id="1049743911850919806">シークレット モード</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">クライアント証明書をエクスポートするには <ph name="TOKEN_NAME" /> にログインしてください。</translation>
 <translation id="1163931534039071049">フレームのソースを表示(&amp;V)</translation>
 <translation id="1164674268730883318">Smart Lock for <ph name="DEVICE_TYPE" /> を無効にしますか?</translation>
+<translation id="1164891049599601209">不正なサイトで入力</translation>
 <translation id="1164899421101904659">PIN ロック解除キーを入力</translation>
 <translation id="1165039591588034296">エラー</translation>
 <translation id="1166212789817575481">右側のタブを閉じる</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">自動キオスク モード</translation>
 <translation id="1545775234664667895">テーマ「<ph name="THEME_NAME" />」をインストールしました</translation>
 <translation id="1546280085599573572">この拡張機能により、ホームボタンをクリックしたときに表示されるページが変更されました。</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> が次の処理を行う <ph name="EXTENSION_TYPE" /> のインストールを求めています。</translation>
 <translation id="1549275686094429035">ARC は有効になっています</translation>
 <translation id="1549788673239553762">「<ph name="APP_NAME" />」が <ph name="VOLUME_NAME" /> へのアクセスを求めています。ファイルが変更または削除される可能性があります。</translation>
 <translation id="1553538517812678578">無制限</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">プラグイン VM</translation>
 <translation id="1679810534535368772">終了してもよろしいですか?</translation>
 <translation id="167983332380191032">管理サービスから HTTP エラーが送信されました。</translation>
+<translation id="1680841347983561661">しばらくしてからもう一度 Google Play の起動をお試しください。</translation>
 <translation id="1680849702532889074">Linux アプリケーションのインストール中にエラーが発生しました。</translation>
 <translation id="16815041330799488">クリップボードにコピーされているテキストや画像へのアクセスをサイトに許可しない</translation>
 <translation id="1682548588986054654">新規シークレット ウインドウ</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> がクラッシュしました。このバルーンをクリックして再起動してください。</translation>
 <translation id="2025891858974379949">安全でないコンテンツ</translation>
 <translation id="202918510990975568">セキュリティとログインを設定するには、パスワードを入力してください</translation>
+<translation id="2030672406208960151">リカバリ ターミナルを開く</translation>
 <translation id="2034346955588403444">他の Wi-Fi ネットワークを追加</translation>
 <translation id="203574396658008164">ロック画面からメモを取れるようにする</translation>
 <translation id="2037445849770872822">管理機能がこの Google アカウントに設定されました。保護者による使用制限をさらに設定するには、[続行] を選択してください。
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">PIN またはパスワード</translation>
 <translation id="2224444042887712269">この設定は <ph name="OWNER_EMAIL" /> に帰属します。</translation>
 <translation id="2224551243087462610">フォルダ名の編集</translation>
+<translation id="2225864335125757863">アカウントのセキュリティ保護のため、今すぐ次のパスワードを変更してください。</translation>
 <translation id="2226449515541314767">このサイトには MIDI デバイスのフル コントロールは許可されていません。</translation>
 <translation id="222704500187107962">この例外は、現在のシークレット モード セッションを終了した後に自動的に削除されます</translation>
 <translation id="2227179592712503583">候補を削除</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">ホームに移動</translation>
 <translation id="2387458720915042159">プロキシ接続タイプ</translation>
 <translation id="2391419135980381625">標準フォント</translation>
+<translation id="2392163307141705938">保護者が設定した <ph name="IDS_SHORT_PRODUCT_NAME" /> の利用時間の上限に達しました。</translation>
 <translation id="2392369802118427583">有効にする</translation>
 <translation id="2394566832561516196">設定は次の再読み込みで消去されます。</translation>
 <translation id="2395616325548404795">この <ph name="DEVICE_TYPE" /> は組織の管理対象として登録されましたが、アセットと位置情報を送信できませんでした。このデバイスの管理コンソールで、この情報を手動で入力してください。</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">音声を共有する</translation>
 <translation id="2480868415629598489">コピーして貼り付けるデータの修正</translation>
 <translation id="2482878487686419369">通知</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> のタブをすべて閉じるまでの間、<ph name="ORIGIN" /> は「<ph name="FILENAME" />」を編集できるようになります</translation>
 <translation id="2484959914739448251">同期しているすべてのデバイスと Google アカウントから閲覧データを削除するには、<ph name="BEGIN_LINK" />パスフレーズを入力<ph name="END_LINK" />してください。</translation>
 <translation id="2485005079599453134">パスワードがデバイスに保存されました</translation>
 <translation id="2485422356828889247">アンインストール</translation>
@@ -1299,6 +1307,7 @@
 <translation id="274290345632688601">Linux のアプリとファイルを復元しています</translation>
 <translation id="2743387203779672305">クリップボードにコピー</translation>
 <translation id="2745080116229976798">Microsoft 限定従属</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> は一時停止中</translation>
 <translation id="2749756011735116528"><ph name="PRODUCT_NAME" /> にログイン</translation>
 <translation id="2749881179542288782">スペルと一緒に文法をチェック</translation>
 <translation id="2751739896257479635">EAP フェーズ 2 認証</translation>
@@ -1307,6 +1316,7 @@
 <translation id="275662540872599901">画面オフ</translation>
 <translation id="2762441749940182211">カメラがブロックされています</translation>
 <translation id="2765217105034171413">小</translation>
+<translation id="2766161002040448006">保護者に依頼</translation>
 <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" /> としてログインしています。</translation>
 <translation id="2770465223704140727">リストから削除</translation>
 <translation id="2770690685823456775">パスワードを別のフォルダにエクスポートしてください</translation>
@@ -1558,6 +1568,7 @@
 <translation id="3115580024857770654">すべて折りたたむ</translation>
 <translation id="3117362587799608430">サポートされていないドックです</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> ヘルプ</translation>
+<translation id="3118654181216384296">しばらくしてからもう一度 Linux の起動をお試しください。</translation>
 <translation id="3120430004221004537">「<ph name="DEVICE_NAME" />」で、指定された操作に必要な暗号化が行われていません。</translation>
 <translation id="3121793941267913344">この <ph name="IDS_SHORT_PRODUCT_NAME" /> デバイスをリセットします</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1567,6 +1578,7 @@
 <translation id="3127156390846601284">表示されているすべてのサイトについて、デバイスに保存されているデータを削除します。続行しますか?</translation>
 <translation id="3127860049873093642">充電やパフォーマンスに関する問題を回避するには、対応する Dell または USB Type-C の電源アダプターを使用してください。</translation>
 <translation id="3129173833825111527">左余白</translation>
+<translation id="3129215702932019810">アプリケーションの起動中にエラーが発生しました</translation>
 <translation id="3130528281680948470">デバイスをリセットし、すべてのユーザー アカウントとローカルデータを削除します。この操作は元に戻せません。</translation>
 <translation id="313205617302240621">パスワードを忘れた場合</translation>
 <translation id="3132996321662585180">毎日更新する</translation>
@@ -1782,6 +1794,7 @@
 <translation id="3441653493275994384">画面</translation>
 <translation id="3445925074670675829">USB-C デバイス</translation>
 <translation id="344630545793878684">多数のウェブサイトでのユーザーデータの読み取り</translation>
+<translation id="3448086340637592206">Google Chrome および Chrome OS 追加利用規約</translation>
 <translation id="3448492834076427715">アカウントを更新</translation>
 <translation id="3449839693241009168"><ph name="SEARCH_KEY" /> を押すと <ph name="EXTENSION_NAME" /> にコマンドが送信されます</translation>
 <translation id="3450157232394774192">アイドル状態の占有率(%)</translation>
@@ -2129,6 +2142,7 @@
 <translation id="3873423927483480833">PIN を表示</translation>
 <translation id="3873915545594852654">ARC++ で問題が発生しました。</translation>
 <translation id="3879748587602334249">ダウンロード マネージャ</translation>
+<translation id="3881321138433527084">セーフ ブラウジングはオフになっています。ウェブを安全に利用するには、オンにしてください。</translation>
 <translation id="3882165008614329320">カメラやファイルに保存されている動画</translation>
 <translation id="3886446263141354045">このサイトへのアクセス リクエストを <ph name="NAME" /> さんに送信しました</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> でメモをとる</translation>
@@ -2470,6 +2484,7 @@
 <translation id="4384652540891215547">拡張機能を有効にする</translation>
 <translation id="438503109373656455">サラトガ</translation>
 <translation id="4387004326333427325">認証証明書がリモートで拒否されました</translation>
+<translation id="4387890294700445764">不正使用されたパスワード</translation>
 <translation id="4389091756366370506">ユーザー <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{シークレット}other{開いているシークレット ウィンドウ # 個}}</translation>
 <translation id="439266289085815679">Bluetooth 設定は <ph name="USER_EMAIL" /> によって管理されています。</translation>
@@ -2501,6 +2516,7 @@
 <translation id="4429030830601238961">このデータは、組織のセキュリティ ポリシーに違反しているため貼り付けできません。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4430369329743628066">ブックマークを追加しました</translation>
+<translation id="4432621511648257259">パスワードが正しくありません。</translation>
 <translation id="4434045419905280838">ポップアップとリダイレクト</translation>
 <translation id="443454694385851356">以前の暗号化タイプ(安全ではありません)</translation>
 <translation id="443475966875174318">互換性のないアプリケーションの更新または削除</translation>
@@ -2750,6 +2766,7 @@
 <translation id="4808667324955055115">ポップアップがブロックされました:</translation>
 <translation id="480990236307250886">ホームページを開く</translation>
 <translation id="4811503964269049987">選択したタブをグループ化する</translation>
+<translation id="4811818760963189951">履歴の同期を無効にしたため、オフになりました</translation>
 <translation id="4813136279048157860">自分の画像</translation>
 <translation id="4813512666221746211">ネットワーク エラー</translation>
 <translation id="4814378367953456825">このフィンガープリントの名前を入力してください</translation>
@@ -2779,6 +2796,7 @@
 <translation id="4850669014075537160">スクロール</translation>
 <translation id="4850886885716139402">表示</translation>
 <translation id="4853020600495124913">新しいウィンドウで開く(&amp;N)</translation>
+<translation id="4854317507773910281">承認を依頼する保護者のアカウントを選択</translation>
 <translation id="485480310608090163">その他の設定と権限</translation>
 <translation id="4856478137399998590">モバイル データ サービスがご利用いただけるようになりました</translation>
 <translation id="4856855265648545577">タブレット モードでシェルフにランチャー、戻る、最近ボタンを表示します。ChromeVox(音声フィードバック)やスイッチ アクセスが有効な場合はオンになります。</translation>
@@ -2915,10 +2933,12 @@
 <translation id="5040823038948176460">その他のコンテンツの設定</translation>
 <translation id="5042282098504489593"><ph name="USB_DEVICE_NAME" /> を Linux に接続する設定を開きます</translation>
 <translation id="5043913660911154449">または、プリンタの PPD を指定してください(<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" />)</translation>
+<translation id="5044314273978194362">パスフレーズを設定して同期データを暗号化したため、オフになりました</translation>
 <translation id="5045550434625856497">パスワードが正しくありません</translation>
 <translation id="504561833207953641">既存のブラウザ セッションで開いています。</translation>
 <translation id="5047421709274785093">サイトによるモーション センサーと光センサーの使用をブロックする</translation>
 <translation id="5050042263972837708">グループ名</translation>
+<translation id="5051073330196664891">Google 共通利用規約(uToS)</translation>
 <translation id="5051836348807686060">選択した言語ではスペルチェックを使用できません</translation>
 <translation id="5052499409147950210">サイトの編集</translation>
 <translation id="5053604404986157245">ランダムに生成された TPM パスワードは使用できません。これは Powerwash 後の通常の動作です。</translation>
@@ -2956,6 +2976,7 @@
 <translation id="5097002363526479830">ネットワーク「<ph name="NAME" />」に接続できませんでした: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">すべてのブックマークを開く</translation>
 <translation id="5101839224773798795">カーソルの停止時に自動的にクリックする</translation>
+<translation id="5107443654503185812">拡張機能により、セーフ ブラウジングがオフになりました</translation>
 <translation id="5108967062857032718">設定 - Android アプリの削除</translation>
 <translation id="5109044022078737958">ミア</translation>
 <translation id="5111646998522066203">シークレット モードを終了</translation>
@@ -3042,6 +3063,7 @@
 <translation id="523505283826916779">ユーザー補助機能の設定</translation>
 <translation id="5235750401727657667">新しいタブを開いたときの表示ページを変更する</translation>
 <translation id="5238278114306905396">アプリ「<ph name="EXTENSION_NAME" />」は自動的に削除されました。</translation>
+<translation id="5239730228370806996">ドロップしたデータは、組織のセキュリティ ポリシーに違反しています。それでも続行しますか?</translation>
 <translation id="5241128660650683457">アクセスしたウェブサイトでのすべてのユーザーデータの読み取り</translation>
 <translation id="5242724311594467048">「<ph name="EXTENSION_NAME" />」を有効にしますか?</translation>
 <translation id="5243522832766285132">しばらくしてからもう一度お試しください</translation>
@@ -3329,6 +3351,7 @@
 <translation id="5618075537869101857">キオスク アプリケーションを起動できませんでした。</translation>
 <translation id="5618333180342767515">(数分かかることがあります)</translation>
 <translation id="56197088284879152">リモート デバイス「<ph name="DEVICE_NAME" />」への接続が集中しています。</translation>
+<translation id="5620163320393916465">保存されているパスワードはありません</translation>
 <translation id="5620549857835247159">タブレット モードでシェルフにランチャー、戻る、概要ボタンを表示します。</translation>
 <translation id="5620568081365989559">デベロッパー ツールでは <ph name="FOLDER_PATH" /> へのフルアクセスがリクエストされます。機密情報の漏えいにご注意ください。</translation>
 <translation id="5620612546311710611">使用統計データ</translation>
@@ -3422,6 +3445,7 @@
 <translation id="5747785204778348146">Dev - 不安定</translation>
 <translation id="5747809636523347288">貼り付けて <ph name="URL" /> に移動</translation>
 <translation id="5750324801516359607">遠い</translation>
+<translation id="5751887393582880060">このアップロードは、組織のセキュリティ ポリシーに違反しています。それでも続行しますか?</translation>
 <translation id="5756163054456765343">ヘルプセンター(&amp;E)</translation>
 <translation id="5759728514498647443">「<ph name="APP_NAME" />」を使用して印刷に送信したドキュメントは「<ph name="APP_NAME" />」で読めます。</translation>
 <translation id="5763751966069581670">USB デバイスが見つかりませんでした</translation>
@@ -3631,6 +3655,7 @@
 <translation id="6040852767465482106">匿名 ID</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google の位置情報サービスは、Wi‑Fi やモバイル ネットワーク、センサーなどのソースからお使いのデバイスの現在地を推定します。<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />位置情報の使用を無効にするには、お使いのデバイスでメインの位置情報の設定を無効にします。また、位置情報の設定で、Wi‑Fi、モバイル ネットワーク、センサーを現在地の特定に使用しないよう指定することもできます。<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> のタブをすべて閉じるまでの間、<ph name="ORIGIN" /> は「<ph name="FOLDERNAME" />」内のファイルを表示できるようになります</translation>
 <translation id="6041155700700864984">全画面表示を終了</translation>
 <translation id="604124094241169006">自動設定</translation>
 <translation id="6042308850641462728">もっと見る</translation>
@@ -3692,6 +3717,7 @@
 <translation id="6104311680260824317">デバイスをドメインに追加できません。指定した Kerberos 暗号化タイプがサーバーでサポートされていません。[その他のオプション] で暗号化の設定をご確認ください。</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> がこのデバイスを今すぐ更新するよう求めています</translation>
 <translation id="6106186653986077033">プラグイン VM を使用するにはライセンスが必要です</translation>
+<translation id="6107047744202598802">アクセスを保存してあなたをウェブ上でトラッキングすることをウェブサイトに許可します</translation>
 <translation id="6112294629795967147">タップしてサイズを変更</translation>
 <translation id="6112727384379533756">チケットを追加</translation>
 <translation id="6112931163620622315">スマートフォンを確認してください</translation>
@@ -3770,6 +3796,7 @@
 <translation id="622537739776246443">プロフィールは削除されます</translation>
 <translation id="6225475702458870625"><ph name="PHONE_NAME" /> からデータ接続が可能です</translation>
 <translation id="6226777517901268232">秘密鍵ファイル(省略可能)</translation>
+<translation id="6227280783235722609">拡張機能</translation>
 <translation id="6228691855869374890">このサイトは MIDI デバイスのフル コントロールが許可されています。</translation>
 <translation id="6228720835160974792">この画像の QR コードを生成</translation>
 <translation id="6229890768313448549">Google Play 利用規約を読み込めません。もう一度お試しください。</translation>
@@ -3821,6 +3848,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> は一般的にダウンロードされているファイルではなく、危害を及ぼす可能性があります。</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{ネットワーク上の新しいプリンタ}other{ネットワーク上の新しいプリンタ}}</translation>
 <translation id="6286708577777130801">保存パスワードの詳細</translation>
+<translation id="6291163159361301370">Linux を起動するため、<ph name="ORGANIZATION_NAME" /> がデータをバックアップし、この Chromebook を初期状態にリセットするよう求めています。</translation>
 <translation id="6291949900244949761">サイトから USB デバイスへのアクセス許可を求められたときに確認する(推奨)</translation>
 <translation id="6291953229176937411">Finder で表示(&amp;S)</translation>
 <translation id="6295158916970320988">すべてのサイト</translation>
@@ -4017,6 +4045,7 @@
 <translation id="6561726789132298588">Enter</translation>
 <translation id="656293578423618167">ファイルのパスまたは名前が長すぎます。名前を短くするか、別の場所に保存してください。</translation>
 <translation id="6563469144985748109">管理者がまだサイトを開くことを許可していません</translation>
+<translation id="6565955132287672866">デバイスは正しく終了しませんでした。Linux(ベータ版)を使用するには、再起動する必要があります。</translation>
 <translation id="6567688344210276845">ページ操作のアイコン「<ph name="ICON" />」を読み込むことができませんでした。</translation>
 <translation id="6569934958368283244">他のユーザー</translation>
 <translation id="657402800789773160">ページを再読み込み(&amp;R)</translation>
@@ -4514,6 +4543,7 @@
 <translation id="7258225044283673131">アプリケーションから応答がありません。終了するには [強制終了] を選択してください。</translation>
 <translation id="7258697411818564379">PIN を追加しました</translation>
 <translation id="7262004276116528033">このログイン サービスは <ph name="SAML_DOMAIN" /> でホストされています</translation>
+<translation id="7266898409676782635"><ph name="DEVICE_TYPE" /> のご利用のヒント、特典、最新情報を受け取って、フィードバックをお送りいただけます。登録はいつでも解除できます。</translation>
 <translation id="7268127947535186412">この設定はデバイスの所有者が管理しています。</translation>
 <translation id="7270858098575133036">サイトがシステム エクスクルーシブ メッセージを使用して MIDI デバイスにアクセスする際に確認する</translation>
 <translation id="7272674038937250585">説明が提供されていません</translation>
@@ -4587,6 +4617,7 @@
 <translation id="7364796246159120393">ファイルを選択</translation>
 <translation id="7366415735885268578">サイトの追加</translation>
 <translation id="7366909168761621528">閲覧履歴データ</translation>
+<translation id="7367714965999718019">QR コード生成ツール</translation>
 <translation id="736877393389250337"><ph name="URL" /> を <ph name="ALTERNATIVE_BROWSER_NAME" /> で開けませんでした。システム管理者にお問い合わせください。</translation>
 <translation id="7370592524170198497">イーサネット EAP:</translation>
 <translation id="7371006317849674875">開始時間</translation>
@@ -4844,8 +4875,10 @@
 <translation id="7737238973539693982">Linux(ベータ版)の削除</translation>
 <translation id="7740996059027112821">標準</translation>
 <translation id="7744047395460924128">印刷履歴の表示</translation>
+<translation id="7744192722284567281">データ侵害で漏洩</translation>
 <translation id="7746457520633464754">危険なアプリやサイトを検出するために、アクセスした一部のページの URL と限定的なシステム情報、一部のページ コンテンツが Chrome から Google に送信されます</translation>
 <translation id="7750228210027921155">ピクチャー イン ピクチャー</translation>
+<translation id="7751229152614300329">セーフ ブラウジングは最新の状態で、有害なサイトやダウンロードから保護されています</translation>
 <translation id="7751260505918304024">すべて表示</translation>
 <translation id="7754704193130578113">ダウンロード前に各ファイルの保存場所を確認する</translation>
 <translation id="7755287808199759310">ブロックの解除は保護者が行うことができます</translation>
@@ -4993,6 +5026,7 @@
 <translation id="7910768399700579500">新しいフォルダ(&amp;N)</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">サーバーでパスワードが変更されました。いったんログアウトして再度ログインしてください。</translation>
+<translation id="7914583336730284547">ドロップしたファイルは、組織のセキュリティ ポリシーに違反しています。それでも続行しますか?</translation>
 <translation id="7915457674565721553">保護者による使用制限を設定するにはインターネットに接続してください</translation>
 <translation id="7915471803647590281">フィードバックを送信する前に、問題の詳細を入力してください。</translation>
 <translation id="7918257978052780342">登録</translation>
@@ -5090,6 +5124,7 @@
 <translation id="8028803902702117856"><ph name="FILE_NAME" /> をダウンロードしています。<ph name="SIZE" /> 完了</translation>
 <translation id="8028993641010258682">サイズ</translation>
 <translation id="8030656706657716245">プリンタを追加</translation>
+<translation id="8030852056903932865">承認</translation>
 <translation id="8032244173881942855">タブをキャストできません。</translation>
 <translation id="8033827949643255796">選択しました</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{すべてをシークレット ウィンドウで開く(&amp;I)}=1{シークレット ウィンドウで開く(&amp;I)}other{すべて(# 件)をシークレット ウィンドウで開く(&amp;I)}}</translation>
@@ -5410,6 +5445,7 @@
 <translation id="8472623782143987204">ハードウェア式</translation>
 <translation id="8473863474539038330">住所やその他の情報</translation>
 <translation id="8475313423285172237">パソコン上の別のプログラムにより、Chrome の動作方法を変更する可能性のある拡張機能が追加されました。</translation>
+<translation id="8476659515398963495">ペーストしたデータは、組織のセキュリティ ポリシーに違反しています。それでも続行しますか?</translation>
 <translation id="8477241577829954800">差し替えられた</translation>
 <translation id="8477384620836102176">全般(&amp;G)</translation>
 <translation id="8480082892550707549">以前ファイルをダウンロードしたサイトでも、一時的に安全でなくなっている(ハッキングされている)可能性があります。しばらくしてからファイルをダウンロードしてみてください。</translation>
@@ -5463,6 +5499,7 @@
 <translation id="8547013269961688403">全画面拡大鏡を有効にする</translation>
 <translation id="85486688517848470">キーボードの最上段にあるキーの動作を切り替えるには、検索キーを押したままにします</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 個のアイテム}other{# 個のアイテム}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> のタブをすべて閉じるまでの間、<ph name="ORIGIN" /> は「<ph name="FOLDERNAME" />」内のファイルを編集できるようになります</translation>
 <translation id="8551388862522347954">ライセンス</translation>
 <translation id="8553342806078037065">他のユーザーを管理</translation>
 <translation id="8554899698005018844">言語設定なし</translation>
@@ -5521,6 +5558,7 @@
 <translation id="8637688295594795546">システムのアップデートが見つかりました。ダウンロードの準備をしています...</translation>
 <translation id="8639047128869322042">有害なソフトウェアを確認しています...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - ポート</translation>
+<translation id="8641606876632989680">不正使用されたパスワードでログインした場合、Chrome で通知します</translation>
 <translation id="8642900771896232685">2秒</translation>
 <translation id="8642947597466641025">テキストを拡大する</translation>
 <translation id="8644655801811752511">このセキュリティ キーをリセットできません。キーの挿入直後にリセットしてみてください。</translation>
@@ -5570,6 +5608,7 @@
 <translation id="869884720829132584">アプリケーション メニュー</translation>
 <translation id="869891660844655955">有効期限</translation>
 <translation id="8703346390800944767">広告をスキップ</translation>
+<translation id="870341961648617780">セーフ ブラウジングと高度なセキュリティ設定</translation>
 <translation id="8705331520020532516">シリアル番号</translation>
 <translation id="8705580154597116082">スマートフォンから Wi-Fi に接続できます</translation>
 <translation id="8705629851992224300">セキュリティ キーを読み取れませんでした</translation>
@@ -5615,6 +5654,7 @@
 <translation id="874689135111202667">{0,plural, =1{1 個のファイルをこのサイトにアップロードしますか?}other{# 個のファイルをこのサイトにアップロードしますか?}}</translation>
 <translation id="8748384418490037181">Smart Lock のオプション</translation>
 <translation id="8749863574775030885">不明なベンダーの USB デバイスへのアクセス</translation>
+<translation id="8750133148106010815">Google Play を起動するため、<ph name="ORGANIZATION_NAME" /> がデータをバックアップし、この Chromebook を初期状態にリセットするよう求めています。</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> がシリアルポートへの接続を要求しています</translation>
 <translation id="8754200782896249056">&lt;p&gt;<ph name="PRODUCT_NAME" /> をサポート対象のデスクトップ環境で実行するとシステムのプロキシ設定が使用されますが、お使いのシステムがサポートされていないか、システム設定の適用で問題が発生した可能性があります。&lt;/p&gt;
 
@@ -5669,6 +5709,7 @@
 <translation id="8809147117840417135">明るい青緑</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> にログインできません</translation>
 <translation id="8813811964357448561">枚</translation>
+<translation id="8813872945700551674">保護者に「<ph name="EXTENSION_NAME" />」の承認を依頼してください</translation>
 <translation id="8813969267212093033">システムのテキストはこの言語で表示されます</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">アーカイブをスキャンしています。しばらくお待ちください...</translation>
@@ -5949,6 +5990,7 @@
 <translation id="9203398526606335860">プロファイル記録の開始(&amp;P)</translation>
 <translation id="9203904171912129171">デバイスを選択</translation>
 <translation id="9203962528777363226">このデバイスの管理者は新規ユーザーの追加を無効にしています</translation>
+<translation id="9211177926627870898">更新が必要です</translation>
 <translation id="9214520840402538427">installation-time 属性の初期化がタイムアウトしました。サポート担当者にお問い合わせください。</translation>
 <translation id="9214695392875603905">カップケーキ</translation>
 <translation id="9215293857209265904">「<ph name="EXTENSION_NAME" />」が追加されました</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 44e787b..1fcf917 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">ამ აპებიდანაც გსურთ მონაცემთა გასუფთავება?</translation>
 <translation id="1045692658517323508">{0,plural, =1{განაახლეთ 1 წუთის განმავლობაში}other{განაახლეთ # წუთის განმავლობაში}}</translation>
 <translation id="1046635659603195359">როგორც ჩანს, სხვა მოწყობილობაზე Google ასისტენტით უკვე დააყენეთ Voice Match. ეს ძველი ჩანაწერები გამოყენებული იქნება ამ მოწყობილობაზე ხმის მოდელის შესაქმნელად. ამას დასჭირდება წუთზე ნაკლები დრო.</translation>
+<translation id="104710386808485638">გსურთ Linux-ის გადატვირთვა?</translation>
 <translation id="1047431265488717055">ბმულის ტე&amp;ქსტის კოპირება</translation>
 <translation id="1048286738600630630">ეკრანები</translation>
 <translation id="1049743911850919806">ინკოგნიტო</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">შედით <ph name="TOKEN_NAME" />-ში, კლიენტის სერტიფიკატის ექსპორტისთვის.</translation>
 <translation id="1163931534039071049">ჩარჩოს წყაროს &amp;ნახვა</translation>
 <translation id="1164674268730883318">გსურთ, ჩართოთ Smart Lock <ph name="DEVICE_TYPE" />-ისთვის?</translation>
+<translation id="1164891049599601209">შეყვანილია შეცდომაში შემყვან საიტზე</translation>
 <translation id="1164899421101904659">PIN-კოდის განბლოკვის გასაღების შეყვანა</translation>
 <translation id="1165039591588034296">შეცდომა</translation>
 <translation id="1166212789817575481">ჩანართების დახურვა მარჯვნივ</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">კიოსკის ავტომატური რეჟიმი</translation>
 <translation id="1545775234664667895">დაინსტალირებული თემა „<ph name="THEME_NAME" />“</translation>
 <translation id="1546280085599573572">ამ გაფართოებამ თქვენ მიერ მთავარი გვერდის ღილაკზე დაწკაპუნებისას ნაჩვენები გვერდი შეცვალა.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> ითხოვს ნებართვას, რომ დააინსტალიროს <ph name="EXTENSION_TYPE" />, რომელსაც შეუძლია:</translation>
 <translation id="1549275686094429035">ARC ჩართულია</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" />-ს <ph name="VOLUME_NAME" />-ზე წვდომა სურს. მას თქვენი ფაილების შეცვლა ან წაშლა შეუძლია.</translation>
 <translation id="1553538517812678578">შეუზღუდავo</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">Plugin VM</translation>
 <translation id="1679810534535368772">ნამდვილად გსურთ გასვლა?</translation>
 <translation id="167983332380191032">მართვის სერვისმა გამოაგზავნა შეტყობინება HTTP შეცდომის შესახებ.</translation>
+<translation id="1680841347983561661">ცადეთ Google Play-ს ხელახლა გაშვება რამდენიმე წუთში.</translation>
 <translation id="1680849702532889074">თქვენი Linux აპლიკაციის ინსტალაციისას მოხდა შეცდომა.</translation>
 <translation id="16815041330799488">საიტებისთვის გაცვლის ბუფერში კოპირებული ტექსტისა და სურათების ნახვის აკრძალვა</translation>
 <translation id="1682548588986054654">ახალი ინკოგნიტო ფანჯარა</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> უკვე გაითიშა. დააწკაპუნეთ ამ ბურთზე გაფართოების ხელახლა ჩასატვირთად.</translation>
 <translation id="2025891858974379949">დაუცველი კონტენტი</translation>
 <translation id="202918510990975568">უსაფრთხოებისა და სისტემაში შესვლის კონფიგურაციისთვის შეიყვანეთ თქვენი პაროლი</translation>
+<translation id="2030672406208960151">აღდგენის ტერმინალის გახსნა</translation>
 <translation id="2034346955588403444">სხვა Wi-Fi ქსელის დამატება</translation>
 <translation id="203574396658008164">ჩაკეტილი ეკრანიდან ჩანიშვნის ჩართვა</translation>
 <translation id="2037445849770872822">ზედამხედველობა ამ Google ანგარიშისთვის დაყენებულია. მშობელთა მიერ კონტროლის სხვა საშუალებების დასაყენებლად აირჩიეთ „გაგრძელება“.
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">PIN-კოდი ან პაროლი</translation>
 <translation id="2224444042887712269">ამ პარამეტრის მფლობელია <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">საქაღალდის სახელის რედაქტირება</translation>
+<translation id="2225864335125757863">ანგარიშის უსაფრთხოებისთვის გირჩევთ, დაუყოვნებლივ შეცვალოთ შემდეგი პაროლები:</translation>
 <translation id="2226449515541314767">ამ საიტზე დაიბლოკა MIDI მოწყობილობების სრული კონტროლი.</translation>
 <translation id="222704500187107962">ეს გამონაკლისი ავტომატურად ამოიშლება ამჟამინდელი ინკოგნიტო სესიიდან გასვლის შემდეგ</translation>
 <translation id="2227179592712503583">შემოთავაზების ამოშლა</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">მთავარზე გადასვლა</translation>
 <translation id="2387458720915042159">პროქსი-სერვერის კავშირის ტიპი</translation>
 <translation id="2391419135980381625">სტანდარტული შრიფტი</translation>
+<translation id="2392163307141705938">მიღწეულია მშობლის მიერ <ph name="IDS_SHORT_PRODUCT_NAME" />-ზე დაწესებული დროის ლიმიტი.</translation>
 <translation id="2392369802118427583">გააქტიურება</translation>
 <translation id="2394566832561516196">პარამეტრები გასუფთავდება შემდეგი ჩატვირთვისას.</translation>
 <translation id="2395616325548404795">თქვენი <ph name="DEVICE_TYPE" /> წარმატებით დარეგისტრირდა კორპორატიული მართვისთვის, თუმცა მისი საინვენტარო და მდებარეობის ინფორმაცია ვერ გაიგზავნა. გთხოვთ, ხელით შეიყვანოთ ეს ინფორმაცია ამ მოწყობილობის ადმინისტრატორის კონსოლიდან.</translation>
@@ -1085,6 +1092,7 @@
 <translation id="247949520305900375">აუდიოს გაზიარება</translation>
 <translation id="2480868415629598489">თქვენ მიერ კოპირებული და ჩასმული მონაცემების შეცვლა</translation>
 <translation id="2482878487686419369">შეტყობინებები</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> შეძლებს „<ph name="FILENAME" />“-ის რედაქტირებას <ph name="ORIGIN" />-ის ყველა ჩანართის დახურვამდე</translation>
 <translation id="2484959914739448251">თქვენი Google ანგარიშიდან და ყველა სინქრონიზებული მოწყობილობიდან დათვალიერების მონაცემების გასასუფთავებლად <ph name="BEGIN_LINK" />შეიყვანეთ თქვენი საიდუმლო ფრაზა<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">პაროლი შენახულია ამ მოწყობილობაზე</translation>
 <translation id="2485422356828889247">დეინსტალაცია</translation>
@@ -1298,6 +1306,7 @@
 <translation id="274290345632688601">მიმდინარეობს Linux აპებისა და ფაილების აღდგენა</translation>
 <translation id="2743387203779672305">კოპირება გაცვლის ბუფერში</translation>
 <translation id="2745080116229976798">Microsoft-ის კვალიფიცირებული სუბორდინაცია</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> დაპაუზებულია</translation>
 <translation id="2749756011735116528">შედით <ph name="PRODUCT_NAME" />-ში</translation>
 <translation id="2749881179542288782">გრამატიკისა და მართლწერის შემოწმება</translation>
 <translation id="2751739896257479635">EAP ავტორიზაციის მე-2 ფაზა</translation>
@@ -1306,6 +1315,7 @@
 <translation id="275662540872599901">ეკრანი გამორთულია</translation>
 <translation id="2762441749940182211">კამერა დაბლოკილია</translation>
 <translation id="2765217105034171413">პატარა</translation>
+<translation id="2766161002040448006">მშობლისთვის თხოვნა</translation>
 <translation id="276969039800130567">შესულია, როგორც <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="2770465223704140727">სიიდან ამოშლა</translation>
 <translation id="2770690685823456775">განახორციელეთ თქვენი პაროლების ექსპორტირება სხვა საქაღალდეში</translation>
@@ -1557,6 +1567,7 @@
 <translation id="3115580024857770654">ყველას ჩაკეცვა</translation>
 <translation id="3117362587799608430">სამაგრი არ არის სრულად თავსებადი</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> დახმარება</translation>
+<translation id="3118654181216384296">ცადეთ Linux-ის ხელახლა გაშვება რამდენიმე წუთში.</translation>
 <translation id="3120430004221004537">„<ph name="DEVICE_NAME" />“-ზე მოცემული ოპერაცია არასაკმარისად დაშიფრულია.</translation>
 <translation id="3121793941267913344">ამ <ph name="IDS_SHORT_PRODUCT_NAME" /> მოწყობილობის განულება</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1566,6 +1577,7 @@
 <translation id="3127156390846601284">ეს მოქმედება წაშლის ყველა ნაჩვენები საიტის მიერ თქვენს მოწყობილობაზე შენახულ ნებისმიერ მონაცემს. გსურთ გაგრძელება?</translation>
 <translation id="3127860049873093642">დატენასთან და მუშაობასთან დაკავშირებული პრობლემების თავიდან ასაცილებლად გამოიყენეთ USB Type-C ტიპის ან Dell-ის თავსებადი ელკვების ადაპტერი.</translation>
 <translation id="3129173833825111527">მარცხენა ზღვარი</translation>
+<translation id="3129215702932019810">შეცდომა აპლიკაციის გაშვებისას</translation>
 <translation id="3130528281680948470">თქვენს მოწყობილობაზე დაბრუნდება ქარხნული პარამეტრები და ყველა მომხმარებლის ანგარიში და თანმხლები მონაცემები წაიშლება. ეს შეუქცევადია.</translation>
 <translation id="313205617302240621">პაროლი დაგავიწყდათ?</translation>
 <translation id="3132996321662585180">ყოველდღიურად განახლება</translation>
@@ -1781,6 +1793,7 @@
 <translation id="3441653493275994384">ეკრანი</translation>
 <translation id="3445925074670675829">USB-C მოწყობილობა</translation>
 <translation id="344630545793878684">წაიკითხეთ თქვენი მონაცემები რამდენიმე ვებსაიტზე</translation>
+<translation id="3448086340637592206">Google Chrome-ისა და Chrome OS-ის დამატებითი პირობები</translation>
 <translation id="3448492834076427715">ანგარიშის განახლება</translation>
 <translation id="3449839693241009168">დააჭირეთ ღილაკს <ph name="SEARCH_KEY" />, <ph name="EXTENSION_NAME" />-ში ბრძანებების გასაგზავნად</translation>
 <translation id="3450157232394774192">უქმი მდგომარეობის შემთხვევების პროცენტული მაჩვენებელი</translation>
@@ -2128,6 +2141,7 @@
 <translation id="3873423927483480833">PIN-კოდების ჩვენება</translation>
 <translation id="3873915545594852654">წარმოიქმნა ARC++-თან დაკავშირებული პრობლემა.</translation>
 <translation id="3879748587602334249">ჩამოტვირთვის მენეჯერი</translation>
+<translation id="3881321138433527084">Safe Browsing გამორთულია. ვების უსაფრთხოდ დასათვალიერებლად ჩართეთ ის.</translation>
 <translation id="3882165008614329320">არსებული ვიდეო კამერიდან ან ფაილიდან</translation>
 <translation id="3886446263141354045">ამ საიტზე წვდომის მოთხოვნა გაეგზავნა <ph name="NAME" />-ს</translation>
 <translation id="3888550877729210209">ჩანიშვნა <ph name="LOCK_SCREEN_APP_NAME" />-ის მეშვეობით</translation>
@@ -2469,6 +2483,7 @@
 <translation id="4384652540891215547">გაფართოების გააქტიურება</translation>
 <translation id="438503109373656455">სარატოგა</translation>
 <translation id="4387004326333427325">ავთენტიფიკაციის სერტიფიკატი დისტანციურად უარყოფილი იქნა</translation>
+<translation id="4387890294700445764">გატეხილი პაროლები</translation>
 <translation id="4389091756366370506">მომხმარებლის <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{ინკოგნიტო}other{# გახსნილი ინკოგნიტო ფანჯარა}}</translation>
 <translation id="439266289085815679">Bluetooth-ის კონფიგურაციას მართავს <ph name="USER_EMAIL" />.</translation>
@@ -2500,6 +2515,7 @@
 <translation id="4429030830601238961">ეს მონაცემები არღვევს თქვენი ორგანიზაციის უსაფრთხოებასთან დაკავშირებულ წესებს, ამიტომ ჩასმა ვერ მოხერხდება.</translation>
 <translation id="4430019312045809116">ხმა</translation>
 <translation id="4430369329743628066">სანიშნე დამატებულია</translation>
+<translation id="4432621511648257259">პაროლი არასწორია</translation>
 <translation id="4434045419905280838">ამომხ. ფანჯრები/გადამისამართება</translation>
 <translation id="443454694385851356">მოძველებული (დაუცველი)</translation>
 <translation id="443475966875174318">შეუთავსებელი აპლიკაციების განახლება ან ამოშლა</translation>
@@ -2749,6 +2765,7 @@
 <translation id="4808667324955055115">ამომხტარი ფანჯრები დაბლოკილია:</translation>
 <translation id="480990236307250886">გახსენით საწყისი გვერდი</translation>
 <translation id="4811503964269049987">არჩეული ჩანართის დაჯგუფება</translation>
+<translation id="4811818760963189951">გამორთულია, რადგან გათიშული გაქვთ ისტორიის სინქრონიზაცია</translation>
 <translation id="4813136279048157860">ჩემი სურათები</translation>
 <translation id="4813512666221746211">ქსელის შეცდომა</translation>
 <translation id="4814378367953456825">შეიყვანეთ თითის ამ ანაბეჭდის სახელი</translation>
@@ -2778,6 +2795,7 @@
 <translation id="4850669014075537160">გადაადგილება</translation>
 <translation id="4850886885716139402">გადახედვა</translation>
 <translation id="4853020600495124913">&amp;ახალ ფანჯარაში გახსნა</translation>
+<translation id="4854317507773910281">აირჩიეთ მშობლის ანგარიში დასადასტურებლად</translation>
 <translation id="485480310608090163">სხვა პარამეტრები და ნებართვები</translation>
 <translation id="4856478137399998590">თქვენი მობილური მონაცემების სერვისი გააქტიურებულია და მზად არის გამოყენებისთვის</translation>
 <translation id="4856855265648545577">ტაბლეტის რეჟიმში თაროზე გამშვების, უკან გადასვლისა და მიმოხილვის ღილაკების ჩვენება. ჩაირთვება, როცა გააქტიურებულია ChromeVox (გახმოვანებული უკუკავშირი) ან გადამრთველით წვდომა.</translation>
@@ -2914,10 +2932,12 @@
 <translation id="5040823038948176460">კონტენტის დამატებითი პარამეტრები</translation>
 <translation id="5042282098504489593"><ph name="USB_DEVICE_NAME" /> რომ დაუკავშიროთ Linux-ს, გახსენით პარამეტრები</translation>
 <translation id="5043913660911154449">ან მიუთითეთ პრინტერის PPD. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">გამორთულია, რადგან სინქრონიზაციის მონაცემები საიდუმლო ფრაზით დაშიფრეთ</translation>
 <translation id="5045550434625856497">არასწორი პაროლი</translation>
 <translation id="504561833207953641">მიმდინარეობს ბრაუზერის არსებულ სესიაში გახსნა.</translation>
 <translation id="5047421709274785093">საიტებისთვის მოძრაობისა და განათების სენსორების გამოყენების აკრძალვა</translation>
 <translation id="5050042263972837708">ჯგუფის სახელი</translation>
+<translation id="5051073330196664891">Google-ის მომსახურების უნივერსალური პირობები (uToS)</translation>
 <translation id="5051836348807686060">მართლწერის შემოწმება მხარდაუჭერელია თქვენ მიერ არჩეული ენებისთვის</translation>
 <translation id="5052499409147950210">საიტის რედაქტირება</translation>
 <translation id="5053604404986157245">შემთხვევითად მინიჭებული TPM პაროლი მიუწვდომელია Powerwash ის შემდეგ ეს ნორმალურია.</translation>
@@ -2955,6 +2975,7 @@
 <translation id="5097002363526479830">ქსელთან დაკავშირება ვერ მოხერხდა „<ph name="NAME" />“: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">ყველა სანიშნის გახსნა</translation>
 <translation id="5101839224773798795">ავტომატური დაწკაპუნება კურსორის გაჩერებისას</translation>
+<translation id="5107443654503185812">გაფართოებამ გამორთო Safe Browsing</translation>
 <translation id="5108967062857032718">პარამეტრები — Android-ის აპების ამოშლა</translation>
 <translation id="5109044022078737958">მია</translation>
 <translation id="5111646998522066203">ინკოგნიტო რეჟიმიდან გასვლა</translation>
@@ -3041,6 +3062,7 @@
 <translation id="523505283826916779">მარტივი წვდომის პარამეტრები</translation>
 <translation id="5235750401727657667">თქვენთვის ხილული გვერდის ჩანაცვლება ახალი ჩანართის გახსნისას</translation>
 <translation id="5238278114306905396">პროგრამა „<ph name="EXTENSION_NAME" />“ ავტომატურად წაიშალა.</translation>
+<translation id="5239730228370806996">ჩავლებით გადმოტანილი ეს მონაცემები არღვევს თქვენი ორგანიზაციის უსაფრთხოებასთან დაკავშირებულ წესებს. მაინც გსურთ გაგრძელება?</translation>
 <translation id="5241128660650683457">წაიკითხეთ თქვენი მთლიანი მონაცემები მონახულებულ ვებსაიტებზე</translation>
 <translation id="5242724311594467048">ჩავრთოთ "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="5243522832766285132">გთხოვთ, სცადოთ რამდენიმე წუთში</translation>
@@ -3328,6 +3350,7 @@
 <translation id="5618075537869101857">უი, კიოსკის პროგრამის გაშვება ვერ მოხერხდა.</translation>
 <translation id="5618333180342767515">(შეიძლება რამდენიმე წუთი დასჭირდეს)</translation>
 <translation id="56197088284879152">დისტანციურ მოწყობილობასთან: „<ph name="DEVICE_NAME" />“ კავშირი გადატვირთულია.</translation>
+<translation id="5620163320393916465">შენახული პაროლები არ არის</translation>
 <translation id="5620549857835247159">ტაბლეტის რეჟიმში თაროზე გამშვების, უკან გადასვლისა და მიმოხილვის ღილაკების ჩვენება.</translation>
 <translation id="5620568081365989559">მოწყობილობის ხელსაწყოები მოითხოვს სრულ წვდომას <ph name="FOLDER_PATH" /> -ზე. დარწმუნდით, რომ არ ამჟღავნებთ კონფიდენციალურ ინფორმაციას.</translation>
 <translation id="5620612546311710611">გამოყენების სტატისტიკა</translation>
@@ -3420,6 +3443,7 @@
 <translation id="5747785204778348146">შემმუშავებელი - არასტაბილური</translation>
 <translation id="5747809636523347288">ჩა&amp;სმა და <ph name="URL" />-ზე გადასვლა</translation>
 <translation id="5750324801516359607">შორი</translation>
+<translation id="5751887393582880060">ეს ატვირთული კონტენტი არღვევს თქვენი ორგანიზაციის უსაფრთხოებასთან დაკავშირებულ წესებს. მაინც გსურთ გაგრძელება?</translation>
 <translation id="5756163054456765343">დახმარ&amp;ების ცენტრი</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" />-ს შეუძლია თქვენ მიერ <ph name="APP_NAME" />-ის მეშვეობით ამოსაბეჭდად გაგზავნილი დოკუმენტების წაკითხვა.</translation>
 <translation id="5763751966069581670">USB მოწყობილობები ვერ მოიძებნა</translation>
@@ -3629,6 +3653,7 @@
 <translation id="6040852767465482106">ანონიმური იდენტობა</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />თქვენი მოწყობილობის მიახლოებითი მდებარეობის დასადგენად Google-ის მდებარეობის სერვისები იყენებს ისეთ წყაროებს, როგორიცაა Wi-Fi, მობილური ქსელები და სენსორები.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />მდებარეობის გამორთვა შესაძლებელია თქვენს მოწყობილობაზე მდებარეობის მთავარი პარამეტრის გამორთვით. ასევე შეგიძლიათ გამორთოთ Wi-Fi კავშირის, მობილური ქსელებისა და სენსორების გამოყენება მდებარეობის დასადგენად.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> შეძლებს „<ph name="FOLDERNAME" />“-ში არსებული ფაილების ნახვას <ph name="ORIGIN" />-ის ყველა ჩანართის დახურვამდე</translation>
 <translation id="6041155700700864984">სრულეკრანიანი რეჟიმიდან გამოსვლა</translation>
 <translation id="604124094241169006">ავტომატური</translation>
 <translation id="6042308850641462728">სხვა</translation>
@@ -3690,6 +3715,7 @@
 <translation id="6104311680260824317">მოწყობილობის დომენში გაწევრიანება ვერ მოხერხდა. Kerberos დაშიფვრის მითითებული ტიპები მხარდაუჭერელია სერვერის მიერ. დაშიფვრის პარამეტრების სანახავად იხილეთ „სხვა ვარიანტები“.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> საჭიროებს ამ მოწყობილობის დაუყოვნებლივ განახლებას</translation>
 <translation id="6106186653986077033">Plugin VM საჭიროებს ლიცენზიას</translation>
+<translation id="6107047744202598802">საშუალებას აძლევს ვებსაიტებს, დაიმახსოვროს თქვენი სტუმრობა და თვალი გადევნოს ვებში</translation>
 <translation id="6112294629795967147">შეეხეთ ზომის შესაცვლელად</translation>
 <translation id="6112727384379533756">ბილეთის დამატება</translation>
 <translation id="6112931163620622315">შეამოწმეთ თქვენი ტელეფონი</translation>
@@ -3768,6 +3794,7 @@
 <translation id="622537739776246443">პროფილი წაიშლება</translation>
 <translation id="6225475702458870625">თქვენი <ph name="PHONE_NAME" /> მობილურ ინტერნეტს უზრუნველყოფს</translation>
 <translation id="6226777517901268232">პირადი გასაღების ფაილი (არასავალდებულო)</translation>
+<translation id="6227280783235722609">გაფართოება</translation>
 <translation id="6228691855869374890">ეს საიტი სრულად აკონტროლებს MIDI მოწყობილობებს.</translation>
 <translation id="6228720835160974792">ამ სურათისთვის QR კოდის გენერირება</translation>
 <translation id="6229890768313448549">Google Play-ს მომსახურების პირობები ვერ ჩაიტვირთა. გთხოვთ, ცადოთ ხელახლა.</translation>
@@ -3819,6 +3846,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> შეიძლება სახიფათო იყოს, რადგან მისი ჩამოტვირთვა ხშირად არ ხორციელდება ხოლმე.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{ახალი პრინტერი თქვენს ქსელში}other{ახალი პრინტერები თქვენს ქსელში}}</translation>
 <translation id="6286708577777130801">შენახული პაროლების დეტალები</translation>
+<translation id="6291163159361301370">Linux-ის გასაშვებად <ph name="ORGANIZATION_NAME" /> საჭიროებს თქვენი მონაცემების სარეზერვო ასლის შექმნასა და ამ Chromebook-ის ქარხნულ პარამეტრებზე დაბრუნებას.</translation>
 <translation id="6291949900244949761">საიტების მიერ USB-მოწყობილობებზე წვდომის მოთხოვნა (რეკომენდებულია)</translation>
 <translation id="6291953229176937411">ჩ&amp;ვენება მაძიებელში</translation>
 <translation id="6295158916970320988">ყველა საიტი</translation>
@@ -4015,6 +4043,7 @@
 <translation id="6561726789132298588">enter</translation>
 <translation id="656293578423618167">ფაილის მდებარეობა ან სახელი ძალიან გრძელია. გთხოვთ, შეინახოთ იგი უფრო მოკლე სახელით ან სხვა ადგილას.</translation>
 <translation id="6563469144985748109">თქვენს მენეჯერს ის ჯერ არ დაუდასტურებია</translation>
+<translation id="6565955132287672866">თქვენი მოწყობილობა სათანადოდ არ გაითიშა. Linux-ის (ბეტა) გამოსაყენებლად საჭიროა მისი გადატვირთვა.</translation>
 <translation id="6567688344210276845">ვერ ჩაიტვირთა „<ph name="ICON" />“ გვერდის მოქმედებისთვის.</translation>
 <translation id="6569934958368283244">სხვა ადამიანები</translation>
 <translation id="657402800789773160">&amp;ამ გვერდის ხელახლა ჩატვირთვა</translation>
@@ -4512,6 +4541,7 @@
 <translation id="7258225044283673131">აპლიკაცია არ რეაგირებს. მის დასახურად აირჩიეთ „იძულებით დახურვა“.</translation>
 <translation id="7258697411818564379">PIN-კოდი დამატებულია</translation>
 <translation id="7262004276116528033">შესვლის ამ მომსახურების ჰოსტინგს უზრუნველყოფს <ph name="SAML_DOMAIN" /></translation>
+<translation id="7266898409676782635">მიიღეთ <ph name="DEVICE_TYPE" />-თან დაკავშირებული რჩევები, შემოთავაზებები თუ განახლებები და გაგვიზიარეთ გამოხმაურება. გამოწერის გაუქმება ნებისმიერ დროს შეგიძლიათ.</translation>
 <translation id="7268127947535186412">ამ პარამეტრს მართავს მოწყობილობის მფლობელი.</translation>
 <translation id="7270858098575133036">შეკითხვა, როცა საიტს MIDI მოწყობილობებზე წვდომისთვის სისტემის ექსკლუზიური შეტყობინების გამოყენება სურს</translation>
 <translation id="7272674038937250585">აღწერილობა არ არის მოწოდებული</translation>
@@ -4585,6 +4615,7 @@
 <translation id="7364796246159120393">აირჩიეთ ფაილი</translation>
 <translation id="7366415735885268578">საიტის დამატება</translation>
 <translation id="7366909168761621528">დათვალიერების მონაცემები</translation>
+<translation id="7367714965999718019">QR კოდების გენერატორი</translation>
 <translation id="736877393389250337"><ph name="URL" /> ვერ გაიხსნება <ph name="ALTERNATIVE_BROWSER_NAME" />-ში. მიმართეთ თქვენი სისტემის ადმინისტრატორს.</translation>
 <translation id="7370592524170198497">Ethernet ქსელის EAP:</translation>
 <translation id="7371006317849674875">დაწყების დრო</translation>
@@ -4842,8 +4873,10 @@
 <translation id="7737238973539693982">Linux-ის (ბეტა) წაშლა</translation>
 <translation id="7740996059027112821">სტანდარტული</translation>
 <translation id="7744047395460924128">თქვენი ბეჭდვის ისტორიის ნახვა</translation>
+<translation id="7744192722284567281">დაფიქსირდა პერსონალურ მონაცემთა გაჟონვისას</translation>
 <translation id="7746457520633464754">სახიფათო აპებისა და საიტების აღმოსაჩენად Chrome უგზავნის Google-ს თქვენ მიერ მონახულებული ზოგიერთი გვერდის URL-ებს, სისტემის შეზღუდულ ინფორმაციასა და გვერდების გარკვეულ კონტენტს</translation>
 <translation id="7750228210027921155">გამოსახულება გამოსახულებაში</translation>
+<translation id="7751229152614300329">Safe Browsing განახლებულია და გიცავთ საზიანო საიტებისა თუ ჩამოტვირთვებისგან</translation>
 <translation id="7751260505918304024">ყველას ჩვენება</translation>
 <translation id="7754704193130578113">მკითხე, სად შეინახოს თითოეული ფაილი ჩამოტვირთვამდე</translation>
 <translation id="7755287808199759310">მისი განბლოკვა თქვენს მშობელს შეუძლია</translation>
@@ -4991,6 +5024,7 @@
 <translation id="7910768399700579500">&amp;ახალი საქაღალდე</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">თქვენი პაროლი შეიცვალა სერვერზე. გთხოვთ, გახვიდეთ და ხელახლა შეხვიდეთ სისტემაში.</translation>
+<translation id="7914583336730284547">ჩავლებით გადმოტანილი ეს ფაილები არღვევს თქვენი ორგანიზაციის უსაფრთხოებასთან დაკავშირებულ წესებს. მაინც გსურთ გაგრძელება?</translation>
 <translation id="7915457674565721553">მშობლის მიერ კონტროლის დასაყენებლად დაუკავშირდით ინტერნეტს</translation>
 <translation id="7915471803647590281">გთხოვთ გვითხრათ, რა ხდება უკუკავშირის გაგზავნამდე.</translation>
 <translation id="7918257978052780342">რეგისტრაცია</translation>
@@ -5087,6 +5121,7 @@
 <translation id="8028803902702117856">მიმდინარეობს <ph name="SIZE" />-ის ჩამოტვირთვა, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">ზომა</translation>
 <translation id="8030656706657716245">პრინტერის დამატება</translation>
+<translation id="8030852056903932865">დადასტურება</translation>
 <translation id="8032244173881942855">ჩანართის ტრანსლირება შეუძლებელია.</translation>
 <translation id="8033827949643255796">არჩეულია</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{ყველას &amp;ინკოგნიტო ფანჯარაში გახსნა}=1{&amp;ინკოგნიტო ფანჯარაში გახსნა}other{#-ვეს &amp;ინკოგნიტო ფანჯარაში გახსნა}}</translation>
@@ -5406,6 +5441,7 @@
 <translation id="8472623782143987204">აპარატურული რეზერვით</translation>
 <translation id="8473863474539038330">მისამართები და სხვა</translation>
 <translation id="8475313423285172237">სხვა პროგრამამ თქვენს კომპიუტერში დაამატა გაფართოება, რომელსაც შეუძლია შეცვალოს Chrome-ის მუშაობის ფორმა.</translation>
+<translation id="8476659515398963495">ეს ჩასმული მონაცემები არღვევს თქვენი ორგანიზაციის უსაფრთხოებასთან დაკავშირებულ წესებს. მაინც გსურთ გაგრძელება?</translation>
 <translation id="8477241577829954800">შეცვლილი</translation>
 <translation id="8477384620836102176">ძ&amp;ირითადი</translation>
 <translation id="8480082892550707549">იმ შემთხვევაშიც კი, თუ ამ საიტიდან ფაილები ადრე ჩამოგიტვირთავთ, ახლა ამის გაკეთება დროებით არაუსაფრთხოა (ჰაკერების შეტევის გამო). ცადეთ ამ ფაილის მოგვიანებით ჩამოტვირთვა.</translation>
@@ -5459,6 +5495,7 @@
 <translation id="8547013269961688403">სრულეკრანიანი ლუპის ჩართვა</translation>
 <translation id="85486688517848470">ზედა მწკრივის ღილაკების რეჟიმის გადასართავად ხანგრძლივად დააჭირეთ ძიების კლავიშს</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 ერთეული}other{# ერთეული}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> შეძლებს „<ph name="FOLDERNAME" />“-ში არსებული ფაილების რედაქტირებას <ph name="ORIGIN" />-ის ყველა ჩანართის დახურვამდე</translation>
 <translation id="8551388862522347954">ლიცენზიები</translation>
 <translation id="8553342806078037065">სხვა ადამიანების მართვა</translation>
 <translation id="8554899698005018844">ენის გარეშე</translation>
@@ -5517,6 +5554,7 @@
 <translation id="8637688295594795546">ხელმისაწვდომია სისტემის განახლება. ემზადება ჩამოტვირთვისთვის…</translation>
 <translation id="8639047128869322042">მიმდინარეობს საზიანო პროგრამული უზრუნველყოფის შემოწმება...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> — პორტი</translation>
+<translation id="8641606876632989680">Chrome შეგატყობინებთ, როცა სისტემაში გატეხილი პაროლით შეხვალთ</translation>
 <translation id="8642900771896232685">2 წამი</translation>
 <translation id="8642947597466641025">ტექსტის გადიდება</translation>
 <translation id="8644655801811752511">უსაფრთხოების ამ გასაღების გადაყენება ვერ მოხერხდა. ცადეთ მისი გადაყენება მიერთებისთანავე.</translation>
@@ -5566,6 +5604,7 @@
 <translation id="869884720829132584">პროგრამის მენიუ</translation>
 <translation id="869891660844655955">ვადის გასვლის თარიღი</translation>
 <translation id="8703346390800944767">რეკლამის გამოტოვება</translation>
+<translation id="870341961648617780">Safe Browsing-ისა და უსაფრთხოების გაფართოებული პარამეტრები</translation>
 <translation id="8705331520020532516">სერიული ნომერი</translation>
 <translation id="8705580154597116082">ტელეფონი Wi-Fi კავშირს უზრუნველყოფს</translation>
 <translation id="8705629851992224300">თქვენი უსაფრთხოების გასაღების წაკითხვა ვერ მოხერხდა</translation>
@@ -5611,6 +5650,7 @@
 <translation id="874689135111202667">{0,plural, =1{გსურთ ერთი ფაილის ატვირთვა ამ საიტზე?}other{გსურთ # ფაილის ატვირთვა ამ საიტზე?}}</translation>
 <translation id="8748384418490037181">Smart Lock-ის ვარიანტები</translation>
 <translation id="8749863574775030885">USB მოწყობილობებზე უცნობი ვენდორისაგან წვდომა</translation>
+<translation id="8750133148106010815">Google Play-ს გასაშვებად <ph name="ORGANIZATION_NAME" /> საჭიროებს თქვენი მონაცემების სარეზერვო ასლის შექმნასა და ამ Chromebook-ის ქარხნულ პარამეტრებზე დაბრუნებას.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ითხოვს დაკავშირებას თანმიმდევრულ პორტთან</translation>
 <translation id="8754200782896249056">&lt;p&gt;როდესაც ხდება <ph name="PRODUCT_NAME" /> ის მხარდამჭერი სამუშაო დაფის გარემოში გაშვება, გამოიყენება პროქსი სისტემა. თუმცა, ან თქვენი სისტემა არ არის მხარდაჭერილი ან სისტემის კონფიგურაციის გაშვებისას შეიქმნა დაბრკოლება&lt;/p&gt;
 
@@ -5665,6 +5705,7 @@
 <translation id="8809147117840417135">ღია ფირუზისფერი</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" />-ში შესვლა ვერ მოხერხდა</translation>
 <translation id="8813811964357448561">ფურცელი</translation>
+<translation id="8813872945700551674">სთხოვეთ მშობელს, დაადასტუროს „<ph name="EXTENSION_NAME" />“</translation>
 <translation id="8813969267212093033">სისტემის ტექსტი ნაჩვენებია ამ ენაზე</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">მოითმინეთ, მიმდინარეობს არქივის სკანირება...</translation>
@@ -5945,6 +5986,7 @@
 <translation id="9203398526606335860">&amp;პროფილირება ჩართულია</translation>
 <translation id="9203904171912129171">აირჩიეთ მოწყობილობა</translation>
 <translation id="9203962528777363226">ამ მოწყობილობის ადმინისტრატორმა გამორთო ახალი მომხმარებლების დამატების შესაძლებლობა</translation>
+<translation id="9211177926627870898">საჭიროა განახლება</translation>
 <translation id="9214520840402538427">უპს! დაინსტალირების დროის ატრიბუტების ინიციალიზაცია ამოიწურა. დაუკავშირდით მხარდაჭერის თქვენს წარმომადგენელს.</translation>
 <translation id="9214695392875603905">კექსი</translation>
 <translation id="9215293857209265904">„<ph name="EXTENSION_NAME" />“ დამატებულია</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index de3d1ba..6e22054 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Осы қолданбалардағы деректер де өшірілсін бе?</translation>
 <translation id="1045692658517323508">{0,plural, =1{1 минуттың ішінде жаңартыңыз}other{# минуттың ішінде жаңартыңыз}}</translation>
 <translation id="1046635659603195359">Voice Match функциясын бұрын Google Assistant қолданбасымен басқа құрылғыда орнатқан сияқтысыз. Бұл алдыңғы жазбаларды осы құрылғыда дауыс үлгісін жасауға пайдалануға болады. Бұған бір минутқа жетпейтін уақыт кетеді.</translation>
+<translation id="104710386808485638">Linux жүйесі қайта қосылсын ба?</translation>
 <translation id="1047431265488717055">Сілтеме мә&amp;тінін көшіру</translation>
 <translation id="1048286738600630630">Дисплейлер</translation>
 <translation id="1049743911850919806">Инкогнито</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Клиент сертификатын экспорттау үшін <ph name="TOKEN_NAME" /> таңбалауышына кіріңіз.</translation>
 <translation id="1163931534039071049">&amp;Жақтау дереккөзін көру</translation>
 <translation id="1164674268730883318"><ph name="DEVICE_TYPE" /> құрылғысы үшін Smart Lock функциясы өшірілсін бе?</translation>
+<translation id="1164891049599601209">Жалған сайтта енгізілген</translation>
 <translation id="1164899421101904659">PIN кодының құлпын ашу кілтін енгізу</translation>
 <translation id="1165039591588034296">Қате</translation>
 <translation id="1166212789817575481">Қойындыларды оң жаққа жабу</translation>
@@ -395,6 +397,7 @@
 <translation id="1545177026077493356">Автоматты киоск режимі</translation>
 <translation id="1545775234664667895">"<ph name="THEME_NAME" />" тақырыбы орнатылды</translation>
 <translation id="1546280085599573572">Бұл кеңейтім Басты түймесін басқан кезде көрсетілетін бетті өзгертті.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> келесілерді істей алатын <ph name="EXTENSION_TYPE" /> кеңейтімін орнатқысы келеді:</translation>
 <translation id="1549275686094429035">ARC қосылды</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> қолданбасы <ph name="VOLUME_NAME" /> құрылғысына кіруге рұқсат сұрауда. Ол файлдарыңызды өзгертуі немесе жоюы мүмкін.</translation>
 <translation id="1553538517812678578">шектелмеген</translation>
@@ -493,6 +496,7 @@
 <translation id="1679806121152819234">Plugin VM</translation>
 <translation id="1679810534535368772">Шынымен де шыққыңыз келе ме?</translation>
 <translation id="167983332380191032">Басқару қызметі HTTP қатесін жіберді.</translation>
+<translation id="1680841347983561661">Сәлден кейін Google Play қолданбасын қайта іске қосып көріңіз.</translation>
 <translation id="1680849702532889074">Linux қолданбасын орнату кезінде қате кетті.</translation>
 <translation id="16815041330799488">Сайттардың буферге көшірілген мәтін мен кескіндерді көруіне рұқсат бермеу</translation>
 <translation id="1682548588986054654">Жаңа жасырын терезе</translation>
@@ -746,6 +750,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> бұзылған. Кеңейтімді қайта жүктеу үшін осы қалқымалы хабарды басыңыз.</translation>
 <translation id="2025891858974379949">Қорғалмаған мазмұн</translation>
 <translation id="202918510990975568">Қауіпсіздік және жүйеге кіру параметрлерін конфигурациялау үшін құпия сөзді енгізіңіз.</translation>
+<translation id="2030672406208960151">Қалпына келтіру терминалын ашу</translation>
 <translation id="2034346955588403444">Басқа Wi-Fi желісін қосу</translation>
 <translation id="203574396658008164">Құлып экранынан жазба жазуды қосу</translation>
 <translation id="2037445849770872822">Осы Google есептік жазбасы үшін қадағалау параметрлері реттелді. Басқа да ата-ана бақылауы параметрлерін реттеу үшін "Жалғастыру" түймесін таңдаңыз.
@@ -898,6 +903,7 @@
 <translation id="2220572644011485463">PIN коды немесе құпия сөз</translation>
 <translation id="2224444042887712269">Бұл параметрді <ph name="OWNER_EMAIL" /> орнатқан.</translation>
 <translation id="2224551243087462610">Қалта атауын өзгерту</translation>
+<translation id="2225864335125757863">Есептік жазбаңыздың қауіпсіздігін сақтау үшін мына құпия сөздерді дереу өзгертіңіз:</translation>
 <translation id="2226449515541314767">Бұл сайтқа MIDI құрылғыларын толық бақылауға тыйым салынған.</translation>
 <translation id="222704500187107962">Инкогнито режиміндегі қазіргі сеанстан шыққаннан кейін, бұл ерекше жағдай автоматты түрде өшіріледі.</translation>
 <translation id="2227179592712503583">Ұсынысты өшіру</translation>
@@ -1018,6 +1024,7 @@
 <translation id="2387052489799050037">Негізгі экранға өту</translation>
 <translation id="2387458720915042159">Прокси-сервер байланысының түрі</translation>
 <translation id="2391419135980381625">Стандартты қаріп</translation>
+<translation id="2392163307141705938"><ph name="IDS_SHORT_PRODUCT_NAME" /> үшін ата-анаңыз белгілеген уақыт шектеуіне жеттіңіз.</translation>
 <translation id="2392369802118427583">Белсендіру</translation>
 <translation id="2394566832561516196">Параметрлер келесі жүктегенде тазаланады.</translation>
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> құрылғысы кәсіпорын басқаруы үшін тіркелді, бірақ оның активі мен орналасу орны туралы ақпарат жіберілмеді. Бұл мәліметті осы құрылғының әкімші консолінен қолмен енгізіңіз.</translation>
@@ -1083,6 +1090,7 @@
 <translation id="247949520305900375">Аудиомен бөлісу</translation>
 <translation id="2480868415629598489">Көшіріліп қойылатын деректерді жаңарту</translation>
 <translation id="2482878487686419369">Хабарламалар</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> қойындылары жабылғанға дейін, <ph name="ORIGIN" /> сайты <ph name="FILENAME" /> қалтасындағы файлдарды өзгерте алады.</translation>
 <translation id="2484959914739448251">Барлық синхрондалған құрылғылардан және Google есептік жазбасынан браузерді пайдалану деректерін өшіру үшін, <ph name="BEGIN_LINK" />құпия фразаны енгізіңіз<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Құпия сөз осы құрылғыда сақталды</translation>
 <translation id="2485422356828889247">Жою</translation>
@@ -1296,6 +1304,7 @@
 <translation id="274290345632688601">Linux қолданбалары мен файлдарын қалпына келтіру</translation>
 <translation id="2743387203779672305">Буферге көшіру</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> кідіртілді</translation>
 <translation id="2749756011735116528"><ph name="PRODUCT_NAME" /> өніміне кіру</translation>
 <translation id="2749881179542288782">Емлемен грамматиканы тексеру</translation>
 <translation id="2751739896257479635">EAP 2-фаза аутентификациясы</translation>
@@ -1304,6 +1313,7 @@
 <translation id="275662540872599901">экран өшірулі</translation>
 <translation id="2762441749940182211">Камераға тыйым салынған</translation>
 <translation id="2765217105034171413">Кіші</translation>
+<translation id="2766161002040448006">Ата-анадан сұрау</translation>
 <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" /> ретінде кірген.</translation>
 <translation id="2770465223704140727">Тізімнен алып тастау</translation>
 <translation id="2770690685823456775">Құпия сөздерді басқа қалтаға экспорттаңыз</translation>
@@ -1555,6 +1565,7 @@
 <translation id="3115580024857770654">Барлығын жию</translation>
 <translation id="3117362587799608430">Қондыру станциясы толықтай үйлесімді емес</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> Анықтама</translation>
+<translation id="3118654181216384296">Linux жүйесін бірнеше минуттан кейін қайта қосып көріңіз.</translation>
 <translation id="3120430004221004537">Берілген операция үшін келесі құрылғыда шифрлану жеткіліксіз: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">Бұл <ph name="IDS_SHORT_PRODUCT_NAME" /> құрылғысын қалпына келтіру</translation>
 <translation id="3122464029669770682">Орталық процессор</translation>
@@ -1564,6 +1575,7 @@
 <translation id="3127156390846601284">Бұл көрсетілген сайттар құрылғыңызда сақтаған деректердің барлығын жояды. Жалғастырғыңыз келе ме?</translation>
 <translation id="3127860049873093642">Құрылғыны зарядтау кезіндегі және оның жұмысындағы ақаулардың алдын алу үшін үйлесімді Dell немесе USB Type-C қуат адаптерін пайдаланыңыз.</translation>
 <translation id="3129173833825111527">Сол жақ шеті</translation>
+<translation id="3129215702932019810">Қолданбаны іске қосу кезінде қате шықты</translation>
 <translation id="3130528281680948470">Құрылғыңыз қалпына келтіріледі және барлық пайдаланушы есептік жазбалары мен жергілікті деректер жойылады. Бұл әрекетті кері қайтару мүмкін емес.</translation>
 <translation id="313205617302240621">Құпия сөзді ұмытып қалдыңыз ба?</translation>
 <translation id="3132996321662585180">Күнделікті жаңарту</translation>
@@ -1779,6 +1791,7 @@
 <translation id="3441653493275994384">Экран</translation>
 <translation id="3445925074670675829">USB-C құрылғысы</translation>
 <translation id="344630545793878684">Көптеген веб-сайттардағы деректеріңізді оқу</translation>
+<translation id="3448086340637592206">Google Chrome және Chrome OS қосымша шарттары</translation>
 <translation id="3448492834076427715">Есептік жазбаны жаңарту</translation>
 <translation id="3449839693241009168">Пәрмендерді <ph name="EXTENSION_NAME" /> кеңейтіміне жіберу үшін <ph name="SEARCH_KEY" /> басыңыз</translation>
 <translation id="3450157232394774192">Әрекетсіз күйдің пайызбен берілген ұзақтығы</translation>
@@ -2126,6 +2139,7 @@
 <translation id="3873423927483480833">PIN кодтарын көрсету</translation>
 <translation id="3873915545594852654">ARC++ ақауы орын алды.</translation>
 <translation id="3879748587602334249">Жүктеп алу менеджері</translation>
+<translation id="3881321138433527084">"Қауіпсіз шолу" функциясы өшірулі. Сайтты қауіпсіз пайдалану үшін оны іске қосыңыз.</translation>
 <translation id="3882165008614329320">Камерадан немесе файлдан алынған бейне</translation>
 <translation id="3886446263141354045">Бұл сайтқа кіру сұрауыңыз <ph name="NAME" /> деген контактіге жіберілді</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> қолданбасымен жазбалар жазу</translation>
@@ -2467,6 +2481,7 @@
 <translation id="4384652540891215547">Кеңейтімді белсендіру</translation>
 <translation id="438503109373656455">Saratoga</translation>
 <translation id="4387004326333427325">Аутентификация сертификаты қашықтағы негізде қабылданбады</translation>
+<translation id="4387890294700445764">Ұрланған құпия сөздер</translation>
 <translation id="4389091756366370506"><ph name="VALUE" />-пайдаланушы</translation>
 <translation id="4390000551125140321">{0,plural, =1{Инкогнито}other{# инкогнито терезесі ашық}}</translation>
 <translation id="439266289085815679">Bluetooth конфигурациясын <ph name="USER_EMAIL" /> басқарады.</translation>
@@ -2498,6 +2513,7 @@
 <translation id="4429030830601238961">Бұл деректер ұйымыңыздың қауіпсіздік саясаттарына қайшы келеді. Оларды қою мүмкін емес.</translation>
 <translation id="4430019312045809116">Дыбыс деңгейі</translation>
 <translation id="4430369329743628066">Бетбелгі қосылды</translation>
+<translation id="4432621511648257259">Құпия сөз қате</translation>
 <translation id="4434045419905280838">Қалқымалы терезе және бағыттау</translation>
 <translation id="443454694385851356">Бұрынғы (қауіпті)</translation>
 <translation id="443475966875174318">Үйлеспейтін қолданбаларды жаңарту немесе өшіру</translation>
@@ -2747,6 +2763,7 @@
 <translation id="4808667324955055115">Қалқымалы терезелерге тыйым салынған</translation>
 <translation id="480990236307250886">Негізгі бетті ашу</translation>
 <translation id="4811503964269049987">Таңдалған қойындыны жаңа топқа енгізу</translation>
+<translation id="4811818760963189951">Өшірулі, себебі тарихты синхрондау ажыратылған.</translation>
 <translation id="4813136279048157860">Суреттерім</translation>
 <translation id="4813512666221746211">Желі қатесі</translation>
 <translation id="4814378367953456825">Осы саусақ ізінің атауын енгізіңіз.</translation>
@@ -2776,6 +2793,7 @@
 <translation id="4850669014075537160">Айналдыру</translation>
 <translation id="4850886885716139402">Көрініс</translation>
 <translation id="4853020600495124913">&amp;Жаңа терезеде ашу</translation>
+<translation id="4854317507773910281">Мақұлдау үшін ата-атаның есептік жазбасын таңдаңыз</translation>
 <translation id="485480310608090163">Басқа параметрлер мен рұқсаттар</translation>
 <translation id="4856478137399998590">Мобильді деректеріңіз қызметі белсендірілді және пайдалануға дайын</translation>
 <translation id="4856855265648545577">Құрылғы планшет режимінде болғанда, Сөредегі "Launcher", "Артқа", "Шолу" түймелерін көрсетеді. Бұл функция ChromeVox (дауыстық пікір) немесе Switch Access қосулы болғанда жұмыс істейді.</translation>
@@ -2912,10 +2930,12 @@
 <translation id="5040823038948176460">Қосымша мазмұн параметрлері</translation>
 <translation id="5042282098504489593"><ph name="USB_DEVICE_NAME" /> құрылғысын Linux жүйесіне жалғау үшін "Параметрлер" бөлімін ашыңыз.</translation>
 <translation id="5043913660911154449">Немесе принтер үшін PPD файлын көрсетіңіз <ph name="LINK_BEGIN" />Толығырақ<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Өшірулі, себебі синхрондалатын деректерді құпия фразамен шифрладыңыз.</translation>
 <translation id="5045550434625856497">Құпия сөз дұрыс емес</translation>
 <translation id="504561833207953641">Бұрыннан бар браузер сеансында ашылуда.</translation>
 <translation id="5047421709274785093">Сайттардың қозғалыс және жарық датчиктерін пайдалануына тыйым салу</translation>
 <translation id="5050042263972837708">Топ атауы</translation>
+<translation id="5051073330196664891">Google-дың әмбебап Қызмет көрсету шарттары (uToS)</translation>
 <translation id="5051836348807686060">Таңдалған тілдер үшін емлені тексеру функциясы қолданылмайды.</translation>
 <translation id="5052499409147950210">Сайтты өзгерту</translation>
 <translation id="5053604404986157245">Кездейсоқ жасалған TPM құпия сөзі қолжетімді емес. Бұл — Powerwash процесінен кейінгі қалыпты жағдай.</translation>
@@ -2953,6 +2973,7 @@
 <translation id="5097002363526479830">Желіге қосылу сәтсіз аяқталды: «<ph name="NAME" />»: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Барлық бетбелгілерді ашу</translation>
 <translation id="5101839224773798795">Курсор тоқтағанда автоматты түрде басу</translation>
+<translation id="5107443654503185812">Кеңейтім "Қауіпсіз шолу" функциясын өшірді.</translation>
 <translation id="5108967062857032718">Параметрлер – Android қолданбаларын өшіру</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">Инкогнито режимінен шығу</translation>
@@ -3039,6 +3060,7 @@
 <translation id="523505283826916779">Арнайы мүмкіндіктер параметрлері</translation>
 <translation id="5235750401727657667">Жаңа қойынды ашылған кезде шығатын бетті ауыстыру</translation>
 <translation id="5238278114306905396">"<ph name="EXTENSION_NAME" />" қолданбасы автоматты түрде жойылды.</translation>
+<translation id="5239730228370806996">Бұл тасымалданған деректер ұйымыңыздың қауіпсіздік саясаттарына қайшы келеді. Сонда да жалғастырасыз ба?</translation>
 <translation id="5241128660650683457">Сіз кіретін веб-сайттардағы барлық деректеріңізді оқу</translation>
 <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" қосасыз ба?</translation>
 <translation id="5243522832766285132">Бірнеше минуттан кейін қайталап көріңіз</translation>
@@ -3326,6 +3348,7 @@
 <translation id="5618075537869101857">Киоск қолданбасын іске қосу мүмкін емес.</translation>
 <translation id="5618333180342767515">(бұл бірнеше минут алуы мүмкін)</translation>
 <translation id="56197088284879152">Қашықтағы құрылғымен байланыс жүктемесі тым көп: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">Ешқандай құпия сөз сақталмаған.</translation>
 <translation id="5620549857835247159">Құрылғы планшет режимінде болғанда, Сөредегі "Launcher", "Артқа", "Шолу" түймелерін көрсетеді.</translation>
 <translation id="5620568081365989559">Әзірлеуші құралдары <ph name="FOLDER_PATH" /> қалтасына толық кіру құқығын сұрайды. Құпия ақпаратты әшкерелемеңіз.</translation>
 <translation id="5620612546311710611">қолданыс статистикасы</translation>
@@ -3418,6 +3441,7 @@
 <translation id="5747785204778348146">Әзірлеуші – тұрақсыз</translation>
 <translation id="5747809636523347288">Қою және "<ph name="URL" />" бетіне өту</translation>
 <translation id="5750324801516359607">Алыс</translation>
+<translation id="5751887393582880060">Бұл жүктеп салу ұйымыңыздың қауіпсіздік саясаттарына қайшы келеді. Сонда да жалғастырасыз ба?</translation>
 <translation id="5756163054456765343">А&amp;нықтама орталығы</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> арқылы басып шығару үшін жіберген құжаттарыңызды <ph name="APP_NAME" /> оқи алады.</translation>
 <translation id="5763751966069581670">USB құрылғылары табылмады</translation>
@@ -3627,6 +3651,7 @@
 <translation id="6040852767465482106">Анонимді сәйкестік</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google орынды анықтау қызметі Wi‑Fi, мобильдік желілер және сенсорлар сияқты дереккөздерді пайдаланып, құрылғының орнын болжайды.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Құрылғыңыздағы негізгі геодерек параметрін өшіру арқылы орналасқан жердің анықталуын өшіруге болады. Сонымен қатар Wi‑Fi мен мобильдік желілердің және сенсорлардың орынды анықтау үшін қолданылуын геодерек параметрлерінен өшіре аласыз.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> қойындылары жабылғанға дейін, <ph name="ORIGIN" /> сайты <ph name="FOLDERNAME" /> қалтасындағы файлдарды көре алады.</translation>
 <translation id="6041155700700864984">Толық экран режимінен шығу</translation>
 <translation id="604124094241169006">Автоматты</translation>
 <translation id="6042308850641462728">Жаю</translation>
@@ -3688,6 +3713,7 @@
 <translation id="6104311680260824317">Құрылғыны доменге қосу мүмкін емес. Сервер көрсетілген Kerberos шифрлау түрлеріне қолдау көрсетпейді. Шифрлау параметрлерін "Қосымша опциялар" тармағынан қараңыз.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> бұл құрылғыны дәл қазір өшіріп, қайта қосуыңызды талап етеді.</translation>
 <translation id="6106186653986077033">Plugin VM үшін лицензия керек</translation>
+<translation id="6107047744202598802">Веб-сайттарға оларға кіргеніңізді есте сақтауға және сізді интернетте қадағалауға мүмкіндік береді.</translation>
 <translation id="6112294629795967147">Өлшемін өзгерту үшін түртіңіз</translation>
 <translation id="6112727384379533756">Билет қосу</translation>
 <translation id="6112931163620622315">Телефонды тексеріңіз</translation>
@@ -3766,6 +3792,7 @@
 <translation id="622537739776246443">Профиль жойылады</translation>
 <translation id="6225475702458870625">Деректер байланысы <ph name="PHONE_NAME" /> телефонынан қолжетімді</translation>
 <translation id="6226777517901268232">Жеке негізгі файл (міндетті емес)</translation>
+<translation id="6227280783235722609">кеңейтім</translation>
 <translation id="6228691855869374890">Бұл сайт MIDI құрылғыларының толық бақылауына ие.</translation>
 <translation id="6228720835160974792">Осы сурет үшін QR кодын жасау</translation>
 <translation id="6229890768313448549">Google Play қызмет көрсету шарттары жүктелмейді. Әрекетті қайталаңыз.</translation>
@@ -3817,6 +3844,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> әдетте жүктеп алынбайды және ол қауіпті болуы мүмкін.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Желіңіздегі жаңа принтер бар}other{Желіңізде жаңа принтерлер бар}}</translation>
 <translation id="6286708577777130801">Сақталған құпия сөздің мәліметтері</translation>
+<translation id="6291163159361301370">Linux жүйесін іске қосу үшін <ph name="ORGANIZATION_NAME" /> деректердің сақтық көшірмесін жасауды және Chromebook құрылғысын зауыттық параметрлерге қайтаруды талап етеді.</translation>
 <translation id="6291949900244949761">Сайт USB құрылғыларын пайдаланғысы келгенде, рұқсат сұралсын (ұсынылады)</translation>
 <translation id="6291953229176937411">&amp;Іздеу жүйесінде көрсету</translation>
 <translation id="6295158916970320988">Барлық сайттар</translation>
@@ -4013,6 +4041,7 @@
 <translation id="6561726789132298588">enter</translation>
 <translation id="656293578423618167">Файл жолы немесе атауы тым ұзын. Қысқа атаумен немесе басқа орынға сақтаңыз.</translation>
 <translation id="6563469144985748109">Менеджеріңіз әлі мақұлдаған жоқ</translation>
+<translation id="6565955132287672866">Құрылғыңыз дұрыс өшірілмеді. Linux (бета нұсқасы) жүйесін пайдалану үшін ол қайта қосылуы керек.</translation>
 <translation id="6567688344210276845">Бет әрекетіне арналған "<ph name="ICON" />" белгішесін жүктеу мүмкін емес.</translation>
 <translation id="6569934958368283244">Басқа адамдар</translation>
 <translation id="657402800789773160">&amp;Бұл бетті қайта жүктеу</translation>
@@ -4510,6 +4539,7 @@
 <translation id="7258225044283673131">Қолданба жауап бермейді. Оны жабу үшін "Қолмен жабу" опциясын таңдаңыз.</translation>
 <translation id="7258697411818564379">PIN кодыңыз енгізілді</translation>
 <translation id="7262004276116528033">Бұл кіру қызметі <ph name="SAML_DOMAIN" /> доменінде орналасқан</translation>
+<translation id="7266898409676782635"><ph name="DEVICE_TYPE" /> құрылғысына қатысты кеңестерді, ұсыныстарды және жаңалықтарды алыңыз және пікірлер қалдырыңыз. Кез келген уақытта жазылымнан бас тарта аласыз.</translation>
 <translation id="7268127947535186412">Бұл параметрді құрылғы иесі басқарады.</translation>
 <translation id="7270858098575133036">Сайт MIDI құрылғыларына кіру үшін жүйенің айрықша хабарларын пайдаланғысы келетіні сұралсын</translation>
 <translation id="7272674038937250585">Сипаттама жазылмады</translation>
@@ -4583,6 +4613,7 @@
 <translation id="7364796246159120393">Файл таңдау</translation>
 <translation id="7366415735885268578">Сайтты енгізу</translation>
 <translation id="7366909168761621528">Шолу деректері</translation>
+<translation id="7367714965999718019">QR кодының генераторы</translation>
 <translation id="736877393389250337"><ph name="URL" /> мекенжайы <ph name="ALTERNATIVE_BROWSER_NAME" /> браузерінде ашылмады. Жүйе әкімшісіне хабарласыңыз.</translation>
 <translation id="7370592524170198497">Ethernet EAP:</translation>
 <translation id="7371006317849674875">Басталу уақыты</translation>
@@ -4840,8 +4871,10 @@
 <translation id="7737238973539693982">Linux (Бета) жүйесін жою</translation>
 <translation id="7740996059027112821">Стандартты</translation>
 <translation id="7744047395460924128">Басып шығару тарихыңызды көру</translation>
+<translation id="7744192722284567281">Деректер қолды болғанда табылды</translation>
 <translation id="7746457520633464754">Қауіпті қолданбалар мен сайттарды анықтау үшін Chrome браузері сіз кірген кейбір беттердің URL сілтемелерін, жүйе туралы шектеулі ақпаратты және беттің кейбір мазмұнын Google-ға жібереді.</translation>
 <translation id="7750228210027921155">Суреттегі сурет</translation>
+<translation id="7751229152614300329">"Қауіпсіз шолу" функциясы жаңартылды. Сізді ол зиянды сайттар мен жүктеп алынатын файлдардан қорғайды.</translation>
 <translation id="7751260505918304024">Барлығын көрсету</translation>
 <translation id="7754704193130578113">Жүктеу алдында әр файлды сақтау орнын сұрау</translation>
 <translation id="7755287808199759310">Ата-анаңыз оны сіз үшін бөгеуден шығара алады</translation>
@@ -4989,6 +5022,7 @@
 <translation id="7910768399700579500">&amp;Жаңа қалта</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Сервердегі құпия сөзіңіз өзгертілді. Жүйеден шығып, қайта кіріңіз.</translation>
+<translation id="7914583336730284547">Бұл тасымалданған файлдар ұйымыңыздың қауіпсіздік саясаттарына қайшы келеді. Сонда да жалғастырасыз ба?</translation>
 <translation id="7915457674565721553">Ата-ана бақылауын реттеу үшін интернетке қосылыңыз.</translation>
 <translation id="7915471803647590281">Пікірді жібермес бұрын, мәселені сипаттап беріңіз.</translation>
 <translation id="7918257978052780342">Тіркеу</translation>
@@ -5085,6 +5119,7 @@
 <translation id="8028803902702117856"><ph name="FILE_NAME" /> (<ph name="SIZE" />) жүктеп алынуда</translation>
 <translation id="8028993641010258682">Көлемі</translation>
 <translation id="8030656706657716245">Принтер қосу</translation>
+<translation id="8030852056903932865">Растау</translation>
 <translation id="8032244173881942855">Қойындыны трансляциялау мүмкін емес.</translation>
 <translation id="8033827949643255796">таңдалды</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Барлығын &amp;инкогнито терезесінде ашу}=1{Барлығын &amp;инкогнито терезесінде ашу}other{Барлығын (#) &amp;инкогнито терезесінде ашу}}</translation>
@@ -5405,6 +5440,7 @@
 <translation id="8472623782143987204">жабдық қажет</translation>
 <translation id="8473863474539038330">Мекенжайлар және басқа ақпарат</translation>
 <translation id="8475313423285172237">Компьютеріңіздегі басқа бір бағдарлама кеңейтім қосты, ол Chrome жұмысын өзгертуі мүмкін.</translation>
+<translation id="8476659515398963495">Бұл қойылған деректер ұйымыңыздың қауіпсіздік саясаттарына қайшы келеді. Сонда да жалғастырасыз ба?</translation>
 <translation id="8477241577829954800">Алмастырылған</translation>
 <translation id="8477384620836102176">&amp;Жалпы</translation>
 <translation id="8480082892550707549">Файлдарды бұрын осы сайттан жүктеп алған болсаңыз да, сайт уақытша қауіпті (бұзылған) болуы мүмкін. Файлды кейінірек жүктеп көріңіз.</translation>
@@ -5458,6 +5494,7 @@
 <translation id="8547013269961688403">Толық экран ұлғайтқышын қосу</translation>
 <translation id="85486688517848470">Жоғарғы қатардағы пернелердің әрекетін ауыстыру үшін "Іздеу" пернесін басып тұрыңыз</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 элемент}other{# элемент}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> қойындылары жабылғанға дейін, <ph name="ORIGIN" /> сайты <ph name="FOLDERNAME" /> қалтасындағы файлдарды өзгерте алады.</translation>
 <translation id="8551388862522347954">Лицензиялар</translation>
 <translation id="8553342806078037065">Басқа пайдаланушыларды басқару</translation>
 <translation id="8554899698005018844">Тілі көрсетілмеген</translation>
@@ -5516,6 +5553,7 @@
 <translation id="8637688295594795546">Жүйе жаңартулары қолжетімді. Жүктеуге дайындалуда…</translation>
 <translation id="8639047128869322042">Зиянды бағдарламалар ізделуде...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – ұяшық</translation>
+<translation id="8641606876632989680">Ұрланған құпия сөзбен кірген кезде, Chrome сізге хабарлайды.</translation>
 <translation id="8642900771896232685">2 секунд</translation>
 <translation id="8642947597466641025">Мәтінді үлкейту</translation>
 <translation id="8644655801811752511">Қауіпсіздік кілтін бастапқы күйіне қайтару мүмкін емес. Кілтті енгізгеннен кейін, дереу бастапқы қалпына қайтарып көріңіз.</translation>
@@ -5565,6 +5603,7 @@
 <translation id="869884720829132584">Қолданбалар мәзірі</translation>
 <translation id="869891660844655955">Аяқталу мерзімі</translation>
 <translation id="8703346390800944767">Жарнаманы өткізіп жіберу</translation>
+<translation id="870341961648617780">Қауіпсіз шолу және қосымша қауіпсіздік параметрлері</translation>
 <translation id="8705331520020532516">Сериялық нөмір</translation>
 <translation id="8705580154597116082">Wi-Fi желісі телефоннан қолжетімді</translation>
 <translation id="8705629851992224300">Қауіпсіздік кілті оқылмады.</translation>
@@ -5610,6 +5649,7 @@
 <translation id="874689135111202667">{0,plural, =1{Осы сайтқа бір файл жүктеп салынсын ба?}other{Осы сайтқа # файл жүктеп салынсын ба?}}</translation>
 <translation id="8748384418490037181">Smart Lock опциялары</translation>
 <translation id="8749863574775030885">Белгісіз жеткізуші атынан USB құрылғыларына кіру</translation>
+<translation id="8750133148106010815">Google Play қолданбасын іске қосу үшін <ph name="ORGANIZATION_NAME" /> деректердің сақтық көшірмесін жасауды және Chromebook құрылғысын зауыттық параметрлерге қайтаруды талап етеді.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> сериялық портқа қосылғысы келеді</translation>
 <translation id="8754200782896249056">&lt;p&gt;Қолдау көрсетілген жұмыс үстелі ортасына негізделген <ph name="PRODUCT_NAME" /> іске қосу кезінде, жүйенің прокси параметрлері пайдаланылады. Бірақ жүйеңізге қолдау көрсетілмеген немесе жүйелік конфигурацияңызды іске қосу кезінде ақау орын алды.&lt;/p&gt;
 
@@ -5664,6 +5704,7 @@
 <translation id="8809147117840417135">Ашық көкшіл жасыл</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> есептік жазбасына кіру мүмкін емес</translation>
 <translation id="8813811964357448561">қағаз парақ</translation>
+<translation id="8813872945700551674">"<ph name="EXTENSION_NAME" />" кеңейтімін мақұлдау үшін ата-анаңыздан рұқсат алыңыз.</translation>
 <translation id="8813969267212093033">Жүйе мәтіні осы тілде көрсетіледі.</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Күте тұрыңыз, мұрағат сканерленуде...</translation>
@@ -5944,6 +5985,7 @@
 <translation id="9203398526606335860">&amp;Профильдеу қосылған</translation>
 <translation id="9203904171912129171">Құрылғыны таңдау</translation>
 <translation id="9203962528777363226">Бұл құрылғының әкімшісі жаңа пайдаланушыларды қосу мүмкіндігін өшірді</translation>
+<translation id="9211177926627870898">Жаңарту қажет</translation>
 <translation id="9214520840402538427">Орнату уақыты атрибуттарын жұмысқа дайындау мерзімі бітті. Қолдау көрсету өкіліне хабарласыңыз.</translation>
 <translation id="9214695392875603905">Маффин</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" қосылды</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 4ab01d5..f8ff370 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">សម្អាត​ទិន្នន័យ​ពីកម្មវិធី​ទាំងនេះ​ផងដែរ​ឬ?</translation>
 <translation id="1045692658517323508">{0,plural, =1{ដំឡើងកំណែ​ក្នុងរយៈពេល 1 នាទីទៀត}other{ដំឡើងកំណែ​ក្នុងរយៈពេល # នាទីទៀត}}</translation>
 <translation id="1046635659603195359">អ្នកហាក់បី​ដូចជា​បានរៀបចំ​មុខងារ Voice Match ជាមួយ Google ជំនួយការ​របស់អ្នក​នៅលើ​ឧបករណ៍​ផ្សេងទៀត​រួចហើយ។ ការថត​សំឡេង​ពីមុនៗ​ទាំងនេះ​អាចត្រូវបានប្រើ ដើម្បី​បង្កើតគំរូ​សំឡេង​នៅលើ​ឧបករណ៍​នេះ។ សកម្មភាពនេះគួរ​តែ​ចំណាយពេលមិន​លើស​ពី​មួយ​នាទីទេ។</translation>
+<translation id="104710386808485638">ចាប់ផ្ដើម Linux ឡើងវិញឬ?</translation>
 <translation id="1047431265488717055">ចម្លងអត្ថបទតំណ</translation>
 <translation id="1048286738600630630">ការបង្ហាញ</translation>
 <translation id="1049743911850919806">អនាមិក</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">សូមចូលទៅ <ph name="TOKEN_NAME" /> ដើម្បីនាំចេញវិញ្ញាបនប័ត្រអតិថិជន។</translation>
 <translation id="1163931534039071049">មើលប្រភពហ្វ្រេម</translation>
 <translation id="1164674268730883318">បិទ Smart Lock សម្រាប់ <ph name="DEVICE_TYPE" /> ដែរទេ?</translation>
+<translation id="1164891049599601209">បានបញ្ចូលនៅលើគេហទំព័របោកប្រាស់</translation>
 <translation id="1164899421101904659">បញ្ចូលកូដ PIN ដោះសោ</translation>
 <translation id="1165039591588034296">កំហុសឆ្គង</translation>
 <translation id="1166212789817575481">បិទផ្ទាំងទៅខាងស្តាំ</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">របៀបបញ្ជរស្វ័យប្រវត្តិ</translation>
 <translation id="1545775234664667895">បានដំឡើង​រចនាប័ទ្ម "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">កម្មវិធីបន្ថែមនេះបានប្តូរអ្វីដែលទំព័របានបង្ហាញនៅពេលអ្នកចុចប៊ូតុង ទំព័រដើម។</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> ចង់ដំឡើង <ph name="EXTENSION_TYPE" /> ដែលអាច៖</translation>
 <translation id="1549275686094429035">បានបើក ARC</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> ចង់ចូលប្រើ <ph name="VOLUME_NAME" />។ វាអាចនឹងកែសម្រួល ឬលុបឯកសាររបស់អ្នក។</translation>
 <translation id="1553538517812678578">គ្មានដែនកំណត់</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">Plugin VM</translation>
 <translation id="1679810534535368772">តើអ្នក​ពិតជាចង់ចាក​ចេញមែនឬ?</translation>
 <translation id="167983332380191032">សេវាកម្មគ្រប់គ្រង​បានផ្ញើ​បញ្ហា HTTP ។</translation>
+<translation id="1680841347983561661">សូម​ព្យាយាមចាប់ផ្ដើម Google Play ម្ដងទៀតក្នុងពេលបន្ដិចទៀត។</translation>
 <translation id="1680849702532889074">មាន​បញ្ហាកើតឡើង អំឡុង​ពេល​ដំឡើង​កម្មវិធី Linux របស់អ្នក។</translation>
 <translation id="16815041330799488">កុំអនុញ្ញាត​​ឱ្យទំព័រមើល​អត្ថបទ និងរូបភាព​ដែលបាន​ចម្លង​ទៅ​អង្គចងចាំ</translation>
 <translation id="1682548588986054654">ផ្ទាំងអនាមិកថ្មី</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> បានគាំង។ ចុចប៊ូឡុងនេះដើម្បីដំណើរការកម្មវិធីបន្ថែមឡើងវិញ។</translation>
 <translation id="2025891858974379949">ខ្លឹមសារ​ដែលគ្មាន​សុវត្ថិភាព</translation>
 <translation id="202918510990975568">បញ្ចូល​ពាក្យសម្ងាត់​របស់អ្នក ដើម្បី​កំណត់​រចនាសម្ព័ន្ធ​សុវត្ថិភាព និងការចូលគណនី</translation>
+<translation id="2030672406208960151">បើក​ស្ថានីយ​ស្ដារ</translation>
 <translation id="2034346955588403444">បន្ថែមបណ្តាញ WiFi ផ្សេងទៀត</translation>
 <translation id="203574396658008164">បើកការកត់ត្រាពីអេក្រង់ចាក់សោ</translation>
 <translation id="2037445849770872822">ការគ្រប់គ្រង​ត្រូវបាន​រៀបចំ​សម្រាប់​គណនី Google នេះ។ ដើម្បី​រៀបចំការគ្រប់គ្រងដោយមាតាបិតា​បន្ថែម​ទៀត សូម​ជ្រើសរើស "បន្ត"។
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">កូដ PIN ឬពាក្យសម្ងាត់</translation>
 <translation id="2224444042887712269">ការកំណត់នេះជាកម្មសិទ្ធិ <ph name="OWNER_EMAIL" />។</translation>
 <translation id="2224551243087462610">កែប្រែឈ្មោះថតឯកសារ</translation>
+<translation id="2225864335125757863">ប្ដូរពាក្យសម្ងាត់​ទាំងនេះភ្លាមៗ ដើម្បីរក្សាសុវត្ថិភាពគណនីរបស់អ្នក៖</translation>
 <translation id="2226449515541314767">គេហទំព័រនេះត្រូវបានរារាំងពីការគ្រប់គ្រងលើឧបករណ៍ MIDI ទាំងស្រុង។</translation>
 <translation id="222704500187107962">ការលើកលែងនេះ​នឹងត្រូវលុបដោយស្វ័យប្រវត្តិ បន្ទាប់ពីអ្នកចាកចេញពីវគ្គឯកជនបច្ចុប្បន្ន</translation>
 <translation id="2227179592712503583">លុប​ការណែនាំ</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">ចូលទំព័រ​ដើម</translation>
 <translation id="2387458720915042159">ប្រភេទ​នៃការ​តភ្ជាប់​ប្រូកស៊ី</translation>
 <translation id="2391419135980381625">ពុម្ពអក្សរបទដ្ឋាន</translation>
+<translation id="2392163307141705938">អ្នកបានឈានដល់រយៈពេលកំណត់​ ដែលមាតាបិតារបស់អ្នក​បានកំណត់សម្រាប់ <ph name="IDS_SHORT_PRODUCT_NAME" /> ហើយ។</translation>
 <translation id="2392369802118427583">ធ្វើសកម្មភាព</translation>
 <translation id="2394566832561516196">កំណត់នឹងត្រូវបានជម្រះនៅពេលដំណើរឡើងវិញពេលបន្ទាប់។</translation>
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> របស់អ្នកបានចុះឈ្មោះដោយជោគជ័យសម្រាប់ការគ្រប់គ្រងសហគ្រាស ក៏ប៉ុន្តែបានបរាជ័យក្នុងការផ្ញើព័ត៌មានអំពីទ្រព្យសកម្ម និងទីតាំងរបស់វា។ សូមបញ្ចូលព័ត៌មាននេះដោយផ្ទាល់ចេញពីកុងសូលគ្រប់គ្រងសម្រាប់ឧបករណ៍នេះ។</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">ចែករំលែកសម្លេង</translation>
 <translation id="2480868415629598489">កែ​តម្រូវ​ទិន្នន័យ​ដែល​អ្នក​ចម្លង និង​បិទភ្ជាប់</translation>
 <translation id="2482878487686419369">ការជូនដំណឹង</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> នឹងអាច​កែ <ph name="FILENAME" /> រហូតទាល់តែអ្នកបិទផ្ទាំង <ph name="ORIGIN" /> ទាំងអស់</translation>
 <translation id="2484959914739448251">ដើម្បីសម្អាត​ទិន្នន័យ​រុករក​ចេញពី​ឧបករណ៍​ដែលបាន​ធ្វើសមកាលកម្ម​ទាំងអស់​របស់អ្នក និងគណនី​ ​Google របស់អ្នក <ph name="BEGIN_LINK" />សូមបញ្ចូល​ឃ្លា​សម្ងាត់<ph name="END_LINK" />។</translation>
 <translation id="2485005079599453134">បាន​រក្សាទុក​ពាក្យសម្ងាត់​នៅលើ​ឧបករណ៍នេះ</translation>
 <translation id="2485422356828889247">លុបការតំឡើង</translation>
@@ -1299,6 +1307,7 @@
 <translation id="274290345632688601">កំពុងស្ដារ​កម្មវិធី និងឯកសារ Linux</translation>
 <translation id="2743387203779672305">ចម្លងទៅផ្ទាំងឃ្លីបបត</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> ត្រូវបានផ្អាក</translation>
 <translation id="2749756011735116528">ចូលទៅ <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">ពិនិត្យវេយ្យាករណ៍ជាមួយការប្រកប</translation>
 <translation id="2751739896257479635">ការផ្ទៀងផ្ទាត់ EAP ដំណាក់កាលទី 2</translation>
@@ -1307,6 +1316,7 @@
 <translation id="275662540872599901">បិទអេក្រង់</translation>
 <translation id="2762441749940182211">បាន​ទប់ស្កាត់​កាមេរ៉ា</translation>
 <translation id="2765217105034171413">តូច</translation>
+<translation id="2766161002040448006">ស្នើសុំមាតាបិតា</translation>
 <translation id="276969039800130567">បានចូលជា <ph name="USER_EMAIL_ADDRESS" />។</translation>
 <translation id="2770465223704140727">ដកចេញពីបញ្ជី</translation>
 <translation id="2770690685823456775">នាំចេញ​ពាក្យ​សម្ងាត់​របស់​អ្នក​ទៅ​ថត​ផ្សេង</translation>
@@ -1558,6 +1568,7 @@
 <translation id="3115580024857770654">បង្រួម​ទាំងអស់</translation>
 <translation id="3117362587799608430">ឧបករណ៍ភ្ជាប់​មិនត្រូវគ្នាទាំងស្រុងទេ</translation>
 <translation id="3118319026408854581">ជំនួយ <ph name="PRODUCT_NAME" /></translation>
+<translation id="3118654181216384296">សូមព្យាយាមចាប់ផ្ដើម Linux ម្ដងទៀតក្នុងរយៈពេលបន្តិចទៀត។</translation>
 <translation id="3120430004221004537">ការអ៊ិនគ្រីបមិនគ្រប់គ្រាន់សម្រាប់ប្រតិបត្តិការដែលបានកំណត់លើ៖ "<ph name="DEVICE_NAME" />"</translation>
 <translation id="3121793941267913344">កំណត់ឧបករណ៍ <ph name="IDS_SHORT_PRODUCT_NAME" /> ឡើងវិញ</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1567,6 +1578,7 @@
 <translation id="3127156390846601284">វានឹងលុបទិន្នន័យទាំងឡាយដែលបានផ្ទុកនៅលើឧបករណ៍របស់អ្នកសម្រាប់គេហទំព័រទាំងអស់ដែលបានបង្ហាញ។ តើអ្នកចង់បន្តដែរទេ?</translation>
 <translation id="3127860049873093642">ដើម្បី​ជៀសវាង​បញ្ហា​ផ្នែកប្រតិបត្តិការ និងការសាកថ្ម សូមប្រើឆ្នាំងសាក Dell ឬ USB ប្រភេទ C ដែលត្រូវគ្នា។</translation>
 <translation id="3129173833825111527">ចន្លោះគែមខាងឆ្វេង</translation>
+<translation id="3129215702932019810">មានបញ្ហា​ក្នុងការចាប់ផ្ដើមកម្មវិធី</translation>
 <translation id="3130528281680948470">ឧបករណ៍របស់អ្នកនឹងត្រូវបានកំណត់ឡើងវិញ ហើយគណនីអ្នកប្រើ និងទិន្នន័យមូលដ្ឋានទាំងអស់នឹងត្រូវបានយកចេញ។ វាមិនអាចបកក្រោយបានវិញទេ។</translation>
 <translation id="313205617302240621">អ្នកបានភ្លេចពាក្យសម្ងាត់មែនឬទេ?</translation>
 <translation id="3132996321662585180">ផ្ទុក​ឡើងវិញ​រាល់ថ្ងៃ</translation>
@@ -1782,6 +1794,7 @@
 <translation id="3441653493275994384">អេក្រង់</translation>
 <translation id="3445925074670675829">ឧបករណ៍ USB-C</translation>
 <translation id="344630545793878684">អានទិន្នន័យរបស់អ្នកនៅលើគេហទំព័រមួយចំនួន</translation>
+<translation id="3448086340637592206">លក្ខខណ្ឌបន្ថែម​របស់ Google Chrome និង Chrome OS</translation>
 <translation id="3448492834076427715">ធ្វើបច្ចុប្បន្នភាព​គណនី</translation>
 <translation id="3449839693241009168">ចុច <ph name="SEARCH_KEY" /> ដើម្បីផ្ញើការបញ្ជាទៅ <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">អត្រាប្រើប្រាស់ស្ថានភាពទុកចោល</translation>
@@ -2129,6 +2142,7 @@
 <translation id="3873423927483480833">បង្ហាញកូដ PIN</translation>
 <translation id="3873915545594852654">ARC++ មាន​បញ្ហា។</translation>
 <translation id="3879748587602334249">កម្មវិធីគ្រប់គ្រងការ​ទាញ​យក</translation>
+<translation id="3881321138433527084">ការរុករក​ដោយសុវត្ថិភាព​ត្រូវបានបិទ។ ដើម្បីរក្សាសុវត្ថិភាពនៅលើអ៊ីនធឺណិត សូមបើកមុខងារនេះ។</translation>
 <translation id="3882165008614329320">វីដេអូដែល​មានស្រាប់​ពីកាមេរ៉ា ឬឯកសារ</translation>
 <translation id="3886446263141354045">សំណើរបស់អ្នកដើម្បីចូលទៅកាន់ទំព័រនេះត្រូវបានផ្ញើទៅ <ph name="NAME" /></translation>
 <translation id="3888550877729210209">កត់ត្រាចំណាំដោយប្រើ <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2470,6 +2484,7 @@
 <translation id="4384652540891215547">ធ្វើសកម្មភាពកម្មវិធីបន្ថែម</translation>
 <translation id="438503109373656455">សារ៉ាតូកា</translation>
 <translation id="4387004326333427325">វិញ្ញាបនប័ត្រសម្គាល់អត្តសញ្ញាណបានបដិសេធពីចម្ងាយ</translation>
+<translation id="4387890294700445764">ពាក្យសម្ងាត់ដែល​រងការលុកលុយ</translation>
 <translation id="4389091756366370506">អ្នកប្រើ <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{ឯកជន}other{# បើក​ផ្ទាំងឯកជន}}</translation>
 <translation id="439266289085815679">ការ​កំណត់​រចនាសម្ព័ន្ធ​ប៊្លូធូសត្រូវបាន​គ្រប់គ្រង​ដោយ <ph name="USER_EMAIL" /> ។</translation>
@@ -2501,6 +2516,7 @@
 <translation id="4429030830601238961">ទិន្នន័យនេះ​បំពាន​គោលការណ៍សុវត្ថិភាព​ស្ថាប័ន​របស់អ្នក និងមិនអាចដាក់ចូលបានទេ។</translation>
 <translation id="4430019312045809116">សម្លេង</translation>
 <translation id="4430369329743628066">បានបន្ថែមចំណាំ</translation>
+<translation id="4432621511648257259">ពាក្យ​សម្ងាត់​មិន​ត្រឹមត្រូវ</translation>
 <translation id="4434045419905280838">ផ្ទាំងផុស​ និង​ការ​បញ្ជូន​បន្ត</translation>
 <translation id="443454694385851356">​ចាស់ (គ្មាន​សុវត្ថិភាព)</translation>
 <translation id="443475966875174318">ដំឡើង​ជំនាន់ ឬលុប​កម្មវិធី​ដែល​មិន​ត្រូវគ្នា​ចេញ​</translation>
@@ -2750,6 +2766,7 @@
 <translation id="4808667324955055115">បានទប់ស្កាត់​ផ្ទាំងផុស៖</translation>
 <translation id="480990236307250886">បើកទំព័រដើម</translation>
 <translation id="4811503964269049987">បញ្ចូលផ្ទាំង​ដែលបានជ្រើសរើស​ទៅក្នុងក្រុម</translation>
+<translation id="4811818760963189951">បានបិទ​ ដោយសារអ្នកបានបិទ​សមកាលកម្ម​ប្រវត្តិ</translation>
 <translation id="4813136279048157860">រូបភាព​របស់ខ្ញុំ</translation>
 <translation id="4813512666221746211">កំហុសឆ្គងបណ្តាញ</translation>
 <translation id="4814378367953456825">បញ្ចូល​ឈ្មោះ​សម្រាប់​ស្នាមម្រាមដៃនេះ</translation>
@@ -2779,6 +2796,7 @@
 <translation id="4850669014075537160">ការេមូរ</translation>
 <translation id="4850886885716139402">មើល</translation>
 <translation id="4853020600495124913">បើកនៅក្នុងផ្ទាំងថ្មី</translation>
+<translation id="4854317507773910281">ជ្រើសរើស​គណនីមាតាបិតា​សម្រាប់ការយល់ព្រម</translation>
 <translation id="485480310608090163">ការកំណត់ និងការអនុញ្ញាតច្រើនទៀត</translation>
 <translation id="4856478137399998590">សេវាកម្មទិន្នន័យទូរស័ព្ទរបស់អ្នកត្រូវបានធ្វើសកម្មភាព និងរួចរាល់ក្នុងការប្រើ</translation>
 <translation id="4856855265648545577">បង្ហាញ​ប៊ូតុង​កម្មវិធី​ចាប់ផ្ដើម ថយក្រោយ ទិដ្ឋភាពរួម​នៅក្នុង​ធ្នើរក្នុង​មុខងារ​ថេប្លេត។ បើក នៅពេល​បើក ChromeVox (ការអាន​អេក្រង់) ឬ​មុខងារ​ប្រើប៊ូតុងចុច។</translation>
@@ -2915,10 +2933,12 @@
 <translation id="5040823038948176460">ការកំណត់​ខ្លឹមសារ​បន្ថែម</translation>
 <translation id="5042282098504489593">បើក​ការកំណត់ ដើម្បី​ភ្ជាប់ <ph name="USB_DEVICE_NAME" /> ទៅ Linux</translation>
 <translation id="5043913660911154449">ឬបញ្ជាក់ PPD ម៉ាស៊ីន​បោះពុម្ព​របស់អ្នក <ph name="LINK_BEGIN" />ស្វែងយល់បន្ថែម<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">បានបិទ ដោយសារអ្នកបានអ៊ីនគ្រីប​ទិន្នន័យសមកាលកម្មរបស់អ្នកដោយប្រើឃ្លា​សម្ងាត់</translation>
 <translation id="5045550434625856497">ពាក្យសម្ងាត់មិនត្រឹមត្រូវ</translation>
 <translation id="504561833207953641">កំពុង​បើក​នៅក្នុង​រយៈពេលចូលប្រើកម្មវិធីរុករកដែលមានស្រាប់។</translation>
 <translation id="5047421709274785093">ទប់ស្កាត់​ទំព័រ​មិនឱ្យប្រើ​ឧបករណ៍​ចាប់សញ្ញាពន្លឺ​ និងចលនា</translation>
 <translation id="5050042263972837708">ឈ្មោះ​ក្រុម</translation>
+<translation id="5051073330196664891">លក្ខខណ្ឌប្រើប្រាស់សកលរបស់ Google (uToS)</translation>
 <translation id="5051836348807686060">មិនស្គាល់​ការពិនិត្យ​អក្ខរាវិរុទ្ធសម្រាប់​ភាសា​ដែលអ្នក​បានជ្រើសរើស​ទេ</translation>
 <translation id="5052499409147950210">កែ​សម្រួល​ទំព័រ</translation>
 <translation id="5053604404986157245">ពាក្យសម្ងាត់ TPM ដែលបានបង្កើតដោយចៃដន្យមិនមានទេ។ វាជារឿងធម្មតាបន្ទាប់ពី Powerwash។</translation>
@@ -2956,6 +2976,7 @@
 <translation id="5097002363526479830">បានបរាជ័យក្នុងការភ្ជាប់ទៅបណ្តាញ៖ '<ph name="NAME" />': <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">បើក​ចំណាំ​ទាំងអស់</translation>
 <translation id="5101839224773798795">ចុច​ដោយស្វ័យប្រវត្តិ នៅពេលសញ្ញាព្រួញឈប់</translation>
+<translation id="5107443654503185812">កម្មវិធីបន្ថែមមួយបានបិទការរុករកដោយសុវត្ថិភាព</translation>
 <translation id="5108967062857032718">ការកំណត់៖ យកកម្មវិធី Android ចេញ</translation>
 <translation id="5109044022078737958">ម៉ៃ</translation>
 <translation id="5111646998522066203">ចាកចេញពី​ផ្ទាំងឯកជន</translation>
@@ -3042,6 +3063,7 @@
 <translation id="523505283826916779">ការកំណត់លទ្ធភាពប្រើប្រាស់</translation>
 <translation id="5235750401727657667">ជំនួសទំព័រ​ដែលអ្នកឃើញ នៅពេលបើកផ្ទាំងថ្មី</translation>
 <translation id="5238278114306905396">កម្មវិធី "<ph name="EXTENSION_NAME" />" ត្រូវបានដកចេញដោយស្វ័យប្រវត្តិ។</translation>
+<translation id="5239730228370806996">ទិន្នន័យដែលបានទម្លាក់នេះ​បំពានគោលការណ៍​សុវត្ថិភាពរបស់ស្ថាប័នអ្នក។ តើអ្នកចង់បន្តទោះបីជាមានការបំពានដែរទេ?</translation>
 <translation id="5241128660650683457">អានទិន្នន័យរបស់អ្នកទាំងអស់នៅលើគេហទំព័រដែលអ្នកបានទៅកាន់។</translation>
 <translation id="5242724311594467048">បើកដំណើរការ "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="5243522832766285132">សូម​ព្យាយាម​ម្ដង​ទៀត​នៅ​ពេល​បន្តិច​ទៀត</translation>
@@ -3329,6 +3351,7 @@
 <translation id="5618075537869101857">យ៉ាប់ណាស់ កម្មវិធីបញ្ជរមិនអាចត្រូវបានបើកដំណើរការបានទេ។</translation>
 <translation id="5618333180342767515">(វាអាចចំណាយពេលប៉ុន្មាននាទី)</translation>
 <translation id="56197088284879152">ការតភ្ជាប់មានភាពកកស្ទះចំពោះឧបករណ៍ពីចម្ងាយ "<ph name="DEVICE_NAME" />"</translation>
+<translation id="5620163320393916465">គ្មានពាក្យសម្ងាត់ដែលបានរក្សាទុកទេ</translation>
 <translation id="5620549857835247159">បង្ហាញ​ប៊ូតុង​កម្មវិធី​ចាប់ផ្ដើម ថយក្រោយ ទិដ្ឋភាពរួម​នៅក្នុង​ធ្នើរក្នុង​មុខងារ​ថេប្លេត។</translation>
 <translation id="5620568081365989559">ឧបករណ៍អ្នកអភិវឌ្ឍន៍ស្នើការចូលប្រើពេញលេញទៅ <ph name="FOLDER_PATH" />។
 ត្រូវប្រាកដអ្នកមិនបង្ហាញព័ត៌មានរសើបទេ។</translation>
@@ -3422,6 +3445,7 @@
 <translation id="5747785204778348146">អ្នកអភិវឌ្ឍន៍ - មិនថេរ</translation>
 <translation id="5747809636523347288">ដាក់ចូល ហើយចូលទៅកាន់ <ph name="URL" /></translation>
 <translation id="5750324801516359607">ឆ្ងាយ</translation>
+<translation id="5751887393582880060">ការបង្ហោះនេះ​បំពានគោលការណ៍​សុវត្ថិភាពរបស់ស្ថាប័នអ្នក។ តើអ្នកចង់បន្តទោះបីជាមានការបំពានដែរទេ?</translation>
 <translation id="5756163054456765343">មជ្ឈមណ្ឌលជំនួយ</translation>
 <translation id="5759728514498647443">ឯកសារដែលអ្នកផ្ញើដើម្បីបោះពុម្ពតាមរយៈ <ph name="APP_NAME" /> អាចត្រូវបានអានដោយ <ph name="APP_NAME" />។</translation>
 <translation id="5763751966069581670">រកមិនឃើញឧបករណ៍ USB ទេ</translation>
@@ -3631,6 +3655,7 @@
 <translation id="6040852767465482106">អត្តសញ្ញាណអនាមិក</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />សេវាកម្ម​ទី​តាំង​របស់ Google ប្រើប្រាស់​ប្រភព​ដូចជា Wi-Fi, បណ្តាញ​ទូរសព្ទចល័ត និង​ឧបករណ៍​ចាប់​សញ្ញា ដើម្បី​ជួយ​ប៉ាន់ស្មាន​ទីតាំង​ឧបករណ៍​របស់អ្នក។<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />អ្នក​អាច​បិទ​ទីតាំង​ដោយ​បិទ​ការកំណត់​ទីតាំង​ចម្បង​នៅលើ​ឧបករណ៍​របស់អ្នក។ អ្នក​ក៏​អាចបិទ​ការ​ប្រើប្រាស់ Wi-Fi, បណ្តាញ​ទូរសព្ទ​ចល័ត និង​ឧបករណ៍​ចាប់​សញ្ញា​សម្រាប់​ទីតាំង​នៅក្នុង​ការកំណត់​ទីតាំង​បាន​ផង​ដែរ​។<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> នឹងអាចមើលឯកសារនៅក្នុង <ph name="FOLDERNAME" /> រហូតទាល់តែអ្នកបិទផ្ទាំង <ph name="ORIGIN" /> ទាំងអស់</translation>
 <translation id="6041155700700864984">ចាកចេញពីអេក្រង់ពេញ</translation>
 <translation id="604124094241169006">ស្វ័យប្រវត្តិ</translation>
 <translation id="6042308850641462728">ច្រើនទៀត</translation>
@@ -3692,6 +3717,7 @@
 <translation id="6104311680260824317">មិនអាច​ភ្ជាប់ឧបករណ៍​ទៅដែន​បានទេ។ ម៉ាសីុនមេ​មិនអាច​ប្រើប្រភេទ​អ៊ីនគ្រីប Kerberos ដែលបានបញ្ជាក់​ទេ។ សូម​ពិនិត្យមើល "ជម្រើស​ច្រើនទៀត" សម្រាប់​ការកំណត់​ការអ៊ីនគ្រីប។</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> តម្រូវឱ្យដំឡើងកំណែ​​ឧបករណ៍នេះភ្លាមៗ</translation>
 <translation id="6106186653986077033">Plugin VM តម្រូវឱ្យមាន​អាជ្ញាបណ្ណ</translation>
+<translation id="6107047744202598802">អនុញ្ញាតឱ្យគេហទំព័រ​ចងចាំការចូលមើល​របស់អ្នក និងតាមដានអ្នកនៅលើអ៊ីនធឺណិត</translation>
 <translation id="6112294629795967147">ប៉ះ​ដើម្បីប្ដូរ​ទំហំ</translation>
 <translation id="6112727384379533756">បញ្ចូលសំបុត្រ</translation>
 <translation id="6112931163620622315">ពិនិត្យមើល​ទូរសព្ទ​របស់អ្នក</translation>
@@ -3770,6 +3796,7 @@
 <translation id="622537739776246443">កម្រងព័ត៌មាននឹងត្រូវបានលុប</translation>
 <translation id="6225475702458870625">មាន​ការតភ្ជាប់​ទិន្នន័យ​ពី <ph name="PHONE_NAME" /> របស់​អ្នក</translation>
 <translation id="6226777517901268232">ឯកសារសោឯកជន (ស្រេចចិត្ត)</translation>
+<translation id="6227280783235722609">កម្មវិធីបន្ថែម​</translation>
 <translation id="6228691855869374890">គេហទំព័រនេះមានការគ្រប់គ្រងឧបករណ៍ MIDI ទាំងស្រុង។</translation>
 <translation id="6228720835160974792">បង្កើតកូដ QR សម្រាប់​រូបភាព​នេះ</translation>
 <translation id="6229890768313448549">លក្ខខណ្ឌប្រើប្រាស់ Google Play មិនអាចដំណើរការបានទេ។ សូមព្យាយាមម្តងទៀត។</translation>
@@ -3821,6 +3848,7 @@
 <translation id="6285120108426285413">ជាទូទៅ <ph name="FILE_NAME" /> មិនត្រូវបានទាញយកទេ ហើយវាអាចបង្កគ្រោះថ្នាក់។</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{ម៉ាស៊ីនបោះពុម្ពថ្មីនៅលើបណ្តាញរបស់អ្នក}other{ម៉ាស៊ីនបោះពុម្ពថ្មីនៅលើបណ្តាញរបស់អ្នក}}</translation>
 <translation id="6286708577777130801">ព័ត៌មានលម្អិតពាក្យសម្ងាត់ដែលបានរក្សាទុក</translation>
+<translation id="6291163159361301370">ដើម្បីចាប់ផ្ដើម Linux, <ph name="ORGANIZATION_NAME" /> តម្រូវឱ្យអ្នកបម្រុងទុក​ទិន្នន័យរបស់អ្នក និងកំណត់​ Chromebook នេះទៅការកំណត់​​ដូច​ចេញ​ពី​រោងចក្រឡើងវិញ។</translation>
 <translation id="6291949900244949761">សួរ​នៅពេល​ដែល​ទំព័រ​ចង់ចូលប្រើ​ឧបករណ៍ USB (បាន​ណែនាំ)</translation>
 <translation id="6291953229176937411">បង្ហាញនៅក្នុងប្រអប់ស្វែងរក</translation>
 <translation id="6295158916970320988">គេហទំព័រទាំងអស់</translation>
@@ -4017,6 +4045,7 @@
 <translation id="6561726789132298588">បញ្ចូល</translation>
 <translation id="656293578423618167">ផ្លូវ និងឈ្មោះឯកសារវែងពេក។  សូមរក្សាទុកជាមួយឈ្មោះខ្លីជាងនេះ ឬទៅទីតាំងដ៏ទៃទៀត។</translation>
 <translation id="6563469144985748109">អ្នកគ្រប់គ្រងរបស់អ្នកមិនទាន់យល់ព្រមនៅឡើយទេ</translation>
+<translation id="6565955132287672866">ឧបករណ៍​របស់អ្នកមិនបានបិទត្រឹមត្រូវទេ។ ដើម្បីប្រើ Linux (បេតា) អ្នកត្រូវតែចាប់ផ្ដើម​ឡើងវិញ។</translation>
 <translation id="6567688344210276845">មិនអាចដំណើរការរូបតំណាង '<ph name="ICON" />' សម្រាប់សកម្មភាពទំព័របានទេ។</translation>
 <translation id="6569934958368283244">មនុស្ស​ផ្សេងទៀត</translation>
 <translation id="657402800789773160">ដំណើរការទំព័រនេះឡើងវិញ</translation>
@@ -4514,6 +4543,7 @@
 <translation id="7258225044283673131">កម្មវិធី​មិនដំណើរ​ការទេ។ សូមជ្រើសរើស "បង្ខំឱ្យបិទ" ដើម្បីបិទ​កម្មវិធី។</translation>
 <translation id="7258697411818564379">កូដ PIN របស់អ្នក​ត្រូវបានបញ្ចូលហើយ</translation>
 <translation id="7262004276116528033">សេវាកម្មចូលនេះត្រូវបានបង្ហោះដោយ <ph name="SAML_DOMAIN" /></translation>
+<translation id="7266898409676782635">ទទួល​បានគន្លឹះ​ ការផ្ដល់ជូន និងកំណែថ្មីៗសម្រាប់ <ph name="DEVICE_TYPE" /> និងចែករំលែកមតិកែលម្អ។ ឈប់ជាវ​បាន​គ្រប់ពេល។</translation>
 <translation id="7268127947535186412">ការកំណត់នេះត្រូវបានគ្រប់គ្រងដោយម្ចាស់ឧបករណ៍។</translation>
 <translation id="7270858098575133036">សួរ​នៅពេល​ដែល​ទំព័រ​ចង់ប្រើ​សារ​ផ្តាច់មុខ​សម្រាប់ប្រព័ន្ធ ដើម្បី​ចូលប្រើ​ឧបករណ៍ MIDI</translation>
 <translation id="7272674038937250585">មិន​បាន​ផ្តល់​ការពណ៌នា​ទេ</translation>
@@ -4587,6 +4617,7 @@
 <translation id="7364796246159120393">ជ្រើសរើសឯកសារ</translation>
 <translation id="7366415735885268578">បញ្ចូល​ទំព័រ</translation>
 <translation id="7366909168761621528">ទិន្នន័យរុករក</translation>
+<translation id="7367714965999718019">កម្មវិធីបង្កើតកូដ QR</translation>
 <translation id="736877393389250337">មិនអាច​បើក <ph name="URL" /> នៅក្នុង <ph name="ALTERNATIVE_BROWSER_NAME" /> បានទេ។ សូម​ទាក់ទង​អ្នកគ្រប់គ្រង​ប្រព័ន្ធ​របស់អ្នក។</translation>
 <translation id="7370592524170198497">EAP អ៊ីសឺរណិត៖</translation>
 <translation id="7371006317849674875">ពេល​ចាប់ផ្ដើម</translation>
@@ -4844,8 +4875,10 @@
 <translation id="7737238973539693982">លុប​ Linux (បេតា)</translation>
 <translation id="7740996059027112821">បទដ្ឋាន</translation>
 <translation id="7744047395460924128">មើល​ប្រវត្តិបោះពុម្ព​របស់អ្នក</translation>
+<translation id="7744192722284567281">រកមិនឃើញនៅក្នុងការបែកធ្លាយ​ទិន្នន័យ​ទេ</translation>
 <translation id="7746457520633464754">ដើម្បី​រកមើល​កម្មវិធី​ និងគេហទំព័រ​គ្រោះថ្នាក់ Chrome ផ្ញើ​ URL របស់ទំព័រ​មួយចំនួន​ដែលអ្នកចូលមើល ព្រមទាំងខ្លឹមសារទំព័រ និងព័ត៌មានប្រព័ន្ធមួយចំនួន​ទៅ Google</translation>
 <translation id="7750228210027921155">រូបក្នុងរូប​</translation>
+<translation id="7751229152614300329">ការរុករក​ដោយសុវត្ថិភាពមានបច្ចុប្បន្នភាព និងការពារអ្នកពីការទាញយក និងគេហទំព័រដែលបង្កគ្រោះថ្នាក់ផ្សេងៗ</translation>
 <translation id="7751260505918304024">បង្ហាញទាំងអស់</translation>
 <translation id="7754704193130578113">សួររកកន្លែងរក្សាទុកឯកសារនីមួយៗមុនពេលទាញយក</translation>
 <translation id="7755287808199759310">មាតាបិតារបស់អ្នកអាចលុបការរារាំងទំព័រនេះសម្រាប់អ្នកបាន</translation>
@@ -4993,6 +5026,7 @@
 <translation id="7910768399700579500">ថតឯកសារថ្មី</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">ពាក្យសម្ងាត់របស់អ្នកត្រូវបានប្តូរនៅលើម៉ាស៊ីនមេ។ សូមចេញពីគណនី ហើយចូលមកវិញម្តងទៀត។</translation>
+<translation id="7914583336730284547">ឯកសារដែលបានទម្លាក់ទាំងនេះ​បំពានគោលការណ៍​សុវត្ថិភាពរបស់ស្ថាប័នអ្នក។ តើអ្នកចង់បន្តទោះបីជាមានការបំពានដែរទេ?</translation>
 <translation id="7915457674565721553">ភ្ជាប់​អ៊ីនធឺណិត ដើម្បី​រៀបចំ​ការគ្រប់គ្រង​ដោយមាតាបិតា</translation>
 <translation id="7915471803647590281">សូមប្រាប់ពួកយើងអំពីអ្វីដែលកើតឡើងមុនពេលផ្ញើមតិ។</translation>
 <translation id="7918257978052780342">ចុះឈ្មោះ</translation>
@@ -5089,6 +5123,7 @@
 <translation id="8028803902702117856">កំពុង​ទាញយក <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">ទំហំ</translation>
 <translation id="8030656706657716245">បន្ថែម​ម៉ាស៊ីន​បោះពុម្ព</translation>
+<translation id="8030852056903932865">យល់ព្រម</translation>
 <translation id="8032244173881942855">មិនអាចខាសផ្ទាំងបានទេ</translation>
 <translation id="8033827949643255796">បានជ្រើសរើស</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{បើក​ទាំងអស់នៅក្នុងវិនដូអនាមិក&amp;}=1{បើក​នៅក្នុងវិនដូអនាមិក&amp;}other{បើក​ទាំងអស់ (#) នៅក្នុងវិនដូអនាមិក&amp;}}</translation>
@@ -5409,6 +5444,7 @@
 <translation id="8472623782143987204">ផ្នែករឹងបម្រុង</translation>
 <translation id="8473863474539038330">អាសយដ្ឋាន​ និងច្រើន​ទៀត</translation>
 <translation id="8475313423285172237">កម្មវិធីដ៏ទៃទៀតនៅលើកុំព្យូទ័ររបស់អ្នកបានបន្ថែមកម្មវិធីបន្ថែម ដែលអាចប្តូររបៀបដំណើរការរបស់ Chrome។</translation>
+<translation id="8476659515398963495">ទិន្នន័យដែលបានដាក់ចូលនេះ​បំពានគោលការណ៍​សុវត្ថិភាពរបស់ស្ថាប័នអ្នក។ តើអ្នកចង់បន្តទោះបីជាមានការបំពានដែរទេ?</translation>
 <translation id="8477241577829954800">បានជំនួស</translation>
 <translation id="8477384620836102176">ទូទៅ</translation>
 <translation id="8480082892550707549">បើទោះបីជាអ្នកបានទាញយកឯកសារពីគេហទំព័រនេះពីមុនក៏ដោយ ក៏គេហទំព័រនេះអាចនឹងគ្មានសុវត្ថិជាបណ្ណោះអាសន្ន (បានវាយប្រហារ)។ សូមសាកល្បងទាញយកឯកសារនេះនៅពេលក្រោយ។</translation>
@@ -5462,6 +5498,7 @@
 <translation id="8547013269961688403">បើក​កែវពង្រីក​ពេញ​អេក្រង់</translation>
 <translation id="85486688517848470">ចុច​ប៊ូតុង​ស្វែងរក​ឲ្យជាប់ ដើម្បី​ប្តូរលក្ខណៈ​គ្រាប់ចុច​នៅជួរ​ខាងលើ</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{ធាតុ 1}other{ធាតុ #}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> នឹងអាច​កែឯកសារនៅក្នុង <ph name="FOLDERNAME" /> រហូតទាល់តែអ្នកបិទផ្ទាំង <ph name="ORIGIN" /> ទាំងអស់</translation>
 <translation id="8551388862522347954">អាជ្ញាប័ណ្ណ</translation>
 <translation id="8553342806078037065">គ្រប់គ្រងមនុស្សផ្សេងទៀត</translation>
 <translation id="8554899698005018844">គ្មាន​ភាសាទេ</translation>
@@ -5520,6 +5557,7 @@
 <translation id="8637688295594795546">ការធ្វើបច្ចុប្បន្នភាពប្រព័ន្ធមាន។ កំពុងរៀបចំការទាញយក…</translation>
 <translation id="8639047128869322042">កំពុង​ពិនិត្យមើល​កម្មវិធី​គ្រោះថ្នាក់...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - រន្ធ</translation>
+<translation id="8641606876632989680">Chrome នឹង​ជូនដំណឹងទៅអ្នក នៅពេលអ្នកចូល​គណនី​ដោយប្រើពាក្យសម្ងាត់ដែល​រងការលុកលុយ</translation>
 <translation id="8642900771896232685">2 វិនាទី</translation>
 <translation id="8642947597466641025">ធ្វើឲ្យអត្ថបទធំជាងមុន</translation>
 <translation id="8644655801811752511">មិនអាចកំណត់​សោសុវត្ថិភាពនេះ​ឡើងវិញបានទេ។ សូមសាកល្បងកំណត់​សោសុវត្ថិភាពនេះ​ឡើងវិញភ្លាមៗ បន្ទាប់ពីដោតបញ្ចូលវាហើយ។</translation>
@@ -5569,6 +5607,7 @@
 <translation id="869884720829132584">ម៉ឺនុយកម្មវិធី</translation>
 <translation id="869891660844655955">កាលបរិច្ឆេទការផុតកំណត់</translation>
 <translation id="8703346390800944767">រំលង​ការផ្សាយ​ពាណិជ្ជកម្ម</translation>
+<translation id="870341961648617780">ការកំណត់​សុវត្ថិភាពកម្រិតខ្ពស់ និងការរុករក​ដោយ​សុវត្ថិភាព</translation>
 <translation id="8705331520020532516">លេខសេរ៊ី</translation>
 <translation id="8705580154597116082">មាន Wi-Fi ​តាមរយៈ​ទូរសព្ទ</translation>
 <translation id="8705629851992224300">មិនអាច​មើល​ព័ត៌មាន​ផ្ទៀងផ្ទាត់​នៅក្នុងសោសុវត្ថិភាព​របស់អ្នក​បានទេ</translation>
@@ -5614,6 +5653,7 @@
 <translation id="874689135111202667">{0,plural, =1{បង្ហោះឯកសារ​មួយ​ទៅ​ទំព័រ​នេះ​?}other{បង្ហោះឯកសារ​ # ​ទៅ​ទំព័រ​នេះ​?}}</translation>
 <translation id="8748384418490037181">ជម្រើស Smart Lock</translation>
 <translation id="8749863574775030885">ចូលប្រើឧបករណ៍ USB ពីអ្នកលក់មិនស្គាល់</translation>
+<translation id="8750133148106010815">ដើម្បីចាប់ផ្ដើម Google Play, <ph name="ORGANIZATION_NAME" /> តម្រូវឱ្យអ្នកបម្រុងទុក​ទិន្នន័យរបស់អ្នក និងកំណត់​ Chromebook នេះទៅការកំណត់​​ដូច​ចេញ​ពី​រោងចក្រឡើងវិញ។</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ចង់ភ្ជាប់​ទៅរន្ធស៊េរី</translation>
 <translation id="8754200782896249056">&lt;p&gt;នៅពេលដំណើរការ <ph name="PRODUCT_NAME" /> នៅក្នុងបរិស្ថានដេស៍ថបដែលគាំទ្រ ការកំណត់ប្រូកស៊ីប្រព័ន្ធនឹងត្រូវប្រើ។ ប៉ុន្តែទោះជាយ៉ាងណាក៏ដោយ ប្រព័ន្ធរបស់អ្នកអាចមិនគាំទ្រទេ ឫវាមានបញ្ហាពាក់ព័ន្ធនឹងការបើកដំណើរការការកំណត់ប្រព័ន្ធរបស់អ្នក។&lt;/p&gt;
 
@@ -5668,6 +5708,7 @@
 <translation id="8809147117840417135">បៃតង​ស្រាល</translation>
 <translation id="8813698869395535039">មិនអាចចូល <ph name="USERNAME" /> បានទេ</translation>
 <translation id="8813811964357448561">ផ្ទាំងក្រដាស</translation>
+<translation id="8813872945700551674">ស្នើសុំឱ្យមាតាបិតាយល់ព្រមលើ "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="8813969267212093033">អក្សរប្រព័ន្ធ​បង្ហាញ​ជាភាសានេះ</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">សូម​រង់ចាំ កំពុង​ស្កេនបណ្ណសារ...</translation>
@@ -5948,6 +5989,7 @@
 <translation id="9203398526606335860">បើកដំណើរការទម្រង់</translation>
 <translation id="9203904171912129171">ជ្រើសរើស​ឧបករណ៍</translation>
 <translation id="9203962528777363226">អ្នកគ្រប់គ្រងឧបករណ៍នេះបានបិទការបន្ថែមអ្នកប្រើថ្មី</translation>
+<translation id="9211177926627870898">តម្រូវឱ្យ​ដំឡើង​កំណែ</translation>
 <translation id="9214520840402538427">អូ! ការចាប់ផ្តើម installation-time attributes បានអស់ពេល។ សូមទំនាក់ទំនងជំនួយការរបស់អ្នក។</translation>
 <translation id="9214695392875603905">នំខេកតូច</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" បានបន្ថែម</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 694664a..23808c6d 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">ಆ್ಯಪ್‌ಗಳಲ್ಲಿರುವ ಡೇಟಾವನ್ನು ಸಹ ತೆರವುಗೊಳಿಸುವುದೇ?</translation>
 <translation id="1045692658517323508">{0,plural, =1{1 ನಿಮಿಷದ ಒಳಗೆ ಅಪ್‌ಡೇಟ್ ಮಾಡಿ}one{# ನಿಮಿಷಗಳ ಒಳಗೆ ಅಪ್‌ಡೇಟ್ ಮಾಡಿ}other{# ನಿಮಿಷಗಳ ಒಳಗೆ ಅಪ್‌ಡೇಟ್ ಮಾಡಿ}}</translation>
 <translation id="1046635659603195359">ನೀವು ಮತ್ತೊಂದು ಸಾಧನದಲ್ಲಿ ನಿಮ್ಮ Google ಅಸಿಸ್ಟೆಂಟ್ ಮೂಲಕ Voice Match ಅನ್ನು ಈಗಾಗಲೇ ಸೆಟಪ್‌ ಮಾಡಿರುವಿರಿ ಎಂದು ತೋರುತ್ತಿದೆ. ಈ ಸಾಧನದಲ್ಲಿ ಧ್ವನಿ ಮಾದರಿಯನ್ನು ರೂಪಿಸಲು ಹಿಂದಿನ ರೆಕಾರ್ಡಿಂಗ್‌ಗಳನ್ನು ಬಳಸಬಹುದು. ಇದಕ್ಕೆ ಒಂದು ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ ಸಮಯ ಸಾಕು.</translation>
+<translation id="104710386808485638">Linux ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೇ?</translation>
 <translation id="1047431265488717055">ಲಿಂಕ್ ಪ&amp;ಠ್ಯ ನಕಲಿಸಿ</translation>
 <translation id="1048286738600630630">ಪ್ರದರ್ಶನಗಳು</translation>
 <translation id="1049743911850919806">ಅದೃಶ್ಯ</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">ಕ್ಲೈಂಟ್ ಪ್ರಮಾಣಪತ್ರವನ್ನು ರಫ್ತು ಮಾಡಲು <ph name="TOKEN_NAME" /> ಗೆ ದಯವಿಟ್ಟು ಸೈನ್ ಇನ್ ಆಗಿರಿ.</translation>
 <translation id="1163931534039071049">ಫ್ರೇಮ್ ಮೂಲವನ್ನು &amp;ವೀಕ್ಷಿಸಿ</translation>
 <translation id="1164674268730883318"><ph name="DEVICE_TYPE" /> ಗೆ Smart Lock ಆಫ್ ಮಾಡುವುದೇ?</translation>
+<translation id="1164891049599601209">ವಂಚನೆ ಮಾಡುವ ಸೈಟ್‌ನಲ್ಲಿ ನಮೂದಿಸಲಾಗಿದೆ</translation>
 <translation id="1164899421101904659">ಪಿನ್ ಅನ್‌ಲಾಕ್ ಕೀ ನಮೂದಿಸಿ</translation>
 <translation id="1165039591588034296">ದೋಷ</translation>
 <translation id="1166212789817575481">ಬಲಗಡೆಗೆ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಿರಿ</translation>
@@ -399,6 +401,7 @@
 <translation id="1545177026077493356">ಸ್ವಯಂಚಾಲಿತ ಕಿಯೋಸ್ಕ್ ಮೋಡ್</translation>
 <translation id="1545775234664667895">ಸ್ಥಾಪಿಸಲಾಗಿರುವ ಥೀಮ್ "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">ನೀವು ಹೋಮ್‌ನ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು ಈ ವಿಸ್ತರಣೆಯು ಬದಲಾಯಿಸಿದೆ.</translation>
+<translation id="1546452108651444655">ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಮಾಡಬಹುದಾದ <ph name="EXTENSION_TYPE" /> ಅನ್ನು <ph name="CHILD_NAME" /> ಅವರು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಬಯಸುತ್ತಾರೆ:</translation>
 <translation id="1549275686094429035">ARC ಸಕ್ರಿಯಗೊಂಡಿದೆ</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> ಅಪ್ಲಿಕೇಶನ್ <ph name="VOLUME_NAME" /> ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಬಯಸುತ್ತದೆ. ಅದು ನಿಮ್ಮ ಫೈಲ್‌ಗಳನ್ನು ಮಾರ್ಪಡಿಸಬಹುದು ಅಥವಾ ಅಳಿಸಬಹುದು.</translation>
 <translation id="1553538517812678578">ಸೀಮಿತವಲ್ಲದ</translation>
@@ -497,6 +500,7 @@
 <translation id="1679806121152819234">VM ಅನ್ನು ಪ್ಲಗ್‌ಇನ್ ಮಾಡಿ</translation>
 <translation id="1679810534535368772">ನೀವು ಖಚಿತವಾಗಿಯೂ ನಿರ್ಗಮಿಸಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="167983332380191032">ನಿರ್ವಹಣಾ ಸೇವೆಯು HTTP ದೋಷ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸಿದೆ.</translation>
+<translation id="1680841347983561661">ಕೆಲವು ಕ್ಷಣಗಳ ಬಳಿಕ, Google Play ಅನ್ನು ಮತ್ತೊಮ್ಮೆ ಪ್ರಾರಂಭಿಸಿ ನೋಡಿ.</translation>
 <translation id="1680849702532889074">ನಿಮ್ಮ Linux ಅಪ್ಲಿಕೇಶನ್‌ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷವೊಂದು ಸಂಭವಿಸಿದೆ.</translation>
 <translation id="16815041330799488">ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿರುವ ಪಠ್ಯ ಮತ್ತು ಚಿತ್ರಗಳನ್ನು ನೋಡಲು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿ ನೀಡಬೇಡಿ</translation>
 <translation id="1682548588986054654">ಹೊಸ ಅದೃಶ್ಯ ವಿಂಡೋ</translation>
@@ -750,6 +754,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> ಕ್ರ್ಯಾಷ್ ಆಗಿದೆ. ವಿಸ್ತರಣೆಯನ್ನು ಮರುಲೋಡ್ ಮಾಡಲು ಈ ಬಲೂನ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.</translation>
 <translation id="2025891858974379949">ಅಸುರಕ್ಷಿತ ವಿಷಯ</translation>
 <translation id="202918510990975568">ಸುರಕ್ಷತೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಮತ್ತು ಸೈನ್-ಇನ್ ಮಾಡಲು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ</translation>
+<translation id="2030672406208960151">ಮರುಪ್ರಾಪ್ತಿ ಟರ್ಮಿನಲ್ ಅನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="2034346955588403444">ಇತರ ವೈಫೈ ನೆಟ್‌ವರ್ಕ್ ಸೇರಿಸಿ</translation>
 <translation id="203574396658008164">ಲಾಕ್ ಪರದೆಯಿಂದ ಟಿಪ್ಪಣಿ ತೆಗೆದುಕೊಳ್ಳುವುದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="2037445849770872822">ಈ Google ಖಾತೆಗೆ ಮೇಲ್ವಿಚಾರಣೆಯನ್ನು ಸೆಟಪ್ ಮಾಡಲಾಗಿದೆ. ಇನ್ನಷ್ಟು ಪೋಷಕ ನಿಯಂತ್ರಣಗಳನ್ನು ಸೆಟಪ್ ಮಾಡಲು, ಮುಂದುವರಿಸಿ ಆಯ್ಕೆಮಾಡಿ.
@@ -902,6 +907,7 @@
 <translation id="2220572644011485463">ಪಿನ್ ಅಥವಾ ಪಾಸ್‌ವರ್ಡ್</translation>
 <translation id="2224444042887712269">ಈ ಸೆಟ್ಟಿಂಗ್ <ph name="OWNER_EMAIL" /> ಗೆ ಸೇರಿರುತ್ತದೆ.</translation>
 <translation id="2224551243087462610">ಫೋಲ್ಡರ್ ಹೆಸರು ಎಡಿಟ್ ಮಾಡಿ</translation>
+<translation id="2225864335125757863">ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು ಈ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ತಕ್ಷಣವೇ ಬದಲಾಯಿಸಿ:</translation>
 <translation id="2226449515541314767">ಈ ಸೈಟ್ ಅನ್ನು MIDI ಸಾಧನಗಳ ಮೇಲೆ ಪೂರ್ಣ ನಿಯಂತ್ರಣ ಸಾಧಿಸುವುದರಿಂದ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation>
 <translation id="222704500187107962">ನೀವು ಪ್ರಸ್ತುತ ಅಜ್ಞಾತ ಸೆಶನ್‌ನಿಂದ ನಿರ್ಗಮಿಸಿದ ನಂತರ, ಈ ವಿನಾಯಿತಿಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ</translation>
 <translation id="2227179592712503583">ಸಲಹೆಯನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
@@ -1022,6 +1028,7 @@
 <translation id="2387052489799050037">ಹೋಮ್‌ಗೆ ಹೋಗಿ</translation>
 <translation id="2387458720915042159">ಪ್ರಾಕ್ಸಿ ಪ್ರಕಾರ ಸಂಪರ್ಕ</translation>
 <translation id="2391419135980381625">ರೂಢಿಯಲ್ಲಿರುವ ಫಾಂಟ್</translation>
+<translation id="2392163307141705938"><ph name="IDS_SHORT_PRODUCT_NAME" /> ಗಾಗಿ ನಿಮ್ಮ ಪೋಷಕರು ಹೊಂದಿಸಿದ ಸಮಯ-ಮಿತಿಯನ್ನು ತಲುಪಿದ್ದೀರಿ.</translation>
 <translation id="2392369802118427583">ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="2394566832561516196">ನಂತರದ ಮರುಲೋಡ್‌ ಮಾಡುವಾಗ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರವುಗೊಳಿಸಲಾಗುವುದು.</translation>
 <translation id="2395616325548404795">ಎಂಟರ್‌ಪ್ರೈಸ್ ನಿರ್ವಹಣೆಗಾಗಿ ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ನೋಂದಾಯಿಸಲಾಗಿದೆ, ಆದರೆ ಅದರ ಸ್ವತ್ತು ಹಾಗೂ ಸ್ಥಳ ಮಾಹಿತಿಯನ್ನು ಕಳುಹಿಸಲು ವಿಫಲವಾಗಿದೆ. ದಯವಿಟ್ಟು ಈ ಸಾಧನಕ್ಕಾಗಿ ನಿಮ್ಮ ನಿರ್ವಾಹಕ ಕನ್ಸೋಲ್‌ನಿಂದ ಈ ಮಾಹಿತಿಯನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ನಮೂದಿಸಿ.</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">ಆಡಿಯೊ ಹಂಚಿಕೊಳ್ಳಿ</translation>
 <translation id="2480868415629598489">ನೀವು ನಕಲಿಸಿದ ಮತ್ತು ಅಂಟಿಸಿದ ಡೇಟಾವನ್ನು ಮಾರ್ಪಡಿಸಿ</translation>
 <translation id="2482878487686419369">ಸೂಚನೆಗಳು</translation>
+<translation id="2483610039979585156">ನೀವು ಎಲ್ಲಾ <ph name="ORIGIN" /> ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚುವವರೆಗೆ, <ph name="FILENAME" /> ಅನ್ನು ಎಡಿಟ್ ಮಾಡಲು <ph name="ORIGIN" /> ಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ</translation>
 <translation id="2484959914739448251">ಸಿಂಕ್ ಮಾಡಿರುವ ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳು ಮತ್ತು ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಲು, <ph name="BEGIN_LINK" />ನಿಮ್ಮ ಪಾಸ್‌ಫ್ರೇಸ್ ನಮೂದಿಸಿ<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಈ ಸಾಧನದಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ</translation>
 <translation id="2485422356828889247">ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್</translation>
@@ -1299,6 +1307,7 @@
 <translation id="274290345632688601">Linux ಆ್ಯಪ್‌ಗಳು &amp; ಫೈಲ್‌ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="2743387203779672305">ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿ</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> ಅನ್ನು ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ</translation>
 <translation id="2749756011735116528"><ph name="PRODUCT_NAME" /> ಗೆ ಸೈನ್ ಇನ್ ಆಗಿ</translation>
 <translation id="2749881179542288782">ವ್ಯಾಕರಣವನ್ನು ಕಾಗುಣಿತದೊಂದಿಗೆ ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="2751739896257479635">EAP 2 ನೇ ಹಂತದ ಪ್ರಮಾಣೀಕರಣ</translation>
@@ -1307,6 +1316,7 @@
 <translation id="275662540872599901">ಸ್ಕ್ರೀನ್ ಆಫ್</translation>
 <translation id="2762441749940182211">ಕ್ಯಾಮೆರಾವನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="2765217105034171413">ಸಣ್ಣ</translation>
+<translation id="2766161002040448006">ಪೋಷಕರ ಬಳಿ ಕೇಳಿ</translation>
 <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" /> ಹೆಸರಿನಲ್ಲಿ ಸೈನ್ ಇನ್ ಮಾಡಲಾಗಿದೆ.</translation>
 <translation id="2770465223704140727">ಪಟ್ಟಿಯಿಂದ ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="2770690685823456775">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಇನ್ನೊಂದು ಫೋಲ್ಡರ್‌ಗೆ ಎಕ್ಸ್‌ಪೋರ್ಟ್ ಮಾಡಿ</translation>
@@ -1558,6 +1568,7 @@
 <translation id="3115580024857770654">ಎಲ್ಲವನ್ನೂ ಕುಗ್ಗಿಸಿ</translation>
 <translation id="3117362587799608430">ಡಾಕ್ ಸಂಪೂರ್ಣವಾಗಿ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> ಸಹಾಯ</translation>
+<translation id="3118654181216384296">ಕೆಲವು ಕ್ಷಣಗಳ ಬಳಿಕ, Linux ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="3120430004221004537">ನೀಡಿರುವ ಕಾರ್ಯಾಚರಣೆಗೆ ಈ ಸಾಧನದಲ್ಲಿ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಸಾಕಷ್ಟಿಲ್ಲ: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">ಈ <ph name="IDS_SHORT_PRODUCT_NAME" /> ಸಾಧನವನ್ನು ಮರುಹೊಂದಿಸಿ</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1567,6 +1578,7 @@
 <translation id="3127156390846601284">ಎಲ್ಲಾ ಸೈಟ್‌ಗಳಲ್ಲಿ ತೋರಿಸಲು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಯಾವುದೇ ಡೇಟಾವನ್ನು ಇದು ಅಳಿಸುತ್ತದೆ. ನೀವು ಮುಂದುವರಿಸಲು ಬಯಸುತ್ತೀರಾ?</translation>
 <translation id="3127860049873093642">ಚಾರ್ಜಿಂಗ್ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆ ಸಮಸ್ಯೆಗಳನ್ನು ತಡೆಯಲು, ಹೊಂದಿಕೆಯಾಗುವ Dell ಅಥವಾ USB ಟೈಪ್-C ಪವರ್ ಅಡಾಪ್ಟರ್ ಬಳಸಿ.</translation>
 <translation id="3129173833825111527">ಎಡ ಅಂಚು</translation>
+<translation id="3129215702932019810">ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಾರಂಭಿಸುವಾಗ ದೋಷ ಸಂಭವಿಸಿದೆ</translation>
 <translation id="3130528281680948470">ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಹೊಂದಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಎಲ್ಲಾ ಬಳಕೆದಾರ ಖಾತೆಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. ಇದನ್ನು ರದ್ದುಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="313205617302240621">ಪಾಸ್‌ವರ್ಡ್ ಮರೆತಿರುವಿರಾ?</translation>
 <translation id="3132996321662585180">ಪ್ರತಿದಿನ ರಿಫ್ರೆಶ್ ಮಾಡಿ</translation>
@@ -1782,6 +1794,7 @@
 <translation id="3441653493275994384">ಸ್ಕ್ರೀನ್‌</translation>
 <translation id="3445925074670675829">USB-C ಸಾಧನ</translation>
 <translation id="344630545793878684">ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಹಲವಾರು ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿ ಓದಿ</translation>
+<translation id="3448086340637592206">Google Chrome ಹಾಗೂ Chrome OS ಹೆಚ್ಚುವರಿ ನಿಯಮಗಳು</translation>
 <translation id="3448492834076427715">ಖಾತೆಯನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ</translation>
 <translation id="3449839693241009168"><ph name="EXTENSION_NAME" /> ಗೆ ಆದೇಶಗಳನ್ನು ಕಳುಹಿಸಲು <ph name="SEARCH_KEY" /> ಒತ್ತಿರಿ</translation>
 <translation id="3450157232394774192">ತಟಸ್ಥ ಸ್ಥಿತಿಯ ನೆಲೆಸುವಿಕೆ ಪ್ರತಿಶತ</translation>
@@ -2129,6 +2142,7 @@
 <translation id="3873423927483480833">ಪಿನ್‌ಗಳನ್ನು ತೋರಿಸಿ</translation>
 <translation id="3873915545594852654">ARC++ ನಲ್ಲಿ ಸಮಸ್ಯೆ ಸಂಭವಿಸಿದೆ.</translation>
 <translation id="3879748587602334249">ಡೌನ್‌ಲೋಡ್ ನಿರ್ವಾಹಕ</translation>
+<translation id="3881321138433527084">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಆಫ್ ಆಗಿದೆ. ವೆಬ್‌ನಲ್ಲಿ ಸುರಕ್ಷಿತರಾಗಿರಲು, ಇದನ್ನು ಆನ್ ಮಾಡಿ.</translation>
 <translation id="3882165008614329320">ಕ್ಯಾಮರಾ ಅಥವಾ ಫೈಲ್‌ನಲ್ಲಿರುವ ಪ್ರಸ್ತುತ ವೀಡಿಯೊ</translation>
 <translation id="3886446263141354045">ಈ ಸೈಟ್‌ಗೆ ಪ್ರವೇಶಿಸುವ ನಿಮ್ಮ ವಿನಂತಿಯನ್ನು <ph name="NAME" /> ಅವರಿಗೆ ಕಳುಹಿಸಲಾಗಿದೆ</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ಮೂಲಕ ಟಿಪ್ಪಣಿಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತಿದೆ</translation>
@@ -2470,6 +2484,7 @@
 <translation id="4384652540891215547">ವಿಸ್ತರಣೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="438503109373656455">ಸರಾಟೊಗಾ</translation>
 <translation id="4387004326333427325">ದೃಢೀಕರಣ ಪ್ರಮಾಣಪತ್ರವನ್ನು ರಿಮೋಟ್ ಆಗಿ ತಿರಸ್ಕರಿಸಲಾಗಿದೆ</translation>
+<translation id="4387890294700445764">ಅಪಾಯಕ್ಕೀಡಾಗಿರುವ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು</translation>
 <translation id="4389091756366370506">ಬಳಕೆದಾರ <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{ಅಜ್ಞಾತ}one{# ಅಜ್ಞಾತ ವಿಂಡೋಗಳನ್ನು ತೆರೆಯಿರಿ}other{# ಅಜ್ಞಾತ ವಿಂಡೋಗಳನ್ನು ತೆರೆಯಿರಿ}}</translation>
 <translation id="439266289085815679"><ph name="USER_EMAIL" /> ಮೂಲಕ ಬ್ಲೂಟೂತ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲಾಗುತ್ತಿದೆ.</translation>
@@ -2501,6 +2516,7 @@
 <translation id="4429030830601238961">ಈ ಡೇಟಾವು ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಭದ್ರತಾ ನೀತಿಗಳನ್ನು ಉಲ್ಲಂಘಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಅಂಟಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="4430019312045809116">ವಾಲ್ಯೂಮ್</translation>
 <translation id="4430369329743628066">ಬುಕ್‌ಮಾರ್ಕ್ ಸೇರಿಸಲಾಗಿದೆ</translation>
+<translation id="4432621511648257259">ಪಾಸ್‌ವರ್ಡ್ ತಪ್ಪಾಗಿದೆ</translation>
 <translation id="4434045419905280838">ಪಾಪ್-ಅಪ್‌ಗಳು ಹಾಗೂ ಮರುನಿರ್ದೇಶನಗಳು</translation>
 <translation id="443454694385851356">ಪಾರಂಪರಿಕ (ಅಸುರಕ್ಷಿತ)</translation>
 <translation id="443475966875174318">ಹೊಂದಾಣಿಕೆಯಾಗದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ ಅಥವಾ ತೆಗೆದುಹಾಕಿ</translation>
@@ -2750,6 +2766,7 @@
 <translation id="4808667324955055115">ಪಾಪ್-ಅಪ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ:</translation>
 <translation id="480990236307250886">ಹೋಮ್ ತೆರೆಯಿರಿ</translation>
 <translation id="4811503964269049987">ಆಯ್ಕೆಮಾಡಿದ ಟ್ಯಾಬ್ ಅನ್ನು ಸಮೂಹಗೊಳಿಸಿ</translation>
+<translation id="4811818760963189951">ಇತಿಹಾಸ ಸಿಂಕ್ ಮಾಡುವುದನ್ನು ನೀವು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ ಕಾರಣ ಇದನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="4813136279048157860">ನನ್ನ ಚಿತ್ರಗಳು</translation>
 <translation id="4813512666221746211">ನೆಟ್‌ವರ್ಕ್  ದೋಷ</translation>
 <translation id="4814378367953456825">ಈ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್‌ಗಾಗಿ ಹೆಸರೊಂದನ್ನು ನಮೂದಿಸಿ</translation>
@@ -2780,6 +2797,7 @@
 <translation id="4850669014075537160">ಸ್ಕ್ರಾಲಿಂಗ್</translation>
 <translation id="4850886885716139402">ವೀಕ್ಷಣೆ</translation>
 <translation id="4853020600495124913">&amp;ಹೊಸ ವಿಂಡೋನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
+<translation id="4854317507773910281">ಅನುಮೋದನೆ ಪಡೆಯಲು, ಪೋಷಕರ ಖಾತೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="485480310608090163">ಇನ್ನಷ್ಟು ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಹಾಗೂ ಅನುಮತಿಗಳು</translation>
 <translation id="4856478137399998590">ನಿಮ್ಮ ಮೊಬೈಲ್ ಡೇಟಾ ಸೇವೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಬಳಕೆಗೆ ಸಿದ್ಧವಾಗಿದೆ</translation>
 <translation id="4856855265648545577">ಟ್ಯಾಬ್ಲೆಟ್ ಮೋಡ್‌ನಲ್ಲಿ ಲಾಂಚರ್, ಹಿಂದಕ್ಕೆ, ಶೆಲ್ಫ್‌ನಲ್ಲಿ ಅವಲೋಕನದ ಬಟನ್‌ಗಳನ್ನು ತೋರಿಸಿ. ChromeVox (ಮಾತಿನ ಪ್ರತಿಕ್ರಿಯೆ) ಅಥವಾ ಪ್ರವೇಶ ಬದಲಾಯಿಸಿ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ ಆನ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation>
@@ -2916,10 +2934,12 @@
 <translation id="5040823038948176460">ಹೆಚ್ಚುವರಿ ವಿಷಯ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="5042282098504489593"><ph name="USB_DEVICE_NAME" /> ಅನ್ನು Linux ಗೆ ಸಂಪರ್ಕಿಸಲು, ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="5043913660911154449">ಅಥವಾ ನಿಮ್ಮ ಪ್ರಿಂಟರ್ PPD ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">ನಿಮ್ಮ ಸಿಂಕ್ ಡೇಟಾವನ್ನು ನೀವು ಪಾಸ್‌ಫ್ರೇಸ್‌ನ ಮೂಲಕ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ಕಾರಣ, ಇದನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="5045550434625856497">ತಪ್ಪು ಪಾಸ್‌ವರ್ಡ್</translation>
 <translation id="504561833207953641">ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಬ್ರೌಸರ್ ಸೆಶನ್‌ನಲ್ಲಿ ತೆರೆಯಲಾಗುತ್ತಿದೆ.</translation>
 <translation id="5047421709274785093">ಚಲನೆ ಮತ್ತು ಬೆಳಕಿನ ಸೆನ್ಸರ್‌ಗಳನ್ನು ಬಳಸದಂತೆ ಸೈಟ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="5050042263972837708">ಗುಂಪು ಹೆಸರು</translation>
+<translation id="5051073330196664891">Google ಜಾಗತಿಕ ಸೇವಾ ನಿಯಮಗಳು (uToS)</translation>
 <translation id="5051836348807686060">ನೀವು ಆಯ್ಕೆ ಮಾಡಿರುವ ಭಾಷೆಗಳಲ್ಲಿ ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ</translation>
 <translation id="5052499409147950210">ಸೈಟ್ ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="5053604404986157245">ಯಾದೃಚ್ಛಿಕವಾಗಿ ರಚಿಸಲಾದ TPM ಪಾಸ್‌ವರ್ಡ್ ಲಭ್ಯವಿಲ್ಲ. Powerwash ನ ನಂತರ ಇದು ಸಾಮಾನ್ಯವಾಗಿದೆ.</translation>
@@ -2957,6 +2977,7 @@
 <translation id="5097002363526479830">'<ph name="NAME" />' ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ವಿಫಲವಾಗಿದೆ: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">ಎಲ್ಲಾ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="5101839224773798795">ಕರ್ಸರ್ ನಿಂತಾಗ, ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕ್ಲಿಕ್ ಮಾಡಿ</translation>
+<translation id="5107443654503185812">ಒಂದು ವಿಸ್ತರಣೆಯು ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಅನ್ನು ಆಫ್ ಮಾಡಿದೆ</translation>
 <translation id="5108967062857032718">ಸೆಟ್ಟಿಂಗ್‌ಗಳು - Android ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="5109044022078737958">ಮಿಯಾ</translation>
 <translation id="5111646998522066203">ಅದೃಶ್ಯ ಮೋಡ್‌ನಿಂದ ನಿರ್ಗಮಿಸಿ</translation>
@@ -3043,6 +3064,7 @@
 <translation id="523505283826916779">ಪ್ರವೇಶಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="5235750401727657667">ಹೊಸ ಟ್ಯಾಬ್ ತೆರೆದಿರುವಾಗ ಬದಲಾಯಿಸಿದ ಪುಟವನ್ನು ನೀವು ನೋಡಿ</translation>
 <translation id="5238278114306905396">ಅಪ್ಲಿಕೇಶನ್ "<ph name="EXTENSION_NAME" />" ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆಗೆದುಹಾಕಲಾಗಿದೆ.</translation>
+<translation id="5239730228370806996">ಡ್ರಾಪ್ ಮಾಡಲಾಗಿರುವ ಈ ಡೇಟಾ, ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಸುರಕ್ಷತೆ ನೀತಿಗಳನ್ನು ಉಲ್ಲಂಘಿಸುತ್ತಿದೆ. ಹಾಗಿದ್ದರೂ ನೀವು ಮುಂದುವರಿಯಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="5241128660650683457">ನೀವು ಭೇಟಿ ನೀಡುವ ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಓದಿ</translation>
 <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" ಸಕ್ರಿಯಗೊಳಿಸುವುದೆ?</translation>
 <translation id="5243522832766285132">ದಯವಿಟ್ಟು ಕೆಲವು ಕ್ಷಣಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ</translation>
@@ -3330,6 +3352,7 @@
 <translation id="5618075537869101857">ಓಹ್ ದೇವರೇ, ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗಲಿಲ್ಲ.</translation>
 <translation id="5618333180342767515">(ಇದು ಕೆಲವು ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು)</translation>
 <translation id="56197088284879152">ರಿಮೋಟ್ ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕವು ದಟ್ಟಣೆಯಿಂದ ಕೂಡಿದೆ: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಲ್ಲ</translation>
 <translation id="5620549857835247159">ಟ್ಯಾಬ್ಲೆಟ್ ಮೋಡ್‌ನಲ್ಲಿ ಲಾಂಚರ್, ಹಿಂದಕ್ಕೆ, ಶೆಲ್ಫ್‌ನಲ್ಲಿ ಅವಲೋಕನದ ಬಟನ್‌ಗಳನ್ನು ತೋರಿಸಿ.</translation>
 <translation id="5620568081365989559"><ph name="FOLDER_PATH" /> ಗೆ DevTools ಪೂರ್ಣ ಪ್ರವೇಶವನ್ನು ವಿನಂತಿಸುತ್ತದೆ.
 ಯಾವುದೇ ಸೂಕ್ಷ್ಮ ಮಾಹಿತಿಯನ್ನು ನೀವು ಬಹಿರಂಗಪಡಿಸುತ್ತಿಲ್ಲ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.</translation>
@@ -3424,6 +3447,7 @@
 <translation id="5747785204778348146">ಡೆವಲಪರ್ - ಅಸ್ಥಿರ</translation>
 <translation id="5747809636523347288">ಅಂ&amp;ಟಿಸಿ ಮತ್ತು <ph name="URL" /> ಗೆ ಹೋಗಿ</translation>
 <translation id="5750324801516359607">ದೂರದಲ್ಲಿದೆ</translation>
+<translation id="5751887393582880060">ಈ ಅಪ್‌ಲೋಡ್, ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಸುರಕ್ಷತೆ ನೀತಿಗಳನ್ನು ಉಲ್ಲಂಘಿಸುತ್ತಿದೆ. ಹಾಗಿದ್ದರೂ ನೀವು ಮುಂದುವರಿಯಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="5756163054456765343">ಸ&amp;ಹಾಯ ಕೇಂದ್ರ</translation>
 <translation id="5759728514498647443">ನೀವು <ph name="APP_NAME" /> ಮೂಲಕ ಪ್ರಿಂಟ್ ಮಾಡಲು ಕಳುಹಿಸುವ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು <ph name="APP_NAME" /> ಮೂಲಕ ಓದಬಹುದಾಗಿದೆ.</translation>
 <translation id="5763751966069581670">ಯಾವುದೇ USB ಸಾಧನಗಳು ಕಂಡುಬಂದಿಲ್ಲ</translation>
@@ -3633,6 +3657,7 @@
 <translation id="6040852767465482106">ಅನಾಮಧೇಯ ಗುರುತಿಸುವಿಕೆ</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />ಈ ಸಾಧನದ ಸ್ಥಳವನ್ನು ಅಂದಾಜಿಸುವಲ್ಲಿ ಸಹಾಯ ಮಾಡಲು, Google ನ ಸ್ಥಳ ಸೇವೆಯು ವೈ-ಫೈ, ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಮತ್ತು ಸೆನ್ಸರ್‌ಗಳಂತಹ ಮೂಲಗಳನ್ನು ಬಳಸುತ್ತದೆ.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಮುಖ್ಯ ಸ್ಥಳ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಆಫ್ ಮಾಡುವ ಮೂಲಕ ನೀವು ಸ್ಥಳವನ್ನು ಆಫ್ ಮಾಡಬಹುದು. ನೀವು ಸ್ಥಳ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಸ್ಥಳಕ್ಕಾಗಿ ವೈ-ಫೈ, ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಮತ್ತು ಸೆನ್ಸರ್‌ಗಳ ಬಳಕೆಯನ್ನು ಸಹ ಆಫ್‌ ಮಾಡಬಹುದು.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409">ನೀವು ಎಲ್ಲಾ <ph name="ORIGIN" /> ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚುವವರೆಗೆ, <ph name="FOLDERNAME" /> ನಲ್ಲಿ ಇರುವ ಫೈಲ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಲು <ph name="ORIGIN" /> ಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ</translation>
 <translation id="6041155700700864984">ಪೂರ್ಣಪರದೆಯಿಂದ ನಿರ್ಗಮಿಸಿ</translation>
 <translation id="604124094241169006">ಸ್ವಯಂಚಾಲಿತ</translation>
 <translation id="6042308850641462728">ಇನ್ನಷ್ಟು</translation>
@@ -3694,6 +3719,7 @@
 <translation id="6104311680260824317">ಡೊಮೇನ್‌ಗೆ ಸಾಧನವನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿರ್ದಿಷ್ಟ Kerberos ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಪ್ರಕಾರಗಳನ್ನು ಸರ್ವರ್ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗಾಗಿ "ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳನ್ನು" ಪರಿಶೀಲಿಸಿ.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> ಗೆ, ಈ ಸಾಧನವನ್ನು ಈಗಲೇ ಅಪ್‌ಡೇಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="6106186653986077033">ಪ್ಲಗ್ಇನ್ VM ಗೆ ಪರವಾನಗಿ ಅಗತ್ಯವಿದೆ</translation>
+<translation id="6107047744202598802">ನಿಮ್ಮ ಭೇಟಿಯನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಲು ಮತ್ತು ವೆಬ್‌ನಾದ್ಯಂತ ನಿಮ್ಮನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ವೆಬ್‌ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿ ನೀಡಿ</translation>
 <translation id="6112294629795967147">ಮರುಗಾತ್ರಗೊಳಿಸಲು ಸ್ಪರ್ಶಿಸಿ</translation>
 <translation id="6112727384379533756">ಟಿಕೆಟ್ ಅನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="6112931163620622315">ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
@@ -3772,6 +3798,7 @@
 <translation id="622537739776246443">ಪ್ರೊಫೈಲ್‌ ಅನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ</translation>
 <translation id="6225475702458870625">ನಿಮ್ಮ <ph name="PHONE_NAME" /> ನಿಂದ ಡೇಟಾ ಸಂಪರ್ಕ ಲಭ್ಯವಿದೆ</translation>
 <translation id="6226777517901268232">ಖಾಸಗಿ ಕೀ ಫೈಲ್ (ಐಚ್ಛಿಕ)</translation>
+<translation id="6227280783235722609">ವಿಸ್ತರಣೆ</translation>
 <translation id="6228691855869374890">ಈ ಸೈಟ್‌ಗೆ MIDI ಸಾಧನಗಳ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣವಿದೆ.</translation>
 <translation id="6228720835160974792">ಈ ಚಿತ್ರಕ್ಕಾಗಿ QR ಕೋಡ್ ರಚಿಸಿ</translation>
 <translation id="6229890768313448549">Google Play ಸೇವೆಯ ನಿಯಮಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ದಯವಿಟ್ಟು ಮರುಪ್ರಯತ್ನಿಸಿ.</translation>
@@ -3823,6 +3850,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> ಅನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಅಪಾಯಕಾರಿಯಾಗಿರಬಹುದು.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಹೊಸ ಪ್ರಿಂಟರ್}one{ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಹೊಸ ಪ್ರಿಂಟರ್‌ಗಳು}other{ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಹೊಸ ಪ್ರಿಂಟರ್‌ಗಳು}}</translation>
 <translation id="6286708577777130801">ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್ ವಿವರಗಳು</translation>
+<translation id="6291163159361301370">Linux ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡುವುದು ಮತ್ತು ಈ Chromebook ಅನ್ನು ಫ್ಯಾಕ್ಟರಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಮರುಹೊಂದಿಸುವುದನ್ನು <ph name="ORGANIZATION_NAME" /> ಅಗತ್ಯಗೊಳಿಸಿದೆ.</translation>
 <translation id="6291949900244949761">ಒಂದು ಸೈಟ್ USB ಸಾಧನಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಬಯಸಿದಾಗ ಕೇಳಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿರುವುದು)</translation>
 <translation id="6291953229176937411">ಫೈಂಡರ್‌ನಲ್ಲಿ &amp;ತೋರಿಸಿ</translation>
 <translation id="6295158916970320988">ಎಲ್ಲಾ ಸೈಟ್‌ಗಳು</translation>
@@ -4019,6 +4047,7 @@
 <translation id="6561726789132298588">ನಮೂದಿಸಿ</translation>
 <translation id="656293578423618167">ಫೈಲ್ ಹಾದಿ ಅಥವಾ ಹೆಸರು ತುಂಬಾ ಉದ್ದವಾಗಿದೆ. ದಯವಿಟ್ಟು ಕಿರಿದಾದ ಹೆಸರಿನೊಂದಿಗೆ ಅಥವಾ ಮತ್ತೊಂದು ಸ್ಥಾನದಲ್ಲಿ ಉಳಿಸಿ. </translation>
 <translation id="6563469144985748109">ನಿಮ್ಮ ಮ್ಯಾನೇಜರ್ ಇನ್ನೂ ಇದನ್ನು ಅಂಗೀಕರಿಸಿಲ್ಲ</translation>
+<translation id="6565955132287672866">ನಿಮ್ಮ ಸಾಧನವು ಸರಿಯಾಗಿ ಶಟ್-ಡೌನ್ ಆಗಲಿಲ್ಲ. Linux (ಬೀಟಾ) ಬಳಸಲು, ಇದನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕಾಗುತ್ತದೆ.</translation>
 <translation id="6567688344210276845">ಪುಟದ ಕ್ರಿಯೆಗಾಗಿ ಐಕಾನ್ '<ph name="ICON" />'  ಅನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿಲ್ಲ.</translation>
 <translation id="6569934958368283244">ಇತರ ಜನರು</translation>
 <translation id="657402800789773160">ಈ ಪುಟವನ್ನು &amp;ರೀಲೋಡ್ ಮಾಡಿ</translation>
@@ -4517,6 +4546,7 @@
 <translation id="7258225044283673131">ಅಪ್ಲಿಕೇಶನ್ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತಿಲ್ಲ. ಆ್ಯಪ್ ಅನ್ನು ಮುಚ್ಚಲು "ಬಲವಂತವಾಗಿ ಮುಚ್ಚಿ" ಆಯ್ಕೆಮಾಡಿ.</translation>
 <translation id="7258697411818564379">ನಿಮ್ಮ ಪಿನ್‌ ಸೇರಿಸಲಾಗಿದೆ</translation>
 <translation id="7262004276116528033">ಈ ಸೈನ್ ಇನ್ ಸೇವೆಯನ್ನು <ph name="SAML_DOMAIN" /> ಮೂಲಕ ಹೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ</translation>
+<translation id="7266898409676782635"><ph name="DEVICE_TYPE" /> ಕುರಿತು ಸಲಹೆಗಳು, ಆಫರ್‌ಗಳು ಹಾಗೂ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಪಡೆಯಿರಿ ಮತ್ತು ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳಿ. ಯಾವಾಗ ಬೇಕಾದರೂ ಅನ್‌ಸಬ್‌ಸ್ಕ್ರೈಬ್ ಮಾಡಿ.</translation>
 <translation id="7268127947535186412">ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಾಧನದ ಮಾಲೀಕರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ.</translation>
 <translation id="7270858098575133036">MIDI ಸಾಧನಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಸೈಟ್‌ವೊಂದು ಸಿಸ್ಟಮ್‌ನ ಪ್ರತ್ಯೇಕ ಸಂದೇಶಗಳನ್ನು ಬಳಸಬೇಕೆಂದಾಗ ನನ್ನನ್ನು ಕೇಳಿ</translation>
 <translation id="7272674038937250585">ಯಾವುದೇ ವಿವರಣೆಯನ್ನು ಒದಗಿಸಿಲ್ಲ</translation>
@@ -4590,6 +4620,7 @@
 <translation id="7364796246159120393">ಫೈಲ್ ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="7366415735885268578">ಸೈಟ್ ಸೇರಿಸಿ</translation>
 <translation id="7366909168761621528">ಬ್ರೌಸಿಂಗ್ ಡೇಟಾ</translation>
+<translation id="7367714965999718019">QR ಕೋಡ್ ಜನರೇಟರ್</translation>
 <translation id="736877393389250337"><ph name="URL" /> ಅನ್ನು <ph name="ALTERNATIVE_BROWSER_NAME" /> ನಲ್ಲಿ ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಿಸ್ಟಂ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="7370592524170198497">ಈಥರ್‌ನೆಟ್ EAP:</translation>
 <translation id="7371006317849674875">ಪ್ರಾರಂಭ ಸಮಯ</translation>
@@ -4847,8 +4878,10 @@
 <translation id="7737238973539693982">Linux (ಬೀಟಾ) ಅಳಿಸಿ</translation>
 <translation id="7740996059027112821">ಪ್ರಮಾಣಿತ</translation>
 <translation id="7744047395460924128">ನಿಮ್ಮ ಮುದ್ರಣ ಇತಿಹಾಸವನ್ನು ನೋಡಿ</translation>
+<translation id="7744192722284567281">ಡೇಟಾ ಉಲ್ಲಂಘಿಸಿದವುಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ಕಂಡುಬಂದಿದೆ</translation>
 <translation id="7746457520633464754">ಅಪಾಯಕಾರಿ ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಸೈಟ್‌ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು Chrome, ನೀವು ಭೇಟಿ ನೀಡುವ ಕೆಲವು ಪುಟಗಳ URL ಗಳು, ಸೀಮಿತ ಸಿಸ್ಟಂ ಮಾಹಿತಿ ಮತ್ತು ಕೆಲವು ಪುಟದ ವಿಷಯವನ್ನು Google ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation>
 <translation id="7750228210027921155">ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ</translation>
+<translation id="7751229152614300329">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಅಪ್-ಟು-ಡೇಟ್ ಆಗಿದೆ ಮತ್ತು ಹಾನಿಕಾರಕ ಸೈಟ್‌ಗಳು ಹಾಗೂ ಡೌನ್‌ಲೋಡ್‌ಗಳ ವಿರುದ್ಧ ನಿಮಗೆ ರಕ್ಷಣೆ ನೀಡುತ್ತಿದೆ</translation>
 <translation id="7751260505918304024">ಎಲ್ಲ ತೋರಿಸು</translation>
 <translation id="7754704193130578113">ಡೌನ್‌ಲೋಡ್ ಮಾಡುವ ಮೊದಲು ಪ್ರತಿ ಫೈಲ್ ಅನ್ನು ಎಲ್ಲಿ ಉಳಿಸಬೇಕೆಂದು ಕೇಳು</translation>
 <translation id="7755287808199759310">ನಿಮ್ಮ ಪೋಷಕರು ನಿಮಗಾಗಿ ಅದನ್ನು ಅನಿರ್ಬಂಧಿಸಬಹುದಾಗಿದೆ</translation>
@@ -4995,6 +5028,7 @@
 <translation id="7910768399700579500">&amp;ಹೊಸ ಫೋಲ್ಡರ್</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">ಸರ್ವರ್‌ನಲ್ಲಿ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ. ಸೈನ್ ಔಟ್ ಮಾಡಿ ಮತ್ತೆ ಸೈನ್ ಇನ್ ಆಗಿರಿ.</translation>
+<translation id="7914583336730284547">ಡ್ರಾಪ್ ಮಾಡಲಾದ ಈ ಫೈಲ್‌ಗಳು, ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಸುರಕ್ಷತೆ ನೀತಿಗಳನ್ನು ಉಲ್ಲಂಘಿಸುತ್ತಿವೆ. ಹಾಗಿದ್ದರೂ ನೀವು ಮುಂದುವರಿಯಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="7915457674565721553">ಪೋಷಕ ನಿಯಂತ್ರಣಗಳನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಇಂಟರ್ನೆಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಿ</translation>
 <translation id="7915471803647590281">ದಯವಿಟ್ಟು ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸುವ ಮುಂಚಿತವಾಗಿ ಏನು ನಡೆಯುತ್ತಿದೆ ಎಂದು ನಮಗೆ ತಿಳಿಸಿ.</translation>
 <translation id="7918257978052780342">ನೋಂದಾಯಿಸಿ</translation>
@@ -5089,6 +5123,7 @@
 <translation id="8028803902702117856">ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">ಗಾತ್ರ</translation>
 <translation id="8030656706657716245">ಪ್ರಿಂಟರ್ ಸೇರಿಸಿ</translation>
+<translation id="8030852056903932865">ಅನುಮೋದಿಸಿ</translation>
 <translation id="8032244173881942855">ಟ್ಯಾಬ್‌‌ಗೆ ಬಿತ್ತರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="8033827949643255796">ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{&amp;ಅಜ್ಞಾತ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲವನ್ನು ತೆರೆಯಿರಿ}=1{&amp;ಅಜ್ಞಾತ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ}one{&amp;ಅಜ್ಞಾತ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲಾ (#) ಅನ್ನು ತೆರೆಯಿರಿ}other{&amp;ಅಜ್ಞಾತ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲಾ (#) ಅನ್ನು ತೆರೆಯಿರಿ}}</translation>
@@ -5411,6 +5446,7 @@
 <translation id="8472623782143987204">ಹಾರ್ಡ್‌ವೇರ್-ಹಿಂತಿರುಗಿಸಿದೆ</translation>
 <translation id="8473863474539038330">ವಿಳಾಸಗಳು ಮತ್ತು ಇನ್ನಷ್ಟು</translation>
 <translation id="8475313423285172237">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿನ ಮತ್ತೊಂದು ಪ್ರೋಗ್ರಾಂ Chrome ಕಾರ್ಯನಿರ್ವಹಿಸುವ ವಿಧಾನವನ್ನು ಬದಲಿಸಬಹುದಾದಂತಹ ವಿಸ್ತರಣೆಯನ್ನು ಸೇರಿಸಿದೆ.</translation>
+<translation id="8476659515398963495">ಅಂಟಿಸಲಾದ ಈ ಡೇಟಾ, ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಸುರಕ್ಷತೆ ನೀತಿಗಳನ್ನು ಉಲ್ಲಂಘಿಸುತ್ತಿದೆ. ಹಾಗಿದ್ದರೂ ನೀವು ಮುಂದುವರಿಯಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="8477241577829954800">ಬದಲಿ ಇರಿಸಲಾಗಿದೆ</translation>
 <translation id="8477384620836102176">&amp;ಸಾಮಾನ್ಯ</translation>
 <translation id="8480082892550707549">ಈ ಮೊದಲು ಈ ಸೈಟ್‌ನಿಂದ ನೀವು ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ್ದರೂ ಕೂಡಾ, ಸೈಟ್ ತಾತ್ಕಾಲಿಕವಾಗಿ ಅಸುರಕ್ಷಿತವಾಗಿರಬಹುದು (ಹ್ಯಾಕ್ ಆಗಿರಬಹುದು). ಈ ಫೈಲ್ ಅನ್ನು ನಂತರ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
@@ -5464,6 +5500,7 @@
 <translation id="8547013269961688403">ಪೂರ್ಣಪರದೆ ವರ್ಧಕವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="85486688517848470">ಮೇಲಿನ-ಸಾಲುಗಳ ಕೀಗಳ ನಡುವಳಿಕೆಯನ್ನು ಬದಲಾಯಿಸಲು ಹುಡುಕಾಟದ ಕೀ ಅನ್ನು ಒತ್ತಿ ಹಿಡಿಯಿರಿ</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 ಐಟಂ}one{# ಐಟಂಗಳು}other{# ಐಟಂಗಳು}}</translation>
+<translation id="8550165047974571882">ನೀವು ಎಲ್ಲಾ <ph name="ORIGIN" /> ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚುವವರೆಗೆ, <ph name="FOLDERNAME" /> ನಲ್ಲಿ ಇರುವ ಫೈಲ್‌ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಲು <ph name="ORIGIN" /> ಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ</translation>
 <translation id="8551388862522347954">ಪರವಾನಗಿಗಳು</translation>
 <translation id="8553342806078037065">ಇತರ ವ್ಯಕ್ತಿಗಳನ್ನು ನಿರ್ವಹಿಸು</translation>
 <translation id="8554899698005018844">ಭಾಷೆ ನಮೂದಿಸಿಲ್ಲ</translation>
@@ -5522,6 +5559,7 @@
 <translation id="8637688295594795546">ಸಿಸ್ಟಂ ಅಪ್‌ಡೇಟ್‌‌ ಲಭ್ಯವಿದೆ. ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಿದ್ಧಗೊಳ್ಳುತ್ತಿದೆ...</translation>
 <translation id="8639047128869322042">ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್‌ವೇರ್‌ಗಾಗಿ ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - ಪೋರ್ಟ್</translation>
+<translation id="8641606876632989680">ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್ ಮೂಲಕ ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, Chrome ನಿಮಗೆ ಸೂಚನೆ ನೀಡುತ್ತದೆ</translation>
 <translation id="8642900771896232685">2 ಸೆಕೆಂಡುಗಳು</translation>
 <translation id="8642947597466641025">ಪಠ್ಯವನ್ನು ದೊಡ್ಡದಾಗಿ ಮಾಡಿಕೊಳ್ಳಿ</translation>
 <translation id="8644655801811752511">ಈ ಭದ್ರತೆ ಕೀ ಅನ್ನು ಮರುಹೊಂದಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಕೀ ಅನ್ನು ಮರುಸೇರ್ಪಡಿಸಿದ ನಂತರ, ಅದನ್ನು ಕೂಡಲೇ ಮರುಹೊಂದಿಸಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
@@ -5571,6 +5609,7 @@
 <translation id="869884720829132584">ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಮೆನು</translation>
 <translation id="869891660844655955">ಅವಧಿ ಮುಗಿಯುವ ದಿನಾಂಕ</translation>
 <translation id="8703346390800944767">ಜಾಹೀರಾತು ಸ್ಕಿಪ್ ಮಾಡಿ</translation>
+<translation id="870341961648617780">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಹಾಗೂ ಸುಧಾರಿತ ಸುರಕ್ಷತೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="8705331520020532516">ಕ್ರಮ ಸಂಖ್ಯೆ</translation>
 <translation id="8705580154597116082">ಫೋನ್ ಮೂಲಕ ವೈ-ಫೈ ಲಭ್ಯವಿದೆ</translation>
 <translation id="8705629851992224300">ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀಯನ್ನು ಓದಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation>
@@ -5616,6 +5655,7 @@
 <translation id="874689135111202667">{0,plural, =1{ಈ ಸೈಟ್‌ಗೆ ಒಂದು ಫೈಲ್‌ ಅನ್ನು ಅಪ್‌ಲೋಡ್‌ ಮಾಡಬೇಕೇ?}one{ಈ ಸೈಟ್‌ಗೆ # ಫೈಲ್‌ಗಳನ್ನು ಅಪ್‌ಲೋಡ್‌ ಮಾಡಬೇಕೇ?}other{ಈ ಸೈಟ್‌ಗೆ # ಫೈಲ್‌ಗಳನ್ನು ಅಪ್‌ಲೋಡ್‌ ಮಾಡಬೇಕೇ?}}</translation>
 <translation id="8748384418490037181">Smart Lock ಆಯ್ಕೆಗಳು</translation>
 <translation id="8749863574775030885">ಅಪರಿಚಿತ ಮಾರಾಟಗಾರರಿಂದ USB ಸಾಧನಗಳನ್ನು ಪ್ರವೇಶಿಸಿ</translation>
+<translation id="8750133148106010815">Google Play ಪ್ರಾರಂಭಿಸಲು, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡುವುದು ಮತ್ತು ಈ Chromebook ಅನ್ನು ಫ್ಯಾಕ್ಟರಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಮರುಹೊಂದಿಸುವುದನ್ನು<ph name="ORGANIZATION_NAME" /> ಅಗತ್ಯಗೊಳಿಸಿದೆ.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ಒಂದು ಸೀರಿಯಲ್ ಪೋರ್ಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಬಯಸುತ್ತದೆ</translation>
 <translation id="8754200782896249056">&lt;p&gt;ಬೆಂಬಲಿತ ಡೆಸ್ಕ್‌ಟಾಪ್‌ ಪರಿಸರದ ಅಡಿಯಲ್ಲಿ <ph name="PRODUCT_NAME" /> ಅನ್ನು ರನ್‌ ಮಾಡುವಾಗ, ಸಿಸ್ಟಂನ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಆದಾಗ್ಯೂ ನಿಮ್ಮ ಸಿಸ್ಟಂಗೆ ಬೆಂಬಲ ಸಿಗುತ್ತಿಲ್ಲ ಇಲ್ಲವೇ ನಿಮ್ಮ ಸಿಸ್ಟಂ ಕಾನ್ಫಿಗರೇಶನ್‌ ಪ್ರಾರಂಭಿಸುವಲ್ಲಿ ಸಮಸ್ಯೆ ಇದೆ.&lt;/p&gt;
 
@@ -5670,6 +5710,7 @@
 <translation id="8809147117840417135">ತಿಳಿ ಕೆನ್ನೀಲಿ</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="8813811964357448561">ಕಾಗದದ ಹಾಳೆ</translation>
+<translation id="8813872945700551674">"<ph name="EXTENSION_NAME" />" ಅನ್ನು ಅನುಮೋದಿಸಲು ಪೋಷಕರ ಬಳಿ ವಿನಂತಿಸಿ</translation>
 <translation id="8813969267212093033">ಸಿಸ್ಟಂ ಪಠ್ಯವನ್ನು ಈ ಭಾಷೆಯಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ</translation>
 <translation id="8814190375133053267">ವೈ-ಫೈ</translation>
 <translation id="8814687660896548945">ನಿರೀಕ್ಷಿಸಿ, ಆರ್ಕೈವ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation>
@@ -5951,6 +5992,7 @@
 </translation>
 <translation id="9203904171912129171">ಸಾಧನವನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="9203962528777363226">ಈ ಸಾಧನದ ನಿರ್ವಾಹಕರು ಸೇರಿಸುವ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ</translation>
+<translation id="9211177926627870898">ಅಪ್‌ಡೇಟ್ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="9214520840402538427">ಓಹ್! ಇನ್‌ಸ್ಟಾಲೇಶನ್-ಟೈಮ್-ಆ್ಯಟ್ರಿಬ್ಯೂಷನ್ ಅವಧಿ ಮುಗಿದಿದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಬೆಂಬಲ ಪ್ರತಿನಿಧಿಯನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="9214695392875603905">Cupcake</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" ಸೇರಿಸಲಾಗಿದೆ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 7ccffc7d..e8a0b0d 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">아래 앱의 데이터도 삭제하시겠습니까?</translation>
 <translation id="1045692658517323508">{0,plural, =1{1분 이내로 업데이트해 주세요}other{#분 이내로 업데이트해 주세요}}</translation>
 <translation id="1046635659603195359">다른 기기의 Google 어시스턴트에서 이미 Voice Match를 설정한 것 같습니다. 이전에 녹음된 음성을 사용하여 이 기기에서 음성 모델을 만들 수 있습니다. 이 작업은 최대 1분 정도 걸립니다.</translation>
+<translation id="104710386808485638">Linux를 다시 시작하시겠습니까?</translation>
 <translation id="1047431265488717055">링크 텍스트 복사(&amp;X)</translation>
 <translation id="1048286738600630630">디스플레이</translation>
 <translation id="1049743911850919806">시크릿</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166"><ph name="TOKEN_NAME" />에 로그인하여 클라이언트 인증서를 내보내세요.</translation>
 <translation id="1163931534039071049">프레임 소스 보기(&amp;V)</translation>
 <translation id="1164674268730883318"><ph name="DEVICE_TYPE" />에서 Smart Lock을 사용 중지하시겠습니까?</translation>
+<translation id="1164891049599601209">사기성 사이트에서 입력됨</translation>
 <translation id="1164899421101904659">PIN 잠금 해제 키 입력</translation>
 <translation id="1165039591588034296">오류</translation>
 <translation id="1166212789817575481">오른쪽 탭 닫기</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">자동 키오스크 모드</translation>
 <translation id="1545775234664667895">테마('<ph name="THEME_NAME" />')를 설치했습니다.</translation>
 <translation id="1546280085599573572">홈 버튼을 클릭하면 표시되는 페이지가 이 확장 프로그램으로 인해 변경되었습니다.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" />님이 다음 작업을 실행할 수 있는 <ph name="EXTENSION_TYPE" />을(를) 설치하려고 합니다.</translation>
 <translation id="1549275686094429035">ARC 사용 설정됨</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" />에서 <ph name="VOLUME_NAME" />에 액세스하려고 합니다. 내 파일을 수정하거나 삭제할 수 있습니다.</translation>
 <translation id="1553538517812678578">무제한</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">Plugin VM</translation>
 <translation id="1679810534535368772">종료하시겠습니까?</translation>
 <translation id="167983332380191032">관리 서비스에서 HTTP 오류를 전송했습니다.</translation>
+<translation id="1680841347983561661">잠시 후 다시 Google Play를 시작해 보세요.</translation>
 <translation id="1680849702532889074">Linux 애플리케이션을 설치하는 중에 오류가 발생했습니다.</translation>
 <translation id="16815041330799488">사이트에서 클립보드에 복사된 텍스트 및 이미지를 확인하도록 허용하지 않음</translation>
 <translation id="1682548588986054654">새 시크릿 창</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" />이(가) 다운되었습니다. 확장 프로그램을 다시 로드하려면 이 풍선을 클릭하세요.</translation>
 <translation id="2025891858974379949">안전하지 않은 콘텐츠</translation>
 <translation id="202918510990975568">비밀번호를 입력하여 보안을 구성하고 로그인하세요.</translation>
+<translation id="2030672406208960151">복구 터미널 열기</translation>
 <translation id="2034346955588403444">다른 Wi-Fi 네트워크 추가</translation>
 <translation id="203574396658008164">잠금 화면에서 메모 작성 사용</translation>
 <translation id="2037445849770872822">이 Google 계정에 감독 기능이 설정되었습니다. 더 많은 자녀 보호 기능을 설정하려면 계속을 선택하세요.
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">PIN 또는 비밀번호</translation>
 <translation id="2224444042887712269"><ph name="OWNER_EMAIL" />의 설정입니다.</translation>
 <translation id="2224551243087462610">폴더 이름 수정</translation>
+<translation id="2225864335125757863">계정 보호를 위해 다음 비밀번호를 즉시 변경하세요.</translation>
 <translation id="2226449515541314767">이 사이트는 MIDI 기기를 완전히 제어할 수 없도록 차단되었습니다.</translation>
 <translation id="222704500187107962">이 예외는 현재 시크릿 모드 세션을 종료한 후 자동으로 삭제됩니다.</translation>
 <translation id="2227179592712503583">추천 삭제</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">홈으로 이동</translation>
 <translation id="2387458720915042159">프록시 연결 유형</translation>
 <translation id="2391419135980381625">표준 글꼴</translation>
+<translation id="2392163307141705938">부모님이 설정한 <ph name="IDS_SHORT_PRODUCT_NAME" /> 사용 제한 시간에 도달했습니다.</translation>
 <translation id="2392369802118427583">활성화</translation>
 <translation id="2394566832561516196">새로고침하면 설정이 삭제됩니다.</translation>
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> 기기가 엔터프라이즈 관리용으로 등록되었지만 애셋과 위치 정보를 전송하지 못했습니다. 기기의 관리 콘솔에서 애셋과 위치 정보를 직접 입력하세요.</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">오디오 공유</translation>
 <translation id="2480868415629598489">복사하고 붙여넣는 데이터 수정</translation>
 <translation id="2482878487686419369">알림</translation>
+<translation id="2483610039979585156">모든 <ph name="ORIGIN" /> 탭을 닫을 때까지 <ph name="ORIGIN" />에서 <ph name="FILENAME" /> 파일을 수정할 수 있게 됩니다.</translation>
 <translation id="2484959914739448251">동기화된 모든 기기 및 Google 계정에서 인터넷 사용 기록을 삭제하려면 <ph name="BEGIN_LINK" />암호를 입력<ph name="END_LINK" />하세요.</translation>
 <translation id="2485005079599453134">비밀번호가 기기에 저장됨</translation>
 <translation id="2485422356828889247">제거</translation>
@@ -1299,6 +1307,7 @@
 <translation id="274290345632688601">Linux 앱 및 파일 복원 중</translation>
 <translation id="2743387203779672305">클립보드로 복사</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" />이(가) 일시중지됨</translation>
 <translation id="2749756011735116528"><ph name="PRODUCT_NAME" />에 로그인</translation>
 <translation id="2749881179542288782">영문 철자 및 문법 검사</translation>
 <translation id="2751739896257479635">EAP 2단계 인증</translation>
@@ -1307,6 +1316,7 @@
 <translation id="275662540872599901">화면 꺼짐</translation>
 <translation id="2762441749940182211">카메라 차단됨</translation>
 <translation id="2765217105034171413">작게</translation>
+<translation id="2766161002040448006">부모님에게 묻기</translation>
 <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" />(으)로 로그인되었습니다.</translation>
 <translation id="2770465223704140727">목록에서 삭제</translation>
 <translation id="2770690685823456775">비밀번호를 다른 폴더로 내보냅니다.</translation>
@@ -1558,6 +1568,7 @@
 <translation id="3115580024857770654">모두 접기</translation>
 <translation id="3117362587799608430">도크가 완전히 호환되지 않음</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> 도움말</translation>
+<translation id="3118654181216384296">잠시 후 다시 Linux를 시작해 보세요.</translation>
 <translation id="3120430004221004537">기기(<ph name="DEVICE_NAME" />)에서 해당 작업에 필요한 암호화가 수행되지 않았습니다.</translation>
 <translation id="3121793941267913344"><ph name="IDS_SHORT_PRODUCT_NAME" /> 기기 재설정</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1567,6 +1578,7 @@
 <translation id="3127156390846601284">기기에 저장된 데이터 중 표시된 모든 사이트의 데이터가 삭제됩니다. 계속하시겠습니까?</translation>
 <translation id="3127860049873093642">충전 및 성능 문제를 방지하려면 호환되는 Dell 또는 USB 타입-C 전원 어댑터를 사용하세요.</translation>
 <translation id="3129173833825111527">왼쪽 여백</translation>
+<translation id="3129215702932019810">애플리케이션 실행 오류</translation>
 <translation id="3130528281680948470">기기가 초기화되고 사용자 계정과 로컬 데이터가 모두 삭제됩니다. 이 작업은 취소할 수 없습니다.</translation>
 <translation id="313205617302240621">비밀번호 찾기</translation>
 <translation id="3132996321662585180">매일 새로고침</translation>
@@ -1782,6 +1794,7 @@
 <translation id="3441653493275994384">화면</translation>
 <translation id="3445925074670675829">USB-C 기기</translation>
 <translation id="344630545793878684">다수의 웹사이트에서 데이터 읽기</translation>
+<translation id="3448086340637592206">Chrome 및 Chrome OS 추가 약관</translation>
 <translation id="3448492834076427715">계정 업데이트</translation>
 <translation id="3449839693241009168"><ph name="SEARCH_KEY" /> 키를 눌러 <ph name="EXTENSION_NAME" />에 명령 보내기</translation>
 <translation id="3450157232394774192">유휴 상태 점유율</translation>
@@ -2129,6 +2142,7 @@
 <translation id="3873423927483480833">PIN 표시</translation>
 <translation id="3873915545594852654">ARC++에 문제가 발생했습니다.</translation>
 <translation id="3879748587602334249">다운로드 관리자</translation>
+<translation id="3881321138433527084">세이프 브라우징이 중지되었습니다. 안전한 웹 탐색을 위해 세이프 브라우징을 켜세요.</translation>
 <translation id="3882165008614329320">카메라 또는 파일의 기존 동영상</translation>
 <translation id="3886446263141354045">사용자의 사이트 액세스 요청이 <ph name="NAME" />님에게 전송되었습니다.</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" />(으)로 메모 작성</translation>
@@ -2468,6 +2482,7 @@
 <translation id="4384652540891215547">확장 프로그램 활성화</translation>
 <translation id="438503109373656455">말</translation>
 <translation id="4387004326333427325">인증서가 원격으로 거부됨</translation>
+<translation id="4387890294700445764">유출된 비밀번호</translation>
 <translation id="4389091756366370506">사용자 <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{시크릿 모드}other{열려 있는 시크릿 창 #개}}</translation>
 <translation id="439266289085815679">블루투스 구성은 <ph name="USER_EMAIL" />님이 관리합니다.</translation>
@@ -2499,6 +2514,7 @@
 <translation id="4429030830601238961">이 데이터는 조직의 보안 정책을 위반하므로 붙여넣을 수 없습니다.</translation>
 <translation id="4430019312045809116">볼륨</translation>
 <translation id="4430369329743628066">북마크 추가됨</translation>
+<translation id="4432621511648257259">비밀번호가 잘못됨</translation>
 <translation id="4434045419905280838">팝업 및 리디렉션</translation>
 <translation id="443454694385851356">이전(안전하지 않음)</translation>
 <translation id="443475966875174318">호환되지 않는 애플리케이션 업데이트 또는 삭제</translation>
@@ -2748,6 +2764,7 @@
 <translation id="4808667324955055115">팝업 차단됨</translation>
 <translation id="480990236307250886">홈페이지 열기</translation>
 <translation id="4811503964269049987">선택한 탭 그룹화</translation>
+<translation id="4811818760963189951">기록 동기화를 비활성화했으므로 사용 중지되었습니다.</translation>
 <translation id="4813136279048157860">내 이미지</translation>
 <translation id="4813512666221746211">네트워크 오류</translation>
 <translation id="4814378367953456825">지문 이름 입력</translation>
@@ -2777,6 +2794,7 @@
 <translation id="4850669014075537160">스크롤</translation>
 <translation id="4850886885716139402">보기</translation>
 <translation id="4853020600495124913">새 창에서 열기(&amp;N)</translation>
+<translation id="4854317507773910281">승인을 위한 부모 계정 선택</translation>
 <translation id="485480310608090163">추가 설정 및 권한</translation>
 <translation id="4856478137399998590">모바일 데이터 서비스가 활성화되었으며 사용할 준비가 되었습니다.</translation>
 <translation id="4856855265648545577">태블릿 모드일 때 실행기에 런처, 뒤로, 개요 버튼을 표시합니다. ChromeVox(음성 피드백) 또는 스위치 제어를 사용 중일 때 켜집니다.</translation>
@@ -2913,10 +2931,12 @@
 <translation id="5040823038948176460">추가 콘텐츠 설정</translation>
 <translation id="5042282098504489593"><ph name="USB_DEVICE_NAME" />을(를) Linux에 연결하려면 설정으로 이동하세요.</translation>
 <translation id="5043913660911154449">또는 프린터 PPD 지정 <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">암호로 동기화 데이터를 암호화했으므로 사용 중지됨</translation>
 <translation id="5045550434625856497">비밀번호가 잘못되었습니다.</translation>
 <translation id="504561833207953641">기존 브라우저 세션에서 여는 중입니다.</translation>
 <translation id="5047421709274785093">사이트에서 모션 및 조도 센서 사용 차단</translation>
 <translation id="5050042263972837708">그룹 이름</translation>
+<translation id="5051073330196664891">Google 일반 서비스 약관(uToS)</translation>
 <translation id="5051836348807686060">선택한 언어의 맞춤법 검사가 지원되지 않습니다.</translation>
 <translation id="5052499409147950210">사이트 수정</translation>
 <translation id="5053604404986157245">임의로 생성된 TPM 비밀번호는 사용할 수 없습니다. Powerwash 이후에는 정상입니다.</translation>
@@ -2954,6 +2974,7 @@
 <translation id="5097002363526479830">'<ph name="NAME" />' 네트워크에 연결하지 못했습니다: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">모든 북마크 열기</translation>
 <translation id="5101839224773798795">커서가 멈추면 자동으로 클릭</translation>
+<translation id="5107443654503185812">확장 프로그램이 세이프 브라우징을 사용 중지함</translation>
 <translation id="5108967062857032718">설정 - Android 앱 삭제</translation>
 <translation id="5109044022078737958">미미</translation>
 <translation id="5111646998522066203">시크릿 모드 종료</translation>
@@ -3040,6 +3061,7 @@
 <translation id="523505283826916779">접근성 설정</translation>
 <translation id="5235750401727657667">새 탭을 열 때 표시되는 페이지 변경</translation>
 <translation id="5238278114306905396">'<ph name="EXTENSION_NAME" />' 앱이 자동으로 삭제되었습니다.</translation>
+<translation id="5239730228370806996">드롭된 데이터가 조직의 보안 정책을 위반합니다. 계속 진행하시겠습니까?</translation>
 <translation id="5241128660650683457">방문하는 웹사이트의 모든 데이터 읽기</translation>
 <translation id="5242724311594467048">'<ph name="EXTENSION_NAME" />'을(를) 사용하시겠습니까?</translation>
 <translation id="5243522832766285132">잠시 후 다시 시도해 주세요.</translation>
@@ -3327,6 +3349,7 @@
 <translation id="5618075537869101857">키오스크 애플리케이션을 시작할 수 없습니다.</translation>
 <translation id="5618333180342767515">(몇 분이 걸릴 수 있음)</translation>
 <translation id="56197088284879152">원격 기기(<ph name="DEVICE_NAME" />)에 대한 연결이 혼잡합니다.</translation>
+<translation id="5620163320393916465">저장된 비밀번호 없음</translation>
 <translation id="5620549857835247159">태블릿 모드일 때 실행기에 런처, 뒤로, 최근 사용 버튼을 표시합니다.</translation>
 <translation id="5620568081365989559">DevTools에서 <ph name="FOLDER_PATH" />에 대한 완전한 액세스를 요청합니다. 민감한 정보를 노출하지 않도록 주의하시기 바랍니다.</translation>
 <translation id="5620612546311710611">사용 통계</translation>
@@ -3420,6 +3443,7 @@
 <translation id="5747785204778348146">개발자 - 불안정</translation>
 <translation id="5747809636523347288"><ph name="URL" /> 붙여넣기 및 이동(&amp;S)</translation>
 <translation id="5750324801516359607">멀리 있음</translation>
+<translation id="5751887393582880060">업로드가 조직의 보안 정책을 위반합니다. 계속 진행하시겠습니까?</translation>
 <translation id="5756163054456765343">고객센터(H)</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" />을(를) 통해 인쇄하려고 전송한 문서를 <ph name="APP_NAME" />에서 읽을 수 있습니다.</translation>
 <translation id="5763751966069581670">USB 기기를 찾을 수 없습니다.</translation>
@@ -3629,6 +3653,7 @@
 <translation id="6040852767465482106">익명 ID</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google의 위치 서비스는 Wi-Fi, 모바일 네트워크, 센서 등의 소스를 활용하여 기기의 위치를 추정합니다.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />기기에서 기본 위치 설정을 사용 중지하여 위치 정보를 끌 수 있습니다. 또한 위치 설정에서 위치 파악에 Wi‑Fi, 모바일 네트워크, 센서의 사용을 중지할 수도 있습니다.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409">모든 <ph name="ORIGIN" /> 탭을 닫을 때까지 <ph name="ORIGIN" />에서 <ph name="FOLDERNAME" />의 파일을 볼 수 있게 됩니다.</translation>
 <translation id="6041155700700864984">전체화면 종료</translation>
 <translation id="604124094241169006">자동</translation>
 <translation id="6042308850641462728">더보기</translation>
@@ -3690,6 +3715,7 @@
 <translation id="6104311680260824317">기기가 도메인에 가입하지 못했습니다. 서버가 지정된 Kerberos 암호화 유형을 지원하지 않습니다. '옵션 더보기'에서 암호화 설정을 확인하세요.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" />에서 기기 업데이트를 즉시 요구합니다.</translation>
 <translation id="6106186653986077033">플러그인 VM에 라이선스 필요</translation>
+<translation id="6107047744202598802">웹사이트에서 방문 내역을 기억하고 웹 전반에서 사용자를 추적하도록 허용합니다.</translation>
 <translation id="6112294629795967147">터치하여 크기 조정</translation>
 <translation id="6112727384379533756">티켓 추가</translation>
 <translation id="6112931163620622315">휴대전화 확인</translation>
@@ -3768,6 +3794,7 @@
 <translation id="622537739776246443">프로필이 삭제됩니다</translation>
 <translation id="6225475702458870625">데이터 연결을 <ph name="PHONE_NAME" />에서 사용할 수 있습니다.</translation>
 <translation id="6226777517901268232">비공개 키 파일(선택사항)</translation>
+<translation id="6227280783235722609">확장 프로그램</translation>
 <translation id="6228691855869374890">이 사이트는 MIDI 기기를 완전히 제어할 수 있습니다.</translation>
 <translation id="6228720835160974792">이 이미지의 QR 코드 생성</translation>
 <translation id="6229890768313448549">Google Play 서비스 약관을 로드할 수 없습니다. 다시 시도해 주세요.</translation>
@@ -3819,6 +3846,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" />은(는) 위험할 수 있으므로 다운로드하지 않습니다.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{네트워크에 새로운 프린터 있음}other{네트워크에 새로운 프린터 있음}}</translation>
 <translation id="6286708577777130801">저장된 암호 세부정보</translation>
+<translation id="6291163159361301370">Linux 시작을 위해 <ph name="ORGANIZATION_NAME" />에서 데이터를 백업하고 이 Chromebook을 초기화하도록 요구하고 있습니다.</translation>
 <translation id="6291949900244949761">사이트에서 USB 기기에 액세스하려고 할 때 확인(권장)</translation>
 <translation id="6291953229176937411">Finder에서 보기(&amp;S)</translation>
 <translation id="6295158916970320988">모든 사이트</translation>
@@ -4015,6 +4043,7 @@
 <translation id="6561726789132298588">입력</translation>
 <translation id="656293578423618167">파일 경로 또는 이름이 너무 깁니다. 짧은 이름으로 변경하거나 다른 위치에 저장하세요.</translation>
 <translation id="6563469144985748109">관리자가 아직 승인하지 않았습니다.</translation>
+<translation id="6565955132287672866">기기가 제대로 종료되지 않았습니다. Linux(베타)를 사용하려면 다시 시작해야 합니다.</translation>
 <translation id="6567688344210276845">페이지 작업의 아이콘('<ph name="ICON" />')을 로드하지 못했습니다.</translation>
 <translation id="6569934958368283244">다른 사용자</translation>
 <translation id="657402800789773160">페이지 새로고침(&amp;R)</translation>
@@ -4512,6 +4541,7 @@
 <translation id="7258225044283673131">애플리케이션이 응답하지 않습니다. '강제 종료'를 선택하여 앱을 닫으세요.</translation>
 <translation id="7258697411818564379">PIN이 추가됨</translation>
 <translation id="7262004276116528033">이 로그인 서비스는 <ph name="SAML_DOMAIN" />에서 호스팅됩니다.</translation>
+<translation id="7266898409676782635"><ph name="DEVICE_TYPE" /> 관련 도움말. 혜택 및 소식을 받아 보고 의견을 공유하세요. 구독은 언제든지 취소할 수 있습니다.</translation>
 <translation id="7268127947535186412">기기 소유자가 관리하는 설정입니다.</translation>
 <translation id="7270858098575133036">사이트에서 시스템 전용 메시지를 사용하여 MIDI 기기에 액세스하려고 할 때 확인</translation>
 <translation id="7272674038937250585">제공된 설명이 없음</translation>
@@ -4585,6 +4615,7 @@
 <translation id="7364796246159120393">파일 선택</translation>
 <translation id="7366415735885268578">사이트 추가</translation>
 <translation id="7366909168761621528">인터넷 사용정보</translation>
+<translation id="7367714965999718019">QR 코드 생성기</translation>
 <translation id="736877393389250337"><ph name="ALTERNATIVE_BROWSER_NAME" />에서 <ph name="URL" /> 페이지를 열 수 없습니다. 시스템 관리자에게 문의하세요.</translation>
 <translation id="7370592524170198497">이더넷 EAP:</translation>
 <translation id="7371006317849674875">시작 시간</translation>
@@ -4842,8 +4873,10 @@
 <translation id="7737238973539693982">Linux(베타) 삭제</translation>
 <translation id="7740996059027112821">표준</translation>
 <translation id="7744047395460924128">인쇄 기록 보기</translation>
+<translation id="7744192722284567281">정보 유출에 포함됨</translation>
 <translation id="7746457520633464754">Chrome은 위험한 앱 및 사이트를 감지하기 위해 일부 방문 페이지의 URL, 제한적인 시스템 정보, 페이지 콘텐츠 일부를 Google로 전송합니다.</translation>
 <translation id="7750228210027921155">PIP 모드</translation>
+<translation id="7751229152614300329">세이프 브라우징이 최신 상태이며 유해한 사이트와 다운로드를 차단하고 있습니다.</translation>
 <translation id="7751260505918304024">모두 표시</translation>
 <translation id="7754704193130578113">다운로드 전에 각 파일의 저장 위치 확인</translation>
 <translation id="7755287808199759310">부모님이 차단 해제할 수 있습니다.</translation>
@@ -4991,6 +5024,7 @@
 <translation id="7910768399700579500">새 폴더(&amp;N)</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">서버에서 비밀번호가 변경되었습니다. 로그아웃한 다음 다시 로그인해 주세요.</translation>
+<translation id="7914583336730284547">드롭된 파일이 조직의 보안 정책을 위반합니다. 계속 진행하시겠습니까?</translation>
 <translation id="7915457674565721553">자녀 보호 기능을 설정하려면 인터넷에 연결하세요.</translation>
 <translation id="7915471803647590281">의견을 보내기 전에 어떤 문제인지 알려주세요.</translation>
 <translation id="7918257978052780342">등록</translation>
@@ -5088,6 +5122,7 @@
 <translation id="8028803902702117856"><ph name="SIZE" /> 다운로드 중, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">크기</translation>
 <translation id="8030656706657716245">프린터 추가</translation>
+<translation id="8030852056903932865">승인</translation>
 <translation id="8032244173881942855">탭을 전송할 수 없습니다.</translation>
 <translation id="8033827949643255796">선택됨</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{시크릿 창에서 모두 열기(I)}=1{시크릿 창에서 열기(I)}other{시크릿 창에서 #개 모두 열기(I)}}</translation>
@@ -5408,6 +5443,7 @@
 <translation id="8472623782143987204">하드웨어 지원</translation>
 <translation id="8473863474539038330">주소 및 기타</translation>
 <translation id="8475313423285172237">컴퓨터의 다른 프로그램에서 Chrome 작동에 영향을 줄 수 있는 확장 프로그램을 추가했습니다.</translation>
+<translation id="8476659515398963495">붙여넣은 데이터가 조직의 보안 정책을 위반합니다. 계속 진행하시겠습니까?</translation>
 <translation id="8477241577829954800">대체됨</translation>
 <translation id="8477384620836102176">일반(&amp;G)</translation>
 <translation id="8480082892550707549">이전에 이 사이트에서 파일을 다운로드한 경우에도 사이트가 일시적으로 안전하지 않을(해킹됨) 수 있습니다. 나중에 다운로드하세요.</translation>
@@ -5461,6 +5497,7 @@
 <translation id="8547013269961688403">전체화면 돋보기 사용</translation>
 <translation id="85486688517848470">맨 위 키의 동작을 전환하려면 검색 키를 길게 누름</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{항목 1개}other{항목 #개}}</translation>
+<translation id="8550165047974571882">모든 <ph name="ORIGIN" /> 탭을 닫을 때까지 <ph name="ORIGIN" />에서 <ph name="FOLDERNAME" />의 파일을 수정할 수 있게 됩니다.</translation>
 <translation id="8551388862522347954">라이선스</translation>
 <translation id="8553342806078037065">다른 사용자 관리</translation>
 <translation id="8554899698005018844">언어가 없음</translation>
@@ -5519,6 +5556,7 @@
 <translation id="8637688295594795546">시스템 업데이트 사용가능. 다운로드 준비 중…</translation>
 <translation id="8639047128869322042">유해한 소프트웨어 확인 중...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - 포트</translation>
+<translation id="8641606876632989680">유출된 비밀번호로 로그인하면 Chrome에서 알림을 표시함</translation>
 <translation id="8642900771896232685">2초</translation>
 <translation id="8642947597466641025">텍스트 확대</translation>
 <translation id="8644655801811752511">보안 키를 재설정할 수 없습니다. 보안 키를 삽입한 직후 키를 재설정해 보세요.</translation>
@@ -5568,6 +5606,7 @@
 <translation id="869884720829132584">애플리케이션 메뉴</translation>
 <translation id="869891660844655955">유효기간</translation>
 <translation id="8703346390800944767">광고 건너뛰기</translation>
+<translation id="870341961648617780">세이프 브라우징 및 고급 보안 설정</translation>
 <translation id="8705331520020532516">일련번호</translation>
 <translation id="8705580154597116082">휴대전화를 통해 Wi-Fi 사용 가능</translation>
 <translation id="8705629851992224300">보안 키를 읽을 수 없습니다.</translation>
@@ -5613,6 +5652,7 @@
 <translation id="874689135111202667">{0,plural, =1{파일 1개를 이 사이트에 업로드하시겠습니까?}other{파일 #개를 이 사이트에 업로드하시겠습니까?}}</translation>
 <translation id="8748384418490037181">Smart Lock 옵션</translation>
 <translation id="8749863574775030885">알 수 없는 공급업체의 USB 기기에 액세스</translation>
+<translation id="8750133148106010815">Google Play 시작을 위해 <ph name="ORGANIZATION_NAME" />에서 데이터를 백업하고 이 Chromebook을 초기화하도록 요구하고 있습니다.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" />에서 시리얼 포트에 연결하려고 합니다.</translation>
 <translation id="8754200782896249056">&lt;p&gt;지원되는 데스크톱 환경에서 <ph name="PRODUCT_NAME" />을(를) 실행하는 경우 시스템 프록시 설정이 사용됩니다.  하지만 시스템이 지원되지 않거나 시스템 설정을 실행하는 데 문제가 있었습니다.&lt;/p&gt;
 
@@ -5667,6 +5707,7 @@
 <translation id="8809147117840417135">연한 청록색</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" />에 로그인할 수 없음</translation>
 <translation id="8813811964357448561">장</translation>
+<translation id="8813872945700551674">부모님에게 ‘<ph name="EXTENSION_NAME" />’ 승인을 요청</translation>
 <translation id="8813969267212093033">시스템 텍스트가 이 언어로 표시됩니다.</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">잠시 기다려 주세요. 보관 파일을 검사하는 중입니다.</translation>
@@ -5947,6 +5988,7 @@
 <translation id="9203398526606335860">프로파일링 사용(&amp;P)</translation>
 <translation id="9203904171912129171">기기를 선택하세요.</translation>
 <translation id="9203962528777363226">이 기기의 관리자가 새로운 사용자를 추가하지 못하도록 설정함</translation>
+<translation id="9211177926627870898">업데이트 필요</translation>
 <translation id="9214520840402538427">설치 시간 속성의 시작 시간이 초과되었습니다. 지원 담당자에게 문의하시기 바랍니다.</translation>
 <translation id="9214695392875603905">컵케이크</translation>
 <translation id="9215293857209265904">'<ph name="EXTENSION_NAME" />'이(가) 추가됨</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index c4ba4d27..fd3a69db 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Дайын-даректер бул колдонмолордон да өчүрүлсүнбү?</translation>
 <translation id="1045692658517323508">{0,plural, =1{1 мүнөттүн ичинде жаңыртыңыз}other{# мүнөттүн ичинде жаңыртыңыз}}</translation>
 <translation id="1046635659603195359">Google Жардамчыңыздагы Voice Match'ти буга чейин башка түзмөктө жөндөп алган окшойсуз. Мурунку жаздырууларыңыздын негизинде үнүңүздүн үлгүсүн ушул түзмөктө даярдоого болот. Буга бир мүнөткө жетпеген убакыт керек.</translation>
+<translation id="104710386808485638">Linux өчүрүлүп күйгүзүлсүнбү?</translation>
 <translation id="1047431265488717055">Шилтеме тек&amp;стин көчүрүү</translation>
 <translation id="1048286738600630630">Дисплейлер</translation>
 <translation id="1049743911850919806">Жашыруун</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Кардардын тастыктамасын экспорттоо үчүн <ph name="TOKEN_NAME" /> кириңиз.</translation>
 <translation id="1163931534039071049">Алкак булагын &amp;карап көрүү</translation>
 <translation id="1164674268730883318"><ph name="DEVICE_TYPE" /> үчүн Smart Lock өчүрүлсүнбү?</translation>
+<translation id="1164891049599601209">Жалган сайтка киргизилди</translation>
 <translation id="1164899421101904659">PIN'ди бөгөттөн чыгаруу ачкычын киргизүү</translation>
 <translation id="1165039591588034296">Ката</translation>
 <translation id="1166212789817575481">Өтмөктөрдү оңго карай жабуу</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">Автоматтык Толук экран режими</translation>
 <translation id="1545775234664667895">"<ph name="THEME_NAME" />" темасы орнотулду</translation>
 <translation id="1546280085599573572">Бул кеңейтүү Башкы бет баскычы чыкылдатылганда көрүнө турган бетти өзгөрттү.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> төмөнкүлөрдү аткара алган <ph name="EXTENSION_TYPE" /> кеңейтүүсүн орноткону жатат:</translation>
 <translation id="1549275686094429035">ARC иштетилди</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> колдонмосу <ph name="VOLUME_NAME" /> дегенге мүмкүнчүлүк алгысы келет. Ал файлдарыңызды өзгөртүп же жок кылышы мүмкүн.</translation>
 <translation id="1553538517812678578">чексиз</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">Plugin VM</translation>
 <translation id="1679810534535368772">Чын эле чыгасызбы?</translation>
 <translation id="167983332380191032">Башкаруучу кызматтан туура эмес HTTP коду келди.</translation>
+<translation id="1680841347983561661">Google Play'ди бир нече мүнөттөн кийин иштетип көрүңүз.</translation>
 <translation id="1680849702532889074">Linux колдонмосун орнотуу учурунда ката кетти.</translation>
 <translation id="16815041330799488">Алмашуу буферине көчүрүлгөн тексттер жана сүрөттөр сайттарга көрсөтүлбөсүн</translation>
 <translation id="1682548588986054654">Жаңы жашыруун терезе</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> кыйрады. Колдонмону кайра жүктөө үчүн, бул булутчаны чыкылдатыңыз.</translation>
 <translation id="2025891858974379949">Кооптуу мазмун</translation>
 <translation id="202918510990975568">Коопсуздукту жана кирүү параметрлерин жөндөө үчүн сырсөзүңүздү киргизиңиз</translation>
+<translation id="2030672406208960151">Калыбына келтирүү терминалын ачуу</translation>
 <translation id="2034346955588403444">Башка WiFi тармагын кошуу</translation>
 <translation id="203574396658008164">Кулпуланган экран менен эскертме жазууну иштетүү</translation>
 <translation id="2037445849770872822">Бул Google аккаунтун көзөмөлдөө жөндөлдү. Ата-эненин көзөмөлүн улантып жөндөө үчүн "Улантуу" баскычын басыңыз.
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">PIN же сырсөз</translation>
 <translation id="2224444042887712269">Бул жөндөө <ph name="OWNER_EMAIL" /> дегенге таандык.</translation>
 <translation id="2224551243087462610">Куржундун аталышын өзгөртүү</translation>
+<translation id="2225864335125757863">Аккаунтуңуздун коопсуздугу үчүн төмөнкү сырсөздөрдү дароо өзгөртүңүз:</translation>
 <translation id="2226449515541314767">Бул сайт MIDI түзмөктөрүн толугу менен башкара албайт.</translation>
 <translation id="222704500187107962">Бул өзгөчө учур азыркы Жашыруун сеанстан чыкканыңызда автоматтык түрдө өчүрүлөт</translation>
 <translation id="2227179592712503583">Сунушту өчүрүү</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">Башкы бетке өтүү</translation>
 <translation id="2387458720915042159">Проксинин туташуу түрү</translation>
 <translation id="2391419135980381625">Стандарттуу арип</translation>
+<translation id="2392163307141705938">Ата-энең <ph name="IDS_SHORT_PRODUCT_NAME" /> колдонмосуна койгон чекке жеттиң.</translation>
 <translation id="2392369802118427583">Жандыруу</translation>
 <translation id="2394566832561516196">Кийинки жолу жүктөлгөндө жөндөөлөр тазаланат.</translation>
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> түзмөгүңүз ишкана башкаруусуна ийгиликтүү кабыл алынды, бирок өзүнүн менчик объектиси жана жайгашкан жери боюнча маалыматты жөнөтө албай калды. Ал маалыматты ушул түзмөктүн администратор консолунан кол менен киргизиңиз.</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">Аудио бөлүшүү</translation>
 <translation id="2480868415629598489">Көчүрүлүп, коюла турган дайындарды өзгөртүү</translation>
 <translation id="2482878487686419369">Билдирмелер</translation>
+<translation id="2483610039979585156">Бардык <ph name="ORIGIN" /> өтмөктөрү жабылмайынча <ph name="ORIGIN" /> сайты <ph name="FILENAME" /> файлын түзөтө алат</translation>
 <translation id="2484959914739448251">Бардык шайкештирилген түзмөктөрүңүздөгү жана Google аккаунтуңуздагы серептөө дайындарын тазалоо үчүн <ph name="BEGIN_LINK" />өткөрүүчү сүйлөмдү киргизиңиз<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Сырсөз бул түзмөктө сакталды</translation>
 <translation id="2485422356828889247">Орнотуудан чыгаруу</translation>
@@ -1299,6 +1307,7 @@
 <translation id="274290345632688601">Linux колдонмолору менен файлдарын калыбына келтирүү...</translation>
 <translation id="2743387203779672305">Алмашуу буферине көчүрүү</translation>
 <translation id="2745080116229976798">Microsoft Квалификациялык көз карандылык</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> тындырылды</translation>
 <translation id="2749756011735116528"><ph name="PRODUCT_NAME" /> кириңиз</translation>
 <translation id="2749881179542288782">Орфография менен грамматиканы айкалыштырып текшерүү</translation>
 <translation id="2751739896257479635">EAP 2-фазадагы аныктыгын текшерүү</translation>
@@ -1307,6 +1316,7 @@
 <translation id="275662540872599901">экран өчүк</translation>
 <translation id="2762441749940182211">Камера бөгөттөлдү</translation>
 <translation id="2765217105034171413">Кичине</translation>
+<translation id="2766161002040448006">Ата-энеңден суран</translation>
 <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" /> катары кирди.</translation>
 <translation id="2770465223704140727">Тизмеден чыгарып салуу</translation>
 <translation id="2770690685823456775">Сырсөздөрүңүздү башка папкага экспорттоңуз</translation>
@@ -1558,6 +1568,7 @@
 <translation id="3115580024857770654">Баарын жыйыштыруу</translation>
 <translation id="3117362587799608430">Док бекет толугу менен шайкеш келбейт</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> Жардам</translation>
+<translation id="3118654181216384296">Linux'ту бир нече мүнөттөн кийин иштетип көрүңүз.</translation>
 <translation id="3120430004221004537">Төмөнкү түзмөктө ушул иш-аракет толук шифрленбей калды: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">Бул <ph name="IDS_SHORT_PRODUCT_NAME" /> түзмөгүн баштапкы абалга келтириңиз</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1567,6 +1578,7 @@
 <translation id="3127156390846601284">Ушуну менен көрсөтүлгөн сайттардын бардыгы үчүн түзмөгүңүзгө сакталган бардык дайындар өчүрүлөт. Уланта бересизби?</translation>
 <translation id="3127860049873093642">Батареяны кубаттоо жана майнаптуулук маселелеринин алдын алуу үчүн шайкеш келген Dell же С тибиндеги USB кубаттагыч адаптерин колдонуңуз.</translation>
 <translation id="3129173833825111527">Сол кыры</translation>
+<translation id="3129215702932019810">Колдонмону иштетүү катасы</translation>
 <translation id="3130528281680948470">Түзмөгүңүз баштапкы абалга келтирилип, колдонуучу каттоо эсептеринин жана жергиликтүү дайындандын бардыгы өчүрүлөт. Бул аракетти артка кайтаруу мүмкүн эмес.</translation>
 <translation id="313205617302240621">Сырсөздү унутуп калдыңызбы?</translation>
 <translation id="3132996321662585180">Күндө жаңыртылсын</translation>
@@ -1782,6 +1794,7 @@
 <translation id="3441653493275994384">Экран</translation>
 <translation id="3445925074670675829">USB-C түзмөгү</translation>
 <translation id="344630545793878684">Дайын-даректериңизди бир нече вебсайттан окуңуз</translation>
+<translation id="3448086340637592206">Google Chrome жана Chrome OS'тун кошумча шарттары</translation>
 <translation id="3448492834076427715">Аккаунтту жаңыртуу</translation>
 <translation id="3449839693241009168"><ph name="SEARCH_KEY" /> буйрук жөнөтүү үчүн <ph name="EXTENSION_NAME" /> басыңыз</translation>
 <translation id="3450157232394774192">Сенек абалынын сыйымдуулук пайызы</translation>
@@ -2129,6 +2142,7 @@
 <translation id="3873423927483480833">PIN-коддорду көрсөтүү</translation>
 <translation id="3873915545594852654">Төмөнкүнү иштетүүдө ката кетти: ARC++.</translation>
 <translation id="3879748587602334249">Жүктөп алгыч</translation>
+<translation id="3881321138433527084">Коопсуз серептөө өчүк. Интернетти коопсуз колдонуу үчүн аны күйгүзүңүз.</translation>
 <translation id="3882165008614329320">Камерадагы же файлдагы учурдагы видео</translation>
 <translation id="3886446263141354045">Бул сайтка кирүү өтүнүчүңүз <ph name="NAME" /> деген колдонуучуга жөнөтүлдү</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> колдонмосунда жазылууда</translation>
@@ -2470,6 +2484,7 @@
 <translation id="4384652540891215547">Кеңейтүүнү жандыруу</translation>
 <translation id="438503109373656455">Сарала</translation>
 <translation id="4387004326333427325">Аныктыгын текшерүү тастыктамасы алыстан четке кагылды</translation>
+<translation id="4387890294700445764">Уурдалган сырсөздөр</translation>
 <translation id="4389091756366370506">Колдонуучу <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Жашыруун}other{# жашыруун терезе ачык}}</translation>
 <translation id="439266289085815679">Bluetooth конфигурациясы <ph name="USER_EMAIL" /> тарабынан көзөмөлдөнөт.</translation>
@@ -2501,6 +2516,7 @@
 <translation id="4429030830601238961">Бул дайын-даректер уюмуңуздун коопсуздук саясаттарын бузгандыктан чапталбайт.</translation>
 <translation id="4430019312045809116">Үндүн катуулугу</translation>
 <translation id="4430369329743628066">Кыстарма кошулду</translation>
+<translation id="4432621511648257259">Сырсөз туура эмес</translation>
 <translation id="4434045419905280838">Калкыма терезелер жана багыттоолор</translation>
 <translation id="443454694385851356">Эскирген (кооптуу)</translation>
 <translation id="443475966875174318">Ылайык келбеген колдонмолорду жаңыртуу же алып салуу</translation>
@@ -2750,6 +2766,7 @@
 <translation id="4808667324955055115">Калкыма терезелер бөгөттөлгөн:</translation>
 <translation id="480990236307250886">Башкы бетти ачуу</translation>
 <translation id="4811503964269049987">Тандалган топтун өтмөгү</translation>
+<translation id="4811818760963189951">Таржымалды шайкештирүүнү өчүргөнүңүзгө байланыштуу өчүрүлдү</translation>
 <translation id="4813136279048157860">Менин сүрөттөрүм</translation>
 <translation id="4813512666221746211">Тармактык ката</translation>
 <translation id="4814378367953456825">Бул манжа изине ат коюңуз</translation>
@@ -2779,6 +2796,7 @@
 <translation id="4850669014075537160">Сыдыруу</translation>
 <translation id="4850886885716139402">Көрүнүш</translation>
 <translation id="4853020600495124913">&amp;Жаңы терезеде ачуу</translation>
+<translation id="4854317507773910281">Уруксат берүү үчүн ата-эненин аккаунтун тандаңыз</translation>
 <translation id="485480310608090163">Кошумча жөндөөлөр жана сунуштар</translation>
 <translation id="4856478137399998590">Мобилдик дайындар кызматыңыз жандырылды жана колдонууга даяр</translation>
 <translation id="4856855265648545577">Жүргүзгүчтү, Артка, Жалпы маалымат баскычтарын планшет режиминдеги Текчеде көрсөтүү. ChromeVox (экрандагы текстти окуп берүү) же Switch Access функциялары иштетилгенде күйөт.</translation>
@@ -2915,10 +2933,12 @@
 <translation id="5040823038948176460">Кошумча мазмун жөндөөлөрү</translation>
 <translation id="5042282098504489593"><ph name="USB_DEVICE_NAME" /> түзмөгүн Linux менен байланыштыруу үчүн, Жөндөөлөрдү ачыңыз</translation>
 <translation id="5043913660911154449">Же принтериңиздин PPD файлын көрсөтүңүз <ph name="LINK_BEGIN" />Кеңири маалымат<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Шайкештирүү маалыматын өткөрүүчү сүйлөм менен шифрлегениңизге байланыштуу өчүрүлдү</translation>
 <translation id="5045550434625856497">Сырсөз туура эмес</translation>
 <translation id="504561833207953641">Терезе же өтмөк серепчинин учурдагы сеансында ачылат.</translation>
 <translation id="5047421709274785093">Сайттарда кыймыл жана жарык сенсорлорун колдонуу бөгөттөлсүн</translation>
 <translation id="5050042263972837708">Топтун аталышы:</translation>
+<translation id="5051073330196664891">Google'дун универсалдуу Тейлөө шарттары (уТШ)</translation>
 <translation id="5051836348807686060">Сиз тандаган тилдерде орфография текшерилбейт</translation>
 <translation id="5052499409147950210">Сайтты түзөтүү</translation>
 <translation id="5053604404986157245">Баш аламан мүнөздө түзүлгөн TPM сырсөзү жеткиликтүү эмес. Бул жууп салуу аракетинен кийинки адаттагы көрүнүш.</translation>
@@ -2956,6 +2976,7 @@
 <translation id="5097002363526479830">'<ph name="NAME" />' тармагына туташпай калды: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Бардык кыстармаларды ачуу</translation>
 <translation id="5101839224773798795">Курсор токтогондо, автоматтык түрдө чыкылдатылсын</translation>
+<translation id="5107443654503185812">Кеңейтүү Коопсуз серептөөнү өчүрдү</translation>
 <translation id="5108967062857032718">Жөндөөлөр - Android колдонмолорун алып салуу</translation>
 <translation id="5109044022078737958">Миа</translation>
 <translation id="5111646998522066203">Жашыруун режимден чыгуу</translation>
@@ -3042,6 +3063,7 @@
 <translation id="523505283826916779">Атайын мүмкүнчүлүктөрдү жөндөө</translation>
 <translation id="5235750401727657667">Жаңы өтмөк ачылганда, учурдагы барактын ордуна ал көрүнсүн</translation>
 <translation id="5238278114306905396">"<ph name="EXTENSION_NAME" />" колдонмосу автоматтык түрдө өчүрүлдү.</translation>
+<translation id="5239730228370806996">Бул көчүрүлгөн маалымат уюмуңуздун коопсуздук саясаттарын бузуп жатат. Баары бир улантасызбы?</translation>
 <translation id="5241128660650683457">Каралган вебсайттарыңыздагы бардык дайын-даректериңизди окуңуз</translation>
 <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" иштетилсинби?</translation>
 <translation id="5243522832766285132">Бир аздан кийин кайталап көрүңүз</translation>
@@ -3329,6 +3351,7 @@
 <translation id="5618075537869101857">Шайтан алгырдыкы, киоск колдонмосу ишке киргизилген жок.</translation>
 <translation id="5618333180342767515">(бир нече мүнөт кетиши мүмкүн)</translation>
 <translation id="56197088284879152">Алыскы түзмөккө туташуу ашкере жүктөлүп калды: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">Сакталган сырсөздөр жок</translation>
 <translation id="5620549857835247159">Жүргүзгүчтү, Артка, Жалпы маалымат баскычтарын планшет режиминдеги Текчеде көрсөтүү.</translation>
 <translation id="5620568081365989559">DevTools муну <ph name="FOLDER_PATH" /> толугу менен колдонгусу келет. Анда жеке маалыматтын камтылбагандыгын текшерип алыңыз.</translation>
 <translation id="5620612546311710611">колдонуу статистикасы</translation>
@@ -3421,6 +3444,7 @@
 <translation id="5747785204778348146">Иштеп чыгуучу – туруктуу эмес</translation>
 <translation id="5747809636523347288">Ча&amp;птоо жана "<ph name="URL" />" баракчасына өтүү</translation>
 <translation id="5750324801516359607">Алыс</translation>
+<translation id="5751887393582880060">Бул жүктөлүп берилген файл уюмуңуздун коопсуздук саясаттарын бузуп жатат. Баары бир улантасызбы?</translation>
 <translation id="5756163054456765343">Ж&amp;ардам борбору</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> аркылуу басып чыгарууга жөнөтүлгөн документтерди <ph name="APP_NAME" /> окуп алышы мүмкүн.</translation>
 <translation id="5763751966069581670">USB түзмөктөрү табылган жок</translation>
@@ -3630,6 +3654,7 @@
 <translation id="6040852767465482106">Аноним</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google'дун жайгашкан жерди аныктоо кызматы бул түзмөктүн жайгашкан жерин аныктоо үчүн Wi‑Fi, мобилдик тармактарды жана сенсорлорду колдонот.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Бул кызматты өчүрүү үчүн, түзмөгүңүздөгү Жайгашкан жерди аныктоо функциясын өчүрүп салыңыз. Сиз ошондой эле Wi Fi, мобилдик тармактарды, жайгашкан жер сенсорлорун жайгаштыруу жөндөөлөрүнөн өчүрсөңүз болот.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409">Бардык <ph name="ORIGIN" /> өтмөктөрү жабылмайынча <ph name="ORIGIN" /> сайты <ph name="FOLDERNAME" /> папкасындагы файлдарды көрө алат</translation>
 <translation id="6041155700700864984">Толук экран режиминен чыгуу</translation>
 <translation id="604124094241169006">Автоматтык</translation>
 <translation id="6042308850641462728">Дагы</translation>
@@ -3691,6 +3716,7 @@
 <translation id="6104311680260824317">Түзмөк доменге кошулбай койду. Сервер Kerberos шифрлөөсүнүн мындай түрлөрүн колдоого албайт. Шифрлөөнүн жөндөөлөрүн көрүү үчүн "Кошумча параметрлер" бөлүмүн караңыз.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> бул түзмөктү дароо жаңыртууну талап кылып жатат</translation>
 <translation id="6106186653986077033">Plugin VM үчүн уруксаттама талап кылынат</translation>
+<translation id="6107047744202598802">Вебсайттарга качан киргениңизди эстеп калып, Интернеттеги аракеттерге көз салууга уруксат берет</translation>
 <translation id="6112294629795967147">Өлчөмүн өзгөртүү үчүн басуу</translation>
 <translation id="6112727384379533756">Билет кошуу</translation>
 <translation id="6112931163620622315">Телефонуңузду текшериңиз</translation>
@@ -3769,6 +3795,7 @@
 <translation id="622537739776246443">Профиль өчүрүлөт</translation>
 <translation id="6225475702458870625"><ph name="PHONE_NAME" /> телефону аркылуу Интернетке туташууга болот</translation>
 <translation id="6226777517901268232">Жеке ачкыч файлы (милдеттүү эмес)</translation>
+<translation id="6227280783235722609">кеңейтүү</translation>
 <translation id="6228691855869374890">Бул сайт MIDI түзмөктөрүн толугу менен көзөмөлдөйт.</translation>
 <translation id="6228720835160974792">Сүрөттүн QR кодун алуу</translation>
 <translation id="6229890768313448549">Google Play Тейлөө шарттары жүктөлбөй жатат. Кайталап көрүңүз.</translation>
@@ -3820,6 +3847,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> негизинен жүктөлүп алынбайт, ошондуктан коркунучтуу болушу мүмкүн.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Тармагыңыздагы жаңы принтер}other{Тармагыңыздагы жаңы принтерлер}}</translation>
 <translation id="6286708577777130801">Сакталган сырсөздүн чоо-жайы</translation>
+<translation id="6291163159361301370">Linux'ту иштетүү үчүн <ph name="ORGANIZATION_NAME" /> дайын-даректериңиздин камдык көчүрмөсүн сактап, Chromebook'ту демейки жөндөөлөргө кайтарышы керек.</translation>
 <translation id="6291949900244949761">Сайт USB түзмөктөрүн колдонгону жатканда уруксат суралсын (сунушталат)</translation>
 <translation id="6291953229176937411">&amp;Тапкычта көрсөтүү</translation>
 <translation id="6295158916970320988">Бардык сайттар</translation>
@@ -4016,6 +4044,7 @@
 <translation id="6561726789132298588">enter</translation>
 <translation id="656293578423618167">Файлдын аталышы же ага алып барчу жол өтө узун. Анын аталышын кыскартыңыз же жакыныраак жерге сактаңыз.</translation>
 <translation id="6563469144985748109">Башкаруучуңуз буга уруксат бере элек</translation>
+<translation id="6565955132287672866">Түзмөк туура өчүрүлгөн жок. Linux'ту (Бета) колдонуу үчүн аны өчүрүп, кайра күйгүзүү керек.</translation>
 <translation id="6567688344210276845">Бет аракети үчүн '<ph name="ICON" />' сүрөтчөсү жүктөлбөй койду.</translation>
 <translation id="6569934958368283244">Башка кишилер</translation>
 <translation id="657402800789773160">&amp;Бул бетти кайра жүктөө</translation>
@@ -4513,6 +4542,7 @@
 <translation id="7258225044283673131">Колдонмо жооп бербей жатат. Аны жабуу үчүн "Мажбурлап токтотуу" баскычын басыңыз.</translation>
 <translation id="7258697411818564379">PIN кодуңуз кошулду</translation>
 <translation id="7262004276116528033">Кирүү кызматы <ph name="SAML_DOMAIN" /> доменинде жайгашкан</translation>
+<translation id="7266898409676782635"><ph name="DEVICE_TYPE" /> тууралуу кеңештерди, сунуштарды жана жаңылыктарды алып, пикир билдириңиз. Жазылууну каалаган убакта токтотууга болот.</translation>
 <translation id="7268127947535186412">Бул жөндөөнү түзмөктүн ээси башкарууда.</translation>
 <translation id="7270858098575133036">Сайт MIDI түзмөктөрүнө кирүү үчүн тутумдун эксклюзивдүү билдирүүлөрүн уруксат сурап колдонсун</translation>
 <translation id="7272674038937250585">Эч кандай сүрөттөө берилген эмес</translation>
@@ -4586,6 +4616,7 @@
 <translation id="7364796246159120393">Файл тандоо</translation>
 <translation id="7366415735885268578">Сайт кошуу</translation>
 <translation id="7366909168761621528">Серептөө дайындары</translation>
+<translation id="7367714965999718019">QR кодун даярдагыч</translation>
 <translation id="736877393389250337"><ph name="URL" /> шилтемеси <ph name="ALTERNATIVE_BROWSER_NAME" /> аркылуу ачылбай койду. Тутумуңуздун администраторуна кайрылыңыз.</translation>
 <translation id="7370592524170198497">Ethernet EAP:</translation>
 <translation id="7371006317849674875">Баштоо убакыты</translation>
@@ -4843,8 +4874,10 @@
 <translation id="7737238973539693982">Linux'ту (бета-версиясы) жок кылуу</translation>
 <translation id="7740996059027112821">Стандарт</translation>
 <translation id="7744047395460924128">Басып чыгаруу таржымалыңызды көрүү</translation>
+<translation id="7744192722284567281">Сырсөз уурдалды</translation>
 <translation id="7746457520633464754">Кооптуу колдонмолор менен сайттарды аныктоо үчүн, Chrome сиз баш баккан айрым сайттардын URL'дерин, тутум тууралуу чектелген маалыматты жана барактагы айрым мазмунду Google'га жөнөтүп турат</translation>
 <translation id="7750228210027921155">Сүрөт ичиндеги сүрөт</translation>
+<translation id="7751229152614300329">Коопсуз серептөө жаңыртылып, сизди зыянкеч сайттар менен жүктөп алуулардан коргоп турат</translation>
 <translation id="7751260505918304024">Баарын көрсөтүү</translation>
 <translation id="7754704193130578113">Жүктөп алаардан мурун, ар бир файлдын кайсы жерге сактала тургандыгы суралсын</translation>
 <translation id="7755287808199759310">Аны ата-энеңиз ачып бере алат</translation>
@@ -4992,6 +5025,7 @@
 <translation id="7910768399700579500">&amp;Жаңы куржун</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Сервердеги сырсөзүңүз өзгөргөн. Чыгып, кайра кириңиз.</translation>
+<translation id="7914583336730284547">Бул көчүрүлгөн файлдар уюмуңуздун коопсуздук саясаттарын бузуп жатат. Баары бир улантасызбы?</translation>
 <translation id="7915457674565721553">Ата-эненин көзөмөлүн жөндөө үчүн Интернетке туташыңыз</translation>
 <translation id="7915471803647590281">Ой пикириңиз менен бөлүшүңүз.</translation>
 <translation id="7918257978052780342">Жазылуу</translation>
@@ -5088,6 +5122,7 @@
 <translation id="8028803902702117856"><ph name="SIZE" />, <ph name="FILE_NAME" /> жүктөлүп алынууда</translation>
 <translation id="8028993641010258682">Өлчөм</translation>
 <translation id="8030656706657716245">Принтер кошуу</translation>
+<translation id="8030852056903932865">Уруксат берүү</translation>
 <translation id="8032244173881942855">Өтмөк тышкы экранга чыгарылбай жатат.</translation>
 <translation id="8033827949643255796">тандалды</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Баарын жашыруун терезеде ачуу}=1{Жашыруун терезеде ачуу}other{Баарын (#) жашыруун терезеде ачуу}}</translation>
@@ -5408,6 +5443,7 @@
 <translation id="8472623782143987204">жабдык менен камсыздалган</translation>
 <translation id="8473863474539038330">Даректер жана башкалар</translation>
 <translation id="8475313423285172237">Chrome'дун ишин өзгөртө турган кеңейтүүнү компьютериңиздеги башка программа кошуп койду.</translation>
+<translation id="8476659515398963495">Бул чапталган маалымат уюмуңуздун коопсуздук саясаттарын бузуп жатат. Баары бир улантасызбы?</translation>
 <translation id="8477241577829954800">Алмаштырылды</translation>
 <translation id="8477384620836102176">&amp;Жалпы</translation>
 <translation id="8480082892550707549">Мурун бул вебсайттан файларды жүктөп алган болсоңуз да, ал убактылуу кооптуу (чабуулга туш болгон) болушу мүмкүн. Бул файлды кийинчерээк жүктөп алыңыз.</translation>
@@ -5461,6 +5497,7 @@
 <translation id="8547013269961688403">Толук экран лупасын иштетүү</translation>
 <translation id="85486688517848470">Жогорку катардагы баскычтардын аракеттерин которуштуруу үчүн Издөө баскычын басып туруңуз</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 нерсе}other{# нерсе}}</translation>
+<translation id="8550165047974571882">Бардык <ph name="ORIGIN" /> өтмөктөрү жабылмайынча <ph name="ORIGIN" /> сайты <ph name="FOLDERNAME" /> папкасындагы файлдарды түзөтө алат</translation>
 <translation id="8551388862522347954">Уруксаттамалар</translation>
 <translation id="8553342806078037065">Башка адамдарды башкаруу</translation>
 <translation id="8554899698005018844">Тил коюлган эмес</translation>
@@ -5519,6 +5556,7 @@
 <translation id="8637688295594795546">Тутумдун жаңы версиясы бар. Жүктөп алууга даярданууда…</translation>
 <translation id="8639047128869322042">Зыянкеч программалар текшерилүүдө…</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – Оюкча</translation>
+<translation id="8641606876632989680">Chrome уурдалган сырсөз менен киргениңизде каралбайт</translation>
 <translation id="8642900771896232685">2 секунд</translation>
 <translation id="8642947597466641025">Текстти чоңураак кылуу</translation>
 <translation id="8644655801811752511">Бул коопсуздук ачкычы баштапкы абалга келтирилбей жатат. Ачкычты киргизериңиз менен, баштапкы абалына келтирип көрүңүз.</translation>
@@ -5568,6 +5606,7 @@
 <translation id="869884720829132584">Колдонмолор менюсу</translation>
 <translation id="869891660844655955">Мөөнөтү аяктай турган күн</translation>
 <translation id="8703346390800944767">Жарнаманы өткөрүп жиберүү</translation>
+<translation id="870341961648617780">Коопсуз серептөө жана өркүндөтүлгөн коопсуздук жөндөөлөрү</translation>
 <translation id="8705331520020532516">Сериялык номери:</translation>
 <translation id="8705580154597116082">Телефон аркылуу Wi-Fi'га туташса болот</translation>
 <translation id="8705629851992224300">Коопсуздук ачкычыңыз окулган жок</translation>
@@ -5613,6 +5652,7 @@
 <translation id="874689135111202667">{0,plural, =1{Бул сайтка бир файл жүктөлүп берилсинби?}other{Бул сайтка # файл жүктөлүп берилсинби?}}</translation>
 <translation id="8748384418490037181">Smart Lock'тун параметрлери</translation>
 <translation id="8749863574775030885">Белгисиз жөнөтүүчүнүн USB түзмөктөрүнө кирүү</translation>
+<translation id="8750133148106010815">Google Play'ди иштетүү үчүн <ph name="ORGANIZATION_NAME" /> дайын-даректериңиздин камдык көчүрмөсүн сактап, Chromebook'ту демейки жөндөөлөргө кайтарышы керек.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> сериялык портко туташканы жатат</translation>
 <translation id="8754200782896249056">&lt;p&gt;<ph name="PRODUCT_NAME" /> колдоого алынган иштакта чөйрөсүндө иштеп жатканда, тутумдун прокси жөндөөлөрү колдонулат. Бирок тутумуңуз колдоого алынбайт же тутум конфигурациясын ишке киргизүүдө көйгөй келип чыгышы мүмкүн.&lt;/p&gt;
 
@@ -5667,6 +5707,7 @@
 <translation id="8809147117840417135">Мала көгүш жашыл</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> катары кирүү мүмкүн эмес</translation>
 <translation id="8813811964357448561">кагаз барактары</translation>
+<translation id="8813872945700551674">"<ph name="EXTENSION_NAME" />" кеңейтүүсүн орнотууга ата-энең уруксат бериши керек</translation>
 <translation id="8813969267212093033">Тутумдун тексти ушул тилде көрсөтүлөт</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Күтө туруңуз, архив текшерүүдөн өтүүдө...</translation>
@@ -5947,6 +5988,7 @@
 <translation id="9203398526606335860">&amp;Профилдөө иштетилди</translation>
 <translation id="9203904171912129171">Түзмөк тандоо</translation>
 <translation id="9203962528777363226">Бул түзмөктүн администратору колдонуучуларды кошуу мүмкүнчүлүгүн өчүрүп койгон.</translation>
+<translation id="9211177926627870898">Жаңыртуу талап кылынат</translation>
 <translation id="9214520840402538427">Ой! Орнотуу убакыт аттрибуттарынын демилгеленишин күтүү убакыты аяктады. Кардарларды тейлеген өкүлүңүзгө кайрылыңыз.</translation>
 <translation id="9214695392875603905">Кекс</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" кошулду</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index 734c6be..8e81ff7 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">ລຶບຂໍ້ມູນອອກຈາກແອັບເຫຼົ່ານີ້ນຳບໍ?</translation>
 <translation id="1045692658517323508">{0,plural, =1{ອັບເດດພາຍໃນ 1 ນາທີ}other{ອັບເດດພາຍໃນ # ນາທີ}}</translation>
 <translation id="1046635659603195359">ເບິ່ງຄືວ່າທ່ານໄດ້ຕັ້ງຄ່າ Voice Match ກັບຜູ້ຊ່ວຍ Google ຂອງທ່ານໃນອຸປະກອນອື່ນແລ້ວ. ສາມາດໃຊ້ບັນທຶກສຽງຜ່ານມາເຫຼົ່ານີ້ເພື່ອສ້າງຕົວຢ່າງສຽງໃນອຸປະກອນນີ້ໄດ້. ນີ້ຄວນໃຊ້ເວລາໜ້ອຍກວ່າໜຶ່ງນາທີ.</translation>
+<translation id="104710386808485638">ຣິສະຕາດ Linux ບໍ?</translation>
 <translation id="1047431265488717055">ອັດ​ສຳ​ເນົາ​ຂໍ້​ຄວາມ​ລິ້ງ</translation>
 <translation id="1048286738600630630">ການສະແດງຜົນ</translation>
 <translation id="1049743911850919806">ບໍ່​ເຜີຍ​ຕົວຕົນ</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">ກະ​ລຸ​ນາ​ລົງຊື່ເຂົ້າ​ໃຊ້ <ph name="TOKEN_NAME" /> ເພື່ອສົ່ງໃບຢັ້ງຢືນລູກຂ່າຍອອກໄປ.</translation>
 <translation id="1163931534039071049">ເບິ່ງແຫຼ່ງທີ່ມາຂອບ</translation>
 <translation id="1164674268730883318">ປິດ Smart Lock ສຳລັບ <ph name="DEVICE_TYPE" />?</translation>
+<translation id="1164891049599601209">ມີການປ້ອນໃນເວັບໄຊຫຼອກລວງ</translation>
 <translation id="1164899421101904659">ປ້ອນລະຫັດປົດລັອກ PIN</translation>
 <translation id="1165039591588034296">ຜິດພາດ</translation>
 <translation id="1166212789817575481">ປິດແຖບໄປທາງຂວາ</translation>
@@ -396,6 +398,7 @@
 <translation id="1545177026077493356">ໂໝດ Kiosk ອັດຕະໂນມັດ</translation>
 <translation id="1545775234664667895">ຕິດຕັ້ງສີສັນໜ້າຕາ "<ph name="THEME_NAME" />" ແລ້ວ</translation>
 <translation id="1546280085599573572">ສ່ວນຂະຫຍາຍໄດ້ປ່ຽນວ່າຈະໃຫ້ໜ້າໃດສະແດງຂຶ້ນ ເມື່ອທ່ານຄລິກປຸ່ມໜ້າຫຼັກ.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> ຕ້ອງການຕິດຕັ້ງ <ph name="EXTENSION_TYPE" /> ທີ່ສາມາດ:</translation>
 <translation id="1549275686094429035">ເປີດການນຳໃຊ້ ARC ແລ້ວ</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> ຕ້ອງ​ການ​ເຂົ້າ​ຫາ <ph name="VOLUME_NAME" />. ມັນ​ອາດ​ຈະ​ດັດ​ແປງ ຫຼື​ລຶບ​ໄຟ​ລ໌​ຂອງ​ທ່ານ.</translation>
 <translation id="1553538517812678578">ບໍ່ຈໍາກັດ</translation>
@@ -455,7 +458,7 @@
 <translation id="1627276047960621195">ຕົວອະທິບາຍໄຟລ໌</translation>
 <translation id="1627408615528139100">ດາວໂຫຼດຮຽບຮ້ອຍແລ້ວ</translation>
 <translation id="1629314197035607094">ລະຫັດຜ່ານໝົດອາຍຸແລ້ວ</translation>
-<translation id="1630768113285622200">ຣິສະຕາດ ແລະ ສືບຕໍ່</translation>
+<translation id="1630768113285622200">ຣີສະຕາດ ແລະ ສືບຕໍ່</translation>
 <translation id="1632803087685957583">ອະນຸຍາດໃຫ້ທ່ານປັບອັດຕາການຊໍ້າຄືນຂອງແປ້ນພິມ, ການຄາດເດົາຄຳ ແລະ ອື່ນໆອີກ</translation>
 <translation id="1635033183663317347">ຕິດ​ຕັ້ງ​ໂດຍ​ຜູ້​ຄວບ​ຄຸມ​​ຂອງ​ທ່ານ​ແລ້ວ.</translation>
 <translation id="1637224376458524414">ໃຊ້ບຸກມາກນີ້ໃນ iPhone ຂອງທ່ານ</translation>
@@ -494,6 +497,7 @@
 <translation id="1679806121152819234">ປລັກອິນ VM</translation>
 <translation id="1679810534535368772">ທ່ານແນ່ໃຈບໍ່ວ່າຕ້ອງການອອກ?</translation>
 <translation id="167983332380191032">ການບໍລິການຈັດການໄດ້ສົ່ງລະຫັດຂໍ້ຜິດພາດ HTTP.</translation>
+<translation id="1680841347983561661">ກະລຸນາລອງເລີ່ມ Google Play ອີກຄັ້ງໃນອີກຄາວໜຶ່ງ.</translation>
 <translation id="1680849702532889074">ເກີດຄວາມຜິດພາດໃນລະຫວ່າງການຕິດຕັ້ງແອັບພລິເຄຊັນ Linux ຂອງທ່ານ.</translation>
 <translation id="16815041330799488">ບໍ່ອະນຸຍາດໃຫ້ເວັບໄຊເຫັນຂໍ້ຄວາມ ແລະ ຮູບພາບທີ່ສຳເນົາໄວ້ໃນຄລິບບອດ</translation>
 <translation id="1682548588986054654">ໜ້າ​ຕ່າງທີ່ບໍ່ເຜີຍຕົນຕົວໃໝ່</translation>
@@ -747,6 +751,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> ​ໄດ້​ເກີດຂັດຂ້ອງ. ຄລິກປູມເປົ້ານີ້ເພື່ອໂຫຼດສ່ວນຂະຫຍາຍຄືນໃໝ່.</translation>
 <translation id="2025891858974379949">ເນື້ອຫາທີ່ບໍ່ປອດໄພ</translation>
 <translation id="202918510990975568">ປ້ອນລະຫັດຜ່ານຂອງທ່ານເພື່ອຕັ້ງຄ່າຄວາມປອດໄພ ແລະ ການເຂົ້າສູ່ລະບົບ</translation>
+<translation id="2030672406208960151">ເປີດປາຍທາງການກູ້ຄືນ</translation>
 <translation id="2034346955588403444">ເພີ່ມເຄືອຂ່າຍ WiFi ອື່ນ</translation>
 <translation id="203574396658008164">ເປີດນຳໃຊ້ການຈົດບັນທຶກຈາກໜ້າຈໍລັອກ</translation>
 <translation id="2037445849770872822">ມີການຕັ້ງຄ່າການຄວບຄຸມເບິ່ງແຍງສຳລັບບັນຊີ Google ນີ້. ເພື່ອຕັ້ງຄ່າການຄວບຄຸມຂອງພໍ່ແມ່ເພີ່ມເຕີມ, ກະລຸນາເລືອກ ສືບຕໍ່.
@@ -899,6 +904,7 @@
 <translation id="2220572644011485463">PIN ຫຼື ລະຫັດຜ່ານ</translation>
 <translation id="2224444042887712269">ການຕັ້ງຄ່ານີ້ເປັນຂອງ <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">ແກ້ໄຂຊື່ໂຟລເດີ</translation>
+<translation id="2225864335125757863">ປ່ຽນລະຫັດຜ່ານເຫຼົ່ານີ້ໃນທັນທີເພື່ອຮັກສາໃຫ້ບັນຊີຂອງທ່ານປອດໄພ:</translation>
 <translation id="2226449515541314767">ເວັບໄຊທ໌ນີ້ຖືກບລັອກຈາກການຄວບຄຸມອຸປະກອນ MIDI ເຕັມ.</translation>
 <translation id="222704500187107962">ລະບົບຈະລຶບຂໍ້ຍົກເວັ້ນນີ້ອອກໂດຍອັດຕະໂນມັດຫຼັງຈາກທີ່ທ່ານອອກຈາກເຊດຊັນທີ່ບໍ່ເປີດເຜີຍຕົວຕົນໃນປັດຈຸບັນ</translation>
 <translation id="2227179592712503583">ລຶບການແນະນຳອອກ</translation>
@@ -1019,6 +1025,7 @@
 <translation id="2387052489799050037">ໄປທີ່ໜ້າຫຼັກ</translation>
 <translation id="2387458720915042159">ປະເພດການເຊື່ອມຕໍ່ພຣັອກຊີ</translation>
 <translation id="2391419135980381625">ຟອນມາດ​ຕະ​ຖານ</translation>
+<translation id="2392163307141705938">ທ່ານໄດ້ຮອດຂີດຈຳກັດເວລາທີ່ພໍ່ແມ່ຂອງທ່ານກຳນົດໃຫ້ <ph name="IDS_SHORT_PRODUCT_NAME" /> ແລ້ວ.</translation>
 <translation id="2392369802118427583">ເປີດໃຊ້ງານ</translation>
 <translation id="2394566832561516196">ການຕັ້ງຄ່າຈະຖືກລຶບຢູ່ໃນການໂຫຼດໃໝ່ຄັ້ງຕໍ່ໄປ.</translation>
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> ຂອງທ່ານໄດ້ຖືກຈົດທະບຽນສຳລັບການຈັດການວິສາຫະກິດສຳເລັດແລ້ວ, ແຕ່ສົ່ງຂໍ້ມູນຊັບສິນ ແລະ ສະຖານທີ່ຂອງມັນບໍ່ສຳເລັດ. ກະລຸນາປ້ອນຂໍ້ມູນນີ້ຈາກຄອນໂຊນຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານດ້ວຍຕົນເອງສຳລັບອຸປະກອນນີ້.</translation>
@@ -1084,6 +1091,7 @@
 <translation id="247949520305900375">ແບ່ງປັນສຽງ</translation>
 <translation id="2480868415629598489">ແກ້ໄຂຂໍ້ມູນທີ່ທ່ານສຳເນົາ ແລະ ວາງໃສ່</translation>
 <translation id="2482878487686419369">ການແຈ້ງເຕືອນ</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> ຈະສາມາດແກ້ໄຂໄຟລ໌ໃນ <ph name="FILENAME" /> ຈົນກວ່າວ່າທ່ານປິດແຖບ <ph name="ORIGIN" /> ທັງໝົດ</translation>
 <translation id="2484959914739448251">ເພື່ອລຶບລ້າງຂໍ້ມູນການທ່ອງເວັບອອກຈາກອຸປະກອນທີ່ຊິ້ງຂໍ້ມູນຂອງທ່ານທັງໝົດ ແລະ ບັນຊີ Google ຂອງທ່ານ, ກະລຸນາ <ph name="BEGIN_LINK" />ປ້ອນລະຫັດຜ່ານຂອງທ່ານ<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">ບັນທຶກລະຫັດຜ່ານໄວ້ໃນອຸປະກອນນີ້ແລ້ວ</translation>
 <translation id="2485422356828889247">ຖອນ​ຕິດ​ຕັ້ງ</translation>
@@ -1297,6 +1305,7 @@
 <translation id="274290345632688601">ກຳລັງກູ້ຄືນແອັບ ແລະ ໄຟລ໌ Linux</translation>
 <translation id="2743387203779672305">ກັອບປີ້ໄປໃສ່ຄລິບບອດ</translation>
 <translation id="2745080116229976798">ອັນທີ່​ສຳຄັນ​ນ້ອຍ​ກວ່າ​ທີ່​​ເຂົ້າ​ເກນ​ຄຸນສົມບັດ​ຂອງ Microsoft</translation>
+<translation id="2748061034695037846">ຢຸດ <ph name="DOMAIN" /> ຊົ່ວຄາວຢູ່</translation>
 <translation id="2749756011735116528">ລົງຊື່ເຂົ້າ​ໃຊ້ <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">ກວດເບິ່ງໄວຍະກອນກັບການສະກົດຄໍາ</translation>
 <translation id="2751739896257479635">ການຮັບຮອງຄວາມຖືກຕ້ອງ EAP ໄລຍະທີ 2</translation>
@@ -1305,6 +1314,7 @@
 <translation id="275662540872599901">ໜ້າຈໍປິດຢູ່</translation>
 <translation id="2762441749940182211">ບລັອກກ້ອງຖ່າຍຮູບໄວ້ແລ້ວ</translation>
 <translation id="2765217105034171413">ນ້ອຍ</translation>
+<translation id="2766161002040448006">ຖາມພໍ່ແມ່</translation>
 <translation id="276969039800130567">ລົງຊື່ເຂົ້າ​ໃຊ້ເປັນ <ph name="USER_EMAIL_ADDRESS" /> ແລ້ວ.</translation>
 <translation id="2770465223704140727">ເອົາ​ອອກ​ຈາກລາຍການ</translation>
 <translation id="2770690685823456775">ສົ່ງລະຫັດຜ່ານຂອງທ່ານອອກໄປໃສ່ໂຟນເດີອື່ນ</translation>
@@ -1556,6 +1566,7 @@
 <translation id="3115580024857770654">ຫຍໍ້ທັງໝົດເຂົ້າ</translation>
 <translation id="3117362587799608430">ແທ່ນສາກເຂົ້າກັນບໍ່ໄດ້ຢ່າງເຕັມສ່ວນ</translation>
 <translation id="3118319026408854581">ຊ່ວຍ​ເຫຼືອ <ph name="PRODUCT_NAME" /></translation>
+<translation id="3118654181216384296">ກະລຸນາລອງເລີ່ມ Linux ໃໝ່ໃນອີກຄາວໜຶ່ງ.</translation>
 <translation id="3120430004221004537">ການເຂົ້າລະຫັດລັບບໍ່ພຽງພໍສຳລັບການດຳເນີນການທີ່ໃຫ້ຢູ່ໃນ: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">ຕັ້ງຄ່າອຸປະກອນ <ph name="IDS_SHORT_PRODUCT_NAME" /> ນີ້ຄືນໃໝ່</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1565,6 +1576,7 @@
 <translation id="3127156390846601284">ນີ້ຈະລຶບທຸກຂໍ້ມູນທີ່ເກັບໄວ້ໃນອຸປະກອນຂອງທ່ານສຳລັບທຸກເວັບໄຊທີ່ປາກົດ. ທ່ານຕ້ອງການດຳເນີນການບໍ?</translation>
 <translation id="3127860049873093642">ເພື່ອຫຼີກເວັ້ນບັນຫາການສາກ ແລະ ປະສິດທິພາບການນຳໃຊ້ ກະລຸນາໃຊ້ອະແດັບເຕີໄຟ Dell ຫຼື USB ປະເພດ C.</translation>
 <translation id="3129173833825111527">ຂອບ​ເບື້ອງຊ້າຍ</translation>
+<translation id="3129215702932019810">ເກີດຜິດພາດໃນການເປີດນຳໃຊ້ແອັບພລິເຄຊັນ</translation>
 <translation id="3130528281680948470">ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ຈະ​ຖືກ​ຕັ້ງ​ຄ່າ​ຄືນ ແລະ​ບັນ​ຊີ​ຜູ້​ໃຊ້ ແລະ​ຂໍ້​ມູນ​ທ້ອງ​ຖິ່ນ​ທັງ​ໝົດ​ຈະ​ຖືກ​ເອົາ​ອອກ​ໄປ. ອັນ​ນີ້​ບໍ່​ສາ​ມາດ​ເຮັດກັບ​ຄືນ​​ໄດ້.</translation>
 <translation id="313205617302240621">ລືມ​ລະ​ຫັດ​ຜ່ານ​ບໍ?</translation>
 <translation id="3132996321662585180">ໂຫຼດຂໍ້ມູນໃໝ່ທຸກມື້</translation>
@@ -1780,6 +1792,7 @@
 <translation id="3441653493275994384">ຫນ້າ​ຈໍ</translation>
 <translation id="3445925074670675829">ອຸ​ປະ​ກອນ USB-C</translation>
 <translation id="344630545793878684">ອ່ານ​ຂໍ້​ມູນ​ຂອງ​ທ່ານ​ຢູ່​ເທິງຫຼາຍ​ເວັບ​ໄຊ​ທ໌</translation>
+<translation id="3448086340637592206">ຂໍ້ກຳນົດເພີ່ມເຕີມຂອງ Google Chrome ແລະ Chrome OS</translation>
 <translation id="3448492834076427715">ອັບເດດບັນຊີ</translation>
 <translation id="3449839693241009168">ກົດ <ph name="SEARCH_KEY" /> ເພື່ອສົ່ງຄໍາສັ່ງຫາ <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">ເປີເຊັນການຄອບຄອງສະພາວະຢູ່ຊື່ໆ</translation>
@@ -2127,6 +2140,7 @@
 <translation id="3873423927483480833">ສະແດງ PIN</translation>
 <translation id="3873915545594852654">ເກີດບັນຫາກັບ ARC++.</translation>
 <translation id="3879748587602334249">ຕົວຈັດການການດາວໂຫລດ</translation>
+<translation id="3881321138433527084">Safe Browsing ປິດຢູ່. ເພື່ອທ່ອງເວັບຢ່າງປອດໄພ, ກະລຸນາເປີດມັນ.</translation>
 <translation id="3882165008614329320">ວິດີໂອທີ່ມີຢູ່ແລ້ວຈາກກ້ອງຖ່າຍຮູບ ຫຼື ໄຟລ໌</translation>
 <translation id="3886446263141354045">ຄຳຂໍເຂົ້າຫາເວັບໄຊນີ້ຂອງທ່ານໄດ້ຖືກສົ່ງຫາ <ph name="NAME" /> ແລ້ວ</translation>
 <translation id="3888550877729210209">ກຳລັງຈົດບັນທຶກດ້ວຍ <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2468,6 +2482,7 @@
 <translation id="4384652540891215547">ເປີດໃຊ້ງານສ່ວນຂະຫຍາຍ</translation>
 <translation id="438503109373656455">Saratoga</translation>
 <translation id="4387004326333427325">ປະຕິເສດໃບຢັ້ງຢືນການຮັບຮອງທາງໄກແລ້ວ</translation>
+<translation id="4387890294700445764">ລະຫັດຜ່ານທີ່ຖືກລະເມີດ</translation>
 <translation id="4389091756366370506">ຜູ້​ໃຊ້ <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{ບໍ່ເປີດເຜີຍຕົວຕົນ}other{# ໜ້າຈໍທີ່ບໍ່ເປີດເຜີຍຕົວຕົນເປີດຢູ່}}</translation>
 <translation id="439266289085815679">ການກຳນົດຄ່າ Bluetooth ຖືກຄວບຄຸມໂດຍ <ph name="USER_EMAIL" />.</translation>
@@ -2499,6 +2514,7 @@
 <translation id="4429030830601238961">ຂໍ້ມູນນີ້ລະເມີດນະໂຍບາຍຄວາມປອດໄພຂອງອົງການຂອງທ່ານ ແລະ ບໍ່ສາມາດວາງໃສ່ໄດ້.</translation>
 <translation id="4430019312045809116">ລະດັບສຽງ</translation>
 <translation id="4430369329743628066">ເພີ່ມບຸກມາກແລ້ວ</translation>
+<translation id="4432621511648257259">ລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ</translation>
 <translation id="4434045419905280838">ປັອບອັບ ແລະ ການປ່ຽນເສັ້ນທາງ</translation>
 <translation id="443454694385851356">ແບບເດີມ (ບໍ່ປອດໄພ)</translation>
 <translation id="443475966875174318">ອັບເດດ ຫຼື ລຶບແອັບພລິເຄຊັນທີ່ບໍ່ເຂົ້າກັນອອກ</translation>
@@ -2748,6 +2764,7 @@
 <translation id="4808667324955055115">ບລັອກປັອບອັບໄວ້ແລ້ວ:</translation>
 <translation id="480990236307250886">ເປີດໜ້າຫຼັກ</translation>
 <translation id="4811503964269049987">ຈັດກຸ່ມແຖບທີ່ເລືອກ</translation>
+<translation id="4811818760963189951">ປິດແລ້ວ ເພາະວ່າທ່ານປິດການນຳໃຊ້ການຊິ້ງຂໍ້ມູນປະຫວັດ</translation>
 <translation id="4813136279048157860">ຮູບພາບຂອງຂ້ອຍ</translation>
 <translation id="4813512666221746211">ເຄືອຂ່າຍຜິດພາດ</translation>
 <translation id="4814378367953456825">ປ້ອນຊື່ສຳລັບລາຍນິ້ວມືນີ້</translation>
@@ -2777,6 +2794,7 @@
 <translation id="4850669014075537160">ການເລື່ອນ</translation>
 <translation id="4850886885716139402">ເບິ່ງ</translation>
 <translation id="4853020600495124913">ເປີດ​ຢູ່​ໃນໜ້າ​ຕ່າງ​ໃຫມ່</translation>
+<translation id="4854317507773910281">ເລືອກບັນຊີພໍ່ແມ່ສຳລັບການອະນຸມັດ</translation>
 <translation id="485480310608090163">ການຕັ້ງຄ່າ ແລະ ການອະນຸຍາດເພີ່ມເຕີມ</translation>
 <translation id="4856478137399998590">ຂໍ້ມູນມືຖືຂອງທ່ານເປີດໃຊ້ງານ ແລະພ້ອມໃຊ້ແລ້ວ</translation>
 <translation id="4856855265648545577">ສະແດງປຸ່ມຕົວເປີດໃຊ້, ກັບຄືນ, ພາບຮວມໃນຖ້ານໃນໂໝດແທັບເລັດ. ເປີດເມື່ອເປີດການນຳໃຊ້ ChromeVox (ການຕອບສະໜອງແບບສຽງເວົ້າ) ຫຼື ການເຂົ້າເຖິງດ້ວຍປຸ່ມກົດ.</translation>
@@ -2913,10 +2931,12 @@
 <translation id="5040823038948176460">ການຕັ້ງຄ່າເນື້ອຫາເພີ່ມເຕີມ</translation>
 <translation id="5042282098504489593">ເປີດການຕັ້ງຄ່າເພື່ອເຊື່ອມຕໍ່ <ph name="USB_DEVICE_NAME" /> ກັບ Linux</translation>
 <translation id="5043913660911154449">ຫຼື ລະບຸ PPD ຂອງເຄື່ອງພິມຂອງທ່ານ <ph name="LINK_BEGIN" />ສຶກສາເພີ່ມເຕີມ<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">ປິດແລ້ວ ເພາະວ່າທ່ານໄດ້ເຂົ້າລະຫັດລັບຂໍ້ມູນທີ່ຊິ້ງຂອງທ່ານດ້ວຍລະຫັດຜ່ານ</translation>
 <translation id="5045550434625856497">ລະ​ຫັດ​ຜ່ານ​ບໍ່​ຖືກ​ຕ້ອງ​</translation>
 <translation id="504561833207953641">ກຳລັງເປີດໃນເຊດຊັນໂປຣແກຣມທ່ອງເວັບທີ່ມີຢູ່ແລ້ວ.</translation>
 <translation id="5047421709274785093">ບລັອກບໍ່ໃຫ້ເວັບໄຊໃຊ້ເຊັນເຊີກວດຈັບການເຄື່ອນໄຫວ ແລະ ແສງ</translation>
 <translation id="5050042263972837708">ຊື່​ກຸ່ມ​</translation>
+<translation id="5051073330196664891">ຂໍ້ກຳນົດການບໍລິການທົ່ວໂລກ (uToS) ຂອງ Google</translation>
 <translation id="5051836348807686060">ບໍ່ຮອງຮັບການກວດການສະກົດຄຳສຳລັບພາສາທີ່ທ່ານເລືອກ</translation>
 <translation id="5052499409147950210">ແກ້ໄຂເວັບໄຊ</translation>
 <translation id="5053604404986157245">ບໍ່ມີລະ​ຫັດ​ຜ່ານ TPM ທີ່ສ້າງຂຶ້ນແບບສຸ່ມເທື່ອ​. ນີ້​ແມ່ນ​ເລື່ອງປົກ​ກະ​ຕິ​ຫຼັງ​ຈາກການລ້າງ (Powerwash).</translation>
@@ -2954,6 +2974,7 @@
 <translation id="5097002363526479830">​ເຊື່ອມ​ຕໍ່​ກັບ​ເຄືອ​ຂ່າຍບໍ່ໄດ້​ '<ph name="NAME" />': <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">ເປີດທຸກບຸກມາກ</translation>
 <translation id="5101839224773798795">ຄລິກອັດຕະໂນມັດເມື່ອເຄີເຊີຢຸດ</translation>
+<translation id="5107443654503185812">ສ່ວນຂະຫຍາຍໄດ້ປິດ Safe Browsing ແລ້ວ</translation>
 <translation id="5108967062857032718">ການຕັ້ງຄ່າ - ເອົາແອັບ Android ອອກ</translation>
 <translation id="5109044022078737958">ເມັຍ</translation>
 <translation id="5111646998522066203">ອອກຈາກໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
@@ -3040,6 +3061,7 @@
 <translation id="523505283826916779">ການ​ຕັ້ງຄ່າ​ການ​ເຂົ້າ​ເຖິງ</translation>
 <translation id="5235750401727657667">ປ່ຽນແທນໜ້າເວັບທີ່ທ່ານເຫັນໃນເວລາທີ່ເປີດແຖບໃໝ່</translation>
 <translation id="5238278114306905396">ແອັບ "<ph name="EXTENSION_NAME" />"​ຖືກ​ໂຍກ​ຍ້າຍ​ອອກ​​ໂດຍອັດ​ຕະ​ໂນ​ມັດ​.</translation>
+<translation id="5239730228370806996">ຂໍ້ມູນທີ່ວາງລົງນີ້ລະເມີດນະໂຍບາຍຄວາມປອດໄພຂອງອົງການຂອງທ່ານ. ທ່ານຕ້ອງການຢືນຢັນການດຳເນີນຕໍ່ບໍ?</translation>
 <translation id="5241128660650683457">ອ່ານ​ທຸກ​ຂໍ້​ມູນ​ຂອງ​ທ່ານ​ຢູ່​ເທິງ​ເວັບ​ໄຊ​ທ໌​ທີ່​ທ່ານ​ເຂົ້າ​ເບິ່ງ</translation>
 <translation id="5242724311594467048">ເປີດໃຊ້ງານ "<ph name="EXTENSION_NAME" />" ບໍ?</translation>
 <translation id="5243522832766285132">ກະລຸນາລອງໃໝ່ໃນໄວໆນີ້</translation>
@@ -3327,6 +3349,7 @@
 <translation id="5618075537869101857">ບ້າເອີ​ຍ, ບໍ່ສາມາດເປີດໃຊ້​ແອັບພລິເຄຊັນ kiosk ໄດ້.</translation>
 <translation id="5618333180342767515">(ອັນນີ້​ອາດ​ຈະ​ໃຊ້​ເວ​ລາ​ສອງ​ສາມ​ນາ​ທີ)</translation>
 <translation id="56197088284879152">ການເຊື່ອມຕໍ່ຖືກອຸດຕັນຕໍ່ກັບອຸປະກອນທາງໄກ: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">ບໍ່ມີລະຫັດຜ່ານທີ່ບັນທຶກໄວ້</translation>
 <translation id="5620549857835247159">ສະແດງປຸ່ມຕົວເປີດໃຊ້, ກັບຄືນ, ພາບຮວມໃນຖ້ານໃນໂໝດແທັບເລັດ.</translation>
 <translation id="5620568081365989559">ເຄື່ອງມືຜູ້ພັດທະນາຂໍການເຂົ້າຫາ <ph name="FOLDER_PATH" />ເຕັມ. ເບິ່ງໃຫ້ແນ່ໃຈວ່າ ທ່ານບໍ່ໄດ້ເປີດເຜີຍຂໍ້ມູນອ່ອນໄຫວອັນໃດ.</translation>
 <translation id="5620612546311710611">ສະ​ຖິ​ຕິ​ການ​ນໍາ​ໃຊ້</translation>
@@ -3419,6 +3442,7 @@
 <translation id="5747785204778348146">ຜູ້ພັດ​ທະ​ນາ - ບໍ່ໝັ້ນຄົງ</translation>
 <translation id="5747809636523347288">ວາງໃສ່ ແລະ ໄປຫາ <ph name="URL" /></translation>
 <translation id="5750324801516359607">ໄກ</translation>
+<translation id="5751887393582880060">ການອັບໂຫຼດນີ້ລະເມີດນະໂຍບາຍຄວາມປອດໄພຂອງອົງການຂອງທ່ານ. ທ່ານຕ້ອງການຢືນຢັນການດຳເນີນຕໍ່ບໍ?</translation>
 <translation id="5756163054456765343">ສູນຊ່ວຍເຫຼືອ</translation>
 <translation id="5759728514498647443">ເອ​ກະ​ສານ​ທີ່​ທ່ານ​ສົ່ງ​ເພື່ອ​ພິມ​ຜ່ານ​ທາງ <ph name="APP_NAME" /> ສາ​ມາດ​ອ່ານ​ໄດ້ໂດຍ <ph name="APP_NAME" />.</translation>
 <translation id="5763751966069581670">ບໍ່ພົບອຸປະກອນ USB</translation>
@@ -3628,6 +3652,7 @@
 <translation id="6040852767465482106">ຕົວຕົນທີ່ບໍ່ເປີດເຜີຍຊື່</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />ການບໍລິການສະຖານທີ່ຂອງ Google ຈະໃຊ້ແຫລ່ງຂໍ້ມູນຕ່າງໆ ເຊັ່ນ: Wi‑Fi, ເຄືອຂ່າຍມືຖື ແລະ ເຊັນເຊີຕ່າງໆເພື່ອຊ່ວຍຄາດຄະເນສະຖານທີ່ຂອງອຸປະກອນຂອງທ່ານ.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />ທ່ານສາມາດປິດສະຖານທີ່ໄດ້ໂດຍການປິດການຕັ້ງຄ່າສະຖານທີ່ຫຼັກຢູ່ໃນອຸປະກອນຂອງທ່ານ. ນອກຈາກທ່ານຍັງສາມາດປິດການໃຊ້ Wi‑Fi, ເຄືອຂ່າຍມືຖື ແລະ ເຊັນເຊີຕ່າງໆສຳລັບສະຖານທີ່ໄດ້ໃນການຕັ້ງຄ່າສະຖານທີ່.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> ຈະສາມາດເບິ່ງໄຟລ໌ໃນ <ph name="FOLDERNAME" /> ຈົນກວ່າວ່າທ່ານປິດແຖບ <ph name="ORIGIN" /> ທັງໝົດ</translation>
 <translation id="6041155700700864984">ອອກຈາກເຕັມໜ້າຈໍ</translation>
 <translation id="604124094241169006">ອັດ​ຕະ​ໂນ​ມັດ</translation>
 <translation id="6042308850641462728">ເພີ່ມເຕີມ</translation>
@@ -3689,6 +3714,7 @@
 <translation id="6104311680260824317">ບໍ່ສາມາດເພີ່ມອຸປະກອນເຂົ້າຮ່ວມໂດເມນໄດ້. ເຊີບເວີບໍ່ຮອງຮັບການເຂົ້າລະຫັດປະເພດ Kerberos. ກະລຸນາກວດເບິ່ງ "ຕົວເລືອກເພີ່ມເຕີມ" ສຳລັບການຕັ້ງຄ່າການເຂົ້າລະຫັດ.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> ກຳນົດໃຫ້ອັບເດດອຸປະກອນນີ້ໃນທັນທີ</translation>
 <translation id="6106186653986077033">ປລັກອິນ VM ຈຳເປັນຕ້ອງມີໃບອະນຸຍາດ</translation>
+<translation id="6107047744202598802">ອະນຸຍາດໃຫ້ເວັບໄຊຈື່ການເຂົ້າເບິ່ງຂອງທ່ານ ແລະ ຕິດຕາມທ່ານໃນທົ່ວເວັບໄຊໄດ້</translation>
 <translation id="6112294629795967147">ແຕະເພື່ອປັບຂະໜາດ</translation>
 <translation id="6112727384379533756">ເພີ່ມປີ້</translation>
 <translation id="6112931163620622315">ກວດເບິ່ງໂທລະສັບຂອງທ່ານ</translation>
@@ -3767,6 +3793,7 @@
 <translation id="622537739776246443">ໂປຣໄຟລ໌ຈະຖືກລຶບ</translation>
 <translation id="6225475702458870625">ການເຊື່ອມຕໍ່ຂໍ້ມູນທີ່ມີໃຫ້ຈາກ <ph name="PHONE_NAME" /> ຂອງທ່ານ</translation>
 <translation id="6226777517901268232">ໄຟລ​໌​ລະຫັດສ່ວນຕົວ (ເລືອກໄດ້​)​</translation>
+<translation id="6227280783235722609">ສ່ວນຂະຫຍາຍ</translation>
 <translation id="6228691855869374890">ເວັບໄຊທ໌ນີ້​ມີ​ການ​ຄວບ​ຄຸມ​ອຸປະກອນ MIDI ເຕັມ​.</translation>
 <translation id="6228720835160974792">ສ້າງລະຫັດ QR ສຳລັບຮູບນີ້</translation>
 <translation id="6229890768313448549">ບໍ່ສາມາດໂຫຼດຂໍ້ກຳນົດການບໍລິການຂອງ Google Play ໄດ້. ກະລຸນາລອງໃໝ່.</translation>
@@ -3818,6 +3845,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> ບໍ່ຖືກດາວໂຫຼດໂດຍທົ່ວໄປ ແລະ ອາດຈະເປັນອັນຕະລາຍ.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{ເຄື່ອງ​ພິມ​ໃຫມ່​ຢູ່​ເທິງ​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ}other{ເຄື່ອງ​ພິມ​ໃຫມ່​ຢູ່​ເທິງ​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ}}</translation>
 <translation id="6286708577777130801">ລາຍລະອຽດລະຫັດຜ່ານທີ່ບັນທຶກໄວ້</translation>
+<translation id="6291163159361301370">ເພື່ອເລີ່ມ Linux, <ph name="ORGANIZATION_NAME" /> ກຳນົດໃຫ້ທ່ານສຳຮອງຂໍ້ມູນຂອງທ່ານໄວ້ ແລະ ຣີເຊັດ Chromebook ນີ້ເປັນການຕັ້ງຄ່າຈາກໂຮງງານ.</translation>
 <translation id="6291949900244949761">ຖາມເມື່ອເວັບໄຊໃດໜຶ່ງຕ້ອງການເຂົ້າເຖິງອຸປະກອນ USB (ແນະນຳ)</translation>
 <translation id="6291953229176937411">ສະແດງຢູ່ໃນຕົວຊອກ​ຫາ</translation>
 <translation id="6295158916970320988">ທຸກ​ເວັບ​ໄຊ​ທ໌</translation>
@@ -4014,6 +4042,7 @@
 <translation id="6561726789132298588">ປ້ອນເຂົ້າ</translation>
 <translation id="656293578423618167">ຊ່ອງທາງ ຫຼືຊື່ໄຟລ໌ຍາວເກີນໄປ. ກະລຸນາບັນທຶກດ້ວຍຊື່ທີ່ສັ້ນກ່ວາ ຫຼືໄປໃສ່ທີ່ຕັ້ງອື່ນ.</translation>
 <translation id="6563469144985748109">ຜູ້ຈັດການຂອງທ່ານຍັງບໍ່ທັນອະນຸມັດມັນເທື່ອ</translation>
+<translation id="6565955132287672866">ອຸປະກອນຂອງທ່ານປິດເຄື່ອງຢ່າງບໍ່ຖືກຕ້ອງ. ເພື່ອໃຊ້ Linux (ເບຕ້າ) ກະລຸນາຣິສະຕາດມັນກ່ອນ.</translation>
 <translation id="6567688344210276845">ບໍ່ສາມາດໂຫຼດໄອຄອນ '<ph name="ICON" />' ສໍາລັບການດໍາເນີນການໜ້າໄດ້.</translation>
 <translation id="6569934958368283244">ບຸກຄົນອື່ນ</translation>
 <translation id="657402800789773160">​ໂຫຼດ​ຫນ້າ​ນີ້ຄືນອີກ</translation>
@@ -4511,6 +4540,7 @@
 <translation id="7258225044283673131">ແອັບພລິເຄຊັນບໍ່ຕອບສະໜອງ. ເລືອກ "ບັງຄັບປິດ" ເພື່ອປິດແອັບ.</translation>
 <translation id="7258697411818564379">ເພີ່ມ PIN ຂອງທ່ານ</translation>
 <translation id="7262004276116528033">ບໍລິການເຂົ້າສູ່ລະບົບນີ້ຖືກຝາກໄວ້ໂດຍ <ph name="SAML_DOMAIN" /></translation>
+<translation id="7266898409676782635">ຮັບເຄັດລັບ, ຂໍ້ສະເໜີ ແລະ ການອັບເດດກ່ຽວກັບ <ph name="DEVICE_TYPE" /> ແລະ ແບ່ງປັນຄຳຕິຊົມ. ຍົກເລີກການສະໝັກໃຊ້ໄດ້ທຸກເວລາ.</translation>
 <translation id="7268127947535186412">ການຕັ້ງຄ່ານີ້ຈັດການໂດຍເຈົ້າຂອງອຸປະກອນ.</translation>
 <translation id="7270858098575133036">ຖາມເມື່ອເວັບໄຊຕ້ອງການໃຊ້ຂໍ້ຄວາມສະເພາະລະບົບເພື່ອເຂົ້າຫາອຸປະກອນ MIDI</translation>
 <translation id="7272674038937250585">ບໍ່ມີລາຍລະອຽດທີ່ໃຫ້ໄວ້</translation>
@@ -4584,6 +4614,7 @@
 <translation id="7364796246159120393">ເລືອກ​ໄຟລ​໌</translation>
 <translation id="7366415735885268578">ເພີ່ມເວັບໄຊ</translation>
 <translation id="7366909168761621528">ຂໍ້ມູນການທ່ອງເວັບ</translation>
+<translation id="7367714965999718019">ຕົວສ້າງລະຫັດ QR</translation>
 <translation id="736877393389250337">ບໍ່ສາມາດເປີດ <ph name="URL" /> ໄດ້ໃນ <ph name="ALTERNATIVE_BROWSER_NAME" />. ກະລຸນາຕິດຕໍ່ຫາຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ.</translation>
 <translation id="7370592524170198497">ອີເທີເນັດ EAP:</translation>
 <translation id="7371006317849674875">ເວລາເລີ່ມ</translation>
@@ -4841,8 +4872,10 @@
 <translation id="7737238973539693982">ລຶບ Linux (ເບຕ້າ)</translation>
 <translation id="7740996059027112821">ມາດ​ຕະ​ຖານ</translation>
 <translation id="7744047395460924128">ເບິ່ງປະຫວັດການພິມຂອງທ່ານ</translation>
+<translation id="7744192722284567281">ພົບເຫັນໃນການລະເມີດຂໍ້ມູນ</translation>
 <translation id="7746457520633464754">ເພື່ອກວດຫາແອັບ ແລະ ເວັບໄຊອັນຕະລາຍ, Chrome ສົ່ງ URL ຂອງບາງໜ້າເວັບທີ່ທ່ານເຂົ້າເບິ່ງ, ຂໍ້ມູນລະບົບແບບຈຳກັດ ແລະ ບາງເນື້ອຫາໜ້າເວັບໄປໃຫ້ Google</translation>
 <translation id="7750228210027921155">ສະແດງຜົນຊ້ອນກັນ</translation>
+<translation id="7751229152614300329">Safe Browsing ໃໝ່ຫຼ້າສຸດແລ້ວ ແລະ ກຳລັງປົກປ້ອງທ່ານຈາກເວັບໄຊ ແລະ ການດາວໂຫຼດທີ່ອັນຕະລາຍ</translation>
 <translation id="7751260505918304024">ສະ​ແດງ​ທັງ​ຫມົດ</translation>
 <translation id="7754704193130578113">ຖາມບ່ອນທີ່ຈະບັນທຶກແຕ່ລະໄຟລ໌ກ່ອນການດາວໂຫຼດ</translation>
 <translation id="7755287808199759310">ພໍ່ແມ່ຂອງທ່ານສາມາດຍົກເລີກການບລັອກມັນໃຫ້ທ່ານໄດ້</translation>
@@ -4989,6 +5022,7 @@
 <translation id="7910768399700579500">ໂຟລເດີ​ໃຫມ່</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">ລະຫັດຜ່ານຂອງທ່ານໄດ້ຖືກປ່ຽນໃນເຊີບເວີແລ້ວ. ກະລຸນາອອກຈາກລະບົບ ແລ້ວເຂົ້າສູ່ລະບົບຄືນໃໝ່.</translation>
+<translation id="7914583336730284547">ໄຟລ໌ທີ່ວາງລົງເຫຼົ່ານີ້ລະເມີດນະໂຍບາຍຄວາມປອດໄພຂອງອົງການຂອງທ່ານ. ທ່ານຕ້ອງການຢືນຢັນການດຳເນີນຕໍ່ບໍ?</translation>
 <translation id="7915457674565721553">ເຊື່ອມຕໍ່ກັບອິນເຕີເນັດເພື່ອຕັ້ງຄ່າການຄວບຄຸມຂອງພໍ່ແມ່</translation>
 <translation id="7915471803647590281">ກະ​ລຸ​ນາ​ບອກ​ໃຫ້​ພວກ​ເຮົາຮູ້​ສິ່ງ​ທີ່​ກໍາລັງເກີດ​ຂຶ້ນ ​ກ່ອນ​ທີ່​ຈະ​ສົ່ງ​ຄໍາ​ຄິດ​​ເຫັນ​.</translation>
 <translation id="7918257978052780342">ລົງ​ທະ​ບຽນ</translation>
@@ -5085,6 +5119,7 @@
 <translation id="8028803902702117856">ກຳລັງດາວໂຫຼດ <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">ຂະ​ຫນາດ</translation>
 <translation id="8030656706657716245">ເພີ່ມເຄື່ອງ​ພິມ</translation>
+<translation id="8030852056903932865">ອະນຸມັດ</translation>
 <translation id="8032244173881942855">ບໍ່ສາມາດສົ່ງສັນຍານແຖບໄດ້.</translation>
 <translation id="8033827949643255796">ເລືອກແລ້ວ</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{ເປີດທັງໝົດໃນ&amp;ໜ້າຈໍທີ່ບໍ່ເຜີຍຕົວຕົນ}=1{ເປີດໃນ&amp;ໜ້າຈໍທີ່ບໍ່ເຜີຍຕົວຕົນ}other{ເປີດທັງໝົດ (#) ໃນ&amp;ໜ້າຈໍທີ່ບໍ່ເຜີຍຕົວຕົນ}}</translation>
@@ -5405,6 +5440,7 @@
 <translation id="8472623782143987204">ຮາດແວສໍາຮອງໄວ້</translation>
 <translation id="8473863474539038330">ທີ່ຢູ່ ແລະ ອື່ນໆອີກ</translation>
 <translation id="8475313423285172237">ໂປຣແກຼມອື່ນຢູ່ໃນຄອມພິວເຕີຂອງທ່ານໄດ້ເພີ່ມສ່ວນຂະຫຍາຍທີ່ອາດຈະປ່ຽນແປງວິທີການເຮັດວຽກຂອງ Chrome ແລ້ວ.</translation>
+<translation id="8476659515398963495">ຂໍ້ມູນທີ່ວາງໃສ່ນີ້ລະເມີດນະໂຍບາຍຄວາມປອດໄພຂອງອົງການຂອງທ່ານ. ທ່ານຕ້ອງການຢືນຢັນການດຳເນີນຕໍ່ບໍ?</translation>
 <translation id="8477241577829954800">ປ່ຽນແທນແລ້ວ</translation>
 <translation id="8477384620836102176">ທົ່ວໄປ</translation>
 <translation id="8480082892550707549">ເຖິງແມ່ນວ່າທ່ານໄດ້ດາວໂຫຼດໄຟລ໌ຈາກເວັບໄຊນີ້ມາກ່ອນ, ເວັບໄຊນີ້ອາດຈະບໍ່ປອດໄພຊົ່ວຄາວ (ຖືກແຮັກ). ລອງດາວໂຫຼດໄຟລ໌ນີ້ໃນພາຍຫຼັງ.</translation>
@@ -5458,6 +5494,7 @@
 <translation id="8547013269961688403">ເປີດນຳໃຊ້ແວ່ນຂະຫຍາຍເຕັມຈໍ</translation>
 <translation id="85486688517848470">ກົດປຸ່ມຊອກຫາຄ້າງໄວ້ເພື່ອປ່ຽນພຶດຕິກຳຂອງປຸ່ມແຖວເທິງ</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 ລາຍ​ການ}other{# ລາຍການ}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> ຈະສາມາດແກ້ໄຂໄຟລ໌ໃນ <ph name="FOLDERNAME" /> ຈົນກວ່າວ່າທ່ານປິດແຖບ <ph name="ORIGIN" /> ທັງໝົດ</translation>
 <translation id="8551388862522347954">ໃບ​ອະ​ນຸ​ຍາດ</translation>
 <translation id="8553342806078037065">ຈັດການບູກຄົນອື່ນ</translation>
 <translation id="8554899698005018844">ບໍ່ມີພາສາ</translation>
@@ -5516,6 +5553,7 @@
 <translation id="8637688295594795546">ມີການອັບເດດລະບົບຢູ່. ກໍາລັງກຽມດາວໂຫຼດ…</translation>
 <translation id="8639047128869322042">ກຳລັງກວດເບິ່ງຊອບແວອັນຕະລາຍ...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - ຜອດ</translation>
+<translation id="8641606876632989680">Chrome ຈະແຈ້ງບອກທ່ານເມື່ອທ່ານເຂົ້າສູ່ລະບົບດ້ວຍລະຫັດຜ່ານທີ່ຖືກລະເມີດ</translation>
 <translation id="8642900771896232685">2 ວິນາທີ</translation>
 <translation id="8642947597466641025">ເຮັດ​ໃຫ້​ຂໍ້​ຄວາມ​​ໃຫຍ່ຂຶ້ນ</translation>
 <translation id="8644655801811752511">ບໍ່ສາມາດຣີເຊັດກະແຈຄວາມປອດໄພນີ້ໄດ້. ລອງຣີເຊັດກະແຈໃນທັນທີຫຼັງຈາກສຽບເຂົ້າ.</translation>
@@ -5565,6 +5603,7 @@
 <translation id="869884720829132584">ເມ​ນູ​ແອັບພລິເຄຊັນ</translation>
 <translation id="869891660844655955">ວັນ​ຫມົດ​ອາ​ຍຸ</translation>
 <translation id="8703346390800944767">ຂ້າມໂຄສະນາ</translation>
+<translation id="870341961648617780">ການຕັ້ງຄ່າ Safe Browsing ແລະ ຄວາມປອດໄພຂັ້ນສູງ</translation>
 <translation id="8705331520020532516">ເລກລໍາດັບ</translation>
 <translation id="8705580154597116082">Wi-Fi ມີໃຫ້ນຳໃຊ້ຜ່ານໂທລະສັບໄດ້</translation>
 <translation id="8705629851992224300">ບໍ່ສາມາດອ່ານກະແຈຄວາມປອດໄພຂອງທ່ານໄດ້</translation>
@@ -5610,6 +5649,7 @@
 <translation id="874689135111202667">{0,plural, =1{ອັບໂຫຼດໜຶ່ງໄຟລ໌ໃສ່ເວັບໄຊນີ້ບໍ?}other{ອັບໂຫຼດ # ໄຟລ໌ໃສ່ເວັບໄຊນີ້ບໍ?}}</translation>
 <translation id="8748384418490037181">ຕົວເລືອກ Smart Lock</translation>
 <translation id="8749863574775030885">ເຂົ້າ​ຫາ​ອຸ​ປະ​ກອນ USB ຈາກ​ຜູ້​ຂາຍ​ທີ່​ບໍ່​ຮູ້​ຈັກ</translation>
+<translation id="8750133148106010815">ເພື່ອເລີ່ມ Google Play, <ph name="ORGANIZATION_NAME" /> ກຳນົດໃຫ້ທ່ານສຳຮອງຂໍ້ມູນຂອງທ່ານໄວ້ ແລະ ຣີເຊັດ Chromebook ນີ້ເປັນການຕັ້ງຄ່າຈາກໂຮງງານ.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ຕ້ອງການເຊື່ອມຕໍ່ກັບຜອດອະນຸກໍາ</translation>
 <translation id="8754200782896249056">&lt;p&gt;ເມື່ອແລ່ນ <ph name="PRODUCT_NAME" /> ຢູ່ພາຍໃຕ້ສະພາບແວດລ້ອມ​ເດັ​ສ​ທັອບທີ່ຮອງຮັບ, ການຕັ້ງຄ່າພຣັອກຊີລະບົບຈະຖືກນໍາໄປໃຊ້. ເຖິງແນວໃດກໍ່ຕາມ, ລະບົບຂອງທ່ານບໍ່ຮອງຮັບ ຫຼືມີບັນຫາການເປີດໃຊ້ການກຳ​ນົດຄ່າລະບົບຂອງທ່ານ.&lt;/p&gt;
 
@@ -5664,6 +5704,7 @@
 <translation id="8809147117840417135">ສີຂຽວອົມຟ້າອ່ອນ</translation>
 <translation id="8813698869395535039">ບໍ່ສາມາດລົງຊື່ເຂົ້າໃຊ້ <ph name="USERNAME" /> ໄດ້</translation>
 <translation id="8813811964357448561">ແຜ່ນ​ເຈ້ຍ</translation>
+<translation id="8813872945700551674">ຂໍໃຫ້ພໍ່ແມ່ອະນຸຍາດ "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="8813969267212093033">ຂໍ້ຄວາມລະບົບປາກົດເປັນພາສານີ້</translation>
 <translation id="8814190375133053267">Wi​-Fi</translation>
 <translation id="8814687660896548945">ກະລຸນາລໍຖ້າ, ກຳລັງສະແກນແຟ້ມຈັດເກັບຢູ່...</translation>
@@ -5944,6 +5985,7 @@
 <translation id="9203398526606335860">ການສ້າງໂປຣໄຟລ໌ເປີດໃຊ້ງານແລ້ວ</translation>
 <translation id="9203904171912129171">ເລືອກອຸປະກອນ</translation>
 <translation id="9203962528777363226">ຜູ້ຄວບຄຸມອຸປະກອນປິດໃຊ້ງານຜູ້ໃຊ້ໃໝ່ຈາກທີ່ໄດ້ເພີ່ມເຂົ້າແລ້ວ</translation>
+<translation id="9211177926627870898">ຈຳເປັນຕ້ອງອັບເດດ</translation>
 <translation id="9214520840402538427">ອຸ້ຍ! ການລິເລີ່ມຄຸນລັກສະນະເວລາການຕິດຕັ້ງໝົດເວລາແລ້ວ. ກະລຸນາຕິດຕໍ່ຕົວແທນຊ່ວຍເຫຼືອຂອງທ່ານ.</translation>
 <translation id="9214695392875603905">Cupcake</translation>
 <translation id="9215293857209265904">ເພີ່ມ "<ph name="EXTENSION_NAME" />" ແລ້ວ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 88e92ab..3242a6c 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">„Adobe Flash Player“ saugyklos nustatymai</translation>
 <translation id="1274997165432133392">Slapukai ir kiti svetainių duomenys</translation>
 <translation id="1280820357415527819">Ieškoma mobiliojo ryšio tinklų</translation>
+<translation id="1280965841156951489">Redaguoti failus</translation>
 <translation id="1282420830958964167">Pasiektas tėvų nustatytas programos „<ph name="APP_NAME" />“ apribojimas. Rytoj galėsite ją naudoti <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Niekada neversti šios svetainės</translation>
 <translation id="1285484354230578868">Saugoti duomenis „Google“ disko paskyroje</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Tamsiai violetinė</translation>
 <translation id="1692799361700686467">Leidžiami slapukai iš kelių svetainių.</translation>
 <translation id="1697150536837697295">Menas</translation>
+<translation id="1697686431566694143">Redaguoti failą</translation>
 <translation id="1698122934742150150">Tik dabartinė inkognito režimo sesija</translation>
 <translation id="1698650002254827833">Nepavyko įkelti programų sąrašo. Bandykite dar kartą.</translation>
 <translation id="1701062906490865540">Pašalinti šį asmenį</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Neįdiegti jokie komponentai.</translation>
 <translation id="1932098463447129402">Nuo</translation>
 <translation id="1933809209549026293">Prijunkite pelę ar klaviatūrą. Jei naudojate „Bluetooth“ įrenginį, įsitikinkite, kad jis paruoštas susieti.</translation>
+<translation id="1936931585862840749">Skaičiumi nurodykite, kiek kopijų spausdinti (nuo 1 iki <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Nepavyko importuoti sudėtinio rodinio architektūros tipo „<ph name="ARCHITECTURE_CONTAINER" />“ naudojant šį įrenginį, kuris yra „<ph name="ARCHITECTURE_DEVICE" />“. Galite pabandyti atkurti šį sudėtinį rodinį naudodami kitą įrenginį arba galite pasiekti failus šiame sudėtinio rodinio vaizde atidarę Failų programą.</translation>
 <translation id="1938351510777341717">Išorinė komanda</translation>
 <translation id="1940546824932169984">Prijungti įrenginiai</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Šio skirtuko paryškinimas</translation>
 <translation id="2344028582131185878">Automatiniai atsisiuntimai</translation>
 <translation id="2345723121311404059">1 psl. į „<ph name="PRINTER_NAME" />“</translation>
+<translation id="2346953515226895098">SODA paslauga</translation>
 <translation id="2347644257713614136">„Hangout“ ir „Cast for Education“ naudojimas reglamentuojamas pagal „Google“ privatumo politiką.</translation>
 <translation id="2348176352564285430">Programa: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Įkelta iš naujo</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">„Linux“ atkūrimas atšauktas</translation>
 <translation id="2423578206845792524">Iš&amp;saugoti paveikslėlį kaip...</translation>
 <translation id="2428510569851653187">Apibūdinkite, ką darėte, kai skirtukas užstrigo</translation>
+<translation id="2428939361789119025">Išjungti „Wi-Fi“</translation>
 <translation id="2431027948063157455">Nepavyko įkelti „Google“ padėjėjo, patikrinkite tinklo ryšį ir bandykite dar kartą.</translation>
 <translation id="2432753757290432042">Būtina atnaujinti „Linux“ (beta vers.)</translation>
 <translation id="2433452467737464329">Pridėkite užklausos parametrą prie URL, kad puslapis būtų automatiškai atnaujinamas: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Siųskite naudojimo ir diagnostikos duomenis. Padėkite tobulinti „Android“ funkcijas automatiškai siųsdami „Google“ diagnostikos, įrenginio ir programų naudojimo duomenis. Tai padės pagerinti sistemos bei programos stabilumą ir teikti kitus patobulinimus. Kai kurie sukaupti duomenys taip pat bus naudingi „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams. Jei papildomas „Žiniatinklio ir programų veiklos“ nustatymas įjungtas, šie duomenys gali būti išsaugoti „Google“ paskyroje. <ph name="BEGIN_LINK1" />Sužinokite daugiau<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Pridėti ryšį</translation>
 <translation id="2947605845283690091">Žiniatinklio naršymas turėtų būti spartus. Skirkite šiek tiek laiko ir <ph name="BEGIN_LINK" />patikrinkite plėtinius<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{Išjungtas vienas potencialiai žalingas plėtinys. Taip pat galite jį pašalinti.}one{Išjungtas # potencialiai žalingas plėtinys. Taip pat galite juos pašalinti.}few{Išjungti # potencialiai žalingi plėtiniai. Taip pat galite juos pašalinti.}many{Išjungta # potencialiai žalingo plėtinio. Taip pat galite juos pašalinti.}other{Išjungta # potencialiai žalingų plėtinių. Taip pat galite juos pašalinti.}}</translation>
 <translation id="2948300991547862301">Eiti į <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Sparti, paprasta ir saugi žiniatinklio naršyklė, sukurta moderniam žiniatinkliui.</translation>
 <translation id="2949289451367477459">Naudoti vietovę. Leisti leidimą pasiekti vietovės duomenis turinčioms programoms ir paslaugoms naudoti šio įrenginio vietovę. „Google“ gali periodiškai rinkti vietovės duomenis ir juos naudoti anonimiškai siekdama patobulinti vietovės tikslumą ir pagerinti paslaugas pagal vietovę. <ph name="BEGIN_LINK1" />Sužinokite daugiau<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Įdiegti programą?</translation>
 <translation id="3067198360141518313">Paleisti šį papildinį</translation>
 <translation id="3071624960923923138">Galite spustelėti čia, kad atidarytumėte naują skirtuką</translation>
+<translation id="3072775339180057696">Leisti svetainei peržiūrėti failą „<ph name="FILE_NAME" />“?</translation>
 <translation id="3075874217500066906">Norint pradėti funkcijos „Powerwash“ procesą, būtina paleisti iš naujo. Paleidus iš naujo jūsų bus paprašyta patvirtinti, kad norite tęsti.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" /> / <ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Prisijungimo duomenys buvo ištrinti</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Svetainė gali naudoti jūsų fotoaparatą</translation>
 <translation id="3085752524577180175">SOCKS priegloba</translation>
 <translation id="3088052000289932193">Svetainėje naudojamas MIDI įrenginys</translation>
+<translation id="3088128611727407543">Ruošiamas programos profilis...</translation>
 <translation id="3088325635286126843">&amp;Pervardyti...</translation>
 <translation id="3089137131053189723">Paieška išvalyta</translation>
 <translation id="3090193911106258841">Pasiekiama garso ir vaizdo įrašų įvestis</translation>
@@ -1596,6 +1604,7 @@
     Aprašas:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">„Chrome“ programos</translation>
+<translation id="3150693969729403281">Dabar vykdyti saugos patikrą</translation>
 <translation id="3150927491400159470">Priverstinis įkėlimas iš naujo</translation>
 <translation id="315116470104423982">Duomenys mobiliesiems</translation>
 <translation id="3151539355209957474">Pradžios laikas</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Prisijungti prie „Chrome“</translation>
 <translation id="3285322247471302225">Naujas &amp;skirtukas</translation>
 <translation id="328571385944182268">Išsaugoti slaptažodžius?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> galės peržiūrėti failą „<ph name="FILENAME" />“, kol uždarysite visus <ph name="ORIGIN" /> skirtukus</translation>
 <translation id="3288047731229977326">Kūrėjo režimu veikiantys plėtiniai gali padaryti žalos kompiuteryje. Jei nesate kūrėjai, turėtumėte išjungti šių plėtinių veikimą kūrėjo režimu, kad išliktumėte saugūs.</translation>
 <translation id="3289856944988573801">Jei norite tikrinti, ar nėra naujinių, naudokite eternetą arba „Wi-Fi“.</translation>
 <translation id="3290356915286466215">Neapsaugota</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Skaityti duomenys daugybėje svetainių</translation>
 <translation id="3448086340637592206">„Google Chrome“ ir „Chrome“ OS papildomos sąlygos</translation>
 <translation id="3448492834076427715">Atnaujinti paskyrą</translation>
+<translation id="3449393517661170867">Naujas skirtukų langas</translation>
 <translation id="3449839693241009168">Paspauskite <ph name="SEARCH_KEY" />, kad galėtumėte siųsti komandas į „<ph name="EXTENSION_NAME" />“</translation>
 <translation id="3450157232394774192">Neveikos būsenos užėmimo procentas</translation>
 <translation id="3451332697983754369">Sinchronizuoti <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Dėkojame už atsiliepimus. Dabar esate neprisijungę, todėl jūsų pranešimas bus išsiųstas vėliau.</translation>
 <translation id="3682824389861648626">Judesių slenkstis</translation>
 <translation id="3683524264665795342">„<ph name="APP_NAME" />“ ekrano bendrinimo užklausa</translation>
+<translation id="3686074530047028092">„Education“ paskyra</translation>
 <translation id="368789413795732264">Bandant įrašyti failą įvyko klaida: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Rašyti failuose ir aplankuose, kuriuos atidarėte programoje</translation>
 <translation id="3688526734140524629">Keisti kanalą</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Blokuoti tinklalapių dalis</translation>
 <translation id="3760460896538743390">Tikrinti fono puslapį</translation>
 <translation id="37613671848467444">Atidaryti inkognito lange</translation>
+<translation id="3761556954875533505">Leisti svetainei redaguoti failus?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Užmegzti ryšį su USB įrenginiu}one{Užmegzti ryšį su # USB įrenginiu}few{Užmegzti ryšį su # USB įrenginiais}many{Užmegzti ryšį su # USB įrenginio}other{Užmegzti ryšį su # USB įrenginių}}</translation>
 <translation id="3765246971671567135">Nepavyko nuskaityti neprisijungus pasiekiamos demonstracinio režimo politikos.</translation>
 <translation id="3768037234834996183">Sinchronizuojamos nuostatos...</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Uždrausti</translation>
 <translation id="3928570707778085600">Išsaugoti „<ph name="FILE_OR_FOLDER_NAME" />“ pakeitimus?</translation>
 <translation id="3929426037718431833">Šie plėtiniai gali peržiūrėti ir keisti informaciją šioje svetainėje.</translation>
+<translation id="3930155420525972941">Grupės perkėlimas į naują langą</translation>
 <translation id="3930737994424905957">Ieškoma įrenginių</translation>
 <translation id="3930968231047618417">Fono spalva</translation>
 <translation id="3933283459331715412">Atkurti ištrintą <ph name="USERNAME" /> slaptažodį</translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Sutinku</translation>
 <translation id="413121957363593859">Komponentai</translation>
 <translation id="4131410914670010031">Nespalvotai</translation>
+<translation id="4133076602192971179">Atidarykite programą, kad pakeistumėte slaptažodį</translation>
 <translation id="4136203100490971508">Nakties šviesa bus išjungta automatiškai saulei tekant</translation>
 <translation id="41365691917097717">Tęsdami įgalinsite ADB derinimą, naudojamą „Android“ programoms kurti ir testuoti. Atminkite, kad atlikus šį veiksmą bus leidžiama įdiegti „Android“ programas, kurios nebuvo patvirtintos „Google“, o norint išjungti ADB, reikės atkurti gamyklinius nustatymus.</translation>
 <translation id="4138267921960073861">Rodyti naudotojų vardus ir nuotraukas prisijungimo ekrane</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Niekada neversti <ph name="LANGUAGE" /> k.</translation>
 <translation id="4332976768901252016">Tėvų kontrolės nustatymas</translation>
 <translation id="4333854382783149454">PKCS Nr. 1 SHA-1 su RSA šifruote</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Administratorius vėl įjungė vieną potencialiai žalingą plėtinį}one{Administratorius vėl įjungė # potencialiai žalingą plėtinį}few{Administratorius vėl įjungė # potencialiai žalingus plėtinius}many{Administratorius vėl įjungė # potencialiai žalingo plėtinio}other{Administratorius vėl įjungė # potencialiai žalingų plėtinių}}</translation>
 <translation id="4336434711095810371">Išvalyti visus duomenis</translation>
 <translation id="4336979451636460645">Tinklo žurnalus rasite adresu <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> nori užmegzti ryšį su programa „<ph name="EXTENSION_NAME" />“</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Naudojate saugos raktą, kuris nėra užregistruotas šioje svetainėje</translation>
 <translation id="4788092183367008521">Patikrinkite tinklo ryšį ir bandykite dar kartą.</translation>
 <translation id="4792711294155034829">&amp;Pranešti apie problemą...</translation>
+<translation id="4794810983896241342">Naujinius tvarko <ph name="BEGIN_LINK" />administratorius<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Tinklalapis, tik HTML</translation>
 <translation id="4798236378408895261">Pridėti <ph name="BEGIN_LINK" />„Bluetooth“ žurnalus<ph name="END_LINK" /> („Google“ darbuotojams)</translation>
 <translation id="4801448226354548035">Slėpti paskyras</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Jei norite naršyti iš karto dvi svetaines, atidarykite naują skirtuką</translation>
 <translation id="4909038193460299775">Kadangi ši paskyra tvarkoma <ph name="DOMAIN" />, jūsų žymės, istorija, slaptažodžiai ir kiti nustatymai bus išvalyti iš šio įrenginio. Tačiau duomenys bus toliau saugomi „Google“ paskyroje ir juos bus galima tvarkyti <ph name="BEGIN_LINK" />„Google“ informacijos suvestinėje<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Neaktyvumo režimo nutraukimo veiksmai</translation>
+<translation id="4916542008280060967">Leisti svetainei redaguoti failą „<ph name="FILE_NAME" />“?</translation>
 <translation id="491691592645955587">Perjunkite į saugią naršyklę</translation>
 <translation id="4917385247580444890">Stiprus</translation>
 <translation id="4918021164741308375">„<ph name="ORIGIN" />“ nori užmegzti ryšį su plėtiniu „<ph name="EXTENSION_NAME" />“</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Prisiminti</translation>
 <translation id="5018207570537526145">Atidaryti plėtinio svetainę</translation>
 <translation id="5021750053540820849">Dar neatnaujinta</translation>
+<translation id="5026806129670917316">Įjungti „Wi-Fi“</translation>
 <translation id="5026874946691314267">Daugiau nerodyti</translation>
 <translation id="5027550639139316293">El. pašto sertifikatas</translation>
 <translation id="5027562294707732951">Pridėti plėtinį</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">„&amp;JavaScript“·pultas</translation>
 <translation id="5184209580557088469">Bilietas su tokiu naudotojo vardu jau yra</translation>
 <translation id="5184662919967270437">Įrenginys atnaujinamas</translation>
+<translation id="5185359571430619712">Peržiūrėti plėtinius</translation>
 <translation id="5185386675596372454">Naujausia „<ph name="EXTENSION_NAME" />“ versija buvo išjungta, nes jai reikia daugiau leidimų.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> nori atsisiųsti kelis failus</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Išmaniosios kabutės</translation>
 <translation id="5260508466980570042">Atsiprašome, el. pašto ir slaptažodžio patvirtinti nepavyko. Bandykite dar kartą.</translation>
 <translation id="5261683757250193089">Atidaryti internetinėje parduotuvėje</translation>
+<translation id="5262178194499261222">Pašalinti slaptažodį</translation>
 <translation id="5264148714798105376">Tai gali šiek tiek užtrukti.</translation>
 <translation id="5264252276333215551">Prisijunkite prie interneto, kad paleistumėte savo programą viešojo terminalo režimu.</translation>
 <translation id="5265562206369321422">Neprijungta daugiau nei savaitę</translation>
@@ -3508,6 +3529,7 @@
 <translation id="5833726373896279253">Šiuos nustatymus gali keisti tik savininkas:</translation>
 <translation id="5834581999798853053">Liko apie <ph name="TIME" /> min.</translation>
 <translation id="5835486486592033703">„<ph name="WINDOW_TITLE" />“ – fotoaparato ar mikrofono įrašymas</translation>
+<translation id="5841270259333717135">Eterneto konfigūravimas</translation>
 <translation id="5842497610951477805">„Bluetooth“ įgalinimas</translation>
 <translation id="5846200638699387931">Ryšio sintaksės klaida: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Jau pridėta</translation>
@@ -3553,6 +3575,7 @@
 <translation id="5900358982890952556">„Linux“ (beta versijos) naujovinimas</translation>
 <translation id="5901494423252125310">Spausdintuvo durelės atidarytos</translation>
 <translation id="5901630391730855834">Geltona</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Vėl įjungėte vieną potencialiai žalingą plėtinį}one{Vėl įjungėte # potencialiai žalingą plėtinį}few{Vėl įjungėte # potencialiai žalingus plėtinius}many{Vėl įjungėte # potencialiai žalingo plėtinio}other{Vėl įjungėte # potencialiai žalingų plėtinių}}</translation>
 <translation id="5906655207909574370">Beveik įdiegta naujausia versija! Paleiskite įrenginį iš naujo, kad būtų užbaigtas naujinimas.</translation>
 <translation id="5906732635754427568">Su šia programa susieti duomenys bus pašalinti iš šio įrenginio.</translation>
 <translation id="5908769186679515905">Užblokuoti svetaines, kad nebūtų galima vykdyti „Flash“</translation>
@@ -3582,6 +3605,7 @@
 <translation id="59324397759951282">USB įrenginys iš „<ph name="MANUFACTURER_NAME" />“</translation>
 <translation id="5932881020239635062">Serijos</translation>
 <translation id="5933376509899483611">Laiko juosta</translation>
+<translation id="5935656526031444304">Tvarkyti Saugaus naršymo funkciją</translation>
 <translation id="5938002010494270685">Yra saugos naujovinimas</translation>
 <translation id="5939518447894949180">Nustatyti iš naujo</translation>
 <translation id="5941153596444580863">Pridėti asmenį...</translation>
@@ -3625,6 +3649,7 @@
 <translation id="5993807461461235661">Šis įkeltas failas yra šifruotas ir pažeidžia organizacijos saugos politiką.</translation>
 <translation id="5997337190805127100">Sužinokite daugiau apie prieigą prie svetainės</translation>
 <translation id="6000758707621254961">Rezultatų pagal užklausą „<ph name="SEARCH_TEXT" />“: <ph name="RESULT_COUNT" /></translation>
+<translation id="6002210667729577411">Grupės perkėlimas į naują langą</translation>
 <translation id="6002458620803359783">Pageidaujami balsai</translation>
 <translation id="6006484371116297560">Klasikinė</translation>
 <translation id="6007240208646052708">Paieška balsu jūsų kalba nepasiekiama.</translation>
@@ -4163,6 +4188,7 @@
 <translation id="6736329909263487977">„<ph name="ISSUED_BY" />“ [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Rodyti spartųjį darbalaukio klavišą</translation>
 <translation id="6740234557573873150">„<ph name="FILE_NAME" />“ pristabdytas</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Administratorius<ph name="END_LINK" /> išjungė Saugaus naršymo funkciją</translation>
 <translation id="6742339027238151589">Pasiekiama scenarijaus</translation>
 <translation id="6745592621698551453">Atnaujinti dabar</translation>
 <translation id="6746124502594467657">Perkelti žemyn</translation>
@@ -4421,6 +4447,7 @@
     <ph name="BEGIN_BOLD" />Atminkite toliau nurodytus dalykus.<ph name="END_BOLD" /> „Google Assistants“ taip pat galima pasiekti panašiu balsu ar naudojant panašų įrašą. Galėsite vėliau pašalinti „Voice Match“ leidimą išjungę jį „Google Assistant“ skiltyje „Nustatymai“.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Keistis duomenimis su įrenginiais, kurių pavadinimai: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Įrenginys bus paleistas iš naujo įdiegus naujinius.</translation>
 <translation id="7098389117866926363">USB-C įrenginys (prievadas kairėje, užpakalinėje dalyje)</translation>
 <translation id="7098447629416471489">Kiti išsaugoti paieškos varikliai bus rodomi čia</translation>
 <translation id="7099337801055912064">Nepavyko įkelti didelio PPD. Didžiausias galimas dydis yra 250 KB.</translation>
@@ -4893,6 +4920,7 @@
 <translation id="7766807826975222231">Peržiūrėti apžvalgą</translation>
 <translation id="7766838926148951335">Priimti leidimus</translation>
 <translation id="7769672763586021400">Modelio ID</translation>
+<translation id="7770651108375708429">Atsijungti nuo „Wi-Fi“</translation>
 <translation id="7771452384635174008">Išdėstymas</translation>
 <translation id="7772032839648071052">Patvirtinti slaptafrazę</translation>
 <translation id="7772127298218883077">Apie „<ph name="PRODUCT_NAME" />“</translation>
@@ -5051,6 +5079,7 @@
 <translation id="7939412583708276221">Vis tiek saugoti</translation>
 <translation id="7942349550061667556">Raudona</translation>
 <translation id="7943837619101191061">Pridėti vietą...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 pažeistas slaptažodis}one{# pažeistas slaptažodis}few{# pažeisti slaptažodžiai}many{# pažeisto slaptažodžio}other{# pažeistų slaptažodžių}}</translation>
 <translation id="7945031593909029181">Plėtinys „<ph name="CHROME_EXTENSION_NAME" />“ nori prisijungti</translation>
 <translation id="7946586320617670168">Pradinis turinys turi būti saugus</translation>
 <translation id="794676567536738329">Patvirtinti leidimus</translation>
@@ -5150,6 +5179,7 @@
 <translation id="8059417245945632445">&amp;Tikrinti įrenginius</translation>
 <translation id="8059456211585183827">Nėra galimų išsaugoti spausdintuvų.</translation>
 <translation id="8063235345342641131">Numatytasis žalias pseudoportretas</translation>
+<translation id="8063535366119089408">Peržiūrėti failą</translation>
 <translation id="8064671687106936412">Raktas:</translation>
 <translation id="8068253693380742035">Palieskite, kad prisijungtumėte</translation>
 <translation id="8068809649322155577">Bus išvalyti visi <ph name="SITE_GROUP_NAME" />, į ją įtrauktų svetainių ir jos įdiegtų programų saugomi duomenys ir slapukai.</translation>
@@ -5215,6 +5245,7 @@
 <translation id="8152091997436726702">Baigėsi spausdintuvo registracijos laikas. Jei norite užregistruoti spausdintuvą, turite patvirtinti registraciją spausdintuve.</translation>
 <translation id="8154790740888707867">Nėra failo</translation>
 <translation id="815491593104042026">Oi! Nepavyko autentifikuoti, nes buvo sukonfigūruoti naudoti nesaugų URL (<ph name="BLOCKED_URL" />). Susisiekite su administratoriumi.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Nerasta pažeistų slaptažodžių}=1{{COUNT} pažeistas slaptažodis}one{{COUNT} pažeistas slaptažodis}few{{COUNT} pažeisti slaptažodžiai}many{{COUNT} pažeisto slaptažodžio}other{{COUNT} pažeistų slaptažodžių}}</translation>
 <translation id="8157704005178149728">Priežiūros nustatymas</translation>
 <translation id="8158117992543756526">Šiam įrenginiui nebeteikiami automatiniai programinės įrangos ir saugos naujiniai nuo <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Sertifikato patikimumo nustatymo klaida</translation>
@@ -5268,6 +5299,7 @@
 <translation id="8226742006292257240">Toliau pateikiamas kompiuteriui priskirtas atsitiktinai sugeneruotas TPM slaptažodis:</translation>
 <translation id="8227119283605456246">Pridėtas failas</translation>
 <translation id="8230134520748321204">Išsaugoti <ph name="ORIGIN" /> slaptažodį?</translation>
+<translation id="8233762480744368479">Interneto nustatymai</translation>
 <translation id="8234795456569844941">Padėkite inžinieriams išspręsti šią problemą. Papasakokite, kas vyko prieš parodant profilio klaidos pranešimą:</translation>
 <translation id="8236123533334037984">Organizacija nuskaito šį įkėlimą, kad galėtų patvirtinti jo saugumą.</translation>
 <translation id="8236917170563564587">Geriau bendrinti šį skirtuką</translation>
@@ -5605,6 +5637,7 @@
 <translation id="8688579245973331962">Nematote savo vardo?</translation>
 <translation id="8688591111840995413">Netinkamas slaptažodis</translation>
 <translation id="8688672835843460752">Galima</translation>
+<translation id="8691418731028620688">Prisijungti prie „Wi-Fi“</translation>
 <translation id="8695825812785969222">Atidaryti &amp;vietą...</translation>
 <translation id="869884720829132584">Programų meniu</translation>
 <translation id="869891660844655955">Galiojimo data</translation>
@@ -5764,6 +5797,7 @@
 <translation id="8872187374998143710">Paleiskite įrenginį iš naujo, kad galėtumėte naudoti „Plugin VM“.</translation>
 <translation id="8872777911145321141">Klausti, kai svetainė nori naudoti virtualiosios realybės įrenginius ir duomenis (rekomenduojama)</translation>
 <translation id="8874184842967597500">Neprisijungta</translation>
+<translation id="8875775314572167244">Eterneto nustatymai</translation>
 <translation id="8876307312329369159">Šio nustatymo negalima pakeisti demonstracinėje sesijoje.</translation>
 <translation id="8877448029301136595">[parent directory]</translation>
 <translation id="8878384954777710821">Pašalinamas „Plugin VM“...</translation>
@@ -5805,6 +5839,7 @@
 <translation id="892706138619340876">Kai kurie nustatymai nustatyti iš naujo</translation>
 <translation id="8930351635855238750">Nauji slapukų nustatymai pradės galioti iš naujo įkėlus puslapį</translation>
 <translation id="8931394284949551895">Nauji įrenginiai</translation>
+<translation id="8931475688782629595">Sinchronizuojamo turinio tvarkymas</translation>
 <translation id="8932894639908691771">Prieigos jungikliu parinktys</translation>
 <translation id="8933960630081805351">&amp;Rodyti ieškojimo priemonėje</translation>
 <translation id="8934732568177537184">Tęsti</translation>
@@ -5962,6 +5997,7 @@
 <translation id="9148126808321036104">Prisijungti dar kartą</translation>
 <translation id="9149866541089851383">Redaguoti...</translation>
 <translation id="9150045010208374699">Naudoti kamerą</translation>
+<translation id="9150429437595727962">„Wi-Fi“ nustatymai</translation>
 <translation id="9153934054460603056">Išsaugoti tapatybę ir slaptažodį</translation>
 <translation id="9154194610265714752">Atnaujinta</translation>
 <translation id="91568222606626347">Kurti spartųjį klavišą...</translation>
@@ -6023,6 +6059,7 @@
 <translation id="945522503751344254">Siųsti atsiliepimą</translation>
 <translation id="947329552760389097">&amp;Tikrinti elementus</translation>
 <translation id="952992212772159698">Nesuaktyvinta</translation>
+<translation id="956500788634395331">Esate apsaugoti nuo potencialiai žalingų plėtinių</translation>
 <translation id="957960681186851048">Ši svetainė bandė automatiškai atsisiųsti kelis failus</translation>
 <translation id="9580706199804957">Nepavyko prisijungti prie „Google“ paslaugų</translation>
 <translation id="960719561871045870">Operacijos ženklo kodas</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 87d19ad..438d21b3 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Adobe Flash Player krātuves iestatījumi</translation>
 <translation id="1274997165432133392">Sīkfaili un citi vietņu dati</translation>
 <translation id="1280820357415527819">Notiek mobilo tīklu meklēšana</translation>
+<translation id="1280965841156951489">Rediģēt failus</translation>
 <translation id="1282420830958964167">Vecāku iestatītais laika ierobežojums lietotnei <ph name="APP_NAME" /> ir beidzies. Rīt varēsiet to izmantot <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Nekad netulkot šo vietni</translation>
 <translation id="1285484354230578868">Saglabāt datus jūsu Google diska kontā</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Tumši violeta</translation>
 <translation id="1692799361700686467">Ir atļauti vairāku vietņu sīkfaili.</translation>
 <translation id="1697150536837697295">Māksla</translation>
+<translation id="1697686431566694143">Rediģēt failu</translation>
 <translation id="1698122934742150150">Tikai pašreizējā inkognito sesijā</translation>
 <translation id="1698650002254827833">Lietotņu sarakstu nevar ielādēt. Lūdzu, mēģiniet vēlreiz.</translation>
 <translation id="1701062906490865540">Noņemt šo lietotāju</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Nav instalēts neviens komponents.</translation>
 <translation id="1932098463447129402">Nevis pirms</translation>
 <translation id="1933809209549026293">Lūdzu, pievienojiet peli vai tastatūru. Ja izmantojat Bluetooth ierīci, pārliecinieties, ka tā ir gatava savienošanai pārī.</translation>
+<translation id="1936931585862840749">Izmantojiet skaitli, lai norādītu, cik eksemplāru jādrukā (1–<ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Nevar importēt konteinera arhitektūras veidu <ph name="ARCHITECTURE_CONTAINER" /> ar <ph name="ARCHITECTURE_DEVICE" /> ierīci. Varat mēģināt atjaunot šo konteineru citā ierīcē vai arī piekļūt failiem šī konteinera attēla iekšpusē, atverot lietotni Faili.</translation>
 <translation id="1938351510777341717">Ārējais komandtaustiņš</translation>
 <translation id="1940546824932169984">Pievienotās ierīces</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Izcelt šo cilni</translation>
 <translation id="2344028582131185878">Automātiskās lejupielādes</translation>
 <translation id="2345723121311404059">1 lapa nosūtīta printerim <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">SODA pakalpojums</translation>
 <translation id="2347644257713614136">Uz funkcijas Hangouts un paplašinājuma Cast for Education izmantošanu attiecas Google konfidencialitātes politika.</translation>
 <translation id="2348176352564285430">Lietotne: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Atkārtoti ielādēts</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Linux atjaunošana atcelta</translation>
 <translation id="2423578206845792524">Saglabāt attēlu kā ...</translation>
 <translation id="2428510569851653187">Norādiet, ko darījāt, kad cilne avarēja</translation>
+<translation id="2428939361789119025">Izslēgt Wi-Fi savienojumu</translation>
 <translation id="2431027948063157455">Nevarēja ielādēt Google asistentu, lūdzu, pārbaudiet tīkla savienojumu un pēc tam mēģiniet vēlreiz.</translation>
 <translation id="2432753757290432042">Ir jāatjaunina Linux (Beta)</translation>
 <translation id="2433452467737464329">Pievienojiet vaicājuma parametru vietrādī URL, lai atsvaidzinātu šo lapu: chrome://network/?refresh=&lt;sec&gt;.</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Lietojuma un diagnostikas datu sūtīšana. Palīdziet uzlabot Android lietošanas pieredzi, automātiski nosūtot diagnostikas, ierīces un lietotņu lietojuma datus uzņēmumam Google. Šī informācija palīdzēs uzlabot sistēmas un lietotņu stabilitāti un daudz ko citu. Noteiktus apkopotus datus izmantos arī Google lietotņu izstrādātāji un partneri, piemēram, Android izstrādātāji. Ja ir ieslēgts papildu iestatījums “Darbības tīmeklī un lietotnēs”, šie dati var tikt saglabāti jūsu Google kontā. <ph name="BEGIN_LINK1" />Uzzināt vairāk<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Pievienot savienojumu</translation>
 <translation id="2947605845283690091">Tīmekļa pārlūkošanai ir jābūt ātrai. Atvēliet mirkli, <ph name="BEGIN_LINK" />lai pārbaudītu paplašinājumus<ph name="END_LINK" /> tūlīt.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 potenciāli kaitīgs paplašinājums ir izslēgts. Varat to arī noņemt.}zero{# potenciāli kaitīgi paplašinājumi ir izslēgti. Varat tos arī noņemt.}one{# potenciāli kaitīgs paplašinājums ir izslēgts. Varat tos arī noņemt.}other{# potenciāli kaitīgi paplašinājumi ir izslēgti. Varat tos arī noņemt.}}</translation>
 <translation id="2948300991547862301">Doties uz lapu <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Ātrs, vienkāršs un drošs tīmekļa pārlūks, kas izstrādāts modernam tīmeklim.</translation>
 <translation id="2949289451367477459">Atrašanās vietas izmantošana. Ļauj lietotnēm un pakalpojumiem ar atrašanās vietas atļauju izmantot šīs ierīces atrašanās vietas datus. Google var periodiski apkopot atrašanās vietas datus un tos anonīmi izmantot, lai uzlabotu atrašanās vietas precizitāti un ar atrašanās vietu saistītus pakalpojumus. <ph name="BEGIN_LINK1" />Uzziniet vairāk.<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Vai instalēt lietotni?</translation>
 <translation id="3067198360141518313">Izpildīt šo spraudni</translation>
 <translation id="3071624960923923138">Varat noklikšķināt šeit, lai atvērtu jaunu cilni.</translation>
+<translation id="3072775339180057696">Vai ļaut vietnei skatīt failu <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Lai varētu sākt Powerwash procesu, ir jāveic restartēšana. Pēc tam jums tiks lūgts apstiprināt, ka vēlaties turpināt darbu.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Jūsu pierakstīšanās dati tika izdzēsti</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Vietne var izmantot jūsu kameru.</translation>
 <translation id="3085752524577180175">SOCKS saimniekdators</translation>
 <translation id="3088052000289932193">Vietnē tiek izmantota MIDI ierīce</translation>
+<translation id="3088128611727407543">Notiek lietotnes profila sagatavošana...</translation>
 <translation id="3088325635286126843">&amp;Pārdēvēt...</translation>
 <translation id="3089137131053189723">Meklēšana notīrīta</translation>
 <translation id="3090193911106258841">Notiek piekļūšana audio un video ievadei</translation>
@@ -1596,6 +1604,7 @@
     Apraksts:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome lietotnes</translation>
+<translation id="3150693969729403281">Veikt drošības pārbaudi tūlīt</translation>
 <translation id="3150927491400159470">Veikt stingro atkārtoto ielādi</translation>
 <translation id="315116470104423982">Mobilie dati</translation>
 <translation id="3151539355209957474">Sākuma laiks</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Pierakstīties pārlūkā Chrome</translation>
 <translation id="3285322247471302225">Jauna &amp;cilne</translation>
 <translation id="328571385944182268">Vai saglabāt jūsu paroles?</translation>
+<translation id="328785681103589998">Vietne <ph name="ORIGIN" /> varēs skatīt failu “<ph name="FILENAME" />”, kamēr netiks aizvērtas visas vietnes <ph name="ORIGIN" /> cilnes.</translation>
 <translation id="3288047731229977326">Paplašinājumi, kas darbojas izstrādātāja režīmā, var kaitēt jūsu datoram. Ja neesat izstrādātājs, drošības nolūkos atspējojiet šos paplašinājumus, kas darbojas izstrādātāja režīmā.</translation>
 <translation id="3289856944988573801">Lai pārbaudītu, vai ir pieejami atjauninājumi, lūdzu, izmantojiet tīklu Ethernet vai Wi-Fi.</translation>
 <translation id="3290356915286466215">Nav aizsargāts</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Lasīt jūsu datus vairākās vietnēs</translation>
 <translation id="3448086340637592206">Google Chrome un Chrome OS papildu noteikumi</translation>
 <translation id="3448492834076427715">Atjaunināt kontu</translation>
+<translation id="3449393517661170867">Jauns logs ar cilnēm</translation>
 <translation id="3449839693241009168">Nospiediet <ph name="SEARCH_KEY" />, lai nosūtītu komandas uz <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Neaktīvs stāvoklis — noslogojuma procentuālais daudzums</translation>
 <translation id="3451332697983754369">Sinhronizēt manu ierīci: <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Paldies par atsauksmēm! Pašlaik esat bezsaistē, un jūsu ziņojums tiks nosūtīts vēlāk.</translation>
 <translation id="3682824389861648626">Kustības slieksnis</translation>
 <translation id="3683524264665795342">Lietotnes <ph name="APP_NAME" /> nosūtītais ekrāna kopīgošanas pieprasījums</translation>
+<translation id="3686074530047028092">Education konts</translation>
 <translation id="368789413795732264">Mēģinot rakstīt failu, radās kļūda: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Rakstīt failos un mapēs, kurus atverat lietojumprogrammā</translation>
 <translation id="3688526734140524629">Mainīt kanālu</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Bloķēt tīmekļa lapu daļas</translation>
 <translation id="3760460896538743390">Pārbaudīt &amp;fona lapu</translation>
 <translation id="37613671848467444">Atvērt &amp;inkognito režīma logā</translation>
+<translation id="3761556954875533505">Vai ļaut vietnei rediģēt failus?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Saziņa ar USB ierīci}zero{Saziņa ar # USB ierīcēm}one{Saziņa ar # USB ierīci}other{Saziņa ar # USB ierīcēm}}</translation>
 <translation id="3765246971671567135">Neizdevās nolasīt bezsaistes demonstrācijas režīma politiku.</translation>
 <translation id="3768037234834996183">Notiek jūsu preferenču sinhronizēšana...</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Neatļaut</translation>
 <translation id="3928570707778085600">Vai saglabāt izmaiņas šeit: <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Šie paplašinājumi var skatīt un mainīt informāciju šajā vietnē.</translation>
+<translation id="3930155420525972941">Pārvietot kopu uz jaunu logu</translation>
 <translation id="3930737994424905957">Notiek ierīču meklēšana</translation>
 <translation id="3930968231047618417">Fona krāsa</translation>
 <translation id="3933283459331715412">Atjaunot izdzēsto lietotāja <ph name="USERNAME" /> paroli</translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Piekrītu</translation>
 <translation id="413121957363593859">Komponenti</translation>
 <translation id="4131410914670010031">Melnbaltā</translation>
+<translation id="4133076602192971179">Atveriet lietotni, lai mainītu paroli.</translation>
 <translation id="4136203100490971508">Nakts režīms tiks automātiski izslēgts saullēktā.</translation>
 <translation id="41365691917097717">Turpinot jūs iespējosiet ADB atkļūdošanu Android lietotņu izveidei un testēšanai. Ņemiet vērā, ka šī darbība ļauj instalēt Android lietotnes, ko uzņēmums Google nav verificējis, un rīka atspējošanai ir nepieciešams atjaunot rūpnīcas iestatījumus.</translation>
 <translation id="4138267921960073861">Rādīt lietotājvārdus un fotoattēlus pierakstīšanās ekrānā</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Nekad netulkot šo valodu: <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Vecāku kontroles iestatīšana</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 ar RSA šifrējumu</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Administrators ieslēdza atpakaļ 1 potenciāli kaitīgu paplašinājumu.}zero{Administrators ieslēdza atpakaļ # potenciāli kaitīgus paplašinājumus.}one{Administrators ieslēdza atpakaļ # potenciāli kaitīgu paplašinājumu.}other{Administrators ieslēdza atpakaļ # potenciāli kaitīgus paplašinājumus.}}</translation>
 <translation id="4336434711095810371">Notīrīt visus datus</translation>
 <translation id="4336979451636460645">Informāciju par tīkla žurnāliem skatiet šeit: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> vēlas sazināties ar lietotni “<ph name="EXTENSION_NAME" />”</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Jūs izmantojat drošības atslēgu, kas nav reģistrēta šajā vietnē</translation>
 <translation id="4788092183367008521">Lūdzu, pārbaudiet tīkla savienojumu un mēģiniet vēlreiz.</translation>
 <translation id="4792711294155034829">&amp;Ziņot par problēmu...</translation>
+<translation id="4794810983896241342">Atjauninājumus pārvalda <ph name="BEGIN_LINK" />administrators<ph name="END_LINK" />.</translation>
 <translation id="479536056609751218">Tikai tīmekļa lapa, HTML</translation>
 <translation id="4798236378408895261">Pievienot <ph name="BEGIN_LINK" />Bluetooth žurnālus<ph name="END_LINK" /> (tikai Google darbiniekiem)</translation>
 <translation id="4801448226354548035">Slēpt kontus</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Atveriet jaunu cilni, lai pārlūkotu divas vietnes vienlaikus.</translation>
 <translation id="4909038193460299775">Tā kā šo kontu pārvalda <ph name="DOMAIN" />, jūsu grāmatzīmes, vēsture, paroles un citi iestatījumi tiks dzēsti no šīs ierīces. Tomēr jūsu dati joprojām tiks glabāti jūsu Google kontā un tos var pārvaldīt <ph name="BEGIN_LINK" />Google informācijas panelī<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Aktivizēšanas reižu skaits pēc gaidstāves režīma</translation>
+<translation id="4916542008280060967">Vai atļaut vietnei rediģēt failu “<ph name="FILE_NAME" />”?</translation>
 <translation id="491691592645955587">Pāreja uz drošu pārlūku</translation>
 <translation id="4917385247580444890">Spēcīgs</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> vēlas sazināties ar paplašinājumu “<ph name="EXTENSION_NAME" />”</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Atcerēties</translation>
 <translation id="5018207570537526145">Atvērt paplašinājuma vietni</translation>
 <translation id="5021750053540820849">Vēl nav atjaunināts</translation>
+<translation id="5026806129670917316">Ieslēgt Wi-Fi</translation>
 <translation id="5026874946691314267">Vairs nerādīt šo paziņojumu</translation>
 <translation id="5027550639139316293">E-pasta sertifikāts</translation>
 <translation id="5027562294707732951">Pievienot paplašinājumu</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">&amp;JavaScript konsole</translation>
 <translation id="5184209580557088469">Biļete ar šādu lietotājvārdu jau pastāv</translation>
 <translation id="5184662919967270437">Notiek ierīces atjaunināšana</translation>
+<translation id="5185359571430619712">Pārskatīt paplašinājumus</translation>
 <translation id="5185386675596372454"><ph name="EXTENSION_NAME" /> jaunākā versija ir atspējota, jo tai ir nepieciešams vairāk atļauju.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> vēlas lejupielādēt vairākus failus</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Viedās pēdiņas</translation>
 <translation id="5260508466980570042">Diemžēl jūsu e-pasta adresi vai paroli nevarēja verificēt. Lūdzu, mēģiniet vēlreiz.</translation>
 <translation id="5261683757250193089">Atvērt interneta veikalā</translation>
+<translation id="5262178194499261222">Noņemt paroli</translation>
 <translation id="5264148714798105376">Tas var ilgt aptuveni minūti.</translation>
 <translation id="5264252276333215551">Lūdzu, izveidojiet savienojumu ar internetu, lai lietotni palaistu kioska režīmā.</translation>
 <translation id="5265562206369321422">Bezsaistē ilgāk par nedēļu</translation>
@@ -3507,6 +3528,7 @@
 <translation id="5833726373896279253">Šos iestatījumus drīkst mainīt tikai īpašnieks:</translation>
 <translation id="5834581999798853053">Atlikušas apmēram <ph name="TIME" /> minūtes</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> — ierakstīšana ar kameru vai mikrofonu</translation>
+<translation id="5841270259333717135">Konfigurēt tīklu Ethernet</translation>
 <translation id="5842497610951477805">Bluetooth iespējošana</translation>
 <translation id="5846200638699387931">Saistību sintakses kļūda: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Jau pievienots</translation>
@@ -3552,6 +3574,7 @@
 <translation id="5900358982890952556">Linux jaunināšana (Beta)</translation>
 <translation id="5901494423252125310">Printera durvis ir atvērtas</translation>
 <translation id="5901630391730855834">Dzeltena</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Jūs ieslēdzāt atpakaļ 1 potenciāli kaitīgu paplašinājumu.}zero{Jūs ieslēdzāt atpakaļ # potenciāli kaitīgus paplašinājumus.}one{Jūs ieslēdzāt atpakaļ # potenciāli kaitīgu paplašinājumu.}other{Jūs ieslēdzāt atpakaļ # potenciāli kaitīgus paplašinājumus.}}</translation>
 <translation id="5906655207909574370">Atjaunināšana ir gandrīz pabeigta. Restartējiet ierīci, lai pabeigtu atjaunināšanu.</translation>
 <translation id="5906732635754427568">Ar šo lietotni saistītie dati tiks noņemti no šīs ierīces.</translation>
 <translation id="5908769186679515905">Bloķēt Flash aktivizēšanu vietnēs</translation>
@@ -3581,6 +3604,7 @@
 <translation id="59324397759951282">USB ierīce no <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Sērijas numurs</translation>
 <translation id="5933376509899483611">Laika josla</translation>
+<translation id="5935656526031444304">Pārvaldīt drošu pārlūkošanu</translation>
 <translation id="5938002010494270685">Pieejams drošības jauninājums</translation>
 <translation id="5939518447894949180">Atiestatīt</translation>
 <translation id="5941153596444580863">Pievienot lietotāju...</translation>
@@ -3624,6 +3648,7 @@
 <translation id="5993807461461235661">Šī augšupielāde ir šifrēta, un ar to tiek pārkāptas jūsu organizācijas drošības politikas.</translation>
 <translation id="5997337190805127100">Plašāka informācija par vietnes piekļuvi</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> rezultāti vaicājumam “<ph name="SEARCH_TEXT" />”</translation>
+<translation id="6002210667729577411">Pārvietot kopu uz jaunu logu</translation>
 <translation id="6002458620803359783">Vēlamās balsis</translation>
 <translation id="6006484371116297560">Klasiskais motīvs</translation>
 <translation id="6007240208646052708">Meklēšana ar balsi jūsu valodā nav pieejama.</translation>
@@ -4162,6 +4187,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Rādīt darbvirsmas saīsni</translation>
 <translation id="6740234557573873150">Apturēts: <ph name="FILE_NAME" /></translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Administrators<ph name="END_LINK" /> ir izslēdzis drošu pārlūkošanu.</translation>
 <translation id="6742339027238151589">Pieejams skriptam</translation>
 <translation id="6745592621698551453">Atjaunināt tūlīt</translation>
 <translation id="6746124502594467657">Pārvietot uz leju</translation>
@@ -4420,6 +4446,7 @@
     <ph name="BEGIN_BOLD" />Ņemiet vērā tālāk norādīto informāciju.<ph name="END_BOLD" /> Līdzīga balss vai ieraksts arī var piekļūt jūsu Asistentam. Jūs varat noņemt Voice Match atļauju vēlāk, izslēdzot to Asistenta iestatījumos.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">apmainīties datiem ar šādām ierīcēm: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Kad atjauninājumi tiks pabeigti, ierīce tiks restartēta.</translation>
 <translation id="7098389117866926363">USB-C ierīce (pieslēgvieta aizmugurē pa kreisi)</translation>
 <translation id="7098447629416471489">Šeit tiks parādītas citas saglabātās meklētājprogrammas.</translation>
 <translation id="7099337801055912064">Nevar ielādēt lielu PPD failu. Maksimālais lielums ir 250 kB.</translation>
@@ -4892,6 +4919,7 @@
 <translation id="7766807826975222231">Skatīt ceļvedi</translation>
 <translation id="7766838926148951335">Piekrist atļaujām</translation>
 <translation id="7769672763586021400">Modeļa ID</translation>
+<translation id="7770651108375708429">Pārtraukt Wi-Fi savienojumu</translation>
 <translation id="7771452384635174008">Izkārtojums</translation>
 <translation id="7772032839648071052">Apstipriniet ieejas frāzi</translation>
 <translation id="7772127298218883077">Par <ph name="PRODUCT_NAME" /></translation>
@@ -5049,6 +5077,7 @@
 <translation id="7939412583708276221">Tik un tā saglabāt</translation>
 <translation id="7942349550061667556">Sarkana</translation>
 <translation id="7943837619101191061">Pievienot atrašanās vietu...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 uzlauzta parole}zero{# uzlauztas paroles}one{# uzlauzta parole}other{# uzlauztas paroles}}</translation>
 <translation id="7945031593909029181"><ph name="CHROME_EXTENSION_NAME" /> vēlas izveidot savienojumu</translation>
 <translation id="7946586320617670168">Sākotnējam saturam ir jābūt drošam</translation>
 <translation id="794676567536738329">Apstiprināt atļaujas</translation>
@@ -5148,6 +5177,7 @@
 <translation id="8059417245945632445">&amp;Pārbaudīt ierīces</translation>
 <translation id="8059456211585183827">Nav pieejams neviens printeris, ko saglabāt.</translation>
 <translation id="8063235345342641131">Noklusējuma iemiesojums zaļā krāsā</translation>
+<translation id="8063535366119089408">Skatīt failu</translation>
 <translation id="8064671687106936412">Atslēga:</translation>
 <translation id="8068253693380742035">Pieskarieties, lai pierakstītos</translation>
 <translation id="8068809649322155577">Tādējādi tiks notīrīti visi dati un sīkfaili, kas tiek glabāti vietņu grupā <ph name="SITE_GROUP_NAME" />, visās tās pakārtotajās vietnēs un tās instalētajās lietotnēs.</translation>
@@ -5213,6 +5243,7 @@
 <translation id="8152091997436726702">Printera reģistrācijai ir iestājusies noildze. Lai reģistrētu printeri, reģistrācija ir jāapstiprina printerī.</translation>
 <translation id="8154790740888707867">Nav faila.</translation>
 <translation id="815491593104042026">Diemžēl autentifikācija neizdevās, jo konfigurācijā tika norādīts izmantot nedrošu URL (<ph name="BLOCKED_URL" />). Lūdzu, sazinieties ar administratoru.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Netika atrasta neviena uzlauzta parole}=1{{COUNT} uzlauzta parole}zero{{COUNT} uzlauztas paroles}one{{COUNT} uzlauzta parole}other{{COUNT} uzlauztas paroles}}</translation>
 <translation id="8157704005178149728">Notiek uzraudzības iestatīšana</translation>
 <translation id="8158117992543756526">Šajā ierīcē vairs netiek saņemti automātiskie programmatūras un drošības atjauninājumi (pēdējais atjauninājums saņemts: <ph name="MONTH_AND_YEAR" />). <ph name="LINK_BEGIN" />Uzziniet vairāk<ph name="LINK_END" />.</translation>
 <translation id="816055135686411707">Kļūda, iestatot sertifikāta uzticamību</translation>
@@ -5266,6 +5297,7 @@
 <translation id="8226742006292257240">Tālāk redzama nejauši izveidota TPM parole, kas piešķirta jūsu datoram:</translation>
 <translation id="8227119283605456246">Pievienot failu</translation>
 <translation id="8230134520748321204">Vai saglabāt paroli vietnei <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Interneta iestatījumi</translation>
 <translation id="8234795456569844941">Palīdziet mūsu inženieriem novērst šo problēmu. Norādiet, kas notika tieši pirms tam, kad tika parādīts profila kļūdas ziņojums.</translation>
 <translation id="8236123533334037984">Jūsu organizācija pārbauda šo augšupielādi, lai pārliecinātos par tās drošību.</translation>
 <translation id="8236917170563564587">Labāk kopīgot šo cilni</translation>
@@ -5603,6 +5635,7 @@
 <translation id="8688579245973331962">Vai neredzat savu vārdu?</translation>
 <translation id="8688591111840995413">Nepareiza parole</translation>
 <translation id="8688672835843460752">Pieejams</translation>
+<translation id="8691418731028620688">Izveidot savienojumu ar Wi-Fi tīklu</translation>
 <translation id="8695825812785969222">Atvērt atrašanās vietu...</translation>
 <translation id="869884720829132584">Lietojumprogrammu izvēlne</translation>
 <translation id="869891660844655955">Derīguma termiņš</translation>
@@ -5762,6 +5795,7 @@
 <translation id="8872187374998143710">Lūdzu, restartējiet ierīci, lai varētu izmantot spraudni Plugin VM.</translation>
 <translation id="8872777911145321141">Vaicāt, ja vietne vēlas izmantot jūsu virtuālās realitātes ierīces un datus (ieteicams)</translation>
 <translation id="8874184842967597500">Savienojums nav izveidots</translation>
+<translation id="8875775314572167244">Tīkla Ethernet iestatījumi</translation>
 <translation id="8876307312329369159">Demonstrācijas sesijā šo iestatījumu nevar mainīt.</translation>
 <translation id="8877448029301136595">[vecāku direktorija]</translation>
 <translation id="8878384954777710821">Notiek Plugin VM atinstalēšana...</translation>
@@ -5803,6 +5837,7 @@
 <translation id="892706138619340876">Daļa iestatījumu tika atiestatīti</translation>
 <translation id="8930351635855238750">Jaunie sīkfailu iestatījumi stāsies spēkā pēc lapas atkārtotas ielādes.</translation>
 <translation id="8931394284949551895">Jaunas ierīces</translation>
+<translation id="8931475688782629595">Sinhronizējamo datu pārvaldība</translation>
 <translation id="8932894639908691771">Slēdžu piekļuves opcijas</translation>
 <translation id="8933960630081805351">Rādīt lietojumprogrammā &amp;Finder</translation>
 <translation id="8934732568177537184">Turpināt</translation>
@@ -5960,6 +5995,7 @@
 <translation id="9148126808321036104">Pierakstieties vēlreiz</translation>
 <translation id="9149866541089851383">Rediģēt ...</translation>
 <translation id="9150045010208374699">Izmantot jūsu videokameru</translation>
+<translation id="9150429437595727962">Wi-Fi iestatījumi</translation>
 <translation id="9153934054460603056">Saglabāt identitāti un paroli</translation>
 <translation id="9154194610265714752">Atjaunināts</translation>
 <translation id="91568222606626347">Saīsnes izveide...</translation>
@@ -6021,6 +6057,7 @@
 <translation id="945522503751344254">Sūtīt atsauksmes</translation>
 <translation id="947329552760389097">&amp;Pārbaudīt elementus</translation>
 <translation id="952992212772159698">Neaktivizēts</translation>
+<translation id="956500788634395331">Jūs esat aizsargāts pret potenciāli kaitīgiem paplašinājumiem.</translation>
 <translation id="957960681186851048">Šī vietne mēģināja automātiski lejupielādēt vairākus failus</translation>
 <translation id="9580706199804957">Nevarēja izveidot savienojumu ar Google pakalpojumiem.</translation>
 <translation id="960719561871045870">Operatora kods</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index 4dcd474..50c7f4b 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Да се избришат податоците и од овие апликации?</translation>
 <translation id="1045692658517323508">{0,plural, =1{Ажурирајте во рок од 1 минута}one{Ажурирајте во рок од # минута}other{Ажурирајте во рок од # минути}}</translation>
 <translation id="1046635659603195359">Изгледа веќе сте ја поставиле Voice Match за вашиот „Помошник на Google“ на друг уред. Претходните снимки може да се користат за да се направи гласовниот модел за уредов. Би требало да трае помалку од минута.</translation>
+<translation id="104710386808485638">Да се рестартира Linux?</translation>
 <translation id="1047431265488717055">Копирај го &amp;текстот на врската</translation>
 <translation id="1048286738600630630">Екрани</translation>
 <translation id="1049743911850919806">Инкогнито</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Најави се на <ph name="TOKEN_NAME" /> за да извезеш сертификат на клиент.</translation>
 <translation id="1163931534039071049">&amp;Прикажи извор на рамка</translation>
 <translation id="1164674268730883318">Да се исклучи Smart Lock за <ph name="DEVICE_TYPE" />?</translation>
+<translation id="1164891049599601209">Внесена на измамнички сајт</translation>
 <translation id="1164899421101904659">Внесете клуч (PUK) за отклучување PIN</translation>
 <translation id="1165039591588034296">Грешка</translation>
 <translation id="1166212789817575481">Затвори картички на десно</translation>
@@ -205,6 +207,7 @@
 <translation id="1274977772557788323">Поставки за складирање на Adobe Flash Player</translation>
 <translation id="1274997165432133392">Колачиња и други податоци за локација</translation>
 <translation id="1280820357415527819">Се пребаруваат мобилни мрежи</translation>
+<translation id="1280965841156951489">Измени датотеки</translation>
 <translation id="1282420830958964167">Ограничувањето на „<ph name="APP_NAME" />“ што го постави твојот родител истече. Ќе може да ја користиш <ph name="TIME_LIMIT" /> утре.</translation>
 <translation id="1285320974508926690">Никогаш не преведувај ја оваа локација</translation>
 <translation id="1285484354230578868">Складирајте податоци на вашата сметка на Google Диск</translation>
@@ -398,6 +401,7 @@
 <translation id="1545177026077493356">Автоматски режим Киоск</translation>
 <translation id="1545775234664667895">Инсталирана тема „<ph name="THEME_NAME" />“</translation>
 <translation id="1546280085599573572">Екстензијата ја смени страницата што се прикажува кога ќе кликнете на копчето Почетна страница.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> сака да инсталира <ph name="EXTENSION_TYPE" /> што може:</translation>
 <translation id="1549275686094429035">ARC е овозможена</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> сака да пристапи на <ph name="VOLUME_NAME" />. Тоа може да ги измени или да ги избрише вашите датотеки.</translation>
 <translation id="1553538517812678578">неограничено</translation>
@@ -496,6 +500,7 @@
 <translation id="1679806121152819234">PluginVm</translation>
 <translation id="1679810534535368772">Дали сте сигурни дека сакате да излезете?</translation>
 <translation id="167983332380191032">Услугата за управување испрати HTTP-грешка.</translation>
+<translation id="1680841347983561661">Обидете се да го стартувате Google Play повторно по неколку секунди.</translation>
 <translation id="1680849702532889074">Дојде до грешка при инсталирањето на вашата апликација за Linux.</translation>
 <translation id="16815041330799488">Не дозволувај им на сајтовите да гледаат текст и слики копирани на привремената меморија</translation>
 <translation id="1682548588986054654">Нов инкогнито прозорец</translation>
@@ -509,6 +514,7 @@
 <translation id="1692210323591458290">Темновиолетова</translation>
 <translation id="1692799361700686467">Дозволени се колачиња од повеќе локации.</translation>
 <translation id="1697150536837697295">Уметност</translation>
+<translation id="1697686431566694143">Измени датотека</translation>
 <translation id="1698122934742150150">Само тековната инкогнито сесија</translation>
 <translation id="1698650002254827833">Списокот со апликации не може да се вчита. Обидете се повторно.</translation>
 <translation id="1701062906490865540">Отстрани го ова лице</translation>
@@ -694,6 +700,7 @@
 <translation id="1931152874660185993">Не се инсталирани компоненти.</translation>
 <translation id="1932098463447129402">Не пред</translation>
 <translation id="1933809209549026293">Поврзете глувче или тастатура. Доколку користите уред со Bluetooth, проверете дали е подготвен за спарување.</translation>
+<translation id="1936931585862840749">Употребете број за да назначите колку примероци да се испечатат (од 1 до <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Не може да се увезе тип архитектура на контејнер <ph name="ARCHITECTURE_CONTAINER" /> со уред којшто е <ph name="ARCHITECTURE_DEVICE" />. Може да се обидете да го вратите овој контејнер во различен уред или може да пристапите до датотеките во оваа слика на контејнер, така што ќе ја отворите апликацијата Files.</translation>
 <translation id="1938351510777341717">Надворешна наредба</translation>
 <translation id="1940546824932169984">Поврзани уреди</translation>
@@ -749,6 +756,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> падна. Кликнете на балонот за повторно да се вчита наставката.</translation>
 <translation id="2025891858974379949">Небезбедни содржини</translation>
 <translation id="202918510990975568">Внесете ја лозинката за да ги конфигурирате безбедноста и најавувањето</translation>
+<translation id="2030672406208960151">Отвори го терминалот за враќање</translation>
 <translation id="2034346955588403444">Додајте друга Wi-Fi-мрежа</translation>
 <translation id="203574396658008164">Овозможи земање белешки од заклучен екран</translation>
 <translation id="2037445849770872822">Поставен е надзор за оваа сметка на Google. За да поставите уште „Родителски контроли“, изберете „Продолжи“.
@@ -901,6 +909,7 @@
 <translation id="2220572644011485463">PIN или лозинка</translation>
 <translation id="2224444042887712269">Оваа поставка припаѓа на <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">Измени име на папка</translation>
+<translation id="2225864335125757863">Веднаш променете ги лозинкиве заради безбедност на сметката:</translation>
 <translation id="2226449515541314767">Локацијата е блокирана за целосна контрола на уреди со MIDI.</translation>
 <translation id="222704500187107962">Исклучоков автоматски ќе се отстрани откако ќе излезете од тековната инкогнито сесија</translation>
 <translation id="2227179592712503583">Отстрани го предлогот</translation>
@@ -987,6 +996,7 @@
 <translation id="2343747224442182863">Фокусирајте ја картичкава</translation>
 <translation id="2344028582131185878">Автоматски преземања</translation>
 <translation id="2345723121311404059">1 страница на <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Услуга SODA</translation>
 <translation id="2347644257713614136">Користењето на Hangouts и „Cast за образование“ е регулирано со „Политиката за приватност на Google“.</translation>
 <translation id="2348176352564285430">Апликација: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Повторно вчитана</translation>
@@ -1021,6 +1031,7 @@
 <translation id="2387052489799050037">Оди на почетен екран</translation>
 <translation id="2387458720915042159">Тип на врска прокси</translation>
 <translation id="2391419135980381625">Стандарден фонт</translation>
+<translation id="2392163307141705938">Го достигнавте временското ограничување што вашиот родител го поставил за <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Активирај</translation>
 <translation id="2394566832561516196">Поставките ќе се исчистат со следното повторно вчитување.</translation>
 <translation id="2395616325548404795">Вашиот <ph name="DEVICE_TYPE" /> е успешно запишан за управување на компанијата, но не успеа да ги прати информациите за своите средства и локацијата. Внесете ги овие информации рачно од администраторската конзола за уредов.</translation>
@@ -1039,6 +1050,7 @@
 <translation id="2422125132043002186">Враќањето на Linux е откажано</translation>
 <translation id="2423578206845792524">Сни&amp;ми слика како…</translation>
 <translation id="2428510569851653187">Опишете што правевте кога падна картичката</translation>
+<translation id="2428939361789119025">Исклучи Wi-Fi</translation>
 <translation id="2431027948063157455">Не можеше да се вчита „Помошникот на Google“. Проверете ја вашата мрежна врска и обидете се повторно.</translation>
 <translation id="2432753757290432042">Потребно е ажурирање на Linux (Бета)</translation>
 <translation id="2433452467737464329">Додајте параметар на барање во URL за автоматско освежување на страницата: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1086,6 +1098,7 @@
 <translation id="247949520305900375">Сподели го аудиото</translation>
 <translation id="2480868415629598489">Измена на податоците што ги копирате</translation>
 <translation id="2482878487686419369">Известувања</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> ќе може да ја изменува <ph name="FILENAME" /> сѐ додека не ги затворите сите картички на <ph name="ORIGIN" /></translation>
 <translation id="2484959914739448251">За да ги избришете податоците од прелистувањето од сите ваши синхронизирани уреди и од сметката на Google, <ph name="BEGIN_LINK" />внесете ја лозинката<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Лозинката е зачувана на уредов</translation>
 <translation id="2485422356828889247">Деинсталирај</translation>
@@ -1299,6 +1312,7 @@
 <translation id="274290345632688601">Се враќаат апликациите и датотеките на Linux</translation>
 <translation id="2743387203779672305">Копирај на клип-табла</translation>
 <translation id="2745080116229976798">Квалификувана подреденост на Microsoft</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> е паузиран</translation>
 <translation id="2749756011735116528">Најави се на <ph name="PRODUCT_NAME" />…</translation>
 <translation id="2749881179542288782">Провери граматика со правопис</translation>
 <translation id="2751739896257479635">Автентикација со EAP во фаза 2</translation>
@@ -1307,6 +1321,7 @@
 <translation id="275662540872599901">екранот е исклучен</translation>
 <translation id="2762441749940182211">Камерата е блокирана</translation>
 <translation id="2765217105034171413">Мало</translation>
+<translation id="2766161002040448006">Прашајте родител</translation>
 <translation id="276969039800130567">Најавени сте како <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="2770465223704140727">Отстрани од список</translation>
 <translation id="2770690685823456775">Извезете ги лозинките во друга папка</translation>
@@ -1453,6 +1468,7 @@
 <translation id="2944060181911631861">Испраќајте податоци за користење и дијагностика. Помогнете ни да го подобриме вашето искуство со Android со автоматско испраќање дијагностички и податоци за користењето на уредот и апликациите до Google. Овие податоци ќе ни помогнат околу стабилноста на системот и апликациите и за други подобрувања. Некои збирни податоци ќе им помогнат на апликациите и партнерите на Google, како што се програмерите на Android. Ако сте ја вклучиле дополнителната поставка „Активност на интернет и апликации“, овие податоци може да се зачувуваат во вашата сметка на Google. <ph name="BEGIN_LINK1" />Дознајте повеќе<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Додај врска</translation>
 <translation id="2947605845283690091">Прелистувањето на интернет треба да биде брзо. Одвојте малку време за да ги <ph name="BEGIN_LINK" />проверите екстензиите<ph name="END_LINK" /> сега.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 потенцијално штетна екстензија е исклучена. Може и да ја отстраните.}one{# потенцијално штетна екстензија е исклучена. Може и да ги отстраните.}other{# потенцијално штетни екстензии се исклучени. Може и да ги отстраните.}}</translation>
 <translation id="2948300991547862301">Оди на <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Брз, едноставен и безбеден веб-прелистувач, направен за модерениот веб.</translation>
 <translation id="2949289451367477459">Користење локација. Дозволете апликациите и услугите со дозвола за локација да ја користат локацијата на уредов. Google може повремено да собира податоци за локацијата и да ги користи на анонимен начин за да ја подобри прецизноста на локацијата и услугите што се базираат на локација. <ph name="BEGIN_LINK1" />Дознајте повеќе<ph name="END_LINK1" /></translation>
@@ -1533,6 +1549,7 @@
 <translation id="3067198179881736288">Дали да се инсталира апликацијата?</translation>
 <translation id="3067198360141518313">Стартувај го приклучокот</translation>
 <translation id="3071624960923923138">Може да кликнете тука за да отворите нова картичка</translation>
+<translation id="3072775339180057696">Да се дозволи сјатот да прикажува <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Потребно е рестартирање за да започне процесот на фабричко ресетирање. По рестартирањето ќе бидете прашани за потврда дали сакате да продолжите.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Податоците за најавување се избришани</translation>
@@ -1545,6 +1562,7 @@
 <translation id="3085412380278336437">Сајтот може да ја користи камерата</translation>
 <translation id="3085752524577180175">Хост на SOCKS</translation>
 <translation id="3088052000289932193">Сајтот користи MIDI</translation>
+<translation id="3088128611727407543">Се подготвува профилот на апликацијата…</translation>
 <translation id="3088325635286126843">&amp;Преименувај...</translation>
 <translation id="3089137131053189723">Пребарувањето е избришано</translation>
 <translation id="3090193911106258841">Пристап до аудио- и видеовлез</translation>
@@ -1558,6 +1576,7 @@
 <translation id="3115580024857770654">Собери ги сите</translation>
 <translation id="3117362587799608430">Приклучокот не е целосно компатибилен</translation>
 <translation id="3118319026408854581">Помош за <ph name="PRODUCT_NAME" /></translation>
+<translation id="3118654181216384296">Обидете се да го стартувате Linux повторно по неколку секунди.</translation>
 <translation id="3120430004221004537">Недоволнo шифрирање за дадена операција на: „<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">Ресетирај го уредот со <ph name="IDS_SHORT_PRODUCT_NAME" /></translation>
 <translation id="3122464029669770682">ЦПУ</translation>
@@ -1567,6 +1586,7 @@
 <translation id="3127156390846601284">Ова ќе ги избрише сите податоци зачувани на уредот за сите прикажани сајтови. Дали сакате да продолжите?</translation>
 <translation id="3127860049873093642">За да избегнете проблеми со полнењето и изведбата, користете компатибилен адаптер за напојување од Dell или USB-адаптер од типот C.</translation>
 <translation id="3129173833825111527">Лева маргина</translation>
+<translation id="3129215702932019810">Грешка при стартувањето на апликацијата</translation>
 <translation id="3130528281680948470">Уредот ќе се ресетира и сите кориснички сметки и локални податоци ќе се отстранат. Ова не може да се врати назад.</translation>
 <translation id="313205617302240621">Ја заборавивте лозинката?</translation>
 <translation id="3132996321662585180">Освежувај дневно</translation>
@@ -1584,6 +1604,7 @@
     Опис:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Апликации на Chrome</translation>
+<translation id="3150693969729403281">Изврши безбедносна проверка веднаш</translation>
 <translation id="3150927491400159470">Тешко повторно вчитување</translation>
 <translation id="315116470104423982">Мобилен интернет</translation>
 <translation id="3151539355209957474">Време на започнување</translation>
@@ -1676,6 +1697,7 @@
 <translation id="3282568296779691940">Најави се на Chrome</translation>
 <translation id="3285322247471302225">Нова &amp;картичка</translation>
 <translation id="328571385944182268">Да се зачуваат лозинките?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> ќе може да ја прикажува <ph name="FILENAME" /> додека не ги затворите сите картички на <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Наставки кои работат во режим на програмер може да го оштетат компјутерот. Ако не сте програмер, треба да ги оневозможите наставките кои работат во режим на програмер за да останете безбедни.</translation>
 <translation id="3289856944988573801">За да се проверат ажурирања, користете Етернет или Wi-Fi.</translation>
 <translation id="3290356915286466215">Незаштитена</translation>
@@ -1782,7 +1804,9 @@
 <translation id="3441653493275994384">Екран</translation>
 <translation id="3445925074670675829">USB-Ц уред</translation>
 <translation id="344630545793878684">Читајте ги вашите податоци на голем број веб-локации</translation>
+<translation id="3448086340637592206">Дополнителни услови на Google Chrome и Chrome OS</translation>
 <translation id="3448492834076427715">Ажурирајте ја сметката</translation>
+<translation id="3449393517661170867">Нов прозорец со картички</translation>
 <translation id="3449839693241009168">Притисни <ph name="SEARCH_KEY" /> за да испратиш команди на <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Процент на зафаќање во состојба на неактивност</translation>
 <translation id="3451332697983754369">Синхронизирај го мојот <ph name="DEVICE_TYPE" /></translation>
@@ -1963,6 +1987,7 @@
 <translation id="3681311097828166361">Благодариме за повратните информации. Во моментов сте офлајн, па вашиот извештај ќе се испрати подоцна.</translation>
 <translation id="3682824389861648626">Праг на движења</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> барање за споделување на екран</translation>
+<translation id="3686074530047028092">Сметка на Education</translation>
 <translation id="368789413795732264">Настана грешка при обидот да се напише датотеката: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Пишувајте на датотеки и папки што ги отворате во апликацијата</translation>
 <translation id="3688526734140524629">Промени канал</translation>
@@ -2031,6 +2056,7 @@
 <translation id="3759933321830434300">Блокирај делови од веб-страници</translation>
 <translation id="3760460896538743390">Страница за проверка на &amp;заднина</translation>
 <translation id="37613671848467444">Отвори во &amp;Инкогнито прозорец</translation>
+<translation id="3761556954875533505">Да се дозволи сјатот да изменува датотеки?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Комуницирај со USB-уред}one{Комуницирај со # USB-уред}other{Комуницирај со # USB-уреди}}</translation>
 <translation id="3765246971671567135">Не можеше да се вчита правилото за офлајн демо-режим.</translation>
 <translation id="3768037234834996183">Се синхронизираат вашите претпочитања...</translation>
@@ -2129,6 +2155,7 @@
 <translation id="3873423927483480833">Прикажете ги PIN-кодовите</translation>
 <translation id="3873915545594852654">Настана проблем со ARC++.</translation>
 <translation id="3879748587602334249">Управник со преземања</translation>
+<translation id="3881321138433527084">„Безбедното прелистување“ е исклучено. За да бидете безбедни на интернет, вклучете го.</translation>
 <translation id="3882165008614329320">Постојно видео од камера или датотека</translation>
 <translation id="3886446263141354045">Вашето барање за пристап на сајтов е испратено на <ph name="NAME" />.</translation>
 <translation id="3888550877729210209">Прибележување со <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2165,6 +2192,7 @@
 <translation id="3927932062596804919">Одбиј</translation>
 <translation id="3928570707778085600">Дали да се зачувуваат промените на <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Екстензииве можат да гледаат и менуваат податоци на сајтов.</translation>
+<translation id="3930155420525972941">Преместете ја групата во нов прозорец</translation>
 <translation id="3930737994424905957">Се бараат уреди</translation>
 <translation id="3930968231047618417">Боја на заднина</translation>
 <translation id="3933283459331715412">Вратете ја избришаната лозинка за <ph name="USERNAME" /></translation>
@@ -2323,6 +2351,7 @@
 <translation id="4130750466177569591">Се согласувам</translation>
 <translation id="413121957363593859">Компоненти</translation>
 <translation id="4131410914670010031">Црно и бело</translation>
+<translation id="4133076602192971179">Отворете ја апликацијата за да промените лозинката</translation>
 <translation id="4136203100490971508">Ноќното светло ќе се исклучи автоматски на изгрејсонце</translation>
 <translation id="41365691917097717">Ако продолжите, ќе се овозможи отстранување грешки на ADB за создавање и тестирање апликации на Android. Имајте предвид дека дејствово овозможува инсталирање апликации за Android што не се потврдени од Google, а за оневозможувањето е потребно фабричко ресетирање.</translation>
 <translation id="4138267921960073861">Прикажи кориснички имиња и фотографии на екранот за најавување</translation>
@@ -2434,6 +2463,7 @@
 <translation id="4330387663455830245">Никогаш не преведувај <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Поставете родителски контроли</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 со RSA енкрипција</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Администраторот повторно вклучи 1 потенцијално штетна екстензија}one{Администраторот повторно вклучи # потенцијално штетна екстензија}other{Администраторот повторно вклучи # потенцијално штетни екстензии}}</translation>
 <translation id="4336434711095810371">Избриши ги сите податоци</translation>
 <translation id="4336979451636460645">За дневници на мрежата, погледнете: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> сака да комуницира со апликацијата „<ph name="EXTENSION_NAME" />"</translation>
@@ -2470,6 +2500,7 @@
 <translation id="4384652540891215547">Активирајте ја наставката</translation>
 <translation id="438503109373656455">Саратога</translation>
 <translation id="4387004326333427325">Одбиена далечинска автентикација на сертификат</translation>
+<translation id="4387890294700445764">Компромитирани лозинки</translation>
 <translation id="4389091756366370506">Корисник <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Инкогнито}one{# отворен инкогнито прозорец}other{# отворени инкогнито прозорци}}</translation>
 <translation id="439266289085815679"><ph name="USER_EMAIL" /> ја контролира конфигурацијата на Bluetooth.</translation>
@@ -2501,6 +2532,7 @@
 <translation id="4429030830601238961">Овие податоци ги прекршуваат безбедносните правила на вашата организација и не може да се залепат.</translation>
 <translation id="4430019312045809116">Гласност</translation>
 <translation id="4430369329743628066">Додаден е обележувач</translation>
+<translation id="4432621511648257259">Лозинката е неточна</translation>
 <translation id="4434045419905280838">Скокачки прозорци/пренасочувања</translation>
 <translation id="443454694385851356">Застарени (небезбедно)</translation>
 <translation id="443475966875174318">Ажурирање или отстранување некомпатибилни апликации</translation>
@@ -2738,6 +2770,7 @@
 <translation id="4785719467058219317">Користите безбедносен клуч што не е регистриран на веб-сајтов</translation>
 <translation id="4788092183367008521">Проверете ја мрежната врска и обидете се повторно.</translation>
 <translation id="4792711294155034829">&amp;Пријави проблем...</translation>
+<translation id="4794810983896241342"><ph name="BEGIN_LINK" />Вашиот администратор<ph name="END_LINK" /> управува со ажурирањата</translation>
 <translation id="479536056609751218">Веб-страница, само HTML</translation>
 <translation id="4798236378408895261">Прикачи <ph name="BEGIN_LINK" />евиденција за Bluetooth<ph name="END_LINK" /> (интерно во Google)</translation>
 <translation id="4801448226354548035">Сокриј сметки</translation>
@@ -2750,6 +2783,7 @@
 <translation id="4808667324955055115">Блокирани скокачки прозорци:</translation>
 <translation id="480990236307250886">Отвори ја почетната страница</translation>
 <translation id="4811503964269049987">Групирајте ја избраната картичка</translation>
+<translation id="4811818760963189951">Исклучено бидејќи ја оневозможивте синхронизацијата на историјата</translation>
 <translation id="4813136279048157860">Мои слики</translation>
 <translation id="4813512666221746211">Грешка на мрежа</translation>
 <translation id="4814378367953456825">Внесете име за отпечатоков</translation>
@@ -2779,6 +2813,7 @@
 <translation id="4850669014075537160">Лизгање</translation>
 <translation id="4850886885716139402">Приказ</translation>
 <translation id="4853020600495124913">Отвори во &amp;нов прозорец</translation>
+<translation id="4854317507773910281">Изберете сметка на родител за одобрување</translation>
 <translation id="485480310608090163">Повеќе лозинки и дозволи</translation>
 <translation id="4856478137399998590">Услугата со мобилни податоци е активирана и подготвена за користење</translation>
 <translation id="4856855265648545577">Прикажувај ги копчињата „Стартер“, „Назад“ и „Преглед“ во „Полицата“ во режим на таблет. Вклучено кога е овозможен ChromeVox (говорни повратни информации) или „Пристап со прекинувачи“.</translation>
@@ -2831,6 +2866,7 @@
 <translation id="4908811072292128752">Отворете нова картичка за да прелистувате два сајта одеднаш</translation>
 <translation id="4909038193460299775">Бидејќи <ph name="DOMAIN" /> управува со сметкава, обележувачите, историјата, лозинките и другите поставки ќе се избришат од уредов. Сепак, вашите податоци ќе останат складирани во сметката на Google и со нив може да управувате во <ph name="BEGIN_LINK" />„Контролната табла на Google“<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Неактивни будења</translation>
+<translation id="4916542008280060967">Да се дозволи сјатот да изменува <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Префрлете се на безбеден преслистувач</translation>
 <translation id="4917385247580444890">Силен</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> сака да комуницира со наставката „<ph name="EXTENSION_NAME" />"</translation>
@@ -2902,6 +2938,7 @@
 <translation id="5017633213534173756">Запомни</translation>
 <translation id="5018207570537526145">Отвори веб-сајт со екстензии</translation>
 <translation id="5021750053540820849">Сѐ уште не е ажурирана</translation>
+<translation id="5026806129670917316">Вклучи Wi-Fi</translation>
 <translation id="5026874946691314267">Не покажувај го ова повторно</translation>
 <translation id="5027550639139316293">Сертификат за е-пошта</translation>
 <translation id="5027562294707732951">Инсталирај екстензија</translation>
@@ -2915,10 +2952,12 @@
 <translation id="5040823038948176460">Дополнителни поставки за содржини</translation>
 <translation id="5042282098504489593">Отворете „Поставки“ за да го поврзете <ph name="USB_DEVICE_NAME" /> со Linux</translation>
 <translation id="5043913660911154449">Или одредете го PPD на вашиот печатач <ph name="LINK_BEGIN" />Дознајте повеќе<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Исклучено бидејќи синхронизираните податоци ги шифриравте со лозинка</translation>
 <translation id="5045550434625856497">Погрешна лозинка</translation>
 <translation id="504561833207953641">Се отвора во постојната сесија на прелистувачот.</translation>
 <translation id="5047421709274785093">Блокирај го користењето сензори за движење и светлина на сајтовите</translation>
 <translation id="5050042263972837708">Име на групата</translation>
+<translation id="5051073330196664891">Универзални услови на користење на Google (uToS)</translation>
 <translation id="5051836348807686060">Проверката на правопис не е поддржана за јазиците што ги избравте</translation>
 <translation id="5052499409147950210">Изменете го сајтот</translation>
 <translation id="5053604404986157245">Случајно генерираната ТПМ-лозинка не е достапна. Тоа е нормално по фабричко ресетирање.</translation>
@@ -2956,6 +2995,7 @@
 <translation id="5097002363526479830">Не успеа да се поврзе на мрежа „<ph name="NAME" />“: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Отвори ги сите обележувачи</translation>
 <translation id="5101839224773798795">Кликни автоматски кога покажувачот ќе запре</translation>
+<translation id="5107443654503185812">Екстензија го исклучила „Безбедно прелистување“</translation>
 <translation id="5108967062857032718">Поставки - Отстранете ги апликациите за Android</translation>
 <translation id="5109044022078737958">Миа</translation>
 <translation id="5111646998522066203">Излези од инкогнито</translation>
@@ -3011,6 +3051,7 @@
 <translation id="5184063094292164363">Конзола за &amp;JavaScript</translation>
 <translation id="5184209580557088469">Билет со ова корисничко име веќе постои</translation>
 <translation id="5184662919967270437">Уредот се ажурира</translation>
+<translation id="5185359571430619712">Прегледајте ги екстензиите</translation>
 <translation id="5185386675596372454">Најновата верзија на „<ph name="EXTENSION_NAME" />“ е оневозможена бидејќи бара повеќе дозволи.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> сака да преземе повеќе датотеки</translation>
@@ -3042,6 +3083,7 @@
 <translation id="523505283826916779">Поставки за пристапност</translation>
 <translation id="5235750401727657667">Заменете ја страницата што ја гледате при отворање нова картичка</translation>
 <translation id="5238278114306905396">Апликацијата „<ph name="EXTENSION_NAME" />“ е автоматски отстранета.</translation>
+<translation id="5239730228370806996">Овие пуштени податоци ги прекршуваат безбедносните правила на организацијата. Дали сепак сакате да продолжите?</translation>
 <translation id="5241128660650683457">Читајте ги сите ваши податоци на веб-локациите што ги посетувате</translation>
 <translation id="5242724311594467048">Да се овозможи „<ph name="EXTENSION_NAME" />“?</translation>
 <translation id="5243522832766285132">Обидете се повторно наскоро</translation>
@@ -3060,6 +3102,7 @@
 <translation id="5260334392110301220">Паметни наводници</translation>
 <translation id="5260508466980570042">За жал, вашите е-пошта или лозинка не можеа да се потврдат. Обидете се повторно.</translation>
 <translation id="5261683757250193089">Отвори во Web Store</translation>
+<translation id="5262178194499261222">Отстрани ја лозинката</translation>
 <translation id="5264148714798105376">Ова може да потрае околу една минута.</translation>
 <translation id="5264252276333215551">Поврзете се на интернет за да ја стартувате вашата апликација во режим киоск.</translation>
 <translation id="5265562206369321422">Исклучен повеќе од една недела</translation>
@@ -3329,6 +3372,7 @@
 <translation id="5618075537869101857">Да му се сневиди, киоск-апликацијата не можеше да се стартува.</translation>
 <translation id="5618333180342767515">(ова може да потрае неколку минути)</translation>
 <translation id="56197088284879152">Има застој на врската на далечинскиот уред: „<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">Нема зачувани лозинки</translation>
 <translation id="5620549857835247159">Прикажувај ги копчињата „Стартер“, „Назад“ и „Преглед“ во „Полицата“ во режим на таблет.</translation>
 <translation id="5620568081365989559">DevTools бара целосен пристап до <ph name="FOLDER_PATH" />. Погрижете се да не откривате чувствителни информации.</translation>
 <translation id="5620612546311710611">статистика на користење</translation>
@@ -3421,6 +3465,7 @@
 <translation id="5747785204778348146">Програмер - нестабилен</translation>
 <translation id="5747809636523347288">&amp;Залепи и оди на <ph name="URL" /></translation>
 <translation id="5750324801516359607">Далеку</translation>
+<translation id="5751887393582880060">Ова прикачување ги прекршува безбедносните правила на организацијата. Дали сепак сакате да продолжите?</translation>
 <translation id="5756163054456765343">Центар за п&amp;омош</translation>
 <translation id="5759728514498647443">Документите што сте ги испратиле за печатење преку <ph name="APP_NAME" /> може да се читаат од <ph name="APP_NAME" />.</translation>
 <translation id="5763751966069581670">Нема пронајдени USB-уреди</translation>
@@ -3482,6 +3527,7 @@
 <translation id="5833726373896279253">Овие поставки може да ги менува само сопственикот:</translation>
 <translation id="5834581999798853053">Преостануваат околу <ph name="TIME" /> минути</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - камерата или микрофонот снима</translation>
+<translation id="5841270259333717135">Конфигурирајте етернет</translation>
 <translation id="5842497610951477805">Овозможете Bluetooth</translation>
 <translation id="5846200638699387931">Синтаксичка грешка во односот: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Додаден претходно</translation>
@@ -3527,6 +3573,7 @@
 <translation id="5900358982890952556">Надградете го Linux (Beta)</translation>
 <translation id="5901494423252125310">Отворена е вратата на печатачот</translation>
 <translation id="5901630391730855834">Жолта боја</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Повторно вклучивте 1 потенцијално штетна екстензија}one{Повторно вклучивте # потенцијално штетна екстензија}other{Повторно вклучивте # потенцијално штетни екстензии}}</translation>
 <translation id="5906655207909574370">Речиси ажурирано! Рестартирајте го уредот за да се заврши ажурирањето.</translation>
 <translation id="5906732635754427568">Податоците поврзани со оваа апликација ќе бидат отстранети од уредов.</translation>
 <translation id="5908769186679515905">Блокирајте страниците да пуштаат Flash</translation>
@@ -3556,6 +3603,7 @@
 <translation id="59324397759951282">USB-уред од <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Сериски број</translation>
 <translation id="5933376509899483611">Временска зона</translation>
+<translation id="5935656526031444304">Управувајте со „Безбедното прелистување“</translation>
 <translation id="5938002010494270685">Достапна е надградба за безбедност</translation>
 <translation id="5939518447894949180">Ресетирај</translation>
 <translation id="5941153596444580863">Додај лице...</translation>
@@ -3599,6 +3647,7 @@
 <translation id="5993807461461235661">Прикачувањево е шифрирано и ги прекршува безбедносните правила на вашата организација.</translation>
 <translation id="5997337190805127100">Дознајте повеќе за пристап до сајтови</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> резултати за „<ph name="SEARCH_TEXT" />“</translation>
+<translation id="6002210667729577411">Преместете ја групата во нов прозорец</translation>
 <translation id="6002458620803359783">Претпочитани гласови</translation>
 <translation id="6006484371116297560">Класична</translation>
 <translation id="6007240208646052708">Гласовно пребарување на вашиот јазик не е достапно.</translation>
@@ -3630,6 +3679,7 @@
 <translation id="6040852767465482106">Анонимен идентитет</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Услугата според локација на Google користи извори како што се Wi-Fi, мобилни мрежи и сензори за да се процени локацијата на уредот.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Може да ја исклучите „Локацијата“ со исклучување на главната поставка „Локација“ на уредот. Може да го исклучите и користењето Wi-Fi, мобилни мрежи и сензори за локација во поставките за локација.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> ќе може да прегледува датотеки во <ph name="FOLDERNAME" /> сѐ додека не ги затворите сите картички на <ph name="ORIGIN" /></translation>
 <translation id="6041155700700864984">Излези од цел екран</translation>
 <translation id="604124094241169006">Автоматски</translation>
 <translation id="6042308850641462728">Повеќе</translation>
@@ -3691,6 +3741,7 @@
 <translation id="6104311680260824317">Уредот не може да се приклучи на доменот. Серверот не ги поддржува одредените типови шифрирање на Kerberos. Кликнете „Повеќе опции“ за поставките за шифрирање.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> бара ажурирање на уредов веднаш</translation>
 <translation id="6106186653986077033">Plugin VM бара лиценца</translation>
+<translation id="6107047744202598802">Дозволува веб-сајтовите да ја запомнат вашата посета и да ве следат на интернет</translation>
 <translation id="6112294629795967147">Допрете за да ја промените големината</translation>
 <translation id="6112727384379533756">Додајте билет</translation>
 <translation id="6112931163620622315">Проверете го телефонот</translation>
@@ -3769,6 +3820,7 @@
 <translation id="622537739776246443">Профилот ќе се избрише</translation>
 <translation id="6225475702458870625">Достапна е интернет-врска од вашиот <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Датотека со приватен клуч (изборно)</translation>
+<translation id="6227280783235722609">екстензија</translation>
 <translation id="6228691855869374890">Оваа страница има целосна контрола над MIDI-уреди.</translation>
 <translation id="6228720835160974792">Генерирајте QR-код за сликава</translation>
 <translation id="6229890768313448549">Условите за користење на Google Play не може да се вчитаат. Обидете се повторно.</translation>
@@ -3820,6 +3872,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> обично не се презема и може да биде опасно.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Нов печатач на мрежата}one{Нов печатач на мрежата}other{Нови печатачи на мрежата}}</translation>
 <translation id="6286708577777130801">Детали за зачуваната лозинка</translation>
+<translation id="6291163159361301370">За да го стартувате Linux, <ph name="ORGANIZATION_NAME" /> бара да направите бекап на вашите податоци и да го ресетирате овој Chromebook на фабричките поставки.</translation>
 <translation id="6291949900244949761">Прашај кога некој сајт сака да пристапи до USB-уредите (препорачано)</translation>
 <translation id="6291953229176937411">&amp;Прикажи во Наоѓач</translation>
 <translation id="6295158916970320988">Сите локации</translation>
@@ -4016,6 +4069,7 @@
 <translation id="6561726789132298588">enter</translation>
 <translation id="656293578423618167">Патеката на датотеката или нејзиното име се многу долги. Зачувајте ја со пократко име или на друга локација.</translation>
 <translation id="6563469144985748109">Управникот уште не го одобрил</translation>
+<translation id="6565955132287672866">Уредот не се исклучи правилно. За да користите Linux (Бета), мора да го рестартирате.</translation>
 <translation id="6567688344210276845">Не можеше да се вчита иконата „<ph name="ICON" />“ за дејство на страница.</translation>
 <translation id="6569934958368283244">Други луѓе</translation>
 <translation id="657402800789773160">&amp;Пак вчитај страница</translation>
@@ -4132,6 +4186,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Прикажи кратенка за работна површина</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> е паузиран</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Вашиот администратор<ph name="END_LINK" /> го исклучил „Безбедното прелистување“</translation>
 <translation id="6742339027238151589">Достапно за скриптата</translation>
 <translation id="6745592621698551453">Ажурирај сега</translation>
 <translation id="6746124502594467657">Премести долу</translation>
@@ -4390,6 +4445,7 @@
     <ph name="BEGIN_BOLD" />Имајте предвид:<ph name="END_BOLD" /> И сличен глас или снимка може да пристапат до вашиот „Помошник“. Подоцна може да ја отстраните дозволата за Voice Match, така што ќе ја исклучите во „Поставки за Помошникот“.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Разменете податоци со уредите наречени: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Уредот ќе се рестартира кога ќе завршат ажурирањата.</translation>
 <translation id="7098389117866926363">USB-Ц уред (лева порта на задната страна)</translation>
 <translation id="7098447629416471489">Другите зачувани пребарувачи ќе се појават тука</translation>
 <translation id="7099337801055912064">Не може да се вчита голема PPD-датотека. Максималната големина е 250 KB.</translation>
@@ -4513,6 +4569,7 @@
 <translation id="7258225044283673131">Апликацијата не одговара. Изберете „Затвори присилно“ за да ја затворите.</translation>
 <translation id="7258697411818564379">Вашиот PIN е додаден</translation>
 <translation id="7262004276116528033">Хост на услугата за најавување е <ph name="SAML_DOMAIN" /></translation>
+<translation id="7266898409676782635">Добивајте совети, понуди и ажурирања за <ph name="DEVICE_TYPE" /> и споделувајте повратни информации. Отпишете се во секое време.</translation>
 <translation id="7268127947535186412">Со поставката управува сопственикот на уредот.</translation>
 <translation id="7270858098575133036">Прашај кога сајтот сака да користи пораки наменети само за системот за да пристапи до уреди со MIDI</translation>
 <translation id="7272674038937250585">Не е даден опис</translation>
@@ -4586,6 +4643,7 @@
 <translation id="7364796246159120393">Избери датотека</translation>
 <translation id="7366415735885268578">Додајте сајт</translation>
 <translation id="7366909168761621528">Податоци од прелистување</translation>
+<translation id="7367714965999718019">Генератор на QR-код</translation>
 <translation id="736877393389250337"><ph name="URL" /> не можеше да се отвори во <ph name="ALTERNATIVE_BROWSER_NAME" />. Контактирајте со системскиот администратор.</translation>
 <translation id="7370592524170198497">Етернет EAP:</translation>
 <translation id="7371006317849674875">Време на започнување</translation>
@@ -4843,8 +4901,10 @@
 <translation id="7737238973539693982">Избриши Linux (Бета)</translation>
 <translation id="7740996059027112821">Стандарден</translation>
 <translation id="7744047395460924128">Видете ја историјата на печатење</translation>
+<translation id="7744192722284567281">Откриена при упад во податоци</translation>
 <translation id="7746457520633464754">За да открие опасни апликации и сајтови, Chrome испраќа URL-адреси од некои страници што ги посетувате, ограничени информации за системот и некои содржини од страниците до Google</translation>
 <translation id="7750228210027921155">Слика во слика</translation>
+<translation id="7751229152614300329">„Безбедно прелистување“ е ажурирано и ве заштитува од штетни сајтови и преземања</translation>
 <translation id="7751260505918304024">Прикажи ги сите</translation>
 <translation id="7754704193130578113">Прашај каде да се зачува секоја датотека пред преземање</translation>
 <translation id="7755287808199759310">Родителот може да го одблокира</translation>
@@ -4858,6 +4918,7 @@
 <translation id="7766807826975222231">Направете разгледување</translation>
 <translation id="7766838926148951335">Прифати ги дозволите</translation>
 <translation id="7769672763586021400">ID на модел</translation>
+<translation id="7770651108375708429">Исклучи Wi-Fi</translation>
 <translation id="7771452384635174008">Распоред</translation>
 <translation id="7772032839648071052">Потврди лозинка</translation>
 <translation id="7772127298218883077">За <ph name="PRODUCT_NAME" /></translation>
@@ -4992,6 +5053,7 @@
 <translation id="7910768399700579500">&amp;Нова папка</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Вашата лозинка е променета на серверот. Одјавете се и повторно најавете се.</translation>
+<translation id="7914583336730284547">Овие пуштени датотеки ги прекршуваат безбедносните правила на организацијата. Дали сепак сакате да продолжите?</translation>
 <translation id="7915457674565721553">Поврзете се на интернет за да поставите „Родителски контроли“</translation>
 <translation id="7915471803647590281">Пред да ни испратите повратни информации кажете ни што се случува.</translation>
 <translation id="7918257978052780342">Запиши</translation>
@@ -5015,6 +5077,7 @@
 <translation id="7939412583708276221">Сепак задржи</translation>
 <translation id="7942349550061667556">Црвена</translation>
 <translation id="7943837619101191061">Додај локација…</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 компромитирана лозинка}one{# компромитирана лозинка}other{# компромитирани лозинки}}</translation>
 <translation id="7945031593909029181">„<ph name="CHROME_EXTENSION_NAME" />“ сака да се поврзе</translation>
 <translation id="7946586320617670168">Потеклото мора да биде безбедно</translation>
 <translation id="794676567536738329">Потврди дозволи</translation>
@@ -5088,6 +5151,7 @@
 <translation id="8028803902702117856">Се презема <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">Големина</translation>
 <translation id="8030656706657716245">Додајте печатач</translation>
+<translation id="8030852056903932865">Одобри</translation>
 <translation id="8032244173881942855">Не може да се емитува картичката.</translation>
 <translation id="8033827949643255796">избрано</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Отвори ги сите во &amp;инкогнито прозорец}=1{Отвори во &amp;инкогнито прозорец}one{Отвори ги сите (#) во &amp;инкогнито прозорец}other{Отвори ги сите (#) во &amp;инкогнито прозорец}}</translation>
@@ -5112,6 +5176,7 @@
 <translation id="8059417245945632445">&amp;Провери уреди</translation>
 <translation id="8059456211585183827">Нема достапни печатачи за зачувување.</translation>
 <translation id="8063235345342641131">Стандарден зелен аватар</translation>
+<translation id="8063535366119089408">Прикажи датотека</translation>
 <translation id="8064671687106936412">Клуч:</translation>
 <translation id="8068253693380742035">Допрете за да се најавите</translation>
 <translation id="8068809649322155577">Ова ќе ги избрише сите податоци и колачиња меморирани од <ph name="SITE_GROUP_NAME" />, сите подредени сајтови и нејзините инсталирани апликации.</translation>
@@ -5177,6 +5242,7 @@
 <translation id="8152091997436726702">Истече регистрирањето на печатачот. За да регистрирате печатач, мора да ја потврдите регистрацијата на печатачот.</translation>
 <translation id="8154790740888707867">Нема датотека</translation>
 <translation id="815491593104042026">Леле! Автентикацијата не успеа затоа што била конфигурирана да користи небезбеден URL (<ph name="BLOCKED_URL" />). Контактирајте со администраторот.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Не се најдени компромитирани лозинки}=1{{COUNT} компромитирана лозинка}one{{COUNT} компромитирана лозинка}other{{COUNT} компромитирани лозинки}}</translation>
 <translation id="8157704005178149728">Се поставува надзор</translation>
 <translation id="8158117992543756526">Уредов престана да добива автоматски софтверски и безбедносни ажурирања во <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Дознајте повеќе<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Грешка при поставување сертификат на доверба</translation>
@@ -5230,6 +5296,7 @@
 <translation id="8226742006292257240">Подолу има случајно генерирана лозинка на TPM која е назначена на вашиот компјутер:</translation>
 <translation id="8227119283605456246">Прикачи датотека</translation>
 <translation id="8230134520748321204">Дали да се зачува лозинката за <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Поставки за интернет</translation>
 <translation id="8234795456569844941">Помогнете им на нашите инженери да го решат проблемов. Кажете ни што се случи точно пред да ја добиете пораката за грешка на профилот:</translation>
 <translation id="8236123533334037984">Вашата организација го скенира прикачувањево заради безбедносно одобрување.</translation>
 <translation id="8236917170563564587">Наместо тоа, сподели ја картичкава</translation>
@@ -5411,6 +5478,7 @@
 <translation id="8472623782143987204">со резервни копии од хардвер</translation>
 <translation id="8473863474539038330">Адреси и друго</translation>
 <translation id="8475313423285172237">Друга програма на компјутерот додаде наставка која може да промени како работи Chrome.</translation>
+<translation id="8476659515398963495">Овие залепени податоци ги прекршуваат безбедносните правила на организацијата. Дали сепак сакате да продолжите?</translation>
 <translation id="8477241577829954800">Заменет</translation>
 <translation id="8477384620836102176">&amp;Општи информации</translation>
 <translation id="8480082892550707549">Дури и ако веќе сте преземале датотеки од сајтов, тој може да е привремено небезбеден (хакиран). Обидете се да ја преземете датотекава подоцна.</translation>
@@ -5464,6 +5532,7 @@
 <translation id="8547013269961688403">Овозможи лупа за цел екран</translation>
 <translation id="85486688517848470">Држете го копчето „Пребарување“ за да го промените однесувањето на копчињата во најгорниот ред</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 ставка}one{# ставка}other{# ставки}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> ќе може да изменува датотеки во <ph name="FOLDERNAME" /> сѐ додека не ги затворите сите картички на <ph name="ORIGIN" /></translation>
 <translation id="8551388862522347954">Лиценци</translation>
 <translation id="8553342806078037065">Управувај со другите луѓе</translation>
 <translation id="8554899698005018844">Нема јазик</translation>
@@ -5522,6 +5591,7 @@
 <translation id="8637688295594795546">Достапно е ажурирање за системот. Се подготвува за преземање…</translation>
 <translation id="8639047128869322042">Се проверува за штетен софтвер…</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Порта</translation>
+<translation id="8641606876632989680">Chrome ќе ве извести кога ќе се најавите со компромитирана лозинка</translation>
 <translation id="8642900771896232685">2 секунди</translation>
 <translation id="8642947597466641025">Зголеми го текстот</translation>
 <translation id="8644655801811752511">Безбедносниов клуч не може да се ресетира. Обидете се да го ресетирате клучот веднаш по вметнувањето.</translation>
@@ -5567,10 +5637,12 @@
 <translation id="8688579245973331962">Не си го гледате името?</translation>
 <translation id="8688591111840995413">Погрешна лозинка</translation>
 <translation id="8688672835843460752">Достапно</translation>
+<translation id="8691418731028620688">Поврзи Wi-Fi</translation>
 <translation id="8695825812785969222">Отвори &amp;локација...</translation>
 <translation id="869884720829132584">Мени со апликации</translation>
 <translation id="869891660844655955">Рок на важност</translation>
 <translation id="8703346390800944767">Прескокни ја рекламата</translation>
+<translation id="870341961648617780">„Безбедно прелистување“ и напредни поставки за безбедност</translation>
 <translation id="8705331520020532516">Сериски број</translation>
 <translation id="8705580154597116082">Wi-Fi е достапно преку телефон</translation>
 <translation id="8705629851992224300">Не можеше да се прочита безбедносниот клуч</translation>
@@ -5616,6 +5688,7 @@
 <translation id="874689135111202667">{0,plural, =1{Дали да се прикачи една датотека на сајтов?}one{Дали да се прикачи # датотека на сајтов?}other{Дали да се прикачат # датотеки на сајтов?}}</translation>
 <translation id="8748384418490037181">Опции за Smart Lock</translation>
 <translation id="8749863574775030885">Пристапувајте до USB-уреди од непознат продавач</translation>
+<translation id="8750133148106010815">За да го стартувате Google Play, <ph name="ORGANIZATION_NAME" /> бара да направите бекап на вашите податоци и да го ресетирате овој Chromebook на фабричките поставки.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> сака да се поврзе со сериска порта</translation>
 <translation id="8754200782896249056">&lt;p&gt;Кога <ph name="PRODUCT_NAME" /> работи во поддржана околина за работна површина, ќе се користат поставките за прокси на системот. Меѓутоа, или системот не е поддржан или имаше проблем при стартувањето на системската конфигурација.&lt;/p&gt;
 
@@ -5670,6 +5743,7 @@
 <translation id="8809147117840417135">Светла синозелена</translation>
 <translation id="8813698869395535039">Не може да се најави на <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">лист хартија</translation>
+<translation id="8813872945700551674">Повикајте родител за да ја одобри „<ph name="EXTENSION_NAME" />“</translation>
 <translation id="8813969267212093033">Системскиот текст се прикажува на овој јазик</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Почекајте, архивата се скенира…</translation>
@@ -5723,6 +5797,7 @@
 <translation id="8872187374998143710">Рестартирајте го уредот за да го користите Plugin VM.</translation>
 <translation id="8872777911145321141">Прашувај кога некој сајт ќе сака да ги користи уредите и податоците за виртуелна реалност (препорачано)</translation>
 <translation id="8874184842967597500">Не е поврзано</translation>
+<translation id="8875775314572167244">Поставки за етернет</translation>
 <translation id="8876307312329369159">Поставкава не може да се промени во демо-сесија.</translation>
 <translation id="8877448029301136595">[надреден директориум]</translation>
 <translation id="8878384954777710821">Се деинсталира Plugin VM…</translation>
@@ -5764,6 +5839,7 @@
 <translation id="892706138619340876">Некои поставки се ресетирани</translation>
 <translation id="8930351635855238750">Новите поставки за колачиња ќе стапат на сила по повторното вчитување на страницата</translation>
 <translation id="8931394284949551895">Нови уреди</translation>
+<translation id="8931475688782629595">Управувајте со синхронизираните содржини</translation>
 <translation id="8932894639908691771">Опции за „Пристап со прекинувачи“</translation>
 <translation id="8933960630081805351">&amp;Прикажи во Наоѓач</translation>
 <translation id="8934732568177537184">Продолжи</translation>
@@ -5921,6 +5997,7 @@
 <translation id="9148126808321036104">Најави се повторно</translation>
 <translation id="9149866541089851383">Измени...</translation>
 <translation id="9150045010208374699">Користи ја камерата</translation>
+<translation id="9150429437595727962">Поставки за Wi-Fi</translation>
 <translation id="9153934054460603056">Зачувај идентитет и лозинка</translation>
 <translation id="9154194610265714752">Ажурно</translation>
 <translation id="91568222606626347">Креирај кратенка...</translation>
@@ -5950,6 +6027,7 @@
 <translation id="9203398526606335860">&amp;Профилирањето е овозможено</translation>
 <translation id="9203904171912129171">Изберете уред</translation>
 <translation id="9203962528777363226">Администраторот на уредов оневозможи додавање нови корисници</translation>
+<translation id="9211177926627870898">Потребно е ажурирање</translation>
 <translation id="9214520840402538427">Упс! Иницијализацијата на атрибутите за време на инсталација истече. Контактирајте со вашиот претставник за поддршка.</translation>
 <translation id="9214695392875603905">Тортичка</translation>
 <translation id="9215293857209265904">Додадена е „<ph name="EXTENSION_NAME" />“</translation>
@@ -5981,6 +6059,7 @@
 <translation id="945522503751344254">Испратете повратни информации</translation>
 <translation id="947329552760389097">&amp;Проверете ги елементите</translation>
 <translation id="952992212772159698">Не е активиран</translation>
+<translation id="956500788634395331">Заштитени сте од потенцијално штетни екстензии</translation>
 <translation id="957960681186851048">Сајтов се обиде автоматски да преземе повеќе датотеки</translation>
 <translation id="9580706199804957">Не можеше да се поврзе со услугите на Google</translation>
 <translation id="960719561871045870">Код на оператор</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index fecac97..290964c4 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">ഈ ആപ്പുകളിൽ നിന്നുള്ള ഡാറ്റയും മായ്ക്കണോ?</translation>
 <translation id="1045692658517323508">{0,plural, =1{ഒരു മിനിറ്റിനുള്ളിൽ അപ്‌ഡേറ്റ് ചെയ്യുക}other{# മിനിറ്റിനുള്ളിൽ അപ്‌ഡേറ്റ് ചെയ്യുക}}</translation>
 <translation id="1046635659603195359">മറ്റൊരു ഉപകരണത്തിൽ മുമ്പേ നിങ്ങൾ Google അസിസ്റ്റന്‍റിനൊപ്പം Voice Match സജ്ജമാക്കിയിട്ടുള്ളതായി തോന്നുന്നു. ഈ ഉപകരണത്തിൽ ഒരു ശബ്‌ദ മോഡൽ സൃഷ്ടിക്കുന്നതിന് പഴയ റെക്കോർഡിംഗുകൾ ഉപയോഗപ്പെടുത്താം. ഇതിന് ഒരു മിനിറ്റിൽ കുറവ് സമയമേ എടുക്കൂ.</translation>
+<translation id="104710386808485638">Linux റീസ്റ്റാർട്ട് ചെയ്യണോ?</translation>
 <translation id="1047431265488717055">ലിങ്ക് ടെ&amp;ക്‌സ്റ്റ് പകർത്തുക</translation>
 <translation id="1048286738600630630">ഡിസ്‌പ്ലേകൾ</translation>
 <translation id="1049743911850919806">ആള്‍‌മാറാട്ടം</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">ക്ലയന്‍റ് സര്‍ട്ടിഫിക്കറ്റ് എക്‌സ്പോർട്ട് ചെയ്യുന്നതിന് ദയവായി <ph name="TOKEN_NAME" /> എന്നതിലേക്ക് പ്രവേശിക്കുക.</translation>
 <translation id="1163931534039071049">ഫ്രെയിം ഉറവിടം &amp;കാണുക</translation>
 <translation id="1164674268730883318"><ph name="DEVICE_TYPE" /> ഉപകരണത്തിന്റെ Smart Lock ഓഫാക്കണോ?</translation>
+<translation id="1164891049599601209">വഞ്ചനാപരമായ സൈറ്റ് നൽകി</translation>
 <translation id="1164899421101904659">പിൻ അൺലോക്ക് കീ നൽകുക</translation>
 <translation id="1165039591588034296">പിശക്</translation>
 <translation id="1166212789817575481">ടാബുകള്‍ വലത്തേയ്‌ക്ക് അടയ്‌ക്കുക</translation>
@@ -395,6 +397,7 @@
 <translation id="1545177026077493356">യാന്ത്രിക കിയോസ്‌ക് മോഡ്</translation>
 <translation id="1545775234664667895">"<ph name="THEME_NAME" />" തീം ഇന്‍‌സ്റ്റാള്‍ ചെയ്‌തു</translation>
 <translation id="1546280085599573572">നിങ്ങൾ ഹോം ബട്ടൺ ക്ലിക്ക് ചെയ്യുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ ഈ വിപുലീകരണം മാറ്റി.</translation>
+<translation id="1546452108651444655">ഇനിപ്പറയുന്ന കാര്യങ്ങൾ ചെയ്യാനാവുന്ന <ph name="EXTENSION_TYPE" /> ഇൻസ്‌റ്റാൾ ചെയ്യാൻ <ph name="CHILD_NAME" /> താൽപ്പര്യപ്പെടുന്നു:</translation>
 <translation id="1549275686094429035">ARC പ്രവർത്തനക്ഷമമാക്കി</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" />, <ph name="VOLUME_NAME" /> എന്നത് ആക്‌സസ് ചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു. ഇത് നിങ്ങളുടെ ഫയലുകൾ പരിഷ്‌ക്കരിക്കുകയോ ഇല്ലാതാക്കുകയോ ചെയ്യാം</translation>
 <translation id="1553538517812678578">പരിമിതികളില്ലാത്ത</translation>
@@ -493,6 +496,7 @@
 <translation id="1679806121152819234">പ്ലഗിൻ VM</translation>
 <translation id="1679810534535368772">നിങ്ങൾക്ക് പുറത്തുകടക്കണമെന്ന് തീർച്ചയാണോ?</translation>
 <translation id="167983332380191032">മാനേജ്‌മെന്റ് സേവനം, HTTP പിശക് അയച്ചു.</translation>
+<translation id="1680841347983561661">അൽപ്പസമയത്തിനുള്ളിൽ Google Play വീണ്ടും ആരംഭിക്കാൻ ശ്രമിക്കുക.</translation>
 <translation id="1680849702532889074">നിങ്ങളുടെ Linux ആപ്ലിക്കേഷൻ ഇൻസ്‌റ്റാൾ ചെയ്യുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു.</translation>
 <translation id="16815041330799488">ക്ലിപ്പ്‌ബോർഡിലേക്ക് പകർത്തിയിട്ടുള്ള ടെക്‌സ്‌റ്റുകളും ചിത്രങ്ങളും കാണാൻ സൈറ്റുകളെ അനുവദിക്കരുത്</translation>
 <translation id="1682548588986054654">പുതിയ അദൃശ്യ വിൻഡോ</translation>
@@ -746,6 +750,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> എന്നത് ക്രാഷ് ചെയ്തു. എക്സ്റ്റന്‍ഷന്‍ റീലോഡ് ചെയ്യുന്നതിന് ഈ ബലൂണ്‍ ക്ലിക്ക് ചെയ്യുക.</translation>
 <translation id="2025891858974379949">സുരക്ഷിതമല്ലാത്ത ഉള്ളടക്കം</translation>
 <translation id="202918510990975568">സുരക്ഷ കോൺഫിഗർ ചെയ്ത് സൈൻ ഇൻ ചെയ്യാൻ നിങ്ങളുടെ പാസ്‌വേഡ് നൽകുക</translation>
+<translation id="2030672406208960151">വീണ്ടെടുക്കൽ ടെർമിനൽ തുറക്കുക</translation>
 <translation id="2034346955588403444">മറ്റൊരു WiFi നെറ്റ്‌വർക്ക് ചേർക്കുക</translation>
 <translation id="203574396658008164">ലോക്ക് സ്‌ക്രീനിൽ നിന്ന് കുറിപ്പെടുക്കുന്നത് പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="2037445849770872822">ഈ Google അക്കൗണ്ടിനായി മേൽനോട്ടം സജ്ജീകരിച്ചു. കൂടുതൽ രക്ഷാകർതൃ നിയന്ത്രണങ്ങൾ സജ്ജീകരിക്കാൻ 'തുടരുക' തിരഞ്ഞെടുക്കുക.
@@ -898,6 +903,7 @@
 <translation id="2220572644011485463">പിൻ അല്ലെങ്കിൽ പാസ്‌വേഡ്</translation>
 <translation id="2224444042887712269">ഈ ക്രമീകരണം <ph name="OWNER_EMAIL" />-ന്റേതാണ്.</translation>
 <translation id="2224551243087462610">ഫോള്‍ഡര്‍ നാമം എഡിറ്റ് ചെയ്യുക</translation>
+<translation id="2225864335125757863">നിങ്ങളുടെ അക്കൗണ്ട് സുരക്ഷിതമായി നിലനിർത്തുന്നതിന് ഈ പാസ്‌വേഡുകൾ ഉടൻ മാറ്റുക:</translation>
 <translation id="2226449515541314767">MIDI ഉപകരണങ്ങളിൽ പൂർണ്ണനിയന്ത്രണം നേടുന്നതിൽ നിന്ന് ഈ സൈറ്റിനെ തടഞ്ഞു.</translation>
 <translation id="222704500187107962">നിലവിലെ അദൃശ്യ മോഡ് സെഷനിൽ നിന്ന് നിങ്ങൾ പുറത്തുകടന്ന് കഴിഞ്ഞാൽ ഈ ഒഴിവാക്കൽ സ്വയമേവ നീക്കം ചെയ്യപ്പെടും</translation>
 <translation id="2227179592712503583">നിർദ്ദേശം നീക്കം ചെയ്യുക</translation>
@@ -1018,6 +1024,7 @@
 <translation id="2387052489799050037">ഹോമിലേക്ക് പോവുക</translation>
 <translation id="2387458720915042159">പ്രോക്‌സി കണക്ഷൻ തരം</translation>
 <translation id="2391419135980381625">സാധാരണ ഫോണ്ട്</translation>
+<translation id="2392163307141705938"><ph name="IDS_SHORT_PRODUCT_NAME" />-നായി നിങ്ങളുടെ രക്ഷിതാവ് സജ്ജീകരിച്ച സമയ പരിധിയിലെത്തി</translation>
 <translation id="2392369802118427583">സജീവമാക്കുക</translation>
 <translation id="2394566832561516196">അടുത്ത തവണ വീണ്ടും ലോഡ് ചെയ്യുമ്പോൾ ക്രമീകരണങ്ങള്‍ മായ്‌ക്കപ്പെടും.</translation>
 <translation id="2395616325548404795">എന്റർപ്രൈസ് മാനേജ്‌മെന്റിന് വേണ്ടി നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> എൻറോൾ ചെയ്‌തെങ്കിലും അതിന്റെ അസറ്റും ലൊക്കേഷൻ വിവരങ്ങളും അയയ്‌ക്കാനായില്ല. ഈ ഉപകരണത്തിനുവേണ്ടി നിങ്ങളുടെ അഡ്‍മിൻ കൺസോളിൽ നിന്ന് ഈ വിവരങ്ങൾ നേരിട്ട് നൽകുക.</translation>
@@ -1083,6 +1090,7 @@
 <translation id="247949520305900375">ഓഡിയോ പങ്കിടുക</translation>
 <translation id="2480868415629598489">നിങ്ങൾ പകർത്തി ഒട്ടിക്കുന്ന വിവരത്തിൽ മാറ്റം വരുത്തുക</translation>
 <translation id="2482878487686419369">വിജ്ഞാപനങ്ങള്‍‌</translation>
+<translation id="2483610039979585156">നിങ്ങൾ എല്ലാ <ph name="ORIGIN" /> ടാബുകളും അടയ്‌ക്കുന്നത് വരെ <ph name="ORIGIN" />-ന് <ph name="FILENAME" /> എന്നത് എഡിറ്റ് ചെയ്യാനാവും</translation>
 <translation id="2484959914739448251">നിങ്ങളുടെ സമന്വയിപ്പിച്ച എല്ലാ ഉപകരണങ്ങളിൽ നിന്നും Google അക്കൗണ്ടിൽ നിന്നും ബ്രൗസിംഗ് ഡാറ്റ മായ്ക്കാൻ<ph name="BEGIN_LINK" />നിങ്ങളുടെ പാസ്‌ഫ്രെയ്‌സ് നൽകുക<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">പാസ്‍വേഡ് ഈ ഉപകരണത്തിൽ സംരക്ഷിച്ചു</translation>
 <translation id="2485422356828889247">അണ്‍‌ഇന്‍‌സ്റ്റാള്‍‌ ചെയ്യുക</translation>
@@ -1296,6 +1304,7 @@
 <translation id="274290345632688601">Linux ആപ്പുകളും ഫയലുകളും പുനഃസ്ഥാപിക്കുന്നു</translation>
 <translation id="2743387203779672305">ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തുക</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> താൽക്കാലികമായി നിർത്തി</translation>
 <translation id="2749756011735116528"><ph name="PRODUCT_NAME" /> എന്നതിലേയ്‍ക്ക് സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="2749881179542288782">സ്‌പെല്ലിംഗിനൊപ്പം വ്യാകരണവും പരിശോധിക്കുക</translation>
 <translation id="2751739896257479635">രണ്ടാം ഘട്ട EAP പരിശോധിച്ചുറപ്പിക്കൽ</translation>
@@ -1304,6 +1313,7 @@
 <translation id="275662540872599901">സ്‌ക്രീൻ ഓഫാണ്</translation>
 <translation id="2762441749940182211">ക്യാമറ ബ്ലോക്ക് ചെയ്‌‌തു</translation>
 <translation id="2765217105034171413">ചെറുത്</translation>
+<translation id="2766161002040448006">രക്ഷിതാവിനോട് ചോദിക്കുക</translation>
 <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" /> എന്നായി സൈൻ ഇൻ ചെയ്‌തു.</translation>
 <translation id="2770465223704140727">പട്ടികയില്‍‌ നിന്നും നീക്കംചെയ്യുക</translation>
 <translation id="2770690685823456775">നിങ്ങളുടെ പാസ്‍വേഡുകൾ മറ്റൊരു ഫോൾഡറിലേക്ക് എക്‌സ്‌പോർട്ട് ചെയ്യുക</translation>
@@ -1555,6 +1565,7 @@
 <translation id="3115580024857770654">എല്ലാം ചുരുക്കുക</translation>
 <translation id="3117362587799608430">ഡോക്ക് പൂർണ്ണമായി അനുയോജ്യമല്ല</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> സഹായം</translation>
+<translation id="3118654181216384296">അൽപ്പസമയത്തിനുള്ളിൽ Linux വീണ്ടും ആരംഭിക്കാൻ ശ്രമിക്കുക.</translation>
 <translation id="3120430004221004537">ഇനി പറയുന്നതിൽ നൽകിയിരിക്കുന്ന പ്രവർത്തനത്തിന് എൻക്രിപ്‌ഷൻ അപര്യാപ്‌തമാണ്: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">ഈ <ph name="IDS_SHORT_PRODUCT_NAME" /> ഉപകരണം റീസെറ്റ് ചെയ്യുക</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1564,6 +1575,7 @@
 <translation id="3127156390846601284">കാണിച്ചിരിക്കുന്ന എല്ലാ സൈറ്റുകളുടെയും, നിങ്ങളുടെ ഉപകരണത്തിൽ സൂക്ഷിച്ചിരിക്കുന്ന വിവരങ്ങളെല്ലാം ഇത് ഇല്ലാതാക്കും. തുടരണോ?</translation>
 <translation id="3127860049873093642">ചാർജ് ചെയ്യുന്നതും പ്രകടന പ്രശ്‌നങ്ങളും ഒഴിവാക്കാൻ, അനുയോജ്യമായ Dell അല്ലെങ്കിൽ USB ടൈപ്പ്-C പവർ അഡാപ്‌റ്റർ ഉപയോഗിക്കുക.</translation>
 <translation id="3129173833825111527">ഇടത് മാര്‍‌ജിന്‍‌</translation>
+<translation id="3129215702932019810">ആപ്പ് ലോഞ്ച് ചെയ്യുന്നതിൽ പിശക്</translation>
 <translation id="3130528281680948470">നിങ്ങളുടെ ഉപകരണം പുഃസജ്ജീകരിക്കുന്നതിനാൽ എല്ലാ ഉപയോക്തൃ അക്കൗണ്ടുകളും പ്രാദേശിക ഡാറ്റയും നീക്കംചെയ്യും. ഇത് പഴയപടിയാക്കാനാകില്ല.</translation>
 <translation id="313205617302240621">പാസ്‌വേഡ് മറന്നോ?</translation>
 <translation id="3132996321662585180">പ്രതിദിനം പുതുക്കുക</translation>
@@ -1779,6 +1791,7 @@
 <translation id="3441653493275994384">സ്ക്രീന്‍‌</translation>
 <translation id="3445925074670675829">USB-C ഉപകരണം</translation>
 <translation id="344630545793878684">നിരവധി വെബ്‌സൈറ്റുകളിലെ നിങ്ങളുടെ വിവരം വായിക്കുക</translation>
+<translation id="3448086340637592206">Google Chrome, Chrome OS അധിക നിബന്ധനകൾ</translation>
 <translation id="3448492834076427715">അക്കൗണ്ട് അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
 <translation id="3449839693241009168"><ph name="EXTENSION_NAME" /> ലേക്ക് കമാന്‍റുകള്‍‌ അയയ്‌ക്കുന്നതിന് <ph name="SEARCH_KEY" /> അമര്‍‌ത്തുക</translation>
 <translation id="3450157232394774192">നിഷ്ക്രിയ നില ഒക്യുപ്പൻസി ശതമാനം</translation>
@@ -2126,6 +2139,7 @@
 <translation id="3873423927483480833">പിന്നുകൾ കാണിക്കുക</translation>
 <translation id="3873915545594852654">ARC++ എന്നതിൽ ഒരു പ്രശ്‌നമുണ്ടായി.</translation>
 <translation id="3879748587602334249">ഡൗൺലോഡ് മാനേജർ</translation>
+<translation id="3881321138433527084">സുരക്ഷിത ബ്രൗസിംഗ് ഓഫാണ്. വെബിൽ സുരക്ഷിതമായി തുടരാൻ, അത് ഓണാക്കുക.</translation>
 <translation id="3882165008614329320">ക്യാമറയിൽ നിന്നോ ഫയലിൽ നിന്നോ ഉള്ള നിലവിലെ വീഡിയോ</translation>
 <translation id="3886446263141354045"><ph name="NAME" /> എന്നയാൾക്ക് ഈ സൈറ്റ് ആക്‌സസ് ചെയ്യാനുള്ള നിങ്ങളുടെ അഭ്യർത്ഥന അയച്ചു</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ഉപയോഗിച്ച് കുറിപ്പുകൾ എടുക്കുന്നു</translation>
@@ -2466,6 +2480,7 @@
 <translation id="4384652540891215547">വിപുലീകരണം സജീവമാക്കുക</translation>
 <translation id="438503109373656455">സാരറ്റോഗ</translation>
 <translation id="4387004326333427325">പരിശോധിച്ചുറപ്പിക്കൽ സർട്ടിഫിക്കറ്റ് വിദൂരമായി നിരസിച്ചു</translation>
+<translation id="4387890294700445764">അപഹരിക്കപ്പെട്ട പാസ്‌വേഡുകൾ</translation>
 <translation id="4389091756366370506">ഉപയോക്താവ്<ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{അദൃശ്യ മോഡ്}other{# അദൃശ്യ വിൻഡോകൾ തുറക്കുക}}</translation>
 <translation id="439266289085815679">Bluetooth കോൺഫിഗറേഷൻ നിയന്ത്രിക്കുന്നത് <ph name="USER_EMAIL" /> ആണ്.</translation>
@@ -2497,6 +2512,7 @@
 <translation id="4429030830601238961">ഈ ഡാറ്റ നിങ്ങളുടെ ഓർഗനൈസേഷന്റെ സുരക്ഷാ നയങ്ങൾ ലംഘിക്കുന്നതിനാൽ ഇത് ഒട്ടിക്കാനാവില്ല.</translation>
 <translation id="4430019312045809116">അളവ്</translation>
 <translation id="4430369329743628066">ബുക്ക്‌മാർക്ക് ചേർത്തു</translation>
+<translation id="4432621511648257259">പാസ്‌വേഡ് തെറ്റാണ്</translation>
 <translation id="4434045419905280838">പോപ്-അപ്പുകളും റീഡയറക്‌റ്റുകളും</translation>
 <translation id="443454694385851356">ലെഗസി (സുരക്ഷിതമല്ലാത്തത്)</translation>
 <translation id="443475966875174318">അനുയോജ്യതയില്ലാത്ത ആപ്പുകൾ അപ്‌ഡേറ്റ് ചെയ്യുക അല്ലെങ്കിൽ നീക്കം ചെയ്യുക</translation>
@@ -2746,6 +2762,7 @@
 <translation id="4808667324955055115">പോപ്-അപ്പുകൾ ബ്ലോക്ക് ചെയ്തു</translation>
 <translation id="480990236307250886">ഹോംപേജ് തുറക്കുക</translation>
 <translation id="4811503964269049987">തിരഞ്ഞെടുത്ത ഗ്രൂപ്പ് ടാബ്</translation>
+<translation id="4811818760963189951">നിങ്ങൾ ചരിത്രം സമന്വയിപ്പിക്കൽ പ്രവർത്തനരഹിതമാക്കിയതിനാൽ ഓഫാക്കി</translation>
 <translation id="4813136279048157860">എന്റെ ചിത്രങ്ങൾ</translation>
 <translation id="4813512666221746211">നെറ്റ്‌വര്‍ക്ക് പിശക്</translation>
 <translation id="4814378367953456825">ഈ ഫിംഗർപ്രിന്റിന് ഒരു പേര് നൽകുക</translation>
@@ -2775,6 +2792,7 @@
 <translation id="4850669014075537160">സ്‌ക്രോൾ ചെയ്യൽ</translation>
 <translation id="4850886885716139402">കാണുക</translation>
 <translation id="4853020600495124913">&amp;പുതിയ വിന്‍‌ഡോയില്‍‌ തുറക്കുക</translation>
+<translation id="4854317507773910281">അംഗീകാരത്തിനായി രക്ഷാകർതൃ അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക</translation>
 <translation id="485480310608090163">കൂടുതൽ ക്രമീകരണവും അനുമതികളും</translation>
 <translation id="4856478137399998590">നിങ്ങളുടെ ഡാറ്റ സേവനം സജീവമാക്കി ഒപ്പം ഉപയോഗക്ഷമവുമായി</translation>
 <translation id="4856855265648545577">ടാബ്‌ലെറ്റ് മോഡിലായിരിക്കുമ്പോൾ ഷെൽഫിൽ ലോഞ്ചർ, മടങ്ങുക, അവലോകന ബട്ടണുകൾ കാണിക്കുക. ChromeVox (സംഭാഷണ ഫീഡ്‌ബാക്ക്) അല്ലെങ്കിൽ ആക്‌സസ് മാറുക പ്രവർത്തനക്ഷമമാക്കിയിരിക്കുമ്പോൾ ഓണാകുന്നു.</translation>
@@ -2911,10 +2929,12 @@
 <translation id="5040823038948176460">അധിക ഉള്ളടക്ക ക്രമീകരണം</translation>
 <translation id="5042282098504489593"><ph name="USB_DEVICE_NAME" /> Linux-ലേക്ക് കണക്റ്റ് ചെയ്യാൻ ക്രമീകരണം തുറക്കുക</translation>
 <translation id="5043913660911154449">അല്ലെങ്കിൽ നിങ്ങളുടെ പ്രിന്റർ PPD വ്യക്തമാക്കുക <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">നിങ്ങളുടെ സമന്വയ ഡാറ്റ ഒരു പാസ്‌ഫ്രെയ്‌സ് ഉപയോഗിച്ച് എൻക്രിപ്റ്റ് ചെയ്‌തതിനാൽ ഓഫാക്കി</translation>
 <translation id="5045550434625856497">പാസ്‍വേഡ് തെറ്റാണ്</translation>
 <translation id="504561833207953641">നിലവിലുള്ള ബ്രൗസര്‍ സെഷനില്‍ തുറക്കുന്നു.</translation>
 <translation id="5047421709274785093">ചലന സെൻസറുകളും വെളിച്ച സെൻസറുകളും ഉപയോഗിക്കുന്നതിൽ നിന്ന് സൈറ്റുകളെ ബ്ലോക്ക് ചെയ്യുക</translation>
 <translation id="5050042263972837708">ഗ്രൂപ്പിന്‍റെ പേര്</translation>
+<translation id="5051073330196664891">Google യൂണിവേഴ്‌സൽ സേവന നിബന്ധനകള്‍ (uToS)</translation>
 <translation id="5051836348807686060">നിങ്ങൾ തിരഞ്ഞെടുത്ത ഭാഷകൾക്ക് അക്ഷരപ്പിശക് പരിശോധന പിന്തുണയ്‌ക്കുന്നില്ല</translation>
 <translation id="5052499409147950210">സൈറ്റ് എഡിറ്റ് ചെയ്യുക</translation>
 <translation id="5053604404986157245">ക്രമരഹിതമായി സൃഷ്‌ടിച്ച TPM പാസ്‌വേഡ് ലഭ്യമല്ല. പവർവാഷിന് ശേഷം ഇത് സാധാരണമാണ്.</translation>
@@ -2952,6 +2972,7 @@
 <translation id="5097002363526479830">'<ph name="NAME" />' നെറ്റ്‌വര്‍‌ക്കിലേക്ക് ബന്ധിപ്പിക്കുന്നതിൽ പരാജയപ്പെട്ടു: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">എല്ലാ ബുക്‌മാര്‍ക്കുകളും തുറക്കുക</translation>
 <translation id="5101839224773798795">കഴ്‌സർ നിൽക്കുമ്പോൾ സ്വയമേവ ക്ലിക്ക് ചെയ്യുക</translation>
+<translation id="5107443654503185812">ഒരു വിപുലീകരണം സുരക്ഷിത ബ്രൗസിംഗ് ഓഫാക്കി</translation>
 <translation id="5108967062857032718">ക്രമീകരണം - Android ആപ്പുകൾ നീക്കംചെയ്യുക</translation>
 <translation id="5109044022078737958">മിയ</translation>
 <translation id="5111646998522066203">അദൃശ്യ മോഡിൽ നിന്ന് പുറത്തുകടക്കുക</translation>
@@ -3038,6 +3059,7 @@
 <translation id="523505283826916779">ഉപയോഗസഹായി ക്രമീകരണങ്ങൾ</translation>
 <translation id="5235750401727657667">പുതിയ ടാബ് തുറക്കുമ്പോൾ കാണിക്കേണ്ട പേജ് മാറ്റുക</translation>
 <translation id="5238278114306905396">"<ph name="EXTENSION_NAME" />" ആപ്പ് സ്വയമേവ നീക്കംചെയ്‌തു.</translation>
+<translation id="5239730228370806996">ഈ വലിച്ചിട്ട ഡാറ്റ നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ സുരക്ഷാ നയങ്ങൾ ലംഘിക്കുന്നു. എന്തായാലും തുടരണോ?</translation>
 <translation id="5241128660650683457">നിങ്ങൾ സന്ദർശിക്കുന്ന വെബ്‌സൈറ്റുകളിലെ എല്ലാ വിവരവും വായിക്കുക</translation>
 <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" പ്രവർത്തനക്ഷമമാക്കണോ?</translation>
 <translation id="5243522832766285132">അൽപ്പസമയത്തിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക.</translation>
@@ -3325,6 +3347,7 @@
 <translation id="5618075537869101857">ക്ഷമിക്കണം, കിയോസ്‌ക് ആപ്പ് സമാരംഭിക്കാനായില്ല.</translation>
 <translation id="5618333180342767515">(ഇതിന് കുറച്ച് മിനിറ്റെടുത്തേയ്‌ക്കാം)</translation>
 <translation id="56197088284879152">റിമോട്ട് ഉപകരണത്തിലേക്കുള്ള കണക്ഷൻ അനുവദനീയ എണ്ണത്തിലും കൂടുതലായി: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">സംരക്ഷിച്ച പാസ്‌വേഡുകളൊന്നുമില്ല</translation>
 <translation id="5620549857835247159">ടാബ്‌ലെറ്റ് മോഡിലായിരിക്കുമ്പോൾ ഷെൽഫിൽ ലോഞ്ചർ, മടങ്ങുക, അവലോകന ബട്ടണുകൾ കാണിക്കുക.</translation>
 <translation id="5620568081365989559"><ph name="FOLDER_PATH" />-ലേക്ക് DevTools പൂർണ്ണമായ ആക്‌സസ് അഭ്യർത്ഥിക്കുന്നു. സെൻസിറ്റീവായ വിവരങ്ങളൊന്നും തന്നെ വെളിപ്പെടുത്തുന്നില്ലെന്ന് ഉറപ്പാക്കുക.</translation>
 <translation id="5620612546311710611">ഉപയോഗ സ്ഥിതിവിവരക്കണക്കുകൾ</translation>
@@ -3419,6 +3442,7 @@
 <translation id="5747785204778348146">ഡെവലപ്പർ - അസ്ഥിരം</translation>
 <translation id="5747809636523347288">ഒട്ടിച്ച്, <ph name="URL" /> എന്നതിലേക്ക് പോവുക</translation>
 <translation id="5750324801516359607">ദൂരെ</translation>
+<translation id="5751887393582880060">ഈ അപ്‌ലോഡ് നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ സുരക്ഷാ നയങ്ങൾ ലംഘിക്കുന്നു. എന്തായാലും തുടരണോ?</translation>
 <translation id="5756163054456765343">സഹാ&amp;യ കേന്ദ്രം</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> വഴി പ്രിന്‍റ് ചെയ്യാൻ നിങ്ങൾ അയയ്‌ക്കുന്ന പ്രമാണങ്ങളെ <ph name="APP_NAME" /> എന്നതിന് വായിക്കാനാകുന്നു.</translation>
 <translation id="5763751966069581670">USB ഉപകരണങ്ങളൊന്നും കണ്ടില്ല</translation>
@@ -3628,6 +3652,7 @@
 <translation id="6040852767465482106">അജ്ഞാത ഐഡന്‍റിറ്റി</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />നിങ്ങളുടെ ഉപകരണം ഏത് ലൊക്കേഷനിലാണെന്ന് അറിയാൻ, Google-ന്‍റെ ലൊക്കേഷൻ സേവനം വൈഫൈയും മൊബൈൽ നെറ്റ്‌വർക്കുകളും സെൻസറുകളും പോലുള്ള ഉറവിടങ്ങൾ ഉപയോഗിക്കുന്നു.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />നിങ്ങളുടെ ഉപകരണത്തിലെ പ്രധാന ലൊക്കേഷൻ ക്രമീകരണം ഓഫാക്കി, നിങ്ങൾക്ക് ലൊക്കേഷൻ ഓഫാക്കാം. ലൊക്കേഷന് വേണ്ടിയുള്ള വൈഫൈ, മൊബൈൽ നെറ്റ്‌വർക്കുകൾ, സെൻസറുകൾ എന്നിവയുടെ ഉപയോഗവും ലൊക്കേഷൻ ക്രമീകരണത്തിൽ ഓഫാക്കാനാവും.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409">നിങ്ങൾ എല്ലാ <ph name="ORIGIN" /> ടാബുകളും അടയ്ക്കുന്നത് വരെ <ph name="FOLDERNAME" />-ൽ <ph name="ORIGIN" /> എന്നതിന് ഫയലുകൾ കാണാൻ കഴിയും</translation>
 <translation id="6041155700700864984">മുഴുവൻസ്‌ക്രീനിൽ നിന്നും നിർഗമിക്കുക</translation>
 <translation id="604124094241169006">സ്വപ്രേരിതം</translation>
 <translation id="6042308850641462728">കൂടുതൽ</translation>
@@ -3690,6 +3715,7 @@
 " പരിശോധിക്കുക.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" />, ഇപ്പോൾ ഈ ഉപകരണത്തിൽ ഒരു അപ്‌ഡേറ്റ് ആവശ്യപ്പെടുന്നു</translation>
 <translation id="6106186653986077033">Plugin VM-ന് ഒരു ലൈസൻസ് ആവശ്യമാണ്</translation>
+<translation id="6107047744202598802">നിങ്ങൾ സന്ദർശിച്ചവ ഓർമ്മിക്കാനും വെബിൽ ഉടനീളം നിങ്ങളെ ട്രാക്ക് ചെയ്യാനും വെബ്‌സൈറ്റുകളെ അനുവദിക്കുന്നു</translation>
 <translation id="6112294629795967147">വലുപ്പം മാറ്റാൻ സ്പർശിക്കുക</translation>
 <translation id="6112727384379533756">ഒരു ടിക്കറ്റ് ചേർക്കുക</translation>
 <translation id="6112931163620622315">നിങ്ങളുടെ ഫോൺ പരിശോധിക്കുക</translation>
@@ -3768,6 +3794,7 @@
 <translation id="622537739776246443">പ്രൊഫൈല്‍ ഇല്ലാതാക്കപ്പെടും</translation>
 <translation id="6225475702458870625"><ph name="PHONE_NAME" /> എന്ന പേരുള്ള ഫോണിൽ നിന്ന് ലഭ്യമായ ഡാറ്റാ കണക്ഷൻ</translation>
 <translation id="6226777517901268232">സ്വകാര്യ കീ ഫയല്‍‌ (ഓപ്‌ഷണൽ)</translation>
+<translation id="6227280783235722609">വിപുലീകരണം</translation>
 <translation id="6228691855869374890">ഈ സൈറ്റിന് MIDI ഉപകരണങ്ങളുടെ പൂർണ്ണ നിയന്ത്രണമുണ്ട്.</translation>
 <translation id="6228720835160974792">ഈ ചിത്രത്തിനായി QR കോഡ് സൃഷ്ടിക്കുക</translation>
 <translation id="6229890768313448549">Google Play സേവന നിബന്ധനകൾ ലോഡ് ചെയ്യാനാവില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
@@ -3819,6 +3846,7 @@
 <translation id="6285120108426285413">സാധാരണ <ph name="FILE_NAME" /> ഡൗൺലോഡ് ചെയ്യാറില്ല, അത് അപകടകരമാകാനും ഇടയുണ്ട്.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{നിങ്ങളുടെ നെറ്റ്‌വർക്കിലെ പുതിയ പ്രിന്റർ}other{നിങ്ങളുടെ നെറ്റ്‌വർക്കിലെ പുതിയ പ്രിന്ററുകൾ}}</translation>
 <translation id="6286708577777130801">സംരക്ഷിച്ച പാസ്‌വേഡ് വിശദാംശങ്ങൾ</translation>
+<translation id="6291163159361301370">Linux ആരംഭിക്കാൻ, നിങ്ങളുടെ ഡാറ്റ ബാക്കപ്പ് ചെയ്‌ത് ഫാക്‌ടറി ക്രമീകരണത്തിലേക്ക് ഈ Chromebook റീസെറ്റ് ചെയ്യാൻ <ph name="ORGANIZATION_NAME" /> ആവശ്യപ്പെടുന്നു.</translation>
 <translation id="6291949900244949761">USB ഉപകരണങ്ങൾ ആക്‌സസ് ചെയ്യാൻ ഒരു സൈറ്റ് താൽപ്പര്യപ്പെടുമ്പോൾ ചോദിക്കുക (ശുപാർശ ചെയ്‌തത്)</translation>
 <translation id="6291953229176937411">&amp;ഫൈന്‍‌ഡറില്‍ കാണിക്കുക</translation>
 <translation id="6295158916970320988">എല്ലാ സൈറ്റുകളും</translation>
@@ -4015,6 +4043,7 @@
 <translation id="6561726789132298588">എന്റർ</translation>
 <translation id="656293578423618167">ഫയലിന്റെ പാതയോ പേരോ ദൈർഘ്യമേറിയതാണ്.  ഹ്രസ്വമായ പേര് ഉപയോഗിച്ചോ മറ്റൊരു ലൊക്കേഷനിലേക്കോ സംരക്ഷിക്കുക.</translation>
 <translation id="6563469144985748109">നിങ്ങളുടെ മാനേജർ ഇതുവരെ അംഗീകാരം നൽകിയിട്ടില്ല</translation>
+<translation id="6565955132287672866">നിങ്ങളുടെ ഉപകരണം ശരിയായി ഷട്ട്‌ഡൗൺ ചെയ്‌തിട്ടില്ല. Linux (ബീറ്റ) ഉപയോഗിക്കാൻ അത് റീസ്റ്റാർട്ട് ചെയ്യണം.</translation>
 <translation id="6567688344210276845">പേജ് പ്രവർത്തനത്തിനായി ഐക്കൺ '<ph name="ICON" />' ലോഡ് ചെയ്യാനായില്ല.</translation>
 <translation id="6569934958368283244">മറ്റ് ആളുകൾ</translation>
 <translation id="657402800789773160">&amp;ഈ പേജ് വീണ്ടും ലോഡ് ചെയ്യുക</translation>
@@ -4512,6 +4541,7 @@
 <translation id="7258225044283673131">ആപ്പ് പ്രതികരിക്കുന്നില്ല. ആപ്പ് അടയ്ക്കാൻ, "നിർബന്ധിതമായി അടയ്ക്കുക" തിരഞ്ഞെടുക്കുക.</translation>
 <translation id="7258697411818564379">നിങ്ങളുടെ പിൻ ചേർത്തു</translation>
 <translation id="7262004276116528033">ഈ സൈൻ ഇൻ സേവനം ഹോസ്റ്റ് ചെയ്‌തിരിക്കുന്നത് <ph name="SAML_DOMAIN" /> ആണ്.</translation>
+<translation id="7266898409676782635"><ph name="DEVICE_TYPE" /> നുറുങ്ങുകളും ഓഫറുകളും അപ്‌ഡേറ്റുകളും നേടുകയും ഫീഡ്‌ബാക്ക് പങ്കിടുകയും ചെയ്യുക. ഏത് സമയത്തും വരിക്കാരല്ലാതാവുക.</translation>
 <translation id="7268127947535186412">ഉപകരണ ഉടമയാണ് ഈ ക്രമീകരണം മാനേജ് ചെയ്യുന്നത്.</translation>
 <translation id="7270858098575133036">MIDI ഉപകരണങ്ങൾ ആക്‌സസ് ചെയ്യാൻ ഒരു സൈറ്റിന് സിസ്റ്റം എക്‌സ്‌ക്ലൂസീവ് സന്ദേശങ്ങൾ ഉപയോഗിക്കേണ്ട സാഹചര്യത്തിൽ അത് ആവശ്യപ്പെടുക</translation>
 <translation id="7272674038937250585">വിവരണമൊന്നും നൽകിയിട്ടില്ല</translation>
@@ -4585,6 +4615,7 @@
 <translation id="7364796246159120393">ഫയല്‍ തിരഞ്ഞെടുക്കൂ</translation>
 <translation id="7366415735885268578">ഒരു സൈറ്റ് ചേർക്കുക</translation>
 <translation id="7366909168761621528">ഡാറ്റ ബ്രൌസ് ചെയ്യുന്നു</translation>
+<translation id="7367714965999718019">QR കോഡ് ജനറേറ്റർ</translation>
 <translation id="736877393389250337"><ph name="URL" />, <ph name="ALTERNATIVE_BROWSER_NAME" />-ൽ തുറക്കാനായില്ല. നിങ്ങളുടെ സിസ്‌റ്റം അഡ്‌മിനെ ബന്ധപ്പെടുക.</translation>
 <translation id="7370592524170198497">ഈതർനെറ്റ് EAP:</translation>
 <translation id="7371006317849674875">ആരംഭിക്കുന്ന സമയം</translation>
@@ -4842,8 +4873,10 @@
 <translation id="7737238973539693982">Linux (ബീറ്റ) ഇല്ലാതാക്കുക</translation>
 <translation id="7740996059027112821">സാധാരണം</translation>
 <translation id="7744047395460924128">നിങ്ങളുടെ പ്രിന്റ് ചെയ്യൽ ചരിത്രം കാണുക</translation>
+<translation id="7744192722284567281">ഡാറ്റ ലംഘനത്തിൽ കണ്ടെത്തി</translation>
 <translation id="7746457520633464754">അപകടകരമായ ആപ്പുകളും സൈറ്റുകളും കണ്ടെത്തുന്നതിന്, നിങ്ങൾ സന്ദർശിക്കുന്ന ചില പേജുകളുടെ URL, പരിമിത സിസ്റ്റം വിവരങ്ങൾ, ചില പേജ് ഉള്ളടക്കം എന്നിവ Chrome Google-ന് അയയ്ക്കുന്നു</translation>
 <translation id="7750228210027921155">ചിത്രത്തിനുള്ളിലെ ചിത്രം</translation>
+<translation id="7751229152614300329">സുരക്ഷിത ബ്രൗസിംഗ് അപ് ‌ടു ഡേറ്റാണ്, കൂടാതെ ദോഷകരമായ സൈറ്റുകളിൽ നിന്നും ഡൗൺലോഡുകളിൽ നിന്നും നിങ്ങളെ പരിരക്ഷിക്കുന്നു</translation>
 <translation id="7751260505918304024">എല്ലാം കാണിക്കുക</translation>
 <translation id="7754704193130578113">ഡൗൺലോഡ് ചെയ്യുന്നതിനു മുമ്പ് ഓരോ ഫയലും എവിടെ സംരക്ഷിക്കണമെന്ന് ചോദിക്കുക</translation>
 <translation id="7755287808199759310">നിങ്ങൾക്ക് വേണ്ടി ഇത് അൺബ്ലോക്കുചെയ്യാൻ രക്ഷിതാവിന് കഴിയും</translation>
@@ -4991,6 +5024,7 @@
 <translation id="7910768399700579500">&amp;പുതിയ ഫോള്‍ഡര്‍</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">സെർവറിൽ നിങ്ങളുടെ പാസ്‌വേഡ് മാറ്റിയിരിക്കുന്നു. സൈൻ ഔട്ട് ചെയ്യുക, തുടർന്ന് വീണ്ടും സൈൻ ഇൻ ചെയ്യുക.</translation>
+<translation id="7914583336730284547">ഈ വലിച്ചിട്ട ഫയലുകൾ നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ സുരക്ഷാ നയങ്ങൾ ലംഘിക്കുന്നു. എന്തായാലും തുടരണോ?</translation>
 <translation id="7915457674565721553">രക്ഷാകർതൃ നിയന്ത്രണങ്ങൾ സജ്ജീകരിക്കാൻ ഇന്റർനെറ്റിലേക്ക് കണക്‌റ്റ് ചെയ്യുക</translation>
 <translation id="7915471803647590281">ഫീഡ്ബാക്ക് അയയ്ക്കുന്നതിന് മുമ്പ് എന്തുസംഭവിക്കുന്നുവെന്ന് ഞങ്ങളോട് ദയവായി പറയുക.</translation>
 <translation id="7918257978052780342">എൻറോൾ ചെയ്യുക</translation>
@@ -5088,6 +5122,7 @@
 <translation id="8028803902702117856"><ph name="SIZE" /> ഡൗൺലോഡ് ചെയ്യുന്നു, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">വലുപ്പം</translation>
 <translation id="8030656706657716245">പ്രിന്ററുകൾ ചേർക്കുക</translation>
+<translation id="8030852056903932865">അംഗീകരിക്കുക</translation>
 <translation id="8032244173881942855">ടാബ് കാസ്‌റ്റ് ചെയ്യാനാവുന്നില്ല.</translation>
 <translation id="8033827949643255796">തിരഞ്ഞെടുത്തു</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{എല്ലാം &amp;അദൃശ്യ വിൻഡോയിൽ തുറക്കുക}=1{&amp;അദൃശ്യ വിൻഡോയിൽ തുറക്കുക}other{എല്ലാം (#) &amp;അദൃശ്യ വിൻഡോയിൽ തുറക്കുക}}</translation>
@@ -5408,6 +5443,7 @@
 <translation id="8472623782143987204">ഹാര്‍ഡ്‌വെയര്‍-ബാക്കപ്പ് ചെയ്തു</translation>
 <translation id="8473863474539038330">വിലാസങ്ങളും മറ്റും</translation>
 <translation id="8475313423285172237">നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ മറ്റൊരു പ്രോഗ്രാം Chrome പ്രവർത്തിക്കുന്ന രീതി മാറ്റിയേക്കാവുന്ന ഒരു വിപുലീകരണം ചേർത്തു.</translation>
+<translation id="8476659515398963495">ഈ ഒട്ടിച്ച ഡാറ്റ നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ സുരക്ഷാ നയങ്ങൾ ലംഘിക്കുന്നു. എന്തായാലും തുടരണോ?</translation>
 <translation id="8477241577829954800">അസാധുവാക്കി</translation>
 <translation id="8477384620836102176">&amp;പൊതുവായത്</translation>
 <translation id="8480082892550707549">നിങ്ങൾ ഈ സൈറ്റിൽ നിന്ന് മുമ്പ് ഫയലുകൾ ഡൗൺലോഡ് ചെയ്‌തിട്ടുണ്ടെങ്കിലും, സൈറ്റ് തൽക്കാലം സുരക്ഷിതമല്ലായിരിക്കാം (ഹാക്കുചെയ്യപ്പെട്ടിരിക്കാം). ഈ ഫയൽ പിന്നീട് ഡൗൺലോഡ് ചെയ്യുന്നത് പരീക്ഷിച്ചുനോക്കൂ.</translation>
@@ -5461,6 +5497,7 @@
 <translation id="8547013269961688403">പൂർണ്ണസ്‌ക്രീൻ മാഗ്‌നിഫയർ പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="85486688517848470">മുകൾ-വരിയിലെ കീകളുടെ പ്രവർത്തനരീതി മാറ്റാൻ 'തിരയൽ' കീ അമർത്തിപ്പിടിക്കുക</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{ഒരു ഇനം}other{# ഇനങ്ങൾ}}</translation>
+<translation id="8550165047974571882">നിങ്ങൾ എല്ലാ <ph name="ORIGIN" /> ടാബുകളും അടയ്‌ക്കുന്നത് വരെ <ph name="ORIGIN" />-ന് <ph name="FOLDERNAME" /> എന്നതിലെ ഫയലുകൾ എഡിറ്റ് ചെയ്യാനാവും</translation>
 <translation id="8551388862522347954">ലൈസന്‍സുകള്‍</translation>
 <translation id="8553342806078037065">മറ്റുള്ളവരെ മാനേജുചെയ്യുക</translation>
 <translation id="8554899698005018844">ഭാഷയില്ല</translation>
@@ -5519,6 +5556,7 @@
 <translation id="8637688295594795546">സിസ്റ്റം അപ്ഡേറ്റ് ലഭ്യമാണ്. ഡൌണ്‍ലോഡ് ചെയ്യുന്നതിന് തയ്യാറെടുക്കുന്നു...</translation>
 <translation id="8639047128869322042">ദോഷകരമായ സോഫ്‌റ്റ്‌വെയർ ഉണ്ടോയെന്ന് പരിശോധിക്കുന്നു...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - പോർട്ട്</translation>
+<translation id="8641606876632989680">അപഹരിക്കപ്പെട്ട പാസ്‌വേഡ് ഉപയോഗിച്ച് നിങ്ങൾ സൈൻ ഇൻ ചെയ്യുമ്പോൾ Chrome നിങ്ങളെ അറിയിക്കും</translation>
 <translation id="8642900771896232685">2 സെക്കൻഡ്</translation>
 <translation id="8642947597466641025">പാഠത്തെ വലുതാക്കുക</translation>
 <translation id="8644655801811752511">ഈ സുരക്ഷാ കീ പുനഃസജ്ജീകരിക്കാനാകില്ല. സുരക്ഷാ കീ ബന്ധിപ്പിച്ച ഉടൻ അത് പുനഃസജ്ജീകരിക്കാൻ ശ്രമിക്കുക.</translation>
@@ -5568,6 +5606,7 @@
 <translation id="869884720829132584">അപ്ലിക്കേഷനുക‌ള്‍‌ മെനു</translation>
 <translation id="869891660844655955">കാലഹരണപ്പെടല്‍‌ തീയതി</translation>
 <translation id="8703346390800944767">പരസ്യം ഒഴിവാക്കുക</translation>
+<translation id="870341961648617780">സുരക്ഷിത ബ്രൗസിംഗും വിപുലമായ സുരക്ഷാ ക്രമീകരണവും</translation>
 <translation id="8705331520020532516">സീരിയല്‍‌ നമ്പര്‍‌</translation>
 <translation id="8705580154597116082">ഫോൺ വഴി ലഭ്യമായ വൈഫൈ</translation>
 <translation id="8705629851992224300">നിങ്ങളുടെ സുരക്ഷാ കീ വായിക്കാനായില്ല</translation>
@@ -5613,6 +5652,7 @@
 <translation id="874689135111202667">{0,plural, =1{ഈ സൈറ്റിലേക്ക് ഒരു ഫയൽ അപ്‌ലോഡ് ചെയ്യണോ?}other{ഈ സൈറ്റിലേക്ക് # ഫയലുകൾ അപ്‌ലോഡ് ചെയ്യണോ?}}</translation>
 <translation id="8748384418490037181">Smart Lock ഓപ്ഷനുകൾ</translation>
 <translation id="8749863574775030885">ഒരു അജ്ഞാത വെണ്ടറിൽ നിന്നും USB ഉപകരണങ്ങൾ ആക്‌സസ് ചെയ്യുക</translation>
+<translation id="8750133148106010815">Google Play ആരംഭിക്കാൻ, നിങ്ങളുടെ ഡാറ്റ ബാക്കപ്പ് ചെയ്‌ത് ഫാക്‌ടറി ക്രമീകരണത്തിലേക്ക് ഈ Chromebook റീസെറ്റ് ചെയ്യാൻ <ph name="ORGANIZATION_NAME" /> ആവശ്യപ്പെടുന്നു.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" />, ഒരു സീരിയല്‍ പോർട്ടിലേക്ക് കണക്‌റ്റ് ചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു</translation>
 <translation id="8754200782896249056">&lt;p&gt; ഒരു പിന്തുണ ഡെസ്ക്ടോപ്പ് പരിതസ്ഥിതിയ്‌ക്ക് കീഴിൽ <ph name="PRODUCT_NAME" /> പ്രവർത്തിക്കുമ്പോൾ, സിസ്‌റ്റം പ്രോക്‌സി ക്രമീകരണം ഉപയോഗിക്കും. നിങ്ങളുടെ സിസ്‌റ്റം പിന്തുണച്ചില്ല അല്ലെങ്കിൽ നിങ്ങളുടെ സിസ്‌റ്റം കോൺഫിഗറേഷൻ സമാരംഭിക്കുന്നതിൽ ഒരു പ്രശ്നമുണ്ടായി.&lt;/p&gt;
           &lt;p&gt;പക്ഷേ കമാൻഡ് ലൈൻ വഴി നിങ്ങൾക്ക് ഇപ്പോഴും കോൺഫിഗർ ചെയ്യാനാവും. ഫ്ലാഗുകളെയും പരിതസ്ഥിതി വേരിയബിളുകളെയും കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക് &lt;code&gt;man <ph name="PRODUCT_BINARY_NAME" />&lt;/code&gt;കാണുക .&lt;/p&gt;</translation>
@@ -5666,6 +5706,7 @@
 <translation id="8809147117840417135">ഇളം ടീൽ</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> എന്നതിലേക്ക് സൈൻ ഇൻ ചെയ്യാനാവില്ല</translation>
 <translation id="8813811964357448561">പേപ്പറുകളുടെ ഷീറ്റ്</translation>
+<translation id="8813872945700551674">"<ph name="EXTENSION_NAME" />"-ന് അംഗീകാരം നൽകാൻ രക്ഷിതാവിനോട് ആവശ്യപ്പെടുക</translation>
 <translation id="8813969267212093033">ഈ ഭാഷയിലാണ് സിസ്‌റ്റം ടെക്‌സ്‌റ്റ് കാണിച്ചിരിക്കുന്നത്</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">കാക്കുക, ആർക്കൈവ് സ്കാൻ ചെയ്യുന്നു...</translation>
@@ -5946,6 +5987,7 @@
 <translation id="9203398526606335860">&amp;പ്രൊഫൈലിംഗ് പ്രാപ്തമാക്കി</translation>
 <translation id="9203904171912129171">ഒരു ഉപകരണം തിരഞ്ഞെടുക്കുക</translation>
 <translation id="9203962528777363226">പുതിയ ഉപയോക്താക്കളെ ചേർക്കുന്നത് ഈ ഉപകരണത്തിന്റെ അഡ്‌മിൻ പ്രവർത്തനരഹിതമാക്കി</translation>
+<translation id="9211177926627870898">അപ്ഡേറ്റ് ആവശ്യമാണ്</translation>
 <translation id="9214520840402538427">ക്ഷമിക്കണം!  ഇൻസ്റ്റലേഷൻ സമയ-ആട്രിബ്യൂട്ടുകളുടെ ലോഞ്ച് ചെയ്യൽ കാലഹരണപ്പെട്ടു.  നിങ്ങളുടെ പിന്തുണാ പ്രതിനിധിയെ ബന്ധപ്പെടുക.</translation>
 <translation id="9214695392875603905">കപ്പ്‌കേക്ക്</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" ചേർത്തു</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index 55ef632e..90c2504 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -1311,7 +1311,7 @@
 <translation id="275662540872599901">дэлгэц унтраалттай</translation>
 <translation id="2762441749940182211">Камерыг блоклосон</translation>
 <translation id="2765217105034171413">Жижиг</translation>
-<translation id="2766161002040448006">Эцэг эхээсээ зөвшөөрөл хүсэх</translation>
+<translation id="2766161002040448006">Эцэг эхээс асуух</translation>
 <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" />-н нэрээр нэвтэрсэн байна.</translation>
 <translation id="2770465223704140727">Жагсаалтаас устгах</translation>
 <translation id="2770690685823456775">Нууц үгээ өөр фолдерт экспортлох</translation>
@@ -2790,7 +2790,7 @@
 <translation id="4850669014075537160">Гүйлгэх</translation>
 <translation id="4850886885716139402">Харах</translation>
 <translation id="4853020600495124913">&amp; Шинэ цонхонд нээх</translation>
-<translation id="4854317507773910281">Зөвшөөрөл олгоход зориулж эцэг эхийн бүртгэл сонгоно уу</translation>
+<translation id="4854317507773910281">Зөвшөөрөл хүсэх эцэг эхийн бүртгэлийг сонгоно уу</translation>
 <translation id="485480310608090163">Бусад тохиргоо болон зөвшөөрөл</translation>
 <translation id="4856478137399998590">Таны хөдөлгөөнт өгөгдлийн үйлчилгээ идэвхжсэн бөгөөд ашиглахад бэлэн болсон байна</translation>
 <translation id="4856855265648545577">Shelf дэх Эхлүүлэгч, Буцах, Тойм руу очих товчлуурыг төхөөрөмж таблетын горимд байх үед харуулах. ChromeVox (хэлсэн санал) эсвэл Сэлгүүрийг идэвхжүүлсэн үед асаалттай байна.</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 7c64e37..388860f 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">तसेच या अ‍ॅप्समधून डेटा साफ करायचा?</translation>
 <translation id="1045692658517323508">{0,plural, =1{एका मिनिटामध्ये अपडेट करा}other{# मिनिटांमध्ये अपडेट करा}}</translation>
 <translation id="1046635659603195359">असे दिसते की, तुम्ही दुसर्‍या डिव्हाइसवर आधीपासून Google असिस्टंटसह Voice Match सेट केले आहे. या डिव्हाइसवर आवाजाचा नमुना बनवण्यासाठी या मागील रेकॉर्डिंग वापरल्या जाऊ शकतात. याला एका मिनिटापेक्षा कमी वेळ लागेल.</translation>
+<translation id="104710386808485638">Linux रीस्टार्ट करायचे?</translation>
 <translation id="1047431265488717055">लिंक मजकूर कॉपी करा</translation>
 <translation id="1048286738600630630">प्रदर्शित करते</translation>
 <translation id="1049743911850919806">गुप्त</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">कृपया क्लायंट प्रमाणपत्र एक्सपोर्ट करण्यासाठी <ph name="TOKEN_NAME" /> मध्ये साइन इन करा.</translation>
 <translation id="1163931534039071049">फ्रेम स्रोत &amp;पहा</translation>
 <translation id="1164674268730883318"><ph name="DEVICE_TYPE" /> साठी Smart Lock बंंद करायचे?</translation>
+<translation id="1164891049599601209">फसव्या साइटवर एंटर केला</translation>
 <translation id="1164899421101904659">पिन अनलॉक की एंटर करा</translation>
 <translation id="1165039591588034296">एरर</translation>
 <translation id="1166212789817575481">उजवीकडील टॅब बंद करा</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">स्वयंचलित कियोस्क मोड</translation>
 <translation id="1545775234664667895">"<ph name="THEME_NAME" />" थीम इंस्टॉल केली</translation>
 <translation id="1546280085599573572">तुम्ही होम बटण क्लिक करता तेव्हा कोणते पेज दर्शविले जाते ते या एक्स्टेंशनने बदलले आहे.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> ला पुढील गोष्टी करू शकणारे <ph name="EXTENSION_TYPE" /> इंस्टॉल करायचे आहे:</translation>
 <translation id="1549275686094429035">ARC सुरू केले</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> ॲक्सेस करू इच्छित आहे. हे तुमच्या फायलीमध्ये फेरफार करू किंवा त्या हटवू शकते.</translation>
 <translation id="1553538517812678578">अमर्यादित</translation>
@@ -495,6 +498,7 @@
 <translation id="1679806121152819234">VM प्लग-इन</translation>
 <translation id="1679810534535368772">तुम्हाला नक्की बाहेर पडायचे आहे का?</translation>
 <translation id="167983332380191032">व्यवस्थापन सेवेने HTTP एरर पाठवली.</translation>
+<translation id="1680841347983561661">कृपया Google Play सुरू करण्याचा काही क्षणांत पुन्हा प्रयत्न करा.</translation>
 <translation id="1680849702532889074">तुमच्या Linux ॲप्लिकेशनच्या इंस्टॉलेशन दरम्यान एरर आली.</translation>
 <translation id="16815041330799488">क्लिपबोर्डवर कॉपी केलेला मजकूर आणि इमेज पाहण्याची अनुमती साइटना देऊ नका</translation>
 <translation id="1682548588986054654">नवीन गुप्त विंडो</translation>
@@ -748,6 +752,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> क्रॅश झाला. एक्स्टेंशन रीलोड करण्यासाठी या फुग्यावर क्लिक करा.</translation>
 <translation id="2025891858974379949">असुरक्षित आशय</translation>
 <translation id="202918510990975568">सुरक्षितता कॉन्फिगर करण्यासाठी आणि साइन इन करण्यासाठी तुमचा पासवर्ड एंटर करा</translation>
+<translation id="2030672406208960151">रिकव्हरी टर्मिनल उघडा</translation>
 <translation id="2034346955588403444">इतर WiFi नेटवर्क जोडा</translation>
 <translation id="203574396658008164">लॉक स्क्रीनवरून टीप घेणे सुरू करा</translation>
 <translation id="2037445849770872822">या Google खात्यासाठी पर्यवेक्षण सेट केले आहे. आणखी पालक नियंत्रणे सेट करण्यासाठी, पुढे सुरू ठेवा निवडा.
@@ -900,6 +905,7 @@
 <translation id="2220572644011485463">पिन किंवा पासवर्ड</translation>
 <translation id="2224444042887712269">ही सेटिंग <ph name="OWNER_EMAIL" /> च्या मालकीची आहे.</translation>
 <translation id="2224551243087462610">फोल्डर नाव संपादित करा</translation>
+<translation id="2225864335125757863">तुमचे खाते सुरक्षित ठेवण्यासाठी हे पासवर्ड तात्काळ बदला:</translation>
 <translation id="2226449515541314767">MIDI डिव्हाइसचे पूर्ण नियंत्रण असण्यापासून ही साइट अवरोधित केली गेली आहे.</translation>
 <translation id="222704500187107962">तुम्ही सध्याच्या गुप्त सेशनमधून बाहेर पडल्यानंतर हे एक्सेप्शन आपोआप काढून टाकले जाईल</translation>
 <translation id="2227179592712503583">सूचना काढून टाका</translation>
@@ -1020,6 +1026,7 @@
 <translation id="2387052489799050037">होम वर जा</translation>
 <translation id="2387458720915042159">प्रॉक्सी कनेक्शन प्रकार</translation>
 <translation id="2391419135980381625">मानक फॉन्ट</translation>
+<translation id="2392163307141705938">तुमच्या पालकाने <ph name="IDS_SHORT_PRODUCT_NAME" /> साठी सेट केलेली वेळ मर्यादा तुम्ही गाठली आहे.</translation>
 <translation id="2392369802118427583">सक्रिय करा</translation>
 <translation id="2394566832561516196">पुढील रीलोडच्या वेळी सेटिंग्ज साफ केली जातील.</translation>
 <translation id="2395616325548404795">एंटरप्राइझ व्यवस्‍थापनासाठी आपल्या <ph name="DEVICE_TYPE" /> ची यशस्वीरित्या नोंदणी केली आहे परंतु त्याची मालमत्ता आणि स्थान माहिती पाठविण्यात अयशस्वी झाले. कृपया या डिव्हाइससाठी आपल्या Admin console मधून ही माहिती व्यक्तीचलितरित्या प्रविष्‍ट करा.</translation>
@@ -1085,6 +1092,7 @@
 <translation id="247949520305900375">ऑडिओ शेअर करा</translation>
 <translation id="2480868415629598489">तुम्ही कॉपी आणि पेस्ट करता तो डेटा सुधारित करा</translation>
 <translation id="2482878487686419369">सूचना</translation>
+<translation id="2483610039979585156">तुम्ही सर्व <ph name="ORIGIN" /> टॅब बंद करेपर्यंत <ph name="ORIGIN" /> ला <ph name="FILENAME" /> संपादित करता येईल</translation>
 <translation id="2484959914739448251">तुमच्या सिंक केलेल्या सर्व डिव्हाइसमधून आणि तुमच्या Google खात्यामधून ब्राउझ केलेला डेटा साफ करण्यासाठी, <ph name="BEGIN_LINK" />तुमचा पासफ्रेझ एंटर करा<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">या डिव्हाइसवर पासवर्ड सेव्ह केला आहे</translation>
 <translation id="2485422356828889247">अनइंस्टॉल करा</translation>
@@ -1298,6 +1306,7 @@
 <translation id="274290345632688601">Linux अ‍ॅप्स आणि फायली रिस्टोअर करत आहे</translation>
 <translation id="2743387203779672305">क्लिपबोर्डवर कॉपी करा</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> थांबवले आहे</translation>
 <translation id="2749756011735116528"><ph name="PRODUCT_NAME" /> मध्ये साइन इन करा</translation>
 <translation id="2749881179542288782">शुद्धलेखनासह व्याकरण तपासा</translation>
 <translation id="2751739896257479635">EAP टप्पा 2 ऑथेंटिकेशन</translation>
@@ -1306,6 +1315,7 @@
 <translation id="275662540872599901">स्क्रीन बंद</translation>
 <translation id="2762441749940182211">कॅमेरा ब्लॉक केला आहे</translation>
 <translation id="2765217105034171413">लहान</translation>
+<translation id="2766161002040448006">पालकाला विचारा</translation>
 <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" /> म्हणून साइन इन केले</translation>
 <translation id="2770465223704140727">सूचीमधून काढून टाका</translation>
 <translation id="2770690685823456775">तुमचे पासवर्ड दुसर्‍या फोल्डरमध्ये एक्सपोर्ट करा</translation>
@@ -1557,6 +1567,7 @@
 <translation id="3115580024857770654">सर्व कोलॅप्‍स करा</translation>
 <translation id="3117362587799608430">डॉक पूर्ण कंपॅटिबल नाहीये</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> मदत</translation>
+<translation id="3118654181216384296">कृपया Linux सुरू करण्याचा काही क्षणांत पुन्हा प्रयत्न करा.</translation>
 <translation id="3120430004221004537">दिलेल्या ऑपरेशनसाठी यावर अपुरे एंक्रिप्शन आहे: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">हा <ph name="IDS_SHORT_PRODUCT_NAME" /> डिव्हाइस रीसेट करा</translation>
 <translation id="3122464029669770682">सीपीयू</translation>
@@ -1566,6 +1577,7 @@
 <translation id="3127156390846601284">दर्शविलेल्या सर्व साइटसाठी आपल्या डिव्हाइसवर संचयित केलेल्या कोणत्याही डेटास हे हटवेल. तुम्ही सुरु ठेवू इच्छिता?</translation>
 <translation id="3127860049873093642">चार्जिंग आणि परफॉर्मन्स समस्या टाळण्यासाठी, Dell किंवा USB केबल पॉवर अडॅप्टर वापरा.</translation>
 <translation id="3129173833825111527">डावा समास</translation>
+<translation id="3129215702932019810">अ‍ॅप्लिकेशन लाँच करताना एरर आली</translation>
 <translation id="3130528281680948470">तुमचे डिव्हाइस रीसेट केले जाईल आणि सर्व वापरकर्ता खाती आणि स्थानिक डेटा काढला जाईल. हे पूर्ववत केले जाऊ शकत नाही.</translation>
 <translation id="313205617302240621">पासवर्ड विसरलात?</translation>
 <translation id="3132996321662585180">दररोज रिफ्रेश करा</translation>
@@ -1781,6 +1793,7 @@
 <translation id="3441653493275994384">तपासा</translation>
 <translation id="3445925074670675829">USB-C डिव्‍हाइस</translation>
 <translation id="344630545793878684">अनेक वेबसाइटवर तुमचा डेटा वाचा</translation>
+<translation id="3448086340637592206">Google Chrome आणि Chrome OS अतिरिक्त अटी</translation>
 <translation id="3448492834076427715">खाते अपडेट करा</translation>
 <translation id="3449839693241009168"><ph name="EXTENSION_NAME" /> कडे कमांड पाठविण्यासाठी <ph name="SEARCH_KEY" /> दाबा</translation>
 <translation id="3450157232394774192">निष्क्रिय स्थिती कब्जा टक्केवारी</translation>
@@ -2128,6 +2141,7 @@
 <translation id="3873423927483480833">पिन दाखवा</translation>
 <translation id="3873915545594852654">ARC++ ला समस्या आली.</translation>
 <translation id="3879748587602334249">डाउनलोड व्यवस्थापक</translation>
+<translation id="3881321138433527084">सुरक्षित ब्राउझिंग बंद केलेले आहे. वेबवर सुरक्षित राहण्यासाठी, ते सुरू करा.</translation>
 <translation id="3882165008614329320">कॅमेरा किंवा फाइलवरून सद्य व्हिडिओ</translation>
 <translation id="3886446263141354045">या साइट ॲक्सेस करण्याची तुमची विनंती <ph name="NAME" /> कडे पाठवली गेली आहे</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> सोबत टिपा घेणे</translation>
@@ -2467,6 +2481,7 @@
 <translation id="4384652540891215547">एक्स्टेंशन सुरू करा</translation>
 <translation id="438503109373656455">Saratoga</translation>
 <translation id="4387004326333427325">ऑथेंटिकेशन प्रमाणपत्र रिमोट पद्धतीने नाकारले</translation>
+<translation id="4387890294700445764">धोक्यात असलेले पासवर्ड</translation>
 <translation id="4389091756366370506">वापरकर्ता <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{गुप्त}other{# गुप्त विंडो उघडा}}</translation>
 <translation id="439266289085815679">ब्लूटूथ कॉन्फिगरेशन <ph name="USER_EMAIL" /> नियंत्रित करते.</translation>
@@ -2498,6 +2513,7 @@
 <translation id="4429030830601238961">हा डेटा तुमच्या संस्थेच्या सुरक्षितता धोरणांचे उल्लंघन करतो आणि तो पेस्ट केला जाऊ शकत नाही.</translation>
 <translation id="4430019312045809116">व्हॉल्यूम</translation>
 <translation id="4430369329743628066">बुकमार्क जोडला</translation>
+<translation id="4432621511648257259">पासवर्ड चुकीचा आहे</translation>
 <translation id="4434045419905280838">पॉप-अप आणि रीडिरेक्ट</translation>
 <translation id="443454694385851356">लेगसी (असुरक्षित)</translation>
 <translation id="443475966875174318">कंपॅटिबल नसलेली ॲप्लिकेशन अपडेट करा किंवा काढून टाका</translation>
@@ -2747,6 +2763,7 @@
 <translation id="4808667324955055115">पॉप-अप ब्लॉक केले</translation>
 <translation id="480990236307250886">होम पेज उघडा</translation>
 <translation id="4811503964269049987">निवडलेला टॅब एकत्रित करा</translation>
+<translation id="4811818760963189951">तुम्ही इतिहास सिंक बंद केल्यामुळे बंद केले</translation>
 <translation id="4813136279048157860">माझ्या इमेज</translation>
 <translation id="4813512666221746211">नेटवर्क एरर</translation>
 <translation id="4814378367953456825">या फिंगरप्रिंटसाठी एखादे नाव एंटर करा</translation>
@@ -2776,6 +2793,7 @@
 <translation id="4850669014075537160">स्क्रोलिंग</translation>
 <translation id="4850886885716139402">पहा</translation>
 <translation id="4853020600495124913">&amp;नवीन विंडोमध्ये उघडा</translation>
+<translation id="4854317507773910281">मंजुरीसाठी पालक खाते निवडा</translation>
 <translation id="485480310608090163">आणखी सेटिंग्ज आणि परवानग्या</translation>
 <translation id="4856478137399998590">तुमची मोबाइल सेवा सक्रिय झाली आणि वापरण्यासाठी तयार आहे</translation>
 <translation id="4856855265648545577">टॅबलेट मोडमध्ये शेल्फमधील लाँचर, मागे जा, अवलोकन बटणे दाखवा. ChromeVox (वाचिक फीडबॅक) किंवा अ‍ॅक्सेस स्विच करा सुरू केलेले असताना सुरू केले जाते.</translation>
@@ -2912,10 +2930,12 @@
 <translation id="5040823038948176460">अतिरिक्त आशय सेटिंग्ज</translation>
 <translation id="5042282098504489593">Linux शी <ph name="USB_DEVICE_NAME" /> कनेक्ट करण्यासाठी सेटिंग्ज उघडा</translation>
 <translation id="5043913660911154449">किंवा तुमची PPD नमूद करा <ph name="LINK_BEGIN" />अधिक जाणून घ्या<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">तुम्ही तुमचा सिंक डेटा पासफ्रेझने एंक्रिप्ट केल्यामुळे बंद केले</translation>
 <translation id="5045550434625856497">चुकीचा पासवर्ड</translation>
 <translation id="504561833207953641">अस्तित्वात असलेल्या ब्राउझर सेशनमध्ये उघडत आहे.</translation>
 <translation id="5047421709274785093">गती आणि प्रकाश सेन्सर वापरण्यापासून साइटना ब्लॉक करा</translation>
 <translation id="5050042263972837708">गट नाव</translation>
+<translation id="5051073330196664891">Google जागतिक सेवा अटी (uToS)</translation>
 <translation id="5051836348807686060">तुम्ही निवडलेल्या भाषांसाठी स्पेल चेक सपोर्ट करत नाही</translation>
 <translation id="5052499409147950210">साइट संपादित करा</translation>
 <translation id="5053604404986157245">रँडमली जनरेट केलेला TPM पासवर्ड उपलब्ध नाही. Powerwash नंतर हे सामान्य आहे.</translation>
@@ -2953,6 +2973,7 @@
 <translation id="5097002363526479830">'<ph name="NAME" />': नेटवर्कशी कनेक्ट करण्यात अयशस्वी. <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">सर्व बुकमार्क उघडा</translation>
 <translation id="5101839224773798795">कर्सर थांबल्यावर आपोआप क्लिक करा</translation>
+<translation id="5107443654503185812">एक्स्टेंशनने सुरक्षित ब्राउझिंग बंद केले आहे</translation>
 <translation id="5108967062857032718">सेटिंग्ज - Android ॲप्स काढून टाका</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">गुप्‍त मोडमधून बाहेर पडा</translation>
@@ -3039,6 +3060,7 @@
 <translation id="523505283826916779">ॲक्सेसिबिलिटी सेटिंग्ज</translation>
 <translation id="5235750401727657667">एखादा नवीन टॅब उघडताना दिसत असलेले पेज बदला</translation>
 <translation id="5238278114306905396">अ‍ॅप "<ph name="EXTENSION_NAME" />" स्वयंचलितपणे काढण्यात आला.</translation>
+<translation id="5239730228370806996">हा ड्रॉप केलेला डेटा तुमच्या संस्थेच्या सुरक्षितता धोरणांचे उल्लंघन करतो. तुम्हाला तरीही पुढे सुरू ठेवायचे आहे का?</translation>
 <translation id="5241128660650683457">तुम्ही भेट देता त्या वेबसाइटवर तुमचा सर्व डेटा वाचा</translation>
 <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" सुरू करायचे?</translation>
 <translation id="5243522832766285132">कृपया थोड्या वेळानंतर पुन्हा प्रयत्न करा</translation>
@@ -3326,6 +3348,7 @@
 <translation id="5618075537869101857">अरेरे, कियोस्क ॲप्लिकेशन लाँच केले जाऊ शकले नाही.</translation>
 <translation id="5618333180342767515">(यास काही मिनिटे लागू शकतील)</translation>
 <translation id="56197088284879152">दूरस्थ डिव्हाइसवरील कनेक्शनमध्ये अडथळा आहे: " <ph name="DEVICE_NAME" /> ".</translation>
+<translation id="5620163320393916465">सेव्ह केलेले पासवर्ड नाहीत</translation>
 <translation id="5620549857835247159">टॅबलेट मोडमध्ये शेल्फमधील लाँचर, मागे जा, अवलोकन बटणे दाखवा.</translation>
 <translation id="5620568081365989559">DevTools <ph name="FOLDER_PATH" /> मध्‍ये पूर्ण ॲक्सेसची विनंती करते. तुम्ही कोणतीही संवेदनशील माहिती उघड करत नाही हे निश्चित करा.</translation>
 <translation id="5620612546311710611">वापर आकडेवारी</translation>
@@ -3419,6 +3442,7 @@
 <translation id="5747785204778348146">डेव्हलपर - अस्थिर</translation>
 <translation id="5747809636523347288">पेस्ट करा आणि <ph name="URL" /> वर जा</translation>
 <translation id="5750324801516359607">दूर आहे</translation>
+<translation id="5751887393582880060">हे अपलोड तुमच्या संस्थेच्या सुरक्षितता धोरणांचे उल्लंघन करते. तुम्हाला तरीही पुढे सुरू ठेवायचे आहे का?</translation>
 <translation id="5756163054456765343">म&amp;दत केंद्र</translation>
 <translation id="5759728514498647443">तुम्ही <ph name="APP_NAME" /> द्वारे प्रिंट करण्यासाठी पाठविलेले दस्तऐवज <ph name="APP_NAME" /> च्या साहाय्याने वाचले जाऊ शकतात.</translation>
 <translation id="5763751966069581670">कोणतेही USB डिव्हाइस सापडले नाहीत</translation>
@@ -3629,6 +3653,7 @@
 <translation id="6040852767465482106">निनावी ओळख</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />डिव्हाइसच्या स्थानाचा अंदाज लावण्यात मदत करण्यासाठी, Google ची स्थान सेवा तुमच्या वाय-फाय, मोबाइल नेटवर्क आणि सेंसरसारख्या स्रोतांचा वापर करते.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />तुम्ही या डिव्हाइसवरील मुख्य स्थान सेटिंग बंद करून स्थान बंद करू शकता. तुम्ही स्थान सेटिंग्जमध्ये स्थानासाठी वाय-फाय, मोबाइल नेटवर्क आणि सेंसरचा वापर देखील बंद करू शकता.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409">तुम्ही सर्व <ph name="ORIGIN" /> टॅब बंद करेपर्यंत <ph name="ORIGIN" /> ला <ph name="FOLDERNAME" /> मध्ये फाइल पाहता येतील</translation>
 <translation id="6041155700700864984">क्षेत्रेमधून बाहेर पडा</translation>
 <translation id="604124094241169006">स्वयंचलित</translation>
 <translation id="6042308850641462728">अधिक</translation>
@@ -3690,6 +3715,7 @@
 <translation id="6104311680260824317">डिव्हाइस डोमेनशी जोडू शकत नाही. सर्व्हर नमूद केलेल्या Kerberos एंक्रिप्शन प्रकारांना सपोर्ट करत नाही. एंक्रिप्शन सेटिंग्जसाठी "आणखी पर्याय" तपासा.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> ला या डिव्हाइससाठी अपडेटची लगेच आवश्यकता आहे</translation>
 <translation id="6106186653986077033">प्लग-इन VM ला परवाना आवश्यक आहे</translation>
+<translation id="6107047744202598802">वेबसाइटना तुम्ही दिलेली भेट लक्षात ठेवू आणि तुम्हाला वेबवर ट्रॅक करू देते</translation>
 <translation id="6112294629795967147">आकार बदलण्यासाठी स्पर्श करा</translation>
 <translation id="6112727384379533756">तिकीट जोडा</translation>
 <translation id="6112931163620622315">तुमचा फोन तपासा</translation>
@@ -3768,6 +3794,7 @@
 <translation id="622537739776246443">प्रोफाइल हटवली जाईल</translation>
 <translation id="6225475702458870625">आपल्या <ph name="PHONE_NAME" /> वरून डेटा कनेक्शन उपलब्ध आहे</translation>
 <translation id="6226777517901268232">खाजगी की फाईल (पर्यायी)</translation>
+<translation id="6227280783235722609">एक्स्टेंशन</translation>
 <translation id="6228691855869374890">या साइटवर MIDI डिव्हाइसचे पूर्ण नियंत्रण आहे.</translation>
 <translation id="6228720835160974792">या इमेजसाठी QR कोड तयार करा</translation>
 <translation id="6229890768313448549">Google Play सेवा अटी लोड केल्या जाऊ शकत नाहीत. कृपया पुन्हा प्रयत्न करा.</translation>
@@ -3819,6 +3846,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> सामान्यपणे डाउनलोड केले जात नाही आणि ते धोकादायक ठरु शकते.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{आपल्या नेटवर्कवरील नवीन प्रिंटर}other{आपल्या नेटवर्कवरील नवीन प्रिंटर}}</translation>
 <translation id="6286708577777130801">सेव्ह केलेले पासवर्ड तपशील</translation>
+<translation id="6291163159361301370">Linux सुरू करण्यासाठी, <ph name="ORGANIZATION_NAME" /> ला तुम्ही तुमच्या डेटाचा बॅकअप घेणे आणि हे Chromebook फॅक्टरी सेटिंग्जवर रीसेट करणे आवश्यक आहे.</translation>
 <translation id="6291949900244949761">साइटला केव्हा USB डिव्हाइस ॲक्सेस करायचे आहेत हे विचारा (शिफारस केलेले)</translation>
 <translation id="6291953229176937411">फाइंडर मध्ये &amp;दर्शवा</translation>
 <translation id="6295158916970320988">सर्व साइट</translation>
@@ -4015,6 +4043,7 @@
 <translation id="6561726789132298588">प्रविष्‍ट करा</translation>
 <translation id="656293578423618167">फाइल पथ किंवा नाव खूप मोठे आहे. कृपया एका छोट्या नावाने किंवा दुसर्‍या स्‍थानावर सेव्ह करा.</translation>
 <translation id="6563469144985748109">आपल्या व्यवस्थापकाने अद्याप ती मंजूर केली नाही</translation>
+<translation id="6565955132287672866">तुमचे डिव्हाइस योग्य प्रकारे बंद झाले नाही. Linux (बीटा) वापरण्यासाठी ते रीस्टार्ट करणे आवश्यक आहे.</translation>
 <translation id="6567688344210276845">पेज क्रियेसाठी '<ph name="ICON" />' आयकन लोड करता आला नाही.</translation>
 <translation id="6569934958368283244">इतर लोक</translation>
 <translation id="657402800789773160">हे पृष्ठ &amp;रीलोड करा</translation>
@@ -4512,6 +4541,7 @@
 <translation id="7258225044283673131">ॲप्लिकेशन प्रतिसाद देत नाही. ॲप बंद करण्यासाठी "सक्तीने बंद करा" निवडा.</translation>
 <translation id="7258697411818564379">तुमचा पिन जोडला आहे</translation>
 <translation id="7262004276116528033">ही साइन-इन सेवा <ph name="SAML_DOMAIN" /> द्वारे होस्ट केली जाते</translation>
+<translation id="7266898409676782635"><ph name="DEVICE_TYPE" /> बाबत टिपा, ऑफर व अपडेट मिळवा आणि फीडबॅक शेअर करा. सदस्यत्व कधीही रद्द करा.</translation>
 <translation id="7268127947535186412">हे सेटिंग डिव्हाइसच्या मालकाद्वारे व्यवस्थापित केले जाते.</translation>
 <translation id="7270858098575133036">MIDI डिव्हाइस ॲक्सेस करण्यासाठी जेव्हा एखादी साइट सिस्टम अनन्य मेसेज वापरू इच्छिते तेव्हा विचारा</translation>
 <translation id="7272674038937250585">वर्णन दिलेले नाही</translation>
@@ -4585,6 +4615,7 @@
 <translation id="7364796246159120393">फाइल निवडा</translation>
 <translation id="7366415735885268578">एक साइट जोडा</translation>
 <translation id="7366909168761621528">ब्राउझिंग डेटा</translation>
+<translation id="7367714965999718019">QR कोड जनरेटर</translation>
 <translation id="736877393389250337"><ph name="ALTERNATIVE_BROWSER_NAME" /> मध्ये <ph name="URL" /> उघडता आली नाही. कृपया तुमच्या सिस्टम अ‍ॅडमिनिस्ट्रेटरशी संपर्क साधा.</translation>
 <translation id="7370592524170198497">इथरनेट EAP:</translation>
 <translation id="7371006317849674875">सुरू होण्‍याची वेळ</translation>
@@ -4842,8 +4873,10 @@
 <translation id="7737238973539693982">Linux (बीटा) हटवा</translation>
 <translation id="7740996059027112821">मानक</translation>
 <translation id="7744047395460924128">तुमचा प्रिंटिंग इतिहास पहा</translation>
+<translation id="7744192722284567281">डेटा भंग करत असल्याचे आढळले</translation>
 <translation id="7746457520633464754">धोकादायक ॲप्स आणि साइट शोधण्यासाठी, Chrome तुम्ही भेट दिलेल्या काही पेजचे URL, मर्यादित सिस्टमची माहिती आणि काही पेजचा आशय Google कडे पाठवतो</translation>
 <translation id="7750228210027921155">चित्रात-चित्र</translation>
+<translation id="7751229152614300329">सुरक्षित ब्राउझिंग अप टू डेट आहेआणि हानीकारक साइट व डाउनलोडपासून तुमचे संरक्षण करत आहे</translation>
 <translation id="7751260505918304024">सर्व दर्शवा</translation>
 <translation id="7754704193130578113">डाउनलोड करण्यापूर्वी प्रत्येक फाइल कुठे सेव्ह करावी ते विचारा</translation>
 <translation id="7755287808199759310">तुमचे पालक तुमच्यासाठी ती अनावरोधित करू शकतात</translation>
@@ -4989,6 +5022,7 @@
 <translation id="7910768399700579500">&amp;नवीन फोल्‍डर</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">तुमचा पासवर्ड सर्व्हरवर बदलला आहे. कृपया साइन आऊट करा आणि पुन्हा साइन इन करा.</translation>
+<translation id="7914583336730284547">या ड्रॉप केलेल्या फाइल तुमच्या संस्थेच्या सुरक्षितता धोरणांचे उल्लंघन करतात. तुम्हाला तरीही पुढे सुरू ठेवायचे आहे का?</translation>
 <translation id="7915457674565721553">पालक नियंत्रणे सेट करण्यासाठी इंटरनेटशी कनेक्ट करा</translation>
 <translation id="7915471803647590281">कृपया अभिप्राय पाठविण्यापूर्वी काय होत आहे ते आम्हाला सांगा.</translation>
 <translation id="7918257978052780342">नोंदणी</translation>
@@ -5086,6 +5120,7 @@
 <translation id="8028803902702117856"><ph name="SIZE" />, <ph name="FILE_NAME" /> डाउनलोड करत आहे</translation>
 <translation id="8028993641010258682">आकार</translation>
 <translation id="8030656706657716245">प्रिंटर जोडा</translation>
+<translation id="8030852056903932865">मंजूर करा</translation>
 <translation id="8032244173881942855">टॅब कास्ट करण्यात अक्षम.</translation>
 <translation id="8033827949643255796">निवडलेले</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{सर्व गुप्त विंडोमध्ये उघडा}=1{सर्व गुप्त विंडोमध्ये उघडा}other{सर्व (#) गुप्त विंडोमध्ये उघडा}}</translation>
@@ -5406,6 +5441,7 @@
 <translation id="8472623782143987204">हार्डवेअर-बॅक्ड</translation>
 <translation id="8473863474539038330">पत्ते आणि बरेच काही</translation>
 <translation id="8475313423285172237">तुमच्या कॉंप्युटरवरील दुसऱ्या प्रोग्रामने Chrome च्या काम करण्याचा मार्ग बदलू शकणारा एक्स्टेंशन जोडला.</translation>
+<translation id="8476659515398963495">हा पेस्ट केलेला डेटा तुमच्या संस्थेच्या सुरक्षितता धोरणांचे उल्लंघन करतो. तुम्हाला तरीही पुढे सुरू ठेवायचे आहे का?</translation>
 <translation id="8477241577829954800">अधिग्रहित</translation>
 <translation id="8477384620836102176">&amp;सामान्य</translation>
 <translation id="8480082892550707549">तुम्ही यापूर्वी या साइट वरून फायली डाउनलोड केल्या असल्या तरीदेखील, साइट कदाचित तात्पुरती असुरक्षित (हॅक केलेली) असू शकते. ही फाईल नंतर डाउनलोड करण्‍याचा प्रयत्न करा.</translation>
@@ -5459,6 +5495,7 @@
 <translation id="8547013269961688403">पूर्णस्क्रीन भिंग सुरू करा</translation>
 <translation id="85486688517848470">शीर्ष-पंक्ती की चे वर्तन बदलण्यासाठी शोध की दाबून ठेवा</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{एक आयटम}other{# आयटम}}</translation>
+<translation id="8550165047974571882">तुम्ही सर्व <ph name="ORIGIN" /> टॅब बंद करेपर्यंत <ph name="ORIGIN" /> ला <ph name="FOLDERNAME" /> मधल्या फाइल संपादित करता येतील</translation>
 <translation id="8551388862522347954">परवाने</translation>
 <translation id="8553342806078037065">इतर लोक व्यवस्थापित करा</translation>
 <translation id="8554899698005018844">कोणतीही भाषा नाही</translation>
@@ -5517,6 +5554,7 @@
 <translation id="8637688295594795546">सिस्टम अपडेट उपलब्ध. डाउनलोड करण्याची तयारी करत आहे…</translation>
 <translation id="8639047128869322042">हानिकारक सॉफ्टवेअरसाठी तपासत आहे...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - पोर्ट</translation>
+<translation id="8641606876632989680">तुम्ही धोक्यात असलेल्या पासवर्डने साइन इन केल्यावर Chrome तुम्हाला सूचित करेल</translation>
 <translation id="8642900771896232685">दोन सेकंद</translation>
 <translation id="8642947597466641025">मजकूर मोठा करा</translation>
 <translation id="8644655801811752511">ही सिक्युरिटी की रीसेट करू शकत नाही. की घातल्यानंतर ती लगेच रीसेट करण्याचा प्रयत्न करा.</translation>
@@ -5566,6 +5604,7 @@
 <translation id="869884720829132584">ॲप्लिकेशन मेनू</translation>
 <translation id="869891660844655955">कालावधी समाप्ती तारीख</translation>
 <translation id="8703346390800944767">जाहिरात वगळा</translation>
+<translation id="870341961648617780">सुरक्षित ब्राउझिंग आणि प्रगत सुरक्षितता सेटिंग्ज</translation>
 <translation id="8705331520020532516">सिरीअल नंबर</translation>
 <translation id="8705580154597116082">फोनद्वारे वाय-फाय उपलब्ध आहे</translation>
 <translation id="8705629851992224300">तुमची सिक्युरिटी की वाचली जाऊ शकली नाही</translation>
@@ -5611,6 +5650,7 @@
 <translation id="874689135111202667">{0,plural, =1{या साइटवर एक फाइल अपलोड करायची?}other{या साइटवर # फायली अपलोड करायच्या?}}</translation>
 <translation id="8748384418490037181">Smart Lock पर्याय</translation>
 <translation id="8749863574775030885">अज्ञात विक्रेत्याकडील USB डिव्हाइस ॲक्सेस करा</translation>
+<translation id="8750133148106010815">Google Play सुरू करण्यासाठी, <ph name="ORGANIZATION_NAME" /> ला तुम्ही तुमच्या डेटाचा बॅकअप घेणे आणि हे Chromebook फॅक्टरी सेटिंग्जवर रीसेट करणे आवश्यक आहे.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ला सिरीअल पोर्टशी कनेक्ट करायचे आहे</translation>
 <translation id="8754200782896249056">&lt;p&gt;सपोर्टेड डेस्कटॉप परिस्थिती अंतर्गत <ph name="PRODUCT_NAME" /> चालविताना, सिस्टम प्रॉक्सी सेटिंग्ज वापरल्या जातील. तथापि, एकतर तुमची सिस्टमला सपोर्ट नाही नसते किंवा तुमचे सिस्टम कॉन्फिगरेशन लाँच करताना समस्या आली.&lt;/p&gt;
 
@@ -5665,6 +5705,7 @@
 <translation id="8809147117840417135">फिकट टील</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> मध्ये साइन इन करू शकत नाही</translation>
 <translation id="8813811964357448561">कागदी पत्रक</translation>
+<translation id="8813872945700551674">पालकाला "<ph name="EXTENSION_NAME" />" मंजूर करायला सांगा</translation>
 <translation id="8813969267212093033">सिस्टम मजकूर या भाषेत दाखवला जातो</translation>
 <translation id="8814190375133053267">वाय-फाय</translation>
 <translation id="8814687660896548945">कृपया वाट पाहा, संग्रहण स्कॅन केले जात आहे...</translation>
@@ -5946,6 +5987,7 @@
 <translation id="9203398526606335860">&amp;प्रोफाइलिंग सक्षम</translation>
 <translation id="9203904171912129171">एक डिव्हाइस निवडा</translation>
 <translation id="9203962528777363226">या डिव्हाइसच्या ॲडमिनिस्ट्रेटरने नवीन वापरकर्त्यांना जोडले जाण्यापासून अक्षम केले आहे</translation>
+<translation id="9211177926627870898">अपडेट आवश्‍यक</translation>
 <translation id="9214520840402538427">अरेरे! स्थापना-वेळ विशेषतांचे इंस्टॉलेशन कालबाह्य झाले. कृपया तुमच्या सपोर्ट प्रतिनिधीशी संपर्क साधा.</translation>
 <translation id="9214695392875603905">कपकेक</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" जोडले</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 1f75056..7fc0ca94 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Kosongkan data daripada apl ini juga?</translation>
 <translation id="1045692658517323508">{0,plural, =1{Kemas kini dalam masa seminit}other{Kemas kini dalam masa # minit}}</translation>
 <translation id="1046635659603195359">Nampaknya anda telah menyediakan Voice Match dengan Google Assistant anda pada peranti lain. Rakaman terdahulu ini boleh digunakan untuk membuat model suara pada peranti ini. Proses ini mengambil masa tidak sampai seminit.</translation>
+<translation id="104710386808485638">Mulakan semula Linux?</translation>
 <translation id="1047431265488717055">Salin Te&amp;ks Pautan</translation>
 <translation id="1048286738600630630">Paparan</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Sila log masuk ke <ph name="TOKEN_NAME" /> untuk mengeksport sijil klien.</translation>
 <translation id="1163931534039071049">&amp;Lihat sumber bingkai</translation>
 <translation id="1164674268730883318">Matikan Smart Lock untuk <ph name="DEVICE_TYPE" />?</translation>
+<translation id="1164891049599601209">Dimasukkan pada tapak penipuan</translation>
 <translation id="1164899421101904659">Masukkan Kunci Buka Kunci PIN</translation>
 <translation id="1165039591588034296">Ralat</translation>
 <translation id="1166212789817575481">Tutup Tab di sebelah Kanan</translation>
@@ -205,6 +207,7 @@
 <translation id="1274977772557788323">Tetapan Storan Adobe Flash Player</translation>
 <translation id="1274997165432133392">Kuki dan data tapak yang lain</translation>
 <translation id="1280820357415527819">Mencari rangkaian mudah alih</translation>
+<translation id="1280965841156951489">Edit fail</translation>
 <translation id="1282420830958964167">Had pada "<ph name="APP_NAME" />" yang ditetapkan oleh ibu bapa anda telah habis. Anda boleh menggunakan aplikasi ini selama <ph name="TIME_LIMIT" /> esok.</translation>
 <translation id="1285320974508926690">Jangan sekali-kali menterjemahkan tapak ini</translation>
 <translation id="1285484354230578868">Simpan data dalam akaun Google Drive anda</translation>
@@ -398,6 +401,7 @@
 <translation id="1545177026077493356">Mod Kios Automatik</translation>
 <translation id="1545775234664667895">Tema yang dipasang "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">Sambungan ini telah menukar halaman yang ditunjukkan apabila anda mengklik butang Laman Utama.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> mahu memasang <ph name="EXTENSION_TYPE" /> yang boleh:</translation>
 <translation id="1549275686094429035">ARC Didayakan</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> ingin mengakses <ph name="VOLUME_NAME" />. Apl mungkin mengubah suai atau memadamkan fail anda.</translation>
 <translation id="1553538517812678578">tidak terhad</translation>
@@ -496,6 +500,7 @@
 <translation id="1679806121152819234">PluginVm</translation>
 <translation id="1679810534535368772">Adakah anda pasti mahu keluar?</translation>
 <translation id="167983332380191032">Perkhidmatan pengurusan menghantar ralat HTTP.</translation>
+<translation id="1680841347983561661">Cuba mulakan Google Play sekali lagi dalam seketika.</translation>
 <translation id="1680849702532889074">Ralat telah berlaku semasa pemasangan aplikasi Linux anda.</translation>
 <translation id="16815041330799488">Jangan benarkan tapak melihat teks dan imej yang disalin ke papan keratan</translation>
 <translation id="1682548588986054654">Tetingkap Inkognito Baharu</translation>
@@ -509,6 +514,7 @@
 <translation id="1692210323591458290">Ungu gelap</translation>
 <translation id="1692799361700686467">Kuki daripada berbilang tapak dibenarkan.</translation>
 <translation id="1697150536837697295">Seni</translation>
+<translation id="1697686431566694143">Edit fail</translation>
 <translation id="1698122934742150150">Sesi inkognito semasa sahaja</translation>
 <translation id="1698650002254827833">Senarai apl tidak dapat dimuatkan. Sila cuba lagi.</translation>
 <translation id="1701062906490865540">Alih keluar orang ini</translation>
@@ -694,6 +700,7 @@
 <translation id="1931152874660185993">Tiada komponen dipasang.</translation>
 <translation id="1932098463447129402">Bukan Sebelum</translation>
 <translation id="1933809209549026293">Sila sambungkan tetikus atau papan kekunci. Jika anda menggunakan peranti Buetooth, pastikan ia sedia untuk digandingkan.</translation>
+<translation id="1936931585862840749">Gunakan nombor untuk menyatakan bilangan salinan yang perlu dicetak (1 hingga <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Tidak dapat mengimport seni bina bekas jenis <ph name="ARCHITECTURE_CONTAINER" /> dengan peranti ini, iaitu peranti <ph name="ARCHITECTURE_DEVICE" />. Anda boleh cuba memulihkan bekas ini dalam peranti lain atau anda boleh cuba mengakses fail dalam imej bekas ini dengan membuka fail dalam apl Files.</translation>
 <translation id="1938351510777341717">Perintah Luaran</translation>
 <translation id="1940546824932169984">Peranti yang disambungkan</translation>
@@ -749,6 +756,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> telah mengalami nahas. Klik belon ini untuk memuatkan semula sambungan.</translation>
 <translation id="2025891858974379949">Kandungan tidak selamat</translation>
 <translation id="202918510990975568">Masukkan kata laluan anda untuk mengkonfigurasikan keselamatan dan log masuk</translation>
+<translation id="2030672406208960151">Buka Terminal Pemulihan</translation>
 <translation id="2034346955588403444">Tambahkan rangkaian Wi-Fi lain</translation>
 <translation id="203574396658008164">Dayakan ciri catatan nota daripada skrin kunci</translation>
 <translation id="2037445849770872822">Pengawasan ditetapkan untuk Akaun Google ini. Untuk menyediakan lebih banyak kawalan ibu bapa, pilih Teruskan.
@@ -901,6 +909,7 @@
 <translation id="2220572644011485463">PIN atau kata laluan</translation>
 <translation id="2224444042887712269">Tetapan ini milik <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">Edit nama folder</translation>
+<translation id="2225864335125757863">Tukar kata laluan ini dengan segera untuk memastikan keselamatan akaun anda:</translation>
 <translation id="2226449515541314767">Tapak ini telah disekat daripada mengawal sepenuhnya peranti MIDI.</translation>
 <translation id="222704500187107962">Pengecualian ini akan dialih keluar secara automatik selepas anda keluar daripada sesi Inkognito semasa</translation>
 <translation id="2227179592712503583">Alih keluar cadangan</translation>
@@ -987,6 +996,7 @@
 <translation id="2343747224442182863">Fokus pada Tab Ini</translation>
 <translation id="2344028582131185878">Muat Turun Automatik</translation>
 <translation id="2345723121311404059">1 halaman ke <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">SODA Service</translation>
 <translation id="2347644257713614136">Penggunaan Hangouts and Cast for Education dikawal oleh Dasar Privasi Google.</translation>
 <translation id="2348176352564285430">Apl: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Dimuat semula</translation>
@@ -1021,6 +1031,7 @@
 <translation id="2387052489799050037">Pergi ke Skrin Utama</translation>
 <translation id="2387458720915042159">Jenis sambungan proksi</translation>
 <translation id="2391419135980381625">Fon standard</translation>
+<translation id="2392163307141705938">Anda telah mencapai had masa yang telah ditetapkan oleh ibu/bapa anda untuk <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2392369802118427583">Aktifkan</translation>
 <translation id="2394566832561516196">Tetapan akan dikosongkan pada muat semula seterusnya.</translation>
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> anda berjaya didaftarkan untuk pengurusan perusahaan, tetapi gagal menghantar maklumat aset dan lokasinya. Sila masukkan maklumat ini secara manual daripada Admin console anda untuk peranti ini.</translation>
@@ -1039,6 +1050,7 @@
 <translation id="2422125132043002186">Pemulihan Linux dibatalkan</translation>
 <translation id="2423578206845792524">Si&amp;mpan imej sebagai...</translation>
 <translation id="2428510569851653187">Terangkan perkara yang sedang anda lakukan semasa ranap tab berlaku</translation>
+<translation id="2428939361789119025">Matikan Wi-Fi</translation>
 <translation id="2431027948063157455">Google Assistant tidak dapat dimuatkan, sila periksa sambungan rangkaian anda, kemudian cuba semula.</translation>
 <translation id="2432753757290432042">Kemas kini Linux (Beta) diperlukan</translation>
 <translation id="2433452467737464329">Tambahkan parameter pertanyaan dalam URL untuk auto muat semula halaman: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1086,6 +1098,7 @@
 <translation id="247949520305900375">Kongsi audio</translation>
 <translation id="2480868415629598489">Ubah suai data yang anda salin dan tampal</translation>
 <translation id="2482878487686419369">Pemberitahuan</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> akan dapat mengedit <ph name="FILENAME" /> sehingga anda menutup semua tab <ph name="ORIGIN" /></translation>
 <translation id="2484959914739448251">Untuk mengosongkan data semakan imbas daripada semua peranti tersegerak dan Akaun Google anda, <ph name="BEGIN_LINK" />masukkan frasa laluan anda<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Kata laluan yang disimpan pada peranti ini</translation>
 <translation id="2485422356828889247">Nyahpasang</translation>
@@ -1299,6 +1312,7 @@
 <translation id="274290345632688601">Memulihkan apl &amp; fail Linux</translation>
 <translation id="2743387203779672305">Salin ke papan keratan</translation>
 <translation id="2745080116229976798">Subordinasi Layak Microsoft</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> dijeda</translation>
 <translation id="2749756011735116528">Log masuk ke <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">Periksa Tatabahasa Dengan Ejaan</translation>
 <translation id="2751739896257479635">Pengesahan Fasa 2 EAP</translation>
@@ -1307,6 +1321,7 @@
 <translation id="275662540872599901">skrin dimatikan</translation>
 <translation id="2762441749940182211">Kamera disekat</translation>
 <translation id="2765217105034171413">Kecil</translation>
+<translation id="2766161002040448006">Tanya ibu/bapa</translation>
 <translation id="276969039800130567">Log masuk sebagai <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="2770465223704140727">Buang dari senarai</translation>
 <translation id="2770690685823456775">Eksport kata laluan anda ke folder lain</translation>
@@ -1453,6 +1468,7 @@
 <translation id="2944060181911631861">Hantar data penggunaan dan diagnostik. Bantu kami meningkatkan pengalaman Android anda dengan menghantar data diagnostik dan penggunaan peranti serta apl kepada Google secara automatik. Data ini akan membantu peningkatan kestabilan sistem dan apl serta pelbagai lagi. Sesetengah data agregat juga akan membantu apl dan rakan kongsi Google, seperti pembangun Android. Jika tetapan Aktiviti Web &amp; Apl tambahan anda dihidupkan, data ini mungkin disimpan ke akaun Google anda. <ph name="BEGIN_LINK1" />Ketahui Lebih Lanjut<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Tambah sambungan</translation>
 <translation id="2947605845283690091">Penyemakan imbas web mestilah pantas. Luangkan masa untuk <ph name="BEGIN_LINK" />menyemak sambungan anda<ph name="END_LINK" /> sekarang.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 sambungan yang mungkin berbahaya dimatikan. Anda juga boleh mengalih keluar sambungan tersebut.}other{# sambungan yang mungkin berbahaya dimatikan. Anda juga boleh mengalih keluar sambungan tersebut.}}</translation>
 <translation id="2948300991547862301">Pergi ke <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Penyemak imbas web yang pantas, mudah dan selamat, yang dibina untuk web moden.</translation>
 <translation id="2949289451367477459">Gunakan lokasi. Benarkan apl dan perkhidmatan dengan kebenaran lokasi menggunakan lokasi peranti ini. Google mungkin mengumpulkan data lokasi secara berkala dan menggunakan data ini secara awanama untuk meningkatkan ketepatan lokasi dan perkhidmatan berasaskan lokasi. <ph name="BEGIN_LINK1" />Ketahui Lebih Lanjut<ph name="END_LINK1" /></translation>
@@ -1533,6 +1549,7 @@
 <translation id="3067198179881736288">Pasang apl?</translation>
 <translation id="3067198360141518313">Jalankan pemalam ini</translation>
 <translation id="3071624960923923138">Anda boleh klik di sini untuk membuka tab baharu</translation>
+<translation id="3072775339180057696">Benarkan tapak melihat <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Mula semula perlu dilakukan untuk memulakan proses Powerwash. Selepas memulakan semula, anda akan diminta mengesahkan bahawa anda ingin meneruskan.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Data log masuk anda telah dipadamkan</translation>
@@ -1545,6 +1562,7 @@
 <translation id="3085412380278336437">Tapak boleh menggunakan kamera anda</translation>
 <translation id="3085752524577180175">Hos SOCKS</translation>
 <translation id="3088052000289932193">Tapak menggunakan MIDI</translation>
+<translation id="3088128611727407543">Menyediakan profil apl...</translation>
 <translation id="3088325635286126843">&amp;Namakan semula...</translation>
 <translation id="3089137131053189723">Carian dikosongkan</translation>
 <translation id="3090193911106258841">Mengakses input audio dan video</translation>
@@ -1558,6 +1576,7 @@
 <translation id="3115580024857770654">Runtuhkan semua</translation>
 <translation id="3117362587799608430">Dok tidak serasi sepenuhnya</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> Bantuan</translation>
+<translation id="3118654181216384296">Cuba mulakan Linux sekali lagi dalam seketika.</translation>
 <translation id="3120430004221004537">Penyulitan tidak mencukupi untuk pengendalian yang dinyatakan pada: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">Tetapkan semula peranti <ph name="IDS_SHORT_PRODUCT_NAME" /> ini</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1567,6 +1586,7 @@
 <translation id="3127156390846601284">Tindakan ini akan memadamkan mana-mana data yang disimpan pada peranti anda untuk semua tapak yang ditunjukkan. Anda ingin teruskan?</translation>
 <translation id="3127860049873093642">Untuk mengelakkan isu pengecasan dan prestasi, gunakan penyesuai kuasa Dell atau USB Jenis-C yang serasi.</translation>
 <translation id="3129173833825111527">Jidar kiri</translation>
+<translation id="3129215702932019810">Ralat semasa melancarkan aplikasi</translation>
 <translation id="3130528281680948470">Peranti anda akan ditetapkan semula dan semua akaun pengguna serta data setempat akan dipadamkan. Proses ini tidak boleh dibuat asal.</translation>
 <translation id="313205617302240621">Terlupa kata laluan?</translation>
 <translation id="3132996321662585180">Muat semula setiap hari</translation>
@@ -1584,6 +1604,7 @@
     Perihalan:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome Apps</translation>
+<translation id="3150693969729403281">Jalankan semakan keselamatan sekarang</translation>
 <translation id="3150927491400159470">Muat Semula Keras</translation>
 <translation id="315116470104423982">Data mudah alih</translation>
 <translation id="3151539355209957474">Masa Mula</translation>
@@ -1676,6 +1697,7 @@
 <translation id="3282568296779691940">Log masuk ke Chrome</translation>
 <translation id="3285322247471302225">&amp;Tab Baharu</translation>
 <translation id="328571385944182268">Simpan kata laluan anda?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> akan dapat melihat <ph name="FILENAME" /> sehinggalah anda menutup semua tab <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Sambungan yang dijalankan dalam mod pembangun boleh membahayakan komputer anda. Jika anda bukan pembangun, anda harus melumpuhkan sambungan yang dijalankan dalam mod pembangun ini supaya kekal selamat.</translation>
 <translation id="3289856944988573801">Untuk menyemak kemas kini, sila gunakan Ethernet atau Wi-Fi.</translation>
 <translation id="3290356915286466215">Tidak selamat</translation>
@@ -1782,7 +1804,9 @@
 <translation id="3441653493275994384">Skrin</translation>
 <translation id="3445925074670675829">Peranti USB-C</translation>
 <translation id="344630545793878684">Baca data anda di beberapa tapak web</translation>
+<translation id="3448086340637592206">Syarat Tambahan Google Chrome dan OS Chrome</translation>
 <translation id="3448492834076427715">Kemas kini akaun</translation>
+<translation id="3449393517661170867">Tetingkap bertab baharu</translation>
 <translation id="3449839693241009168">Tekan <ph name="SEARCH_KEY" /> untuk menghantar perintah kepada <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Peratusan Penggunaan Keadaan Melahu</translation>
 <translation id="3451332697983754369">Segerakkan <ph name="DEVICE_TYPE" /> saya</translation>
@@ -1963,6 +1987,7 @@
 <translation id="3681311097828166361">Terima kasih atas maklum balas anda. Anda berada di luar talian sekarang dan laporan anda akan dihantar sebentar lagi.</translation>
 <translation id="3682824389861648626">Ambang pergerakan</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> Permintaan Perkongsian Skrin</translation>
+<translation id="3686074530047028092">Akaun pendidikan</translation>
 <translation id="368789413795732264">Terdapat ralat semasa mencuba untuk menulis fail: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Tulis pada fail dan folder yang anda buka dalam aplikasi</translation>
 <translation id="3688526734140524629">Tukar saluran</translation>
@@ -2031,6 +2056,7 @@
 <translation id="3759933321830434300">Sekat sebahagian halaman web</translation>
 <translation id="3760460896538743390">Halaman Periksa &amp;Latar Belakang</translation>
 <translation id="37613671848467444">Buka dalam Tetingkap &amp;Inkognito</translation>
+<translation id="3761556954875533505">Benarkan tapak mengedit fail?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Berkomunikasi dengan peranti USB}other{Berkomunikasi dengan # peranti USB}}</translation>
 <translation id="3765246971671567135">Tidak dapat membaca dasar mod tunjuk cara luar talian.</translation>
 <translation id="3768037234834996183">Menyegerakkan pilihan anda...</translation>
@@ -2129,6 +2155,7 @@
 <translation id="3873423927483480833">Tunjukkan PIN</translation>
 <translation id="3873915545594852654">Masalah berkaitan ARC++ telah berlaku.</translation>
 <translation id="3879748587602334249">Pengurus muat turun</translation>
+<translation id="3881321138433527084">Penyemakan Imbas Selamat dimatikan. Hidupkan ciri ini untuk kekal selamat di web.</translation>
 <translation id="3882165008614329320">Video sedia ada daripada kamera atau fail</translation>
 <translation id="3886446263141354045">Permintaan anda untuk mengakses tapak ini telah dihantar kepada <ph name="NAME" />.</translation>
 <translation id="3888550877729210209">Mencatat nota dengan <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2165,6 +2192,7 @@
 <translation id="3927932062596804919">Nafikan</translation>
 <translation id="3928570707778085600">Simpan perubahan kepada <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Sambungan ini boleh melihat dan menukar maklumat di tapak ini.</translation>
+<translation id="3930155420525972941">Alihkan Kumpulan ke Tetingkap Baharu</translation>
 <translation id="3930737994424905957">Mencari peranti</translation>
 <translation id="3930968231047618417">Warna latar</translation>
 <translation id="3933283459331715412">Pulihkan kata laluan yang dipadamkan untuk <ph name="USERNAME" /></translation>
@@ -2323,6 +2351,7 @@
 <translation id="4130750466177569591">Saya bersetuju</translation>
 <translation id="413121957363593859">Komponen</translation>
 <translation id="4131410914670010031">Hitam putih</translation>
+<translation id="4133076602192971179">Buka apl untuk menukar kata laluan anda</translation>
 <translation id="4136203100490971508">Cahaya Malam akan dimatikan secara automatik pada waktu matahari terbit</translation>
 <translation id="41365691917097717">Tindakan meneruskan persediaan akan mendayakan penyahpepijatan ADB yang membuat dan menguji apl Android. Harap maklum bahawa tindakan ini membolehkan pemasangan apl Android yang belum disahkan oleh Google dan memerlukan tetapan semula kilang untuk melumpuhkan ciri ini.</translation>
 <translation id="4138267921960073861">Paparkan nama pengguna dan foto pada skrin log masuk</translation>
@@ -2434,6 +2463,7 @@
 <translation id="4330387663455830245">Jangan Sekali-kali Terjemahkan <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Sediakan Kawalan Ibu Bapa</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 Dengan Penyulitan RSA</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Pentadbir anda telah menghidupkan semula 1 sambungan yang mungkin berbahaya}other{Pentadbir anda telah menghidupkan semula # sambungan yang mungkin berbahaya}}</translation>
 <translation id="4336434711095810371">Kosongkan semua data</translation>
 <translation id="4336979451636460645">Untuk log rangkaian, lihat: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> ingin berkomunikasi dengan apl "<ph name="EXTENSION_NAME" />"</translation>
@@ -2470,6 +2500,7 @@
 <translation id="4384652540891215547">Aktifkan sambungan</translation>
 <translation id="438503109373656455">Saratoga</translation>
 <translation id="4387004326333427325">Sijil pengesahan ditolak dari jauh</translation>
+<translation id="4387890294700445764">Kata laluan yang terjejas</translation>
 <translation id="4389091756366370506">Pengguna <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Inkognito}other{# tetingkap inkognito terbuka}}</translation>
 <translation id="439266289085815679">Konfigurasi Blueooth dikawal oleh <ph name="USER_EMAIL" />.</translation>
@@ -2501,6 +2532,7 @@
 <translation id="4429030830601238961">Data ini melanggar dasar keselamatan organisasi anda dan tidak boleh ditampal.</translation>
 <translation id="4430019312045809116">Kelantangan</translation>
 <translation id="4430369329743628066">Penanda halaman ditambahkan</translation>
+<translation id="4432621511648257259">Kata laluan salah</translation>
 <translation id="4434045419905280838">Tetingkap timbul dan ubah hala</translation>
 <translation id="443454694385851356">Lama (tidak selamat)</translation>
 <translation id="443475966875174318">Kemas kini atau alih keluar aplikasi yang tidak serasi</translation>
@@ -2738,6 +2770,7 @@
 <translation id="4785719467058219317">Anda menggunakan kunci keselamatan yang tidak berdaftar dengan tapak web ini</translation>
 <translation id="4788092183367008521">Sila semak sambungan rangkaian dan cuba lagi.</translation>
 <translation id="4792711294155034829">&amp;Laporkan Isu...</translation>
+<translation id="4794810983896241342">Kemas kini diurus oleh <ph name="BEGIN_LINK" />pentadbir anda<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Laman Web, HTML Sahaja</translation>
 <translation id="4798236378408895261">Lampirkan <ph name="BEGIN_LINK" />Log Bluetooth<ph name="END_LINK" /> (dalaman Google)</translation>
 <translation id="4801448226354548035">Sembunyikan akaun</translation>
@@ -2750,6 +2783,7 @@
 <translation id="4808667324955055115">Tetingkap timbul disekat:</translation>
 <translation id="480990236307250886">Buka halaman utama</translation>
 <translation id="4811503964269049987">Tab Pilihan Kumpulan</translation>
+<translation id="4811818760963189951">Dimatikan kerana anda melumpuhkan penyegerakan sejarah</translation>
 <translation id="4813136279048157860">Imej Saya</translation>
 <translation id="4813512666221746211">Ralat rangkaian</translation>
 <translation id="4814378367953456825">Masukkan nama untuk cap jari ini</translation>
@@ -2779,6 +2813,7 @@
 <translation id="4850669014075537160">Menatal</translation>
 <translation id="4850886885716139402">Lihat</translation>
 <translation id="4853020600495124913">Buka dalam tetingkap &amp;baharu</translation>
+<translation id="4854317507773910281">Pilih akaun ibu/bapa untuk kelulusan</translation>
 <translation id="485480310608090163">Lagi tetapan dan kebenaran</translation>
 <translation id="4856478137399998590">Perkhidmatan data mudah alih anda diaktifkan dan sedia untuk digunakan</translation>
 <translation id="4856855265648545577">Paparkan butang Pelancar, Kembali dan Ikhtisar dalam Rak dalam mod tablet. Dihidupkan apabila ChromeVox (maklum balas yang dituturkan) atau Akses Suis didayakan.</translation>
@@ -2831,6 +2866,7 @@
 <translation id="4908811072292128752">Buka tab baharu untuk menyemak imbas dua tapak pada masa yang sama</translation>
 <translation id="4909038193460299775">Oleh sebab akaun ini diurus oleh <ph name="DOMAIN" />, penanda halaman, sejarah, kata laluan dan tetapan anda yang lain akan dikosongkan daripada peranti ini. Namun begitu, data anda akan terus disimpan dalam Akaun Google anda dan boleh diurus di <ph name="BEGIN_LINK" />Papan Pemuka Google<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Bangkit Daripada Melahu</translation>
+<translation id="4916542008280060967">Benarkan tapak mengedit <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Tukar kepada penyemak imbas selamat</translation>
 <translation id="4917385247580444890">Kuat</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ingin berkomunikasi dengan sambungan "<ph name="EXTENSION_NAME" />"</translation>
@@ -2902,6 +2938,7 @@
 <translation id="5017633213534173756">Ingat</translation>
 <translation id="5018207570537526145">Buka tapak web sambungan</translation>
 <translation id="5021750053540820849">Belum dikemas kini</translation>
+<translation id="5026806129670917316">Hidupkan Wi-Fi</translation>
 <translation id="5026874946691314267">Jangan tunjukkannya lagi</translation>
 <translation id="5027550639139316293">Sijil E-mel</translation>
 <translation id="5027562294707732951">Tambahkan sambungan</translation>
@@ -2915,10 +2952,12 @@
 <translation id="5040823038948176460">Tetapan kandungan tambahan</translation>
 <translation id="5042282098504489593">Buka Tetapan untuk menyambungkan <ph name="USB_DEVICE_NAME" /> ke Linux</translation>
 <translation id="5043913660911154449">Anda juga boleh menentukan PPD pencetak anda <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Dimatikan kerana anda menyulitkan penyegerakan data anda dengan ungkapan laluan</translation>
 <translation id="5045550434625856497">Kata laluan tidak sah</translation>
 <translation id="504561833207953641">Membuka sesi penyemak imbas yang sedia ada.</translation>
 <translation id="5047421709274785093">Sekat tapak daripada menggunakan penderia gerakan dan cahaya</translation>
 <translation id="5050042263972837708">Nama kumpulan</translation>
+<translation id="5051073330196664891">Syarat Perkhidmatan universal (uToS) Google</translation>
 <translation id="5051836348807686060">Semak ejaan tidak disokong untuk bahasa yang anda pilih</translation>
 <translation id="5052499409147950210">Edit tapak</translation>
 <translation id="5053604404986157245">Kata laluan TPM yang dihasilkan secara rawak tidak tersedia. Perkara ini biasa berlaku selepas Powerwash.</translation>
@@ -2956,6 +2995,7 @@
 <translation id="5097002363526479830">Gagal untuk bersambung ke rangkaian '<ph name="NAME" />': <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Buka semua penanda halaman</translation>
 <translation id="5101839224773798795">Klik secara automatik apabila kursor berhenti</translation>
+<translation id="5107443654503185812">Sambungan telah mematikan Penyemakan Imbas Selamat</translation>
 <translation id="5108967062857032718">Tetapan - Alih keluar apl Android</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">Keluar daripada tetingkap Inkognito</translation>
@@ -3011,6 +3051,7 @@
 <translation id="5184063094292164363">&amp;Konsol JavaScript</translation>
 <translation id="5184209580557088469">Tiket dengan nama pengguna ini sudah wujud</translation>
 <translation id="5184662919967270437">Mengemas kini peranti anda</translation>
+<translation id="5185359571430619712">Ulas sambungan</translation>
 <translation id="5185386675596372454">Versi terbaharu "<ph name="EXTENSION_NAME" />" telah dilumpuhkan kerana ia memerlukan lebih banyak kebenaran.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> mahu memuat turun berbilang fail</translation>
@@ -3042,6 +3083,7 @@
 <translation id="523505283826916779">Tetapan kebolehcapaian</translation>
 <translation id="5235750401727657667">Gantikan halaman yang anda lihat semasa membuka tab baharu</translation>
 <translation id="5238278114306905396">Apl "<ph name="EXTENSION_NAME" />" telah dialih keluar secara automatik.</translation>
+<translation id="5239730228370806996">Data yang dilepaskan ini melanggar dasar keselamatan organisasi anda. Adakah anda mahu meneruskan juga langkah ini?</translation>
 <translation id="5241128660650683457">Baca semua data anda di tapak web yang anda lawati</translation>
 <translation id="5242724311594467048">Dayakan "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="5243522832766285132">Sila cuba lagi dalam beberapa ketika</translation>
@@ -3060,6 +3102,7 @@
 <translation id="5260334392110301220">Tanda Petikan Pintar</translation>
 <translation id="5260508466980570042">Maaf, e-mel atau kata laluan anda tidak dapat disahkan. Sila cuba semula.</translation>
 <translation id="5261683757250193089">Buka dalam Gedung Web</translation>
+<translation id="5262178194499261222">Alih keluar kata laluan</translation>
 <translation id="5264148714798105376">Proses ini mungkin mengambil masa seminit atau lebih.</translation>
 <translation id="5264252276333215551">Sila sambung ke Internet untuk melancarkan apl anda dalam mod kios.</translation>
 <translation id="5265562206369321422">Di luar talian selama lebih seminggu</translation>
@@ -3329,6 +3372,7 @@
 <translation id="5618075537869101857">Alamak, aplikasi kios tidak dapat dilancarkan.</translation>
 <translation id="5618333180342767515">(ini mungkin mengambil masa beberapa minit)</translation>
 <translation id="56197088284879152">Sambungan sesak ke peranti jauh: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">Tiada kata laluan yang disimpan</translation>
 <translation id="5620549857835247159">Paparkan butang Pelancar, Kembali dan Ikhtisar dalam Rak dalam mod tablet.</translation>
 <translation id="5620568081365989559">DevTools meminta akses penuh ke <ph name="FOLDER_PATH" />. Pastikan anda tidak mendedahkan sebarang maklumat sensitif.</translation>
 <translation id="5620612546311710611">statistik penggunaan</translation>
@@ -3421,6 +3465,7 @@
 <translation id="5747785204778348146">Pembangun - tidak stabil</translation>
 <translation id="5747809636523347288">Ta&amp;mpal dan pergi ke <ph name="URL" /></translation>
 <translation id="5750324801516359607">Jauh</translation>
+<translation id="5751887393582880060">Muat naik ini melanggar dasar keselamatan organisasi anda. Adakah anda mahu meneruskan juga langkah ini?</translation>
 <translation id="5756163054456765343">P&amp;usat bantuan</translation>
 <translation id="5759728514498647443">Dokumen yang anda hantar untuk dicetak melalui <ph name="APP_NAME" /> boleh dibaca oleh <ph name="APP_NAME" />.</translation>
 <translation id="5763751966069581670">Tiada peranti USB ditemui</translation>
@@ -3482,6 +3527,7 @@
 <translation id="5833726373896279253">Tetapan ini hanya boleh diubah suai oleh pemilik:</translation>
 <translation id="5834581999798853053">Tinggal kira-kira <ph name="TIME" /> minit</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Kamera atau mikrofon sedang merakam</translation>
+<translation id="5841270259333717135">Konfigurasikan Ethernet</translation>
 <translation id="5842497610951477805">Bluetooth didayakan</translation>
 <translation id="5846200638699387931">Ralat sintaks hubungan: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Telah ditambahkan</translation>
@@ -3527,6 +3573,7 @@
 <translation id="5900358982890952556">Tingkatkan Linux (Beta)</translation>
 <translation id="5901494423252125310">Pintu pencetak terbuka</translation>
 <translation id="5901630391730855834">Kuning</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Anda telah menghidupkan semula 1 sambungan yang mungkin berbahaya}other{Anda telah menghidupkan semula # sambungan yang mungkin berbahaya}}</translation>
 <translation id="5906655207909574370">Hampir terkini! Mulakan semula peranti anda untuk menyelesaikan kemas kini.</translation>
 <translation id="5906732635754427568">Data yang berkaitan dengan apl ini akan dialih keluar daripada peranti ini.</translation>
 <translation id="5908769186679515905">Sekat tapak daripada menjalankan Flash</translation>
@@ -3556,6 +3603,7 @@
 <translation id="59324397759951282">Peranti USB daripada <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Siri</translation>
 <translation id="5933376509899483611">Zon waktu</translation>
+<translation id="5935656526031444304">Urus Penyemakan Imbas Selamat</translation>
 <translation id="5938002010494270685">Peningkatan keselamatan tersedia</translation>
 <translation id="5939518447894949180">Tetapkan semula</translation>
 <translation id="5941153596444580863">Tambah orang...</translation>
@@ -3599,6 +3647,7 @@
 <translation id="5993807461461235661">Muat naik ini disulitkan dan melanggar dasar keselamatan organisasi anda.</translation>
 <translation id="5997337190805127100">Ketahui Lebih Lanjut Tentang Akses Tapak</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> hasil carian untuk '<ph name="SEARCH_TEXT" />'</translation>
+<translation id="6002210667729577411">Alihkan kumpulan ke tetingkap baharu</translation>
 <translation id="6002458620803359783">Suara Pilihan</translation>
 <translation id="6006484371116297560">Klasik</translation>
 <translation id="6007240208646052708">Carian suara dalam bahasa anda tidak tersedia.</translation>
@@ -3630,6 +3679,7 @@
 <translation id="6040852767465482106">Identiti Tanpa Nama</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Perkhidmatan lokasi Google menggunakan sumber seperti Wi-Fi, rangkaian mudah alih dan penderia untuk menganggarkan lokasi peranti anda.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Anda boleh mematikan Lokasi dengan mematikan tetapan Lokasi utama pada peranti anda. Anda juga boleh mematikan penggunaan Wi-Fi, rangkaian mudah alih dan penderia untuk lokasi dalam tetapan lokasi.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> akan dapat melihat fail dalam <ph name="FOLDERNAME" /> sehingga anda menutup semua tab <ph name="ORIGIN" /></translation>
 <translation id="6041155700700864984">Keluar Daripada Skrin Penuh</translation>
 <translation id="604124094241169006">Automatik</translation>
 <translation id="6042308850641462728">Lagi</translation>
@@ -3691,6 +3741,7 @@
 <translation id="6104311680260824317">Tidak dapat menghubungkan peranti ke domain. Pelayan tidak menyokong jenis penyulitan Kerberos yang dinyatakan. Semak "Lagi pilihan" untuk tetapan penyulitan.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> menghendaki peranti ini dikemas kini sekarang juga</translation>
 <translation id="6106186653986077033">Plugin VM memerlukan lesen</translation>
+<translation id="6107047744202598802">Membenarkan tapak web mengingat lawatan anda dan menjejak anda merentas web</translation>
 <translation id="6112294629795967147">Sentuh untuk mengubah saiz</translation>
 <translation id="6112727384379533756">Tambahkan tiket</translation>
 <translation id="6112931163620622315">Semak telefon anda</translation>
@@ -3769,6 +3820,7 @@
 <translation id="622537739776246443">Profil akan dipadamkan</translation>
 <translation id="6225475702458870625">Sambungan data tersedia daripada <ph name="PHONE_NAME" /> anda</translation>
 <translation id="6226777517901268232">Fail kunci peribadi (pilihan)</translation>
+<translation id="6227280783235722609">sambungan</translation>
 <translation id="6228691855869374890">Tapak ini mengawal sepenuhnya peranti MIDI.</translation>
 <translation id="6228720835160974792">Jana kod QR untuk imej ini</translation>
 <translation id="6229890768313448549">Syarat Perkhidmatan Google Play tidak dapat dimuatkan. Sila cuba semula.</translation>
@@ -3820,6 +3872,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> tidak biasa dimuat turun dan mungkin berbahaya.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Pencetak baharu pada rangkaian anda}other{Pencetak baharu pada rangkaian anda}}</translation>
 <translation id="6286708577777130801">Butiran kata laluan yang disimpan</translation>
+<translation id="6291163159361301370">Untuk memulakan Linux, <ph name="ORGANIZATION_NAME" /> menghendaki anda menyandarkan data anda dan menetapkan semula Chromebook ini kepada tetapan kilang.</translation>
 <translation id="6291949900244949761">Tanya apabila tapak mahu mengakses peranti USB (disyorkan)</translation>
 <translation id="6291953229176937411">&amp;Paparkan dalam Pencari</translation>
 <translation id="6295158916970320988">Semua tapak</translation>
@@ -4016,6 +4069,7 @@
 <translation id="6561726789132298588">enter</translation>
 <translation id="656293578423618167">Laluan atau nama fail terlalu panjang. Sila simpan dengan nama yang lebih pendek atau ke lokasi lain.</translation>
 <translation id="6563469144985748109">Pengurus anda belum meluluskannya</translation>
+<translation id="6565955132287672866">Peranti anda tidak ditutup dengan betul. Untuk menggunakan Linux (Beta), peranti mesti dimulakan semula.</translation>
 <translation id="6567688344210276845">Tidak dapat memuatkan ikon '<ph name="ICON" />' untuk tindakan halaman.</translation>
 <translation id="6569934958368283244">Orang lain</translation>
 <translation id="657402800789773160">&amp;Muatkan Semula Halaman Ini</translation>
@@ -4132,6 +4186,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Tunjukkan pintasan desktop</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> dijeda</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Pentadbir anda<ph name="END_LINK" /> telah mematikan Penyemakan Imbas Selamat</translation>
 <translation id="6742339027238151589">Boleh diakses untuk skrip</translation>
 <translation id="6745592621698551453">Kemas kini sekarang</translation>
 <translation id="6746124502594467657">Alihkan ke bawah</translation>
@@ -4390,6 +4445,7 @@
     <ph name="BEGIN_BOLD" />Sentiasa ingat:<ph name="END_BOLD" /> Suara yang serupa atau rakaman suara mungkin dapat mengakses Assistant anda juga. Anda boleh mengalih keluar kebenaran Voice Match kemudian dengan mematikannya dalam Tetapan Assistant.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Bertukar data dengan peranti yang bernama: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Peranti akan dimulakan semula apabila kemas kini selesai.</translation>
 <translation id="7098389117866926363">Peranti USB-C (port kiri di belakang)</translation>
 <translation id="7098447629416471489">Enjin carian lain yang disimpan akan kelihatan di sini</translation>
 <translation id="7099337801055912064">Tidak dapat memuatkan PPD bersaiz besar. Saiz maksimum ialah 250 KB.</translation>
@@ -4513,6 +4569,7 @@
 <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="7266898409676782635">Dapatkan petua, tawaran dan kemas kini <ph name="DEVICE_TYPE" />, serta kongsi maklum balas. Hentikan langganan pada bila-bila masa.</translation>
 <translation id="7268127947535186412">Tetapan ini diurus oleh pemilik peranti.</translation>
 <translation id="7270858098575133036">Tanya apabila tapak mahu menggunakan mesej eksklusif sistem untuk mengakses peranti MIDI</translation>
 <translation id="7272674038937250585">Tiada perihalan disediakan</translation>
@@ -4586,6 +4643,7 @@
 <translation id="7364796246159120393">Pilih Fail</translation>
 <translation id="7366415735885268578">Tambahkan tapak</translation>
 <translation id="7366909168761621528">Data penyemakan imbas</translation>
+<translation id="7367714965999718019">Penjana Kod QR</translation>
 <translation id="736877393389250337"><ph name="URL" /> tidak dapat dibuka dalam <ph name="ALTERNATIVE_BROWSER_NAME" />. Sila hubungi pentadbir sistem anda.</translation>
 <translation id="7370592524170198497">EAP Ethernet:</translation>
 <translation id="7371006317849674875">Masa mula</translation>
@@ -4843,8 +4901,10 @@
 <translation id="7737238973539693982">Padamkan Linux (Beta)</translation>
 <translation id="7740996059027112821">Standard</translation>
 <translation id="7744047395460924128">Lihat sejarah pencetakan anda</translation>
+<translation id="7744192722284567281">Ditemukan dalam pelanggaran data</translation>
 <translation id="7746457520633464754">Untuk mengesan apl dan tapak berbahaya, Chrome menghantar URL sesetengah halaman yang anda lawati, maklumat sistem yang terhad dan sesetengah kandungan halaman kepada Google</translation>
 <translation id="7750228210027921155">Gambar dalam gambar</translation>
+<translation id="7751229152614300329">Penyemakan Imbas Selamat telah dikemas kini dan melindungi anda daripada tapak dan muat turun berbahaya</translation>
 <translation id="7751260505918304024">Paparkan semua</translation>
 <translation id="7754704193130578113">Tanyakan tempat untuk menyimpan setiap fail sebelum memuat turun</translation>
 <translation id="7755287808199759310">Ibu bapa anda boleh menyahsekatnya untuk anda</translation>
@@ -4858,6 +4918,7 @@
 <translation id="7766807826975222231">Buat lawatan</translation>
 <translation id="7766838926148951335">Terima kebenaran</translation>
 <translation id="7769672763586021400">ID Model</translation>
+<translation id="7770651108375708429">Putuskan sambungan Wi-Fi</translation>
 <translation id="7771452384635174008">Susun atur</translation>
 <translation id="7772032839648071052">Sahkan frasa laluan</translation>
 <translation id="7772127298218883077">Mengenai <ph name="PRODUCT_NAME" /></translation>
@@ -4992,6 +5053,7 @@
 <translation id="7910768399700579500">&amp;Folder baharu</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Kata laluan anda telah ditukar pada pelayan. Sila log keluar, kemudian log masuk semula.</translation>
+<translation id="7914583336730284547">Fail yang dilepaskan ini melanggar dasar keselamatan organisasi anda. Adakah anda mahu meneruskan juga langkah ini?</translation>
 <translation id="7915457674565721553">Sambung ke Internet untuk menyediakan kawalan ibu bapa</translation>
 <translation id="7915471803647590281">Sila beritahu kami kejadian yang berlaku sebelum menghantar maklum balas.</translation>
 <translation id="7918257978052780342">Daftar</translation>
@@ -5015,6 +5077,7 @@
 <translation id="7939412583708276221">Simpan juga</translation>
 <translation id="7942349550061667556">Merah</translation>
 <translation id="7943837619101191061">Tambah Lokasi...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 kata laluan yang terjejas}other{# kata laluan yang terjejas}}</translation>
 <translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" ingin menyambung</translation>
 <translation id="7946586320617670168">Tempat asal mestilah selamat</translation>
 <translation id="794676567536738329">Sahkan Kebenaran</translation>
@@ -5089,6 +5152,7 @@
 <translation id="8028803902702117856">Memuat turun <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">Saiz</translation>
 <translation id="8030656706657716245">Tambah Pencetak</translation>
+<translation id="8030852056903932865">Luluskan</translation>
 <translation id="8032244173881942855">Tidak dapat menghantar tab.</translation>
 <translation id="8033827949643255796">dipilih</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Buka semua dalam tetingkap &amp;inkognito}=1{Buka dalam tetingkap &amp;inkognito}other{Buka semua (#) dalam tetingkap &amp;inkognito}}</translation>
@@ -5113,6 +5177,7 @@
 <translation id="8059417245945632445">&amp;Periksa peranti</translation>
 <translation id="8059456211585183827">Tiada pencetak tersedia untuk disimpan.</translation>
 <translation id="8063235345342641131">Avatar hijau lalai</translation>
+<translation id="8063535366119089408">Lihat fail</translation>
 <translation id="8064671687106936412">Kekunci:</translation>
 <translation id="8068253693380742035">Sentuh untuk mengelog masuk</translation>
 <translation id="8068809649322155577">Tindakan ini akan mengosongkan semua data dan kuki yang disimpan oleh <ph name="SITE_GROUP_NAME" />, mana-mana tapak di bawah kumpulan ini dan apl yang dipasang.</translation>
@@ -5178,6 +5243,7 @@
 <translation id="8152091997436726702">Pendaftaran pencetak telah tamat masa. Untuk mendaftarkan pencetak, anda mesti mengesahkan pendaftaran pada pencetak.</translation>
 <translation id="8154790740888707867">Tiada fail</translation>
 <translation id="815491593104042026">Op! Pengesahan gagal kerana telah dikonfigurasikan untuk menggunakan URL tidak selamat (<ph name="BLOCKED_URL" />). Sila hubungi pentadbir anda.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Tiada kata laluan yang terjejas dijumpai}=1{{COUNT} kata laluan yang terjejas}other{{COUNT} kata laluan yang terjejas}}</translation>
 <translation id="8157704005178149728">Menyediakan pengawasan</translation>
 <translation id="8158117992543756526">Peranti ini berhenti menerima kemas kini perisian dan keselamatan automatik pada <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Ralat Tetapan Kepercayaan Sijil</translation>
@@ -5231,6 +5297,7 @@
 <translation id="8226742006292257240">Di bawah adalah kata laluan TPM yang dijana secara rawak yang diperuntukkan kepada komputer anda:</translation>
 <translation id="8227119283605456246">Lampirkan fail</translation>
 <translation id="8230134520748321204">Simpan kata laluan untuk <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Tetapan Internet</translation>
 <translation id="8234795456569844941">Sila bantu jurutera kami menyelesaikan masalah ini. Beritahu kami perkara yang berlaku sejurus sebelum anda mendapat mesej ralat profil:</translation>
 <translation id="8236123533334037984">Organisasi anda sedang mengimbas muat naik ini untuk mendapatkan kelulusan keselamatan.</translation>
 <translation id="8236917170563564587">Kongsi tab ini</translation>
@@ -5410,6 +5477,7 @@
 <translation id="8472623782143987204">disokong perkakasan</translation>
 <translation id="8473863474539038330">Alamat dan pelbagai lagi</translation>
 <translation id="8475313423285172237">Program lain pada komputer anda menambah sambungan yang boleh mengubah cara Chrome berfungsi.</translation>
+<translation id="8476659515398963495">Data yang ditampal ini melanggar dasar keselamatan organisasi anda. Adakah anda mahu meneruskan juga langkah ini?</translation>
 <translation id="8477241577829954800">Menggantikan</translation>
 <translation id="8477384620836102176">&amp;Umum</translation>
 <translation id="8480082892550707549">Walaupun anda pernah memuat turun fail daripada tapak ini sebelum ini, tapak ini mungkin tidak selamat buat sementara waktu (digodam). Cuba muat turun fail ini kemudian.</translation>
@@ -5463,6 +5531,7 @@
 <translation id="8547013269961688403">Dayakan penggadang skrin penuh</translation>
 <translation id="85486688517848470">Tahan kekunci Cari untuk menukar gelagat kekunci di baris atas</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 item}other{# item}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> akan dapat mengedit fail dalam <ph name="FOLDERNAME" /> sehingga anda menutup semua tab <ph name="ORIGIN" /></translation>
 <translation id="8551388862522347954">Lesen</translation>
 <translation id="8553342806078037065">Urus orang lain</translation>
 <translation id="8554899698005018844">Tiada bahasa</translation>
@@ -5521,6 +5590,7 @@
 <translation id="8637688295594795546">Kemas kini sistem tersedia. Bersedia untuk  muat turun…</translation>
 <translation id="8639047128869322042">Menyemak untuk mengesan perisian berbahaya...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Port</translation>
+<translation id="8641606876632989680">Chrome akan memaklumkan kepada anda apabila anda log masuk menggunakan kata laluan yang terjejas</translation>
 <translation id="8642900771896232685">2 saat</translation>
 <translation id="8642947597466641025">Jadikan Teks Lebih Besar</translation>
 <translation id="8644655801811752511">Tidak dapat menetapkan semula kunci keselamatan ini. Cuba tetapkan semula kunci sejurus selepas memasukkannya.</translation>
@@ -5566,10 +5636,12 @@
 <translation id="8688579245973331962">Tidak melihat nama anda?</translation>
 <translation id="8688591111840995413">Kata laluan salah</translation>
 <translation id="8688672835843460752">Tersedia</translation>
+<translation id="8691418731028620688">Sambungkan Wi-Fi</translation>
 <translation id="8695825812785969222">Buka &amp;Lokasi...</translation>
 <translation id="869884720829132584">Menu aplikasi</translation>
 <translation id="869891660844655955">Tarikh tamat tempoh</translation>
 <translation id="8703346390800944767">Langkau Iklan</translation>
+<translation id="870341961648617780">Tetapan Penyemakan Imbas Selamat dan keselamatan lanjutan</translation>
 <translation id="8705331520020532516">Nombor Siri</translation>
 <translation id="8705580154597116082">Wi-Fi tersedia melalui telefon</translation>
 <translation id="8705629851992224300">Kunci keselamatan anda tidak dapat dibaca</translation>
@@ -5615,6 +5687,7 @@
 <translation id="874689135111202667">{0,plural, =1{Muat naik satu fail ke tapak ini?}other{Muat naik # fail ke tapak ini?}}</translation>
 <translation id="8748384418490037181">Pilihan Smart Lock</translation>
 <translation id="8749863574775030885">Akses peranti USB daripada vendor yang tidak diketahui</translation>
+<translation id="8750133148106010815">Untuk memulakan Google Play, <ph name="ORGANIZATION_NAME" /> menghendaki anda menyandarkan data anda dan menetapkan semula Chromebook ini kepada tetapan kilang.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> mahu menyambung ke port siri</translation>
 <translation id="8754200782896249056">&lt;p&gt;Apabila menjalankan <ph name="PRODUCT_NAME" /> di bawah persekitaran desktop yang disokong, tetapan proksi sistem akan digunakan. Bagaimanapun, sama ada sistem anda tidak disokong atau terdapat masalah melancarkan konfigurasi sistem anda.&lt;/p&gt;
 
@@ -5669,6 +5742,7 @@
 <translation id="8809147117840417135">Hijau kebiruan cerah</translation>
 <translation id="8813698869395535039">Tidak dapat mengelog masuk ke <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">helai kertas</translation>
+<translation id="8813872945700551674">Sila minta ibu/bapa meluluskan "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="8813969267212093033">Teks sistem ditunjukkan dalam bahasa ini</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Sila tunggu, arkib sedang diimbas…</translation>
@@ -5722,6 +5796,7 @@
 <translation id="8872187374998143710">Sila mulakan semula peranti anda untuk menggunakan Plugin VM.</translation>
 <translation id="8872777911145321141">Tanya apabila tapak mahu menggunakan peranti dan data realiti maya anda (disyorkan)</translation>
 <translation id="8874184842967597500">Tidak bersambung</translation>
+<translation id="8875775314572167244">Tetapan Ethernet</translation>
 <translation id="8876307312329369159">Tetapan ini tidak boleh ditukar dalam sesi tunjuk cara.</translation>
 <translation id="8877448029301136595">[direktori induk]</translation>
 <translation id="8878384954777710821">Menyahpasang Plugin VM...</translation>
@@ -5763,6 +5838,7 @@
 <translation id="892706138619340876">Beberapa tetapan telah ditetapkan semula</translation>
 <translation id="8930351635855238750">Tetapan kuki baharu akan berkesan selepas memuatkan semula halaman</translation>
 <translation id="8931394284949551895">Peranti baharu</translation>
+<translation id="8931475688782629595">Urus data yang disegerakkan</translation>
 <translation id="8932894639908691771">Pilihan Akses Suis</translation>
 <translation id="8933960630081805351">&amp;Paparkan dalam Pencari</translation>
 <translation id="8934732568177537184">Teruskan</translation>
@@ -5920,6 +5996,7 @@
 <translation id="9148126808321036104">Log masuk semula</translation>
 <translation id="9149866541089851383">Edit...</translation>
 <translation id="9150045010208374699">Gunakan kamera anda</translation>
+<translation id="9150429437595727962">Tetapan Wi-Fi</translation>
 <translation id="9153934054460603056">Simpan identiti dan kata laluan</translation>
 <translation id="9154194610265714752">Dikemas kini</translation>
 <translation id="91568222606626347">Buat Pintasan...</translation>
@@ -5949,6 +6026,7 @@
 <translation id="9203398526606335860">&amp;Dayakan pemprofilan</translation>
 <translation id="9203904171912129171">Pilih peranti</translation>
 <translation id="9203962528777363226">Pentadbir peranti ini telah melumpuhkan pengguna baharu daripada ditambah</translation>
+<translation id="9211177926627870898">Kemas kini diperlukan</translation>
 <translation id="9214520840402538427">Alamak! Pemulaan sifat masa pemasangan telah tamat masa. Sila hubungi wakil sokongan anda.</translation>
 <translation id="9214695392875603905">Kek cawan</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" ditambah</translation>
@@ -5980,6 +6058,7 @@
 <translation id="945522503751344254">Hantar maklum balas</translation>
 <translation id="947329552760389097">&amp;Periksa Unsur</translation>
 <translation id="952992212772159698">Tidak diaktifkan</translation>
+<translation id="956500788634395331">Anda dilindungi daripada sambungan yang mungkin berbahaya</translation>
 <translation id="957960681186851048">Tapak ini cuba memuat turun berbilang fail secara automatik</translation>
 <translation id="9580706199804957">Tidak dapat menyambung ke perkhidmatan Google</translation>
 <translation id="960719561871045870">Kod operator</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index e32e8977..db2ecdf 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Adobe Flash Player သိုလှောင်ခန်းဆက်တင်များ</translation>
 <translation id="1274997165432133392">ကူကီးနှင့် အခြား ဆိုက်ဒ် အချက်အလက်များ</translation>
 <translation id="1280820357415527819">မိုဘိုင်းကွန်ရက်များကို ရှာဖွေနေပါသည်</translation>
+<translation id="1280965841156951489">ဖိုင်များတည်းဖြတ်ရန်</translation>
 <translation id="1282420830958964167">သင့်မိဘက "<ph name="APP_NAME" />" အတွက် သတ်မှတ်ထားသည့် ကန့်သတ်ချက် ပြည့်သွားပါပြီ။ မနက်ဖြန်တွင် ၎င်းကို <ph name="TIME_LIMIT" /> ကြာ အသုံးပြုနိုင်သည်။</translation>
 <translation id="1285320974508926690">ဒီဆိုက်ကို ဘယ်တော့မှ ဘာသာမပြန်ပါနှင့်</translation>
 <translation id="1285484354230578868">ဒေတာကို သင်၏ Google ဒရိုက်ဗ် အကောင့်မှာ သိုလှောင်ရန်</translation>
@@ -514,6 +515,7 @@
 <translation id="1692210323591458290">ခရမ်းရင့်</translation>
 <translation id="1692799361700686467">ဆိုက် အများအပြားမှ ကူကီးများကို ခွင့်ပြုထားသည်။</translation>
 <translation id="1697150536837697295">အနုပညာ</translation>
+<translation id="1697686431566694143">ဖိုင်တည်းဖြတ်ရန်</translation>
 <translation id="1698122934742150150">လက်ရှိ လျှို့ဝှက်သုံး သတ်မှတ်ချိန်သာ</translation>
 <translation id="1698650002254827833">အက်ပ်စာရင်းကို ဖွင့်၍မရပါ။ ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="1701062906490865540">ဒီလူကို ဖယ်ထုတ်ရန်</translation>
@@ -699,6 +701,7 @@
 <translation id="1931152874660185993">တပ်ဆင်ထားသည့် အစိတ်အပိုင်းများ မရှိ</translation>
 <translation id="1932098463447129402">မတိုင်မှီမဟုတ်</translation>
 <translation id="1933809209549026293">ကျေးဇူးပြုပြီး မောက်စ် သို့မဟုတ် ကီးဘုတ်ကို ချိတ်ဆက်ပါ။ သင်သည် ဘလူးတုသ် ကိရိယာကို သုံးနေလျှင်၊ ၎င်းသည် ချိတ်တွဲရန် အသင့် ရှိနေတာကို စစ်ကြည့်ပါ။</translation>
+<translation id="1936931585862840749">မိတ္တူမည်မျှ ပုံနှိပ်ထုတ်ယူလိုကြောင်း ဖော်ပြရန် နံပါတ်ကို အသုံးပြုပါ (၁ မှ <ph name="MAX_COPIES" />)။</translation>
 <translation id="1937774647013465102"><ph name="ARCHITECTURE_DEVICE" /> ဖြစ်သော ဤစက်ပစ္စည်းဖြင့်<ph name="ARCHITECTURE_CONTAINER" /> ကွန်တိန်နာ ဖွဲ့စည်းပုံ အမျိုးအစားကို ထည့်သွင်း၍ မရပါ။ ဤကွန်တိန်နာကို အခြားစက်ပစ္စည်းတစ်ခုတွင် ပြန်ယူကြည့်နိုင်သည် သို့မဟုတ် Files အက်ပ်တွင် ဖွင့်ခြင်းဖြင့် ဤကွန်တိန်နာ ကွန်ပျူတာစနစ်မိတ္တူအတွင်းရှိ ဖိုင်များကို ဝင်သုံးနိုင်သည်။</translation>
 <translation id="1938351510777341717">ပြင်ပကွန်မန်း</translation>
 <translation id="1940546824932169984">ချိတ်ဆက်ထားသော စက်ပစ္စည်းများ</translation>
@@ -994,6 +997,7 @@
 <translation id="2343747224442182863">ဤတဘ်ကို အထူးဖော်ပြပါ</translation>
 <translation id="2344028582131185878">အလိုအလျောက် ဒေါင်းလုဒ်များ</translation>
 <translation id="2345723121311404059"><ph name="PRINTER_NAME" /> တွင် ၁ မျက်နှာ ပုံနှိပ်ထုတ်ယူရန်</translation>
+<translation id="2346953515226895098">SODA ဝန်ဆောင်မှု</translation>
 <translation id="2347644257713614136">ပညာရေးအတွက် Hangouts နှင့် Cast အသုံးပြုခြင်းကို 'Google ပုဂ္ဂိုလ်ရေးဆိုင်ရာ မူဝါဒ' အရ ထိန်းချုပ်ထားသည်။</translation>
 <translation id="2348176352564285430">အက်ပ် − <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">ပြန်လည် စတင်ထားသည်</translation>
@@ -1047,6 +1051,7 @@
 <translation id="2422125132043002186">Linux ပြန်ယူခြင်းကို ပယ်ဖျက်ထားသည်</translation>
 <translation id="2423578206845792524">ပုံကို အဖြစ် သိမ်းSa&amp;ဆည်းရန်...</translation>
 <translation id="2428510569851653187">တဘ်ရပ်တန့်သွားသည့်အချိန်၌ သင်ပြုလုပ်နေခဲ့သည့်အရာများကို ဖော်ပြပါ</translation>
+<translation id="2428939361789119025">Wi-Fi ပိတ်ရန်</translation>
 <translation id="2431027948063157455">Google Assistant ကို ဖွင့်၍မရပါ၊ ကွန်ရက်ချိတ်ဆက်မှုကို စစ်ဆေးပြီး ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="2432753757290432042">Linux (စမ်းသပ်ဆော့ဖ်ဝဲ) အပ်ဒိတ် လိုအပ်သည်</translation>
 <translation id="2433452467737464329">URL ထဲမှာ မေးမြန်းမှု ဘောင် တစ်ခုကို ထည့်ပေးလျက် ဆန်းသစ်ပေးရမည့် စာမျက်နှာမှာ: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1464,6 +1469,7 @@
 <translation id="2944060181911631861">အသုံးပြုမှုနှင့် အမှားရှာဖွေမှုဒေတာ ပို့ပါ။ အမှားရှာဖွေမှု၊ စက်ပစ္စည်းနှင့်အက်ပ် အသုံးပြုမှုဒေတာများကို Google သို့ အလိုအလျောက်ပို့၍ Android အသုံးပြုမှု ပိုမိုကောင်းမွန်လာစေရန် ကူညီပါ။ ၎င်းက စနစ်နှင့် အက်ပ်တည်ငြိမ်မှု၊ အခြား တိုးတက်ပြင်ဆင်မှုများအတွက် ပံ့ပိုးပေးပါမည်။ စုစည်းထားသော ဒေတာအချို့က Google အက်ပ်နှင့် Android ဆော့ဖ်ဝဲအင်ဂျင်နီယာများကဲ့သို့ ပါတနာများကို ကူညီပေးပါမည်။ သင်၏ထပ်တိုး 'ဝဘ်နှင့် အက်ပ်လုပ်ဆောင်ချက်' ကို ဖွင့်ထားသည့်အခါ ဤဒေတာကို သင့် Google အကောင့်သို့ သိမ်းသွားပါမည်။ <ph name="BEGIN_LINK1" />ပိုမိုလေ့လာရန်<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">ချိတ်ဆက်မှုကို ထည့်ရန်</translation>
 <translation id="2947605845283690091">ဝဘ်ကြည့်ရှုခြင်းက မြန်သင့်ပါသည်။ အချိန်ခဏပေး၍ ယခုပင် <ph name="BEGIN_LINK" />သင်၏နောက်ဆက်တွဲများကို စစ်ဆေးပါ<ph name="END_LINK" />။</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{အန္တရာယ်ရှိနိုင်သော နောက်ဆက်တွဲ ၁ ခုကို ပိတ်လိုက်သည်။ ၎င်းကို ဖယ်ရှားနိုင်သည်။}other{အန္တရာယ်ရှိနိုင်သော နောက်ဆက်တွဲ # ခုကို ပိတ်လိုက်သည်။ ၎င်းတို့ကို ဖယ်ရှားနိုင်သည်။}}</translation>
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" /> သို့သွား</translation>
 <translation id="29488703364906173">ခေတ်မီသည့် ဝဘ် အတွက် တည်ဆောင်ပေးထားသည့် မြန်သော၊ လွယ်ကူသော၊ လုံခြုံသော ဝဘ် ဘရောင်ဇာ။</translation>
 <translation id="2949289451367477459">တည်နေရာကို အသုံးပြုပါ။ တည်နေရာ ခွင့်ပြုချက်ပါဝင်သည့် အက်ပ်နှင့် ဝန်ဆောင်မှုများအား ဤစက်၏ တည်နေရာကို အသုံးပြုခွင့်ပေးပါ။ Google သည် တည်နေရာအချက်အလက်များကို အခါအားလျော်စွာ စုဆောင်းနိုင်ပြီး တည်နေရာ ပိုမိုတိကျလာစေရန်နှင့် တည်နေရာအခြေခံသည့် ဝန်ဆောင်မှုများ ကောင်းမွန်လာစေရန် ၎င်းဒေတာများကို အမည်မဖော်ဘဲ အသုံးပြုသွားပါမည်။ <ph name="BEGIN_LINK1" />ပိုမိုလေ့လာရန်<ph name="END_LINK1" /></translation>
@@ -1544,6 +1550,7 @@
 <translation id="3067198179881736288">အက်ပ်ကို ထည့်သွင်းလိုပါသလား။</translation>
 <translation id="3067198360141518313">ဤပလက်ဂင်အား သုံးရန်</translation>
 <translation id="3071624960923923138">ဤနေရာကို နှိပ်ပြီး တဘ်အသစ်ဖွင့်နိုင်သည်</translation>
+<translation id="3072775339180057696">ဝဘ်ဆိုက်ကို <ph name="FILE_NAME" /> အား ကြည့်ခွင့်ပြုမလား။</translation>
 <translation id="3075874217500066906">Powerwash လုပ်ငန်းစဉ် စတင်ရန်အတွက် စက်အား ပြန်စဖွင့်ရန်လိုသည်။ ပြန်စဖွင့်ပြီးနောက် သင်ဆက်လက်လုပ်ဆောင်လိုခြင်းရှိမရှိ အတည်ပြုရန် မေးလိမ့်မည်။</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">သင်၏ လက်မှတ်ထိုးဝင်ခြင်းဒေတာများကို ဖျက်လိုက်ပါပြီ</translation>
@@ -1556,6 +1563,7 @@
 <translation id="3085412380278336437">ဝဘ်ဆိုက်က သင့်ကင်မရာကို အသုံးပြုနိုင်သည်</translation>
 <translation id="3085752524577180175">SOCKS လက်ခံဝန်ဆောင်ပေးသည့်ပရောက်စီ</translation>
 <translation id="3088052000289932193">ဝဘ်ဆိုက်က MIDI ကို အသုံးပြုနေသည်</translation>
+<translation id="3088128611727407543">အက်ပ်ပရိုဖိုင် ပြင်ဆင်နေသည်...</translation>
 <translation id="3088325635286126843">&amp;အမည် ပြောင်းရန်...</translation>
 <translation id="3089137131053189723">ရှာဖွေမှုကို ရှင်းလင်းလိုက်ပါပြီ</translation>
 <translation id="3090193911106258841">အသံနှင့် ဗွီဒီယို ထည့်သွင်းမှုများအား ရယူသုံးနေစဉ်</translation>
@@ -1597,6 +1605,7 @@
     အကြောင်းအရာ-
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome အက်ပ်များ</translation>
+<translation id="3150693969729403281">လုံခြုံရေး စစ်ဆေးမှု ယခု လုပ်ဆောင်ပါ</translation>
 <translation id="3150927491400159470">ဟာ့ဒ် ပြန်တင်ရန်</translation>
 <translation id="315116470104423982">မိုဘိုင်း ဒေတာ</translation>
 <translation id="3151539355209957474">စတင်ချိန်</translation>
@@ -1689,6 +1698,7 @@
 <translation id="3282568296779691940">Chrome သို့ လက်မှတ်ထိုး ဝင်</translation>
 <translation id="3285322247471302225">တဲဘ် &amp; အသစ်</translation>
 <translation id="328571385944182268">သင့်စကားဝှက်များ သိမ်းမလား။</translation>
+<translation id="328785681103589998">သင် <ph name="ORIGIN" /> တဘ်အားလုံးကို မပိတ်မချင်း <ph name="ORIGIN" /> သည် <ph name="FILENAME" /> ကို ကြည့်နိုင်ပါမည်</translation>
 <translation id="3288047731229977326">ဖွံ့ဖြိုးစေသူမုဒ်တွင် ဖွင့်ထားသည့် အိတ်စတန်းရှင်းသည် သင့်ကွန်ပျူတာကို ထိခိုက်စေနိုင်သည်။ အကယ်၍ သင်သည် ဖွံ့ဖြိုးစေသူမဟုတ်လျှင်၊ လုံခြုံမှုရှိစေရန် ဖွံ့ဖြိုးစေသူမုဒ်၌ ဖွင့်ထားသည့် ဤအိတ်စတန်းရှင်းများကို ပိတ်ထားသင့်သည်။</translation>
 <translation id="3289856944988573801">မွမ်းမံမှုများကို စစ်ကြည့်ရန်၊ ကျေးဇူးပြုပြီး အီသာနက် သို့မဟုတ် ကြိုးမဲ့ကို အသုံးပြုပါ။</translation>
 <translation id="3290356915286466215">လုံခြုံမှုမရှိပါ</translation>
@@ -1797,6 +1807,7 @@
 <translation id="344630545793878684">ဝဘ်ဆိုက် တသီကြီးမှ သင်၏ ဒေတာကို ဖတ်ရန်</translation>
 <translation id="3448086340637592206">Google Chrome နှင့် Chrome OS နောက်ဆက်တွဲ စည်းမျဉ်းများ</translation>
 <translation id="3448492834076427715">အကောင့်ကို အပ်ဒိတ်လုပ်ရန်</translation>
+<translation id="3449393517661170867">တဘ်ဝင်းဒိုး အသစ်</translation>
 <translation id="3449839693241009168"><ph name="EXTENSION_NAME" />ထံ ညွှန်ကြားချက်များ ပေးရန် <ph name="SEARCH_KEY" /> ကို နှိပ်ပါ</translation>
 <translation id="3450157232394774192">မလှုပ်မရှား နေထိုင်မှု ရာခိုင်နှုန်း</translation>
 <translation id="3451332697983754369">ကျွန်ုပ်၏ <ph name="DEVICE_TYPE" /> ကို စင့်ခ်လုပ်ရန်</translation>
@@ -1977,6 +1988,7 @@
 <translation id="3681311097828166361">အကြံပြုပေးသည့်အတွက် ကျေးဇူးတင်ပါသည်။ သင်ယခုအော့ဖ်လိုင်းဖြစ်နေလျှင် သင့်အစီရင်ခံစာကို နောက်မှ ပို့ပါမည်။</translation>
 <translation id="3682824389861648626">လှုပ်ရှားမှု ခံနိုင်စွမ်း</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> မျက်နှာပြင် မျှဝေရန် တောင်းဆိုချက်</translation>
+<translation id="3686074530047028092">ပညာရေး အကောင့်</translation>
 <translation id="368789413795732264">ဒီဖိုင်ကို ရေးရန် ကြိုးစားစဉ် အမှား တစ်ခု ကြုံခဲ့ရ: <ph name="ERROR_TEXT" />။</translation>
 <translation id="3688507211863392146">သင်က အပလီကေးရှင်း ထဲမှာ ဖွင့်ခဲ့သည်ကို ဖိုင်များ နှင့် ဖိုလ်ဒါများသို့ ရေးရန်</translation>
 <translation id="3688526734140524629">ချာနယ် ပြောင်းရန်</translation>
@@ -2045,6 +2057,7 @@
 <translation id="3759933321830434300">ဝဘ်စာမျက်နှာ အစိတ်ပိုင်းများကို အဆက်ဖြတ်မည်</translation>
 <translation id="3760460896538743390">နောက်ခံ &amp;စာမျက်နှာကို စစ်ဆေးရန်</translation>
 <translation id="37613671848467444">ရုပ်ဖျက် ဝင်ဒိုး ထဲမှာ ဖွင့်ရန်</translation>
+<translation id="3761556954875533505">ဝဘ်ဆိုက်ကို ဖိုင်များ တည်းဖြတ်ခွင့်ပြုမလား။</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{USB စက်ကိရိယာတစ်ခုဖြင့် ဆက်သွယ်ပြောဆိုရန်}other{USB စက်ကိရိယာ # ဖြင့် ဆက်သွယ်ပြောဆိုရန်}}</translation>
 <translation id="3765246971671567135">အော့ဖ်လိုင်းသရုပ်ပြမုဒ် မူဝါဒကို ဖတ်၍မရပါ။</translation>
 <translation id="3768037234834996183">သင် နှစ်သက်သောအရာများအား စင့်က်လုပ်နေစဉ်...</translation>
@@ -2180,6 +2193,7 @@
 <translation id="3927932062596804919">ငြင်းပယ်</translation>
 <translation id="3928570707778085600">ပြောင်းလဲမှုများကို <ph name="FILE_OR_FOLDER_NAME" /> သို့ သိမ်းလိုပါသလား။</translation>
 <translation id="3929426037718431833">ဤနောက်ဆက်တွဲများက ယခုဝဘ်ဆိုက်ပေါ်ရှိ အချက်အလက်များကို ကြည့်ရှုပြီး ပြောင်းလဲနိုင်သည်။</translation>
+<translation id="3930155420525972941">အုပ်စုကို ဝင်းဒိုးအသစ်သို့ ရွှေ့ခြင်း</translation>
 <translation id="3930737994424905957">စက်ပစ္စည်းများကို ရှာနေသည်</translation>
 <translation id="3930968231047618417">နောက်ခံ အရောင်</translation>
 <translation id="3933283459331715412"><ph name="USERNAME" /> အတွက် ဖျက်ထားသည့် စကားဝှက်ကို ပြရယူရန်</translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">ကျွန်ုပ် သဘောတူ</translation>
 <translation id="413121957363593859">အစိတ်အပိုင်းများ</translation>
 <translation id="4131410914670010031">အမည်း နှင့် အဖြူ</translation>
+<translation id="4133076602192971179">သင့်စကားဝှက်ပြောင်းရန် အက်ပ်ကို ဖွင့်ပါ</translation>
 <translation id="4136203100490971508">နေထွက်ချိန်တွင် Night Light အလိုအလျောက် ပိတ်ပါမည်</translation>
 <translation id="41365691917097717">ရှေ့ဆက်ခြင်းအားဖြင့် Android အက်ပ်များ ပြုလုပ်ရန်နှင့် စမ်းသပ်ရန်အတွက် ADB အမှားရှာပြင်ခြင်းကို ဖွင့်သွားပါမည်။ ယခုလုပ်ဆောင်ချက်သည် Google က အတည်မပြုရသေးသော Android အက်ပ်များကို ထည့်သွင်းရန်ခွင့်ပြုပြီး ပိတ်ရန်အတွက် စက်ရုံထုတ်ဆက်တင် ပြင်ဆင်သတ်မှတ်ရန် လိုအပ်ကြောင်း သတိပြုပါ။</translation>
 <translation id="4138267921960073861">လက်မှတ်ထိုးဝင် မျက်နှာပြင်မှာ အသုံးပြုသူ အမည်များနှင့် ဓါတ်ပုံများကို ပြရန်</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245"><ph name="LANGUAGE" /> ကို ဘယ်တော့မှ ဘာသာမပြန်ပါနှင့်</translation>
 <translation id="4332976768901252016">'မိဘ အထိန်းအချုပ်များ' ကို စနစ်ထည့်သွင်းခြင်း</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 RSA လျှို့ဝှက်ကုဒ်သွင်းမှု နှင့်အတူ</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{သင့်စီမံခန့်ခွဲသူက အန္တရာယ်ရှိနိုင်သော နောက်ဆက်တွဲ ၁ ခုကို ပြန်ဖွင့်လိုက်သည်}other{သင့်စီမံခန့်ခွဲသူက အန္တရာယ်ရှိနိုင်သော နောက်ဆက်တွဲ # ခုကို ပြန်ဖွင့်လိုက်သည်}}</translation>
 <translation id="4336434711095810371">ဒေတာအားလုံး ရှင်းထုတ်ရန်</translation>
 <translation id="4336979451636460645">ကွန်ယက်မှတ်စုစာရင်းများအတွက် <ph name="DEVICE_LOG_LINK" /> ကိုကြည့်ပါ</translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> သည် "<ph name="EXTENSION_NAME" />" အက်ပ် နှင့် ဆက်သွယ် လိုသည်</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">သင်သည် ဤဝဘ်ဆိုက်တွင် မှတ်ပုံတင်မထားသော လုံခြုံရေးကီးတစ်ခုကို အသုံးပြုနေသည်</translation>
 <translation id="4788092183367008521">သင့်ကွန်ရက်ချိတ်ဆက်မှုကို စစ်ဆေးပြီး ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="4792711294155034829">ပြဿနာ တစ်ခုကို အစီရင်ခံရန်...</translation>
+<translation id="4794810983896241342">အပ်ဒိတ်များကို <ph name="BEGIN_LINK" />သင့်စီမံခန့်ခွဲသူ<ph name="END_LINK" /> က စီမံပါသည်</translation>
 <translation id="479536056609751218">ဝဘ်စာမျက်နှာ HTML သာလျှင်</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />ဘလူးတုသ် မှတ်တမ်းများ<ph name="END_LINK" />ကို ပူးတွဲပါ (Google ကုမ္ပဏီတွင်း)</translation>
 <translation id="4801448226354548035">အကောင့်များ ဝှက်မည်</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">ဝဘ်ဆိုက်နှစ်ခုကို တစ်ပြိုင်တည်းဖွင့်ကြည့်ရန်အတွက် တဘ်အသစ်တစ်ခု ဖွင့်ပါ</translation>
 <translation id="4909038193460299775">ဤအကောင့်ကို <ph name="DOMAIN" /> က စီမံခန့်ခွဲထားသည့်အတွက် သင့်စာညှပ်များ၊ မှတ်တမ်း၊ စကားဝှက်များနှင့် အခြားဆက်တင်များကို ဤစက်ပစ္စည်းမှ ရှင်းလင်းသွားမည် ဖြစ်သည်။ သို့သော် သင့်ဒေတာများကို သင့် Google အကောင့်တွင် ဆက်လက်သိမ်းဆည်းထားမည်ဖြစ်ပြီး <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" /> ပေါ်တွင် စီမံနိုင်ပါသည်။</translation>
 <translation id="4912643508233590958">နားနေရာမှ နိုးလာ</translation>
+<translation id="4916542008280060967">ဝဘ်ဆိုက်ကို <ph name="FILE_NAME" /> အား တည်းဖြတ်ခွင့်ပြုမလား။</translation>
 <translation id="491691592645955587">လုံခြုံသော ဘရောင်ဇာသို့ ပြောင်းပါ</translation>
 <translation id="4917385247580444890">အားကောင်းသည်</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> သည် ပရိုဂရမ်အဆက်"<ph name="EXTENSION_NAME" />" နှင့် ဆက်သွယ်လိုသည်</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">သတိပြုစရာ</translation>
 <translation id="5018207570537526145">နောက်ဆက်တွဲ ဝဘ်ဆိုက် ဖွင့်ရန်</translation>
 <translation id="5021750053540820849">အပ်ဒိတ် မလုပ်ရသေးပါ</translation>
+<translation id="5026806129670917316">Wi-Fi ဖွင့်ရန်</translation>
 <translation id="5026874946691314267">ဤအရာအား နောက်မပြပါနှင့်</translation>
 <translation id="5027550639139316293">အီးမေးလ် လက်မှတ်</translation>
 <translation id="5027562294707732951">ပရိုဂရမ်အဆက် ပေါင်းထည့်ရန်</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">&amp;JavaScript ခလုတ်ခုံ</translation>
 <translation id="5184209580557088469">ဤအသုံးပြုသူအမည်နှင့် လက်မှတ်တစ်ခု ရှိပြီးဖြစ်သည်</translation>
 <translation id="5184662919967270437">သင့်စက်ပစ္စည်းကို အပ်ဒိတ်လုပ်နေသည်</translation>
+<translation id="5185359571430619712">နောက်ဆက်တွဲများ စစ်ဆေးရန်</translation>
 <translation id="5185386675596372454">နောက်ဆုံး ဗားရှင်းအတွက် ခွင့်ပြုချက်များ နောက်ထပ် လိုအပ်သေး၍  "<ph name="EXTENSION_NAME" />" ကို ပိတ်ခဲ့ရသည်။</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> က ဖိုင်အများအပြားကို ​ဒေါင်းလုဒ်လုပ်လိုသည်</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">အဆင့်မြင့် မျက်တောင်အဖွင့်အပိတ်များ</translation>
 <translation id="5260508466980570042">ဆောရီး၊ သင်၏ စကားဝှက်ကို စိစစ် မရခဲ့ပါ။ ကျေးဇူးပြုပြီး ထပ် စမ်းပါ။</translation>
 <translation id="5261683757250193089">ဝဘ်စတိုးတွင် ဖွင့်ရန်</translation>
+<translation id="5262178194499261222">စကားဝှက်ကို ဖယ်ရှားရန်</translation>
 <translation id="5264148714798105376">၎င်းသည် တစ်မိနစ်ခန့် ကြာနိုင်ပါသည်။</translation>
 <translation id="5264252276333215551">သင်၏ အက်ပ်ကို kiosk မုဒ်မှာ ဖွင့်တင်ရန် ကျေးဇူးပြုပြီး အင်တာနက်သို့ ချိတ်ဆက်ပါ။</translation>
 <translation id="5265562206369321422">အော့ဖ်လိုင်း ဖြစ်နေသည်မှာ တစ်ပတ် ကျော်သွားပြီ</translation>
@@ -3507,6 +3528,7 @@
 <translation id="5833726373896279253">ဒီဆက်တင်များကို ပိုင်ရှင်သာ မွမ်းမံနိုင်သည်:</translation>
 <translation id="5834581999798853053"><ph name="TIME" /> မိနစ်ခန့် ကျန်</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - ကင်မရာ သို့မဟုတ် မိုက်ခရိုဖုန်း ဖမ်းယူရိုက်ကူးခြင်း</translation>
+<translation id="5841270259333717135">အီသာနက် စီစဉ်သတ်မှတ်ရန်</translation>
 <translation id="5842497610951477805">ဘလူးတုသ်ကို ဖွင့်ရန်</translation>
 <translation id="5846200638699387931">ဆက်နွယ်မှု ဝါကျဖွဲ့စည်းပုံ အမှားအယွင်း- <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">ထည့်ပြီးသားဖြစ်သည်</translation>
@@ -3552,6 +3574,7 @@
 <translation id="5900358982890952556">Linux ကို အဆင့်မြှင့်ခြင်း (စမ်းသပ်ဆော့ဖ်ဝဲ)</translation>
 <translation id="5901494423252125310">ပုံနှိပ်စက်တံခါး ပွင့်နေခြင်း</translation>
 <translation id="5901630391730855834">အၐါရောင်</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{သင်သည် အန္တရာယ်ရှိနိုင်သော နောက်ဆက်တွဲ ၁ ခုကို ပြန်ဖွင့်လိုက်သည်}other{သင်သည် အန္တရာယ်ရှိနိုင်သော နောက်ဆက်တွဲ # ခုကို ပြန်ဖွင့်လိုက်သည်}}</translation>
 <translation id="5906655207909574370">အပ်ဒိတ်ပြီးရန် အနည်းငယ်သာလိုပါသည်။ အပ်ဒိတ်လုပ်ခြင်းကို အဆုံးသတ်ရန် သင့်စက်ပစ္စည်းကို ပြန်ဖွင့်ပါ။</translation>
 <translation id="5906732635754427568">ဤအက်ပ်နှင့်ဆက်စပ်သည့် ဒေတာကို ဤစက်ပစ္စည်းထဲမှ ဖယ်ရှားပါမည်။</translation>
 <translation id="5908769186679515905">ဆိုက်များအား Flash ကို ဖွင့်ခြင်းမှ ပိတ်ဆို့ပါ</translation>
@@ -3579,6 +3602,7 @@
 <translation id="59324397759951282"><ph name="MANUFACTURER_NAME" /> မှ USB ကိရိယာ</translation>
 <translation id="5932881020239635062">အမှတ်စဉ်</translation>
 <translation id="5933376509899483611">စံတော်ချိန်</translation>
+<translation id="5935656526031444304">'လုံခြုံစွာ ကြည့်ရှုခြင်း' ကို စီမံရန်</translation>
 <translation id="5938002010494270685">လုံခြုံရေး အဆင့်မြှင့်နိုင်ပါသည်</translation>
 <translation id="5939518447894949180">ပြန်ညှိ</translation>
 <translation id="5941153596444580863">လူကို ထည့်ရန်...</translation>
@@ -3622,6 +3646,7 @@
 <translation id="5993807461461235661">ဤအပ်လုဒ်ကို အသွင်ဝှက်ထားသဖြင့် သင့်အဖွဲ့အစည်း၏ လုံခြုံရေးမူဝါဒများကို ချိုးဖောက်ပါသည်။</translation>
 <translation id="5997337190805127100">ဝဘ်ဆိုက်အသုံးပြုခွင့်အကြောင်း ပိုမိုလေ့လာခြင်း</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' အတွက် ရလဒ် <ph name="RESULT_COUNT" /> ခု</translation>
+<translation id="6002210667729577411">အုပ်စုကို ဝင်းဒိုးအသစ်သို့ ရွှေ့ခြင်း</translation>
 <translation id="6002458620803359783">အသုံးပြုလိုသည့် စကားသံများ</translation>
 <translation id="6006484371116297560">ဂန္ထဝင်</translation>
 <translation id="6007240208646052708">သင်၏ဘာသာစကားကို အသုံးပြုပြီး အသံဖြင့် ရှာဖွေ၍မရပါ။</translation>
@@ -4159,6 +4184,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">ဒက်စ်တော့ ဖြတ်လမ်းလင့်ခ်ကို ပြရန်</translation>
 <translation id="6740234557573873150">ဆိုင်းငံ့ထား<ph name="FILE_NAME" /></translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />သင့်စီမံခန့်ခွဲသူ<ph name="END_LINK" /> က 'လုံခြုံစွာ ကြည့်ရှုခြင်း' ကို ပိတ်လိုက်သည်</translation>
 <translation id="6742339027238151589">script ကို အသုံးပြုနိုင်သည်</translation>
 <translation id="6745592621698551453">ယခု မွမ်းမံပါ</translation>
 <translation id="6746124502594467657">အောက်သို့ရွှေ့ပါ</translation>
@@ -4417,6 +4443,7 @@
     <ph name="BEGIN_BOLD" />သတိပြုရန်-<ph name="END_BOLD" /> ဆင်တူသောအသံ သို့မဟုတ် အသံသွင်းချက်များဖြင့်လည်း သင်၏ Assistant ကို ဝင်သုံးနိုင်ပါသည်။ Voice Match ခွင့်ပြုချက်ကို 'Assistant ဆက်တင်များ' တွင် နောက်မှ ဖယ်ရှားနိုင်ပါသည်။</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">ဖော်ပြပါ အမည်ရှိ စက်ကိရိယာများနှင့် ဒေတာများ အလဲအလှယ်ပြုရန်- <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">အပ်ဒိတ်များလုပ်ပြီးသည့်အခါ စက် ပြန်လည်စတင်မည်။</translation>
 <translation id="7098389117866926363">USB-C ကိရိယာ (ကျောဘက် ဘယ် ပို့တ်)</translation>
 <translation id="7098447629416471489">သိမ်းဆည်းထားသော အခြားရှာဖွေရေးအင်ဂျင်များကို ဤနေရာတွင် တွေ့ရပါမည်</translation>
 <translation id="7099337801055912064">ကြီးမားသည့် PPD ကို ဖွင့်၍မရပါ။ ခွင့်ပြုထားသည့် အကြီးဆုံးအရွယ်အစားသည် ၂၅၀ ကီလိုဘိုက် ဖြစ်သည်။</translation>
@@ -4889,6 +4916,7 @@
 <translation id="7766807826975222231">လေ့လာ ကြည့်ရှုပါ</translation>
 <translation id="7766838926148951335">ခွင့်ပြုချက်များကို လက်ခံရန်</translation>
 <translation id="7769672763586021400">မော်ဒယ်နံပါတ်</translation>
+<translation id="7770651108375708429">Wi-Fi ချိတ်ဆက်မှုဖြုတ်ရန်</translation>
 <translation id="7771452384635174008">အပြင်အဆင်</translation>
 <translation id="7772032839648071052">စကားစုဝှက်ကို အတည်ပြုရန်</translation>
 <translation id="7772127298218883077">အကြောင်း <ph name="PRODUCT_NAME" /></translation>
@@ -5047,6 +5075,7 @@
 <translation id="7939412583708276221">မည်သို့ပင်ဖြစ်စေ သိမ်းရန်</translation>
 <translation id="7942349550061667556">အနီရောင်</translation>
 <translation id="7943837619101191061">တည်နေရာ ထည့်ပေးရန်...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{ကျိုးပေါက်ထားသည့် စကားဝှက် ၁ ခု}other{ကျိုးပေါက်ထားသည့် စကားဝှက် # ခု}}</translation>
 <translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" သည် ချိတ်ဆက်လိုသည်</translation>
 <translation id="7946586320617670168">မူရင်းနေရာသည် လုံခြုံရပါမည်</translation>
 <translation id="794676567536738329">ခွင့်ပြုချက်များ အတည်ပြု</translation>
@@ -5145,6 +5174,7 @@
 <translation id="8059417245945632445">&amp;စက်ပစ္စည်းများ စစ်ဆေးရန်</translation>
 <translation id="8059456211585183827">သိမ်းဆည်းရန် ပုံနှိပ်စက်တစ်ခုမျှ မရှိပါ။</translation>
 <translation id="8063235345342641131">မူရင်းအစိမ်းရောင်ချန်နယ်ပုံ</translation>
+<translation id="8063535366119089408">ဖိုင်ကို ကြည့်ရန်</translation>
 <translation id="8064671687106936412">သော့:</translation>
 <translation id="8068253693380742035">လက်မှတ်ထိုးဝင်ရန် ထိပါ</translation>
 <translation id="8068809649322155577">ဤသို့လုပ်ဆောင်ခြင်းက <ph name="SITE_GROUP_NAME" /> သိမ်းထားသည့် ဒေတာ၊ ကွတ်ကီးအားလုံး၊ ၎င်းအောက်ရှိ ဝဘ်ဆိုက်မှန်သမျှနှင့် ၎င်းထည့်သွင်းထားသော အက်ပ်များကို ရှင်းလင်းလိုက်ပါမည်။</translation>
@@ -5210,6 +5240,7 @@
 <translation id="8152091997436726702">ပရင်တာ မှတ်ပုံတင်ခြင်း အချိန်ကုန်သွဦးပါသည်။ ပရင်တာတစ်ခု မှတ်ပုံတင်ရန်၊ ပရင်တာပေါ်တွင် မှတ်ပုံတင်ခြင်း အတည်ပြုရပါမည်။</translation>
 <translation id="8154790740888707867">ဖိုင်  မရှိ</translation>
 <translation id="815491593104042026">အူးပ်စ်! အထောက်အထား စိစစ်မှုမှာ မလုံခြုံသော URL (<ph name="BLOCKED_URL" />) ကို အသုံးပြုရန် စီစဉ်ထားခဲ့၍ မအောင်မြင်ခဲ့ပါ။ ကျေးဇူးပြုပြီး သင်၏ စီမံအုပ်ချုပ်သူကို ဆက်သွယ်ပါ။</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{ကျိုးပေါက်ထားသည့် စကားဝှက် မရှိပါ}=1{ကျိုးပေါက်ထားသည့် စကားဝှက် {COUNT} ခု}other{ကျိုးပေါက်ထားသည့် စကားဝှက် {COUNT} ခု}}</translation>
 <translation id="8157704005178149728">ကြီးကြပ်မှုကို စနစ်ထည့်သွင်းနေသည်</translation>
 <translation id="8158117992543756526">ဤစက်သည် <ph name="MONTH_AND_YEAR" /> တွင် ဆော့ဖ်ဝဲနှင့် လုံခြုံရေး အပ်ဒိတ်များကို အလိုအလျောက် မရရှိတော့ပါ။ <ph name="LINK_BEGIN" />ပိုမိုလေ့လာရန်<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">ယုံကြည်မှုလက်မှတ် မှားယွင်းတပ်ဆင်မှု</translation>
@@ -5263,6 +5294,7 @@
 <translation id="8226742006292257240">သင့် ကွန်ပျူတာ အတွက် သတ်မှတ်လိုက်သည့် ကျပန်း ထုတ်လုပ်ပေးခဲ့သည့် TPM စကားလုံးကို အောက်မှာ ဖေါ်ပြလိုက်သည်:</translation>
 <translation id="8227119283605456246">ပူးတွဲဖိုင်</translation>
 <translation id="8230134520748321204"><ph name="ORIGIN" /> အတွက် စကားဝှက်ကို သိမ်းဆည်းလိုပါသလား။</translation>
+<translation id="8233762480744368479">အင်တာနက် ဆက်တင်များ</translation>
 <translation id="8234795456569844941">ကျွန်ုပ်တို့၏ အင်ဂျင်နီယာများက ဤပြဿနာကို ဖြေရှင်းနိုင်ရန် ကူညီပေးပါ။ ပရိုဖိုင်မှားယွင်းကြောင်းမက်ဆေ့ဂျ်ကို မရရှိမီ ဖြစ်ပျက်ခဲ့ပုံကို ကျွန်ုပ်တို့အား ပြောပါ−</translation>
 <translation id="8236123533334037984">လုံခြုံရေး အတည်ပြုချက်အတွက် သင့်အဖွဲ့အစည်းက ဤအပ်လုဒ်ကို စကင်ဖတ်နေသည်။</translation>
 <translation id="8236917170563564587">၎င်းအစား ဤတဘ်ကို မျှဝေရန်</translation>
@@ -5600,6 +5632,7 @@
 <translation id="8688579245973331962">သင့်အမည်ကို မတွေ့ဘူးလား?</translation>
 <translation id="8688591111840995413">စကားဝှက် မကောင်းပါ</translation>
 <translation id="8688672835843460752">ရနိုင်သည်</translation>
+<translation id="8691418731028620688">Wi-Fi ချိတ်ဆက်ရန်</translation>
 <translation id="8695825812785969222">တည်နေရာ &amp;ဖွင့်ရန်...</translation>
 <translation id="869884720829132584">အပလီကေးရှင်း မီနူး</translation>
 <translation id="869891660844655955">သက်တမ်း ကုန်ဆုံးရက်</translation>
@@ -5759,6 +5792,7 @@
 <translation id="8872187374998143710">Plugin VM ကို အသုံးပြုရန် သင့်စက်ကို ပြန်လည်စတင်ပါ။</translation>
 <translation id="8872777911145321141">သင်၏ပကတိအသွင်စက်နှင့် ဒေတာများကို ဝဘ်ဆိုက်က အသုံးပြုလိုသည့်အခါ မေးမြန်းရန် (အကြံပြုထားသည်)</translation>
 <translation id="8874184842967597500">ချိတ်ဆက် မထား</translation>
+<translation id="8875775314572167244">အီသာနက် ဆက်တင်များ</translation>
 <translation id="8876307312329369159">အစမ်းသုံးချိန်အတွင်း ဤဆက်တင်ကို ပြောင်း၍မရနိုင်ပါ။</translation>
 <translation id="8877448029301136595">[မိဘ ဒါရိုက်ထရီ]</translation>
 <translation id="8878384954777710821">Plugin VM ကို ဖယ်ရှားနေသည်...</translation>
@@ -5800,6 +5834,7 @@
 <translation id="892706138619340876">အချို့ဆက်တင်များကို ပြန်လည်သတ်မှတ်ထားပါသည်</translation>
 <translation id="8930351635855238750">စာမျက်နှာကို ပြန်လည်စတင်ပြီးသည့်အခါတွင် ကွတ်ကီးဆက်တင်အသစ်များ သက်ရောက်မှုရှိမည်</translation>
 <translation id="8931394284949551895">စက်ပစ္စည်းအသစ်များ</translation>
+<translation id="8931475688782629595">သင်စင့်ခ်လုပ်သည့် အရာများကို စီမံရန်</translation>
 <translation id="8932894639908691771">'ခလုတ်သုံးခြင်း' ရွေးစရာများ</translation>
 <translation id="8933960630081805351">&amp;တွေ့ရှိချက် ထဲမှာ ပြရန်</translation>
 <translation id="8934732568177537184">ဆက်လုပ်ရန်</translation>
@@ -5957,6 +5992,7 @@
 <translation id="9148126808321036104">ထပ်ပြီး လက်မှတ်ထိုး ဝင်ရန်</translation>
 <translation id="9149866541089851383">တည်းဖြတ်ရန်...</translation>
 <translation id="9150045010208374699">သင့်ကင်မရာအား အသုံးပြုမည်</translation>
+<translation id="9150429437595727962">Wi-Fi ဆက်တင်များ</translation>
 <translation id="9153934054460603056">အထောက်အထား နှင့် စကားဝှက် သိမ်းရန်</translation>
 <translation id="9154194610265714752">မွမ်းမံပြီး</translation>
 <translation id="91568222606626347">အလွယ်သုံး ဖန်တီးရန်</translation>
@@ -6018,6 +6054,7 @@
 <translation id="945522503751344254">အကြံပြုချက် ပေးပို့မည်</translation>
 <translation id="947329552760389097">&amp;စာမျက်နှာအတွင်းရှိ အရာများကို စစ်ဆေးရန်</translation>
 <translation id="952992212772159698">ဖွင့်မသုံးရသေး</translation>
+<translation id="956500788634395331">အန္တရာယ်ရှိနိုင်သော နောက်ဆက်တွဲများမှ သင့်ကို ကာကွယ်ပေးသည်</translation>
 <translation id="957960681186851048">ဤဝဘ်ဆိုက်သည် ဖိုင်အမြောက်အများကို အလိုအလျောက် ဒေါင်းလုဒ်လုပ်ရန် ကြိုးပမ်းခဲ့သည်</translation>
 <translation id="9580706199804957">Google ဝန်ဆောင်မှုများနှင့် ချိတ်ဆက်၍မရပါ</translation>
 <translation id="960719561871045870">မိုဘိုင်းဝန်ဆောင်မှုဌာန ကုဒ်</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 385129e..493532c4 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Opslaginstellingen voor Adobe Flash Player</translation>
 <translation id="1274997165432133392">Cookies en andere sitegegevens</translation>
 <translation id="1280820357415527819">Mobiele netwerken zoeken</translation>
+<translation id="1280965841156951489">Bestanden bewerken</translation>
 <translation id="1282420830958964167">De door je ouder ingestelde limiet voor '<ph name="APP_NAME" />' is bereikt. Je kunt de app morgen <ph name="TIME_LIMIT" /> gebruiken.</translation>
 <translation id="1285320974508926690">Deze site nooit vertalen</translation>
 <translation id="1285484354230578868">Gegevens opslaan in je Google Drive-account</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Donkerpaars</translation>
 <translation id="1692799361700686467">Cookies van meerdere sites toegestaan.</translation>
 <translation id="1697150536837697295">Kunst</translation>
+<translation id="1697686431566694143">Bestand bewerken</translation>
 <translation id="1698122934742150150">Alleen huidige incognitosessie</translation>
 <translation id="1698650002254827833">De lijst met apps kan niet worden geladen. Probeer het opnieuw.</translation>
 <translation id="1701062906490865540">Deze persoon verwijderen</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Geen componenten geïnstalleerd.</translation>
 <translation id="1932098463447129402">Niet vóór</translation>
 <translation id="1933809209549026293">Sluit een muis of een toetsenbord aan. Als je een Bluetooth-apparaat gebruikt, zorg je ervoor dat dit kan worden gekoppeld.</translation>
+<translation id="1936931585862840749">Gebruik een cijfer om aan te geven hoeveel exemplaren er moeten worden afgedrukt (1-<ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Kan type containerarchitectuur <ph name="ARCHITECTURE_CONTAINER" /> niet importeren met dit apparaat. Dit apparaat is <ph name="ARCHITECTURE_DEVICE" />. Je kunt proberen deze container te herstellen op een ander apparaat of je kunt toegang krijgen tot bestanden in deze containerimage door ze te openen in de app Bestanden.</translation>
 <translation id="1938351510777341717">Externe opdracht</translation>
 <translation id="1940546824932169984">Verbonden apparaten</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Focus op dit tabblad plaatsen</translation>
 <translation id="2344028582131185878">Automatische downloads</translation>
 <translation id="2345723121311404059">1 pagina naar <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">SODA-service</translation>
 <translation id="2347644257713614136">Het gebruik van Hangouts en Cast for Education valt onder het privacybeleid van Google.</translation>
 <translation id="2348176352564285430">App: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Opnieuw geladen</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Linux herstellen geannuleerd</translation>
 <translation id="2423578206845792524">Af&amp;beelding opslaan als...</translation>
 <translation id="2428510569851653187">Beschrijf wat je aan het doen was toen het tabblad crashte</translation>
+<translation id="2428939361789119025">Wifi uitschakelen</translation>
 <translation id="2431027948063157455">De Google Assistent kan niet worden geladen. Controleer de netwerkverbinding en probeer het opnieuw.</translation>
 <translation id="2432753757290432042">Linux (bèta) moet worden geüpdatet</translation>
 <translation id="2433452467737464329">Voeg een queryparameter toe aan de URL om de pagina automatisch te laten vernieuwen: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Verzend gebruiks- en diagnostische gegevens. Verbeter je Android-functionaliteit door automatisch diagnostische, apparaat- en app-gebruiksgegevens naar Google te verzenden. Deze gegevens kunnen worden gebruikt om de systeem- en app-stabiliteit te verbeteren en andere optimalisaties mogelijk te maken. Daarnaast zijn bepaalde verzamelde gegevens nuttig voor Google-apps en -partners, zoals Android-ontwikkelaars. Als je de instelling voor aanvullende Web- en app-activiteit hebt ingeschakeld, kunnen deze gegevens worden opgeslagen in je Google-account. <ph name="BEGIN_LINK1" />Meer informatie<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Verbinding toevoegen</translation>
 <translation id="2947605845283690091">Browsen op internet zou snel moeten gaan. Neem nu even de tijd om <ph name="BEGIN_LINK" />je extensies te controleren<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 potentieel schadelijke extensie is uitgeschakeld. Je kunt deze ook verwijderen.}other{# potentieel schadelijke extensies zijn uitgeschakeld. Je kunt ze ook verwijderen.}}</translation>
 <translation id="2948300991547862301">Ga naar <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Een snelle, eenvoudige en beveiligde webbrowser voor het moderne internet.</translation>
 <translation id="2949289451367477459">Locatie gebruiken. Apps en services met locatietoestemming mogen de locatie van dit apparaat gebruiken. Google kan periodiek locatiegegevens verzamelen en deze anoniem gebruiken om de locatienauwkeurigheid en locatiegebaseerde services te verbeteren. <ph name="BEGIN_LINK1" />Meer informatie<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">App installeren?</translation>
 <translation id="3067198360141518313">Deze plugin uitvoeren</translation>
 <translation id="3071624960923923138">Je kunt hier klikken om een nieuw tabblad te openen</translation>
+<translation id="3072775339180057696">Toestaan dat site <ph name="FILE_NAME" /> bekijkt?</translation>
 <translation id="3075874217500066906">Apparaat moet opnieuw worden opgestart om met het Powerwash-proces te beginnen. Na het opnieuw opstarten wordt je gevraagd om te bevestigen dat je wilt doorgaan.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Je inloggegevens zijn verwijderd</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Site kan je camera gebruiken</translation>
 <translation id="3085752524577180175">SOCKS-host</translation>
 <translation id="3088052000289932193">De site gebruikt MIDI</translation>
+<translation id="3088128611727407543">App-profiel voorbereiden…</translation>
 <translation id="3088325635286126843">&amp;Naam wijzigen...</translation>
 <translation id="3089137131053189723">Zoekopdracht gewist</translation>
 <translation id="3090193911106258841">Audio- en video-invoer openen</translation>
@@ -1596,6 +1604,7 @@
     Beschrijving:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome-apps</translation>
+<translation id="3150693969729403281">Veiligheidscheck nu uitvoeren</translation>
 <translation id="3150927491400159470">Geforceerd opnieuw laden</translation>
 <translation id="315116470104423982">Mobiele data</translation>
 <translation id="3151539355209957474">Begintijd</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Inloggen bij Chrome</translation>
 <translation id="3285322247471302225">Nieuw &amp;tabblad</translation>
 <translation id="328571385944182268">Je wachtwoorden opslaan?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> kan <ph name="FILENAME" /> bekijken totdat je alle tabbladen van <ph name="ORIGIN" /> sluit</translation>
 <translation id="3288047731229977326">Extensies die in de ontwikkelaarmodus worden uitgevoerd, kunnen je computer beschadigen. Als je geen ontwikkelaar bent, moet je deze extensies uitschakelen, die in de ontwikkelaarsmodus worden uitgevoerd, om beveiligd te blijven.</translation>
 <translation id="3289856944988573801">Gebruik ethernet of wifi om op updates te controleren.</translation>
 <translation id="3290356915286466215">Niet beveiligd</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Je gegevens voor een aantal websites lezen</translation>
 <translation id="3448086340637592206">Aanvullende voorwaarden van Google Chrome en Chrome OS</translation>
 <translation id="3448492834076427715">Account updaten</translation>
+<translation id="3449393517661170867">Nieuw venster met tabbladen</translation>
 <translation id="3449839693241009168">Druk op <ph name="SEARCH_KEY" /> om opdrachten te verzenden naar <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Bezettingspercentage van inactieve status</translation>
 <translation id="3451332697983754369">Mijn <ph name="DEVICE_TYPE" /> synchroniseren</translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Bedankt voor je feedback. Je bent nu offline en je rapport wordt later verzonden.</translation>
 <translation id="3682824389861648626">Bewegingsdrempel</translation>
 <translation id="3683524264665795342">Verzoek voor scherm delen van <ph name="APP_NAME" /></translation>
+<translation id="3686074530047028092">Education-account</translation>
 <translation id="368789413795732264">Er is een fout opgetreden bij het genereren van het bestand: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Schrijven naar bestanden en mappen die je opent in de app</translation>
 <translation id="3688526734140524629">Kanaal wijzigen</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Delen van webpagina's blokkeren</translation>
 <translation id="3760460896538743390">&amp;Achtergrondpagina controleren</translation>
 <translation id="37613671848467444">Openen in &amp;incognitovenster</translation>
+<translation id="3761556954875533505">Toestaan dat site bestanden bewerkt?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Communiceren met een USB-apparaat}other{Communiceren met # USB-apparaten}}</translation>
 <translation id="3765246971671567135">Kan beleid voor offline demomodus niet lezen.</translation>
 <translation id="3768037234834996183">Je voorkeuren worden gesynchroniseerd…</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Weigeren</translation>
 <translation id="3928570707778085600">Wijzigingen in <ph name="FILE_OR_FOLDER_NAME" /> opslaan?</translation>
 <translation id="3929426037718431833">Deze extensies kunnen informatie op deze site bekijken en wijzigen.</translation>
+<translation id="3930155420525972941">Groep verplaatsen naar nieuw venster</translation>
 <translation id="3930737994424905957">Apparaten zoeken</translation>
 <translation id="3930968231047618417">Achtergrondkleur</translation>
 <translation id="3933283459331715412">Verwijderd wachtwoord voor <ph name="USERNAME" /> herstellen</translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Ik ga akkoord</translation>
 <translation id="413121957363593859">Componenten</translation>
 <translation id="4131410914670010031">Zwart/wit</translation>
+<translation id="4133076602192971179">Open de app om je wachtwoord te wijzigen</translation>
 <translation id="4136203100490971508">Nachtverlichting wordt automatisch uitgeschakeld bij zonsopgang</translation>
 <translation id="41365691917097717">Als je doorgaat, wordt ADB-foutopsporing ingeschakeld om Android-apps te maken en te testen. Let op: Met deze actie sta je toe dat Android-apps worden geïnstalleerd die niet door Google zijn geverifieerd. Als je deze functie wilt uitschakelen, moet je apparaat worden teruggezet op de fabrieksinstellingen.</translation>
 <translation id="4138267921960073861">Gebruikersnamen en foto's weergeven in het inlogscherm</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245"><ph name="LANGUAGE" /> nooit vertalen</translation>
 <translation id="4332976768901252016">Ouderlijk toezicht instellen</translation>
 <translation id="4333854382783149454">PKCS nr. 1 SHA-1 met RSA-encryptie</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Je beheerder heeft 1 potentieel schadelijke extensie weer ingeschakeld}other{Je beheerder heeft # potentieel schadelijke extensies weer ingeschakeld}}</translation>
 <translation id="4336434711095810371">Alle gegevens wissen</translation>
 <translation id="4336979451636460645">Zie voor netwerklogboeken: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> wil communiceren met de app '<ph name="EXTENSION_NAME" />'</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Je gebruikt een beveiligingssleutel die niet is geregistreerd voor deze website</translation>
 <translation id="4788092183367008521">Controleer de netwerkverbinding en probeer het opnieuw.</translation>
 <translation id="4792711294155034829">&amp;Een probleem melden...</translation>
+<translation id="4794810983896241342">Updates worden beheerd door <ph name="BEGIN_LINK" />je beheerder<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Webpagina, alleen HTML</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />Bluetooth-logboeken<ph name="END_LINK" /> toevoegen (voor intern Google-gebruik)</translation>
 <translation id="4801448226354548035">Accounts verbergen</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Een nieuw tabblad openen om op twee sites tegelijk te browsen</translation>
 <translation id="4909038193460299775">Omdat dit account wordt beheerd door <ph name="DOMAIN" />, worden je bladwijzers, geschiedenis, wachtwoorden en andere instellingen gewist van dit apparaat. Je gegevens blijven opgeslagen in je Google-account en kunnen worden beheerd via <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Activeringen vanuit inactief</translation>
+<translation id="4916542008280060967">Toestaan dat site <ph name="FILE_NAME" /> bewerkt?</translation>
 <translation id="491691592645955587">Overschakelen naar een beveiligde browser</translation>
 <translation id="4917385247580444890">Sterk</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> wil communiceren met de extensie '<ph name="EXTENSION_NAME" />'</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Onthouden</translation>
 <translation id="5018207570537526145">Website voor extensie openen</translation>
 <translation id="5021750053540820849">Nog niet geüpdatet</translation>
+<translation id="5026806129670917316">Wifi inschakelen</translation>
 <translation id="5026874946691314267">Dit bericht niet meer weergeven</translation>
 <translation id="5027550639139316293">Certificaat voor e-mail</translation>
 <translation id="5027562294707732951">Extensie toevoegen</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">&amp;JavaScript-console</translation>
 <translation id="5184209580557088469">Er bestaat al een ticket met deze gebruikersnaam</translation>
 <translation id="5184662919967270437">Je apparaat updaten</translation>
+<translation id="5185359571430619712">Extensies controleren</translation>
 <translation id="5185386675596372454">De nieuwste versie van '<ph name="EXTENSION_NAME" />' is uitgeschakeld omdat er meer rechten voor nodig zijn.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> wil meerdere bestanden downloaden</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Slimme aanhalingstekens</translation>
 <translation id="5260508466980570042">Je e-mailadres of wachtwoord kan niet worden geverifieerd. Probeer het opnieuw.</translation>
 <translation id="5261683757250193089">Openen in Web Store</translation>
+<translation id="5262178194499261222">Wachtwoord verwijderen</translation>
 <translation id="5264148714798105376">Dit kan een minuut duren.</translation>
 <translation id="5264252276333215551">Maak verbinding met internet om je app te openen in de kiosmodus.</translation>
 <translation id="5265562206369321422">Langer dan een week offline</translation>
@@ -3507,6 +3528,7 @@
 <translation id="5833726373896279253">Deze instellingen kunnen alleen worden aangepast door de eigenaar:</translation>
 <translation id="5834581999798853053">Ongeveer <ph name="TIME" /> minuten resterend</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" />: camera of microfoon neemt op</translation>
+<translation id="5841270259333717135">Ethernet configureren</translation>
 <translation id="5842497610951477805">Bluetooth inschakelen</translation>
 <translation id="5846200638699387931">Syntaxisfout in relatie: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Al toegevoegd</translation>
@@ -3552,6 +3574,7 @@
 <translation id="5900358982890952556">Linux (bèta) upgraden</translation>
 <translation id="5901494423252125310">Printerklep is open</translation>
 <translation id="5901630391730855834">Geel</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Je hebt 1 potentieel schadelijke extensie weer ingeschakeld}other{Je hebt # potentieel schadelijke extensies weer ingeschakeld}}</translation>
 <translation id="5906655207909574370">Updaten bijna voltooid. Start je apparaat opnieuw op om de update te voltooien.</translation>
 <translation id="5906732635754427568">Gegevens die zijn gekoppeld aan deze app, worden verwijderd van dit apparaat.</translation>
 <translation id="5908769186679515905">Niet toestaan dat sites Flash uitvoeren</translation>
@@ -3581,6 +3604,7 @@
 <translation id="59324397759951282">USB-apparaat van <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Serienummer</translation>
 <translation id="5933376509899483611">Tijdzone</translation>
+<translation id="5935656526031444304">Safe Browsing beheren</translation>
 <translation id="5938002010494270685">Beveiligingsupgrade beschikbaar</translation>
 <translation id="5939518447894949180">Resetten</translation>
 <translation id="5941153596444580863">Persoon toevoegen...</translation>
@@ -3624,6 +3648,7 @@
 <translation id="5993807461461235661">Deze upload is versleuteld en schendt het beveiligingsbeleid van je organisatie.</translation>
 <translation id="5997337190805127100">Meer informatie over sitetoegang</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultaten voor '<ph name="SEARCH_TEXT" />'</translation>
+<translation id="6002210667729577411">Groep verplaatsen naar nieuw venster</translation>
 <translation id="6002458620803359783">Voorkeursstemmen</translation>
 <translation id="6006484371116297560">Klassiek</translation>
 <translation id="6007240208646052708">Gesproken zoekopdracht is niet beschikbaar in jouw taal.</translation>
@@ -4162,6 +4187,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Bureaubladsnelkoppeling weergeven</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> onderbroken</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Je beheerder<ph name="END_LINK" /> heeft Safe Browsing uitgeschakeld</translation>
 <translation id="6742339027238151589">Toegankelijk voor script</translation>
 <translation id="6745592621698551453">Nu updaten</translation>
 <translation id="6746124502594467657">Omlaag</translation>
@@ -4420,6 +4446,7 @@
     <ph name="BEGIN_BOLD" />Houd rekening met het volgende:<ph name="END_BOLD" /> Een vergelijkbare stem of opname kan mogelijk ook toegang krijgen tot je Assistent. Je kunt je toestemming voor Voice Match intrekken door de functie uit te schakelen in de Instellingen voor de Assistent.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Gegevens uitwisselen met de apparaten met de naam: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Het apparaat wordt opnieuw opgestart als de updates zijn voltooid.</translation>
 <translation id="7098389117866926363">USB-C-apparaat (poort links aan de achterkant)</translation>
 <translation id="7098447629416471489">Andere opgeslagen zoekmachines worden hier weergegeven</translation>
 <translation id="7099337801055912064">Grote PPD kan niet worden geladen. Maximum grootte is 250 KB.</translation>
@@ -4892,6 +4919,7 @@
 <translation id="7766807826975222231">Een rondleiding volgen</translation>
 <translation id="7766838926148951335">Rechten accepteren</translation>
 <translation id="7769672763586021400">Model-ID</translation>
+<translation id="7770651108375708429">Verbinding met wifi verbreken</translation>
 <translation id="7771452384635174008">Opmaak</translation>
 <translation id="7772032839648071052">Bevestig de wachtwoordzin</translation>
 <translation id="7772127298218883077">Over <ph name="PRODUCT_NAME" /></translation>
@@ -5049,6 +5077,7 @@
 <translation id="7939412583708276221">Toch bewaren</translation>
 <translation id="7942349550061667556">Rood</translation>
 <translation id="7943837619101191061">Locatie toevoegen...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 gehackt wachtwoord}other{# gehackte wachtwoorden}}</translation>
 <translation id="7945031593909029181"><ph name="CHROME_EXTENSION_NAME" /> wil verbinding maken</translation>
 <translation id="7946586320617670168">Herkomst moet zijn beveiligd</translation>
 <translation id="794676567536738329">Rechten bevestigen</translation>
@@ -5148,6 +5177,7 @@
 <translation id="8059417245945632445">Apparaten &amp;inspecteren</translation>
 <translation id="8059456211585183827">Er kunnen geen printers worden opgeslagen.</translation>
 <translation id="8063235345342641131">Standaard groene avatar</translation>
+<translation id="8063535366119089408">Bestand bekijken</translation>
 <translation id="8064671687106936412">Sleutel:</translation>
 <translation id="8068253693380742035">Tik om in te loggen</translation>
 <translation id="8068809649322155577">Hiermee wis je alle gegevens en cookies die zijn opgeslagen door <ph name="SITE_GROUP_NAME" />, eventuele onderliggende sites en de bijbehorende geïnstalleerde apps.</translation>
@@ -5213,6 +5243,7 @@
 <translation id="8152091997436726702">Er is een time-out opgetreden tijdens de printerregistratie. Als je een printer wilt registreren, moet je de registratie op de printer bevestigen.</translation>
 <translation id="8154790740888707867">Geen bestand</translation>
 <translation id="815491593104042026">De verificatie is mislukt omdat er een onbeveiligde URL (<ph name="BLOCKED_URL" />) wordt gebruikt. Neem contact op met je beheerder.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Geen gehackte wachtwoorden gevonden}=1{{COUNT} gehackt wachtwoord}other{{COUNT} gehackte wachtwoorden}}</translation>
 <translation id="8157704005178149728">Toezicht instellen</translation>
 <translation id="8158117992543756526">Dit apparaat krijgt geen automatische software- en beveiligingsupdates meer sinds <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Meer informatie<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Fout bij het instellen van vertrouwde certificaten</translation>
@@ -5266,6 +5297,7 @@
 <translation id="8226742006292257240">Hieronder staat het willekeurig gegenereerde TPM-wachtwoord dat aan je computer is toegekend:</translation>
 <translation id="8227119283605456246">Bestand bijvoegen</translation>
 <translation id="8230134520748321204">Wachtwoord opslaan voor <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Internetinstellingen</translation>
 <translation id="8234795456569844941">Help onze engineers dit probleem op te lossen. Vertel ons wat er gebeurde vlak voordat het bericht met de profielfout werd weergegeven:</translation>
 <translation id="8236123533334037984">Je organisatie scant deze upload om beveiligingsredenen.</translation>
 <translation id="8236917170563564587">In plaats daarvan dit tabblad delen</translation>
@@ -5603,6 +5635,7 @@
 <translation id="8688579245973331962">Staat je naam er niet bij?</translation>
 <translation id="8688591111840995413">Ongeldig wachtwoord</translation>
 <translation id="8688672835843460752">Beschikbaar</translation>
+<translation id="8691418731028620688">Verbinding maken met wifi</translation>
 <translation id="8695825812785969222">&amp;Locatie openen...</translation>
 <translation id="869884720829132584">Menu 'Applicaties'</translation>
 <translation id="869891660844655955">Vervaldatum</translation>
@@ -5763,6 +5796,7 @@
 <translation id="8872187374998143710">Start je apparaat opnieuw op om Plugin VM te gebruiken.</translation>
 <translation id="8872777911145321141">Vragen als een site je virtualreality-apparaten en -gegevens wil gebruiken (aanbevolen)</translation>
 <translation id="8874184842967597500">Niet verbonden</translation>
+<translation id="8875775314572167244">Ethernet-instellingen</translation>
 <translation id="8876307312329369159">Deze instelling kan niet worden gewijzigd tijdens een demosessie.</translation>
 <translation id="8877448029301136595">[hoofddirectory]</translation>
 <translation id="8878384954777710821">Plugin VM verwijderen…</translation>
@@ -5804,6 +5838,7 @@
 <translation id="892706138619340876">Sommige instellingen zijn gereset</translation>
 <translation id="8930351635855238750">De nieuwe cookie-instellingen worden van kracht nadat de pagina opnieuw is geladen</translation>
 <translation id="8931394284949551895">Nieuwe apparaten</translation>
+<translation id="8931475688782629595">Beheren wat je synchroniseert</translation>
 <translation id="8932894639908691771">Opties voor 'Toegang via schakelaar'</translation>
 <translation id="8933960630081805351">&amp;Toon in Finder</translation>
 <translation id="8934732568177537184">Doorgaan</translation>
@@ -5961,6 +5996,7 @@
 <translation id="9148126808321036104">Opnieuw inloggen</translation>
 <translation id="9149866541089851383">Bewerken...</translation>
 <translation id="9150045010208374699">Je camera gebruiken</translation>
+<translation id="9150429437595727962">Wifi-instellingen</translation>
 <translation id="9153934054460603056">Identiteit en wachtwoord opslaan</translation>
 <translation id="9154194610265714752">Bijgewerkt</translation>
 <translation id="91568222606626347">Snelle link maken…</translation>
@@ -6022,6 +6058,7 @@
 <translation id="945522503751344254">Feedback sturen</translation>
 <translation id="947329552760389097">Elementen &amp;inspecteren</translation>
 <translation id="952992212772159698">Niet geactiveerd</translation>
+<translation id="956500788634395331">Je bent beschermd tegen potentieel schadelijke extensies</translation>
 <translation id="957960681186851048">Deze site heeft geprobeerd automatisch meerdere bestanden te downloaden</translation>
 <translation id="9580706199804957">Kan geen verbinding maken met Google-services</translation>
 <translation id="960719561871045870">Operatorcode</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 161cccd0..7016aff 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Lagringsinnstillinger for Adobe Flash Player</translation>
 <translation id="1274997165432133392">Informasjonskapsler og andre nettstedsdata</translation>
 <translation id="1280820357415527819">Søker etter mobilnettverk</translation>
+<translation id="1280965841156951489">Rediger filer</translation>
 <translation id="1282420830958964167">Du har nådd grensen som foreldrene dine har angitt for «<ph name="APP_NAME" />». Du kan bruke appen i <ph name="TIME_LIMIT" /> i morgen.</translation>
 <translation id="1285320974508926690">Oversett aldri dette nettstedet</translation>
 <translation id="1285484354230578868">lagre data i Google Disk-kontoen din</translation>
@@ -510,6 +511,7 @@
 <translation id="1692210323591458290">Mørk lilla</translation>
 <translation id="1692799361700686467">Informasjonskapsler fra flere nettsteder tillates.</translation>
 <translation id="1697150536837697295">Kunst</translation>
+<translation id="1697686431566694143">Rediger filen</translation>
 <translation id="1698122934742150150">Bare denne inkognitoøkten</translation>
 <translation id="1698650002254827833">Listen over apper kan ikke lastes inn. Prøv på nytt.</translation>
 <translation id="1701062906490865540">Fjern denne personen</translation>
@@ -695,6 +697,7 @@
 <translation id="1931152874660185993">Ingen komponenter er installert.</translation>
 <translation id="1932098463447129402">Ikke før</translation>
 <translation id="1933809209549026293">Du må koble til en mus eller et tastatur. Hvis du bruker en Bluetooth-enhet, må du sjekke at den er klar til å kobles til.</translation>
+<translation id="1936931585862840749">Bruk et tall for å angi hvor mange eksemplarer som skal skrives ut (1–<ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Kan ikke importere beholderarkitekturtypen <ph name="ARCHITECTURE_CONTAINER" /> med denne enheten (<ph name="ARCHITECTURE_DEVICE" />). Du kan prøve å gjenopprette denne beholderen på en annen enhet, eller du kan få tilgang til filene i beholderavbildningen ved å åpne den i Filer-appen.</translation>
 <translation id="1938351510777341717">Ekstern kommando</translation>
 <translation id="1940546824932169984">Tilkoblede enheter</translation>
@@ -990,6 +993,7 @@
 <translation id="2343747224442182863">Fokusér på denne fanen</translation>
 <translation id="2344028582131185878">Automatiske nedlastinger</translation>
 <translation id="2345723121311404059">1 side til <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">SODA Service</translation>
 <translation id="2347644257713614136">Bruk av Hangouts og Cast for Education er underlagt Googles personvernregler.</translation>
 <translation id="2348176352564285430">App: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Lastet inn på nytt</translation>
@@ -1043,6 +1047,7 @@
 <translation id="2422125132043002186">Gjenopprettingen av Linux er avbrutt</translation>
 <translation id="2423578206845792524">Lagre &amp;bildet som...</translation>
 <translation id="2428510569851653187">Beskriv hva du holdt på med da fanen krasjet</translation>
+<translation id="2428939361789119025">Slå av Wi-Fi</translation>
 <translation id="2431027948063157455">Google-assistenten kunne ikke lastes inn. Kontrollér nettverkstilkoblingen din, og prøv på nytt.</translation>
 <translation id="2432753757290432042">Oppdatering av Linux (beta) kreves</translation>
 <translation id="2433452467737464329">Legg til en søkeparameter i nettadressen for å automatisk laste inn siden på nytt: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1460,6 +1465,7 @@
 <translation id="2944060181911631861">Send bruks- og diagnostikkdata. Hjelp til med å gjøre Android-opplevelsen din bedre ved å sende diagnostikk-, enhets- og appbruksdata til Google automatisk. Dette bidrar til å gjøre systemet og appene bedre og mer stabile. Noen aggregerte data hjelper også Google-apper og -partnere, for eksempel Android-utviklere. Hvis du har slått på innstillingen for annen nett- og appaktivitet, kan disse dataene bli lagret i Google-kontoen din. <ph name="BEGIN_LINK1" />Finn ut mer<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Legg til forbindelse</translation>
 <translation id="2947605845283690091">Det skal gå raskt å surfe på nettet. Bruk et øyeblikk på å <ph name="BEGIN_LINK" />sjekke utvidelsene dine<ph name="END_LINK" /> nå.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 potensielt skadelig utvidelse er slått av. Du kan også fjerne den.}other{# potensielt skadelige utvidelser er slått av. Du kan også fjerne dem.}}</translation>
 <translation id="2948300991547862301">Gå til <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">En rask, enkel og sikker nettleser, utviklet for et moderne Internett.</translation>
 <translation id="2949289451367477459">Bruk posisjon. Tillat at apper og tjenester med posisjonstillatelse bruker posisjonen til enheten. Google kan samle inn posisjonsdata med jevne mellomrom og bruke disse dataene til å forbedre posisjonsnøyaktigheten og posisjonsbaserte tjenester på en anonym måte. <ph name="BEGIN_LINK1" />Finn ut mer<ph name="END_LINK1" /></translation>
@@ -1540,6 +1546,7 @@
 <translation id="3067198179881736288">Vil du installere appen?</translation>
 <translation id="3067198360141518313">Kjør dette programtillegget</translation>
 <translation id="3071624960923923138">Du kan klikke her for å åpne en ny fane</translation>
+<translation id="3072775339180057696">Vil du la nettstedet lese <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Du må starte enheten på nytt for å starte powerwash-prosessen. Når enheten er startet på nytt, blir du bedt om å bekrefte at du vil fortsette.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Påloggingsinformasjonen ble slettet</translation>
@@ -1552,6 +1559,7 @@
 <translation id="3085412380278336437">Nettstedet kan bruke kameraet ditt</translation>
 <translation id="3085752524577180175">SOCKS-vert</translation>
 <translation id="3088052000289932193">Nettstedet bruker MIDI</translation>
+<translation id="3088128611727407543">Klargjør app-profilen …</translation>
 <translation id="3088325635286126843">&amp;Gi nytt navn</translation>
 <translation id="3089137131053189723">Søket er slettet</translation>
 <translation id="3090193911106258841">Åpner lyd- og videoinngang</translation>
@@ -1593,6 +1601,7 @@
     Beskrivelse:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome-apper</translation>
+<translation id="3150693969729403281">Kjør sikkerhetssjekk nå</translation>
 <translation id="3150927491400159470">Hard innlasting på nytt</translation>
 <translation id="315116470104423982">Mobildata</translation>
 <translation id="3151539355209957474">Starttid</translation>
@@ -1685,6 +1694,7 @@
 <translation id="3282568296779691940">Logg på Chrome</translation>
 <translation id="3285322247471302225">Ny &amp;fane</translation>
 <translation id="328571385944182268">Vil du lagre passordene dine?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> kommer til å kunne lese <ph name="FILENAME" /> frem til du lukker alle <ph name="ORIGIN" />-faner</translation>
 <translation id="3288047731229977326">Utvidelser som kjører i utviklermodus kan skade datamaskinen din. Hvis du ikke er utvikler, bør du deaktivere disse utvidelsene som kjører i utviklermodus, for å være på den sikre siden.</translation>
 <translation id="3289856944988573801">For å sjekke etter oppdateringer, kan du bruke Ethernet eller Wi-Fi.</translation>
 <translation id="3290356915286466215">Usikret</translation>
@@ -1793,6 +1803,7 @@
 <translation id="344630545793878684">Lesing av dataene dine på en rekke nettsteder</translation>
 <translation id="3448086340637592206">Tilleggsvilkår for Google Chrome og Chrome OS</translation>
 <translation id="3448492834076427715">Oppdater kontoen</translation>
+<translation id="3449393517661170867">Nytt vindu med faner</translation>
 <translation id="3449839693241009168">Trykk på <ph name="SEARCH_KEY" /> for å sende kommandoer til <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Utnyttelsesgrad for hviletilstand</translation>
 <translation id="3451332697983754369">Synkroniser <ph name="DEVICE_TYPE" /></translation>
@@ -1973,6 +1984,7 @@
 <translation id="3681311097828166361">Takk for tilbakemeldingen. Siden du er uten nett akkurat nå, sendes rapporten senere.</translation>
 <translation id="3682824389861648626">Bevegelsesterskel</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" />-forespørsel om skjermdeling</translation>
+<translation id="3686074530047028092">Utdanningskonto</translation>
 <translation id="368789413795732264">Det oppstod en feil under forsøket på å skrive filen: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">skrive til filer og mapper du åpner i appen</translation>
 <translation id="3688526734140524629">Bytt kanal</translation>
@@ -2041,6 +2053,7 @@
 <translation id="3759933321830434300">blokkere deler av nettsider</translation>
 <translation id="3760460896538743390">Inspeksjons- og bakgrunnsside</translation>
 <translation id="37613671848467444">Åpne i &amp;inkognitovindu</translation>
+<translation id="3761556954875533505">Vil du la nettstedet redigere filer?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{kommunisere med én USB-enhet}other{kommunisere med # USB-enheter}}</translation>
 <translation id="3765246971671567135">Kunne ikke lese regelen for demomodus uten nett.</translation>
 <translation id="3768037234834996183">Synkroniserer innstillingene dine ...</translation>
@@ -2139,7 +2152,7 @@
 <translation id="3873423927483480833">Vis PIN-koder</translation>
 <translation id="3873915545594852654">Det oppsto et problem med ARC++.</translation>
 <translation id="3879748587602334249">Nedlastingsbehandling</translation>
-<translation id="3881321138433527084">Safe Browsing er slått av. For å holde deg trygg på nettet, slå det på.</translation>
+<translation id="3881321138433527084">Safe Browsing er slått av. For å holde deg trygg på nettet bør du slå det på.</translation>
 <translation id="3882165008614329320">Eksisterende video fra kamera eller fil</translation>
 <translation id="3886446263141354045">Forespørselen din om å få tilgang til dette nettstedet er sendt til <ph name="NAME" /></translation>
 <translation id="3888550877729210209">Tar notater med <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2176,6 +2189,7 @@
 <translation id="3927932062596804919">Ikke tillat</translation>
 <translation id="3928570707778085600">Vil du lagre endringene i <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Disse utvidelsene kan se og endre informasjonen på dette nettstedet.</translation>
+<translation id="3930155420525972941">Flytt gruppen til et nytt vindu</translation>
 <translation id="3930737994424905957">Leter etter enheter</translation>
 <translation id="3930968231047618417">Bakgrunnsfarge</translation>
 <translation id="3933283459331715412">Gjenopprett slettet passord for <ph name="USERNAME" /></translation>
@@ -2332,6 +2346,7 @@
 <translation id="4130750466177569591">Godta</translation>
 <translation id="413121957363593859">Komponenter</translation>
 <translation id="4131410914670010031">Svarthvitt</translation>
+<translation id="4133076602192971179">Åpne appen for å skifte passord</translation>
 <translation id="4136203100490971508">Nattlys blir slått av automatisk ved soloppgang</translation>
 <translation id="41365691917097717">Hvis du fortsetter, blir ADB-feilsøking slått på for utvikling og testing av Android-apper. Merk at dette gjør det mulig å installere Android-apper som ikke er verifisert av Google, og enheten må tilbakestilles til fabrikkinnstillingene hvis du vil slå av ADB igjen.</translation>
 <translation id="4138267921960073861">Vis brukernavn og bilder på påloggingsskjermen</translation>
@@ -2443,6 +2458,7 @@
 <translation id="4330387663455830245">Oversett aldri <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Konfigurer foreldrekontroll</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 med RSA-kryptering</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Administratoren din har slått på igjen én potensielt skadelig utvidelse}other{Administratoren din har slått på igjen # potensielt skadelige utvidelser}}</translation>
 <translation id="4336434711095810371">Slett alle data</translation>
 <translation id="4336979451636460645">For nettverkslogger, se: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> ønsker å kommunisere med «<ph name="EXTENSION_NAME" />»-appen</translation>
@@ -2749,6 +2765,7 @@
 <translation id="4785719467058219317">Du bruker en sikkerhetsnøkkel som ikke er registrert på dette nettstedet</translation>
 <translation id="4788092183367008521">Sjekk nettverkstilkoblingen din, og prøv på nytt.</translation>
 <translation id="4792711294155034829">&amp;Rapporter et problem</translation>
+<translation id="4794810983896241342">Oppdateringer administreres av <ph name="BEGIN_LINK" />administratoren din<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Nettside – bare HTML</translation>
 <translation id="4798236378408895261">Legg ved <ph name="BEGIN_LINK" />Bluetooth-logger<ph name="END_LINK" /> (Google-internt)</translation>
 <translation id="4801448226354548035">Skjul kontoer</translation>
@@ -2844,6 +2861,7 @@
 <translation id="4908811072292128752">Åpne en ny fane for å surfe på to nettsteder samtidig</translation>
 <translation id="4909038193460299775">Siden denne kontoen administreres av <ph name="DOMAIN" />, slettes bokmerkene, loggen, passordene og andre innstillinger du har, fra denne enheten. Data du har lagret i Google-kontoen din, blir imidlertid værende og kan administreres ved hjelp av <ph name="BEGIN_LINK" />Google Oversikt<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Inaktive oppvåkninger</translation>
+<translation id="4916542008280060967">Vil du la nettstedet redigere <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Bytt til en sikker nettleser</translation>
 <translation id="4917385247580444890">Sterkt</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ønsker å kommunisere med «<ph name="EXTENSION_NAME" />»-utvidelsen</translation>
@@ -2915,6 +2933,7 @@
 <translation id="5017633213534173756">Husk</translation>
 <translation id="5018207570537526145">Åpne nettstedet for utvidelsen</translation>
 <translation id="5021750053540820849">Ikke oppdatert ennå</translation>
+<translation id="5026806129670917316">Slå på Wi-Fi</translation>
 <translation id="5026874946691314267">Ikke vis dette igjen.</translation>
 <translation id="5027550639139316293">E-postsertifikat</translation>
 <translation id="5027562294707732951">Legg til utvidelsen</translation>
@@ -3027,6 +3046,7 @@
 <translation id="5184063094292164363">&amp;JavaScript-konsoll</translation>
 <translation id="5184209580557088469">Det finnes allerede en sak med dette brukernavnet</translation>
 <translation id="5184662919967270437">Oppdaterer enheten</translation>
+<translation id="5185359571430619712">Gå gjennom utvidelser</translation>
 <translation id="5185386675596372454">Den nyeste versjonen av <ph name="EXTENSION_NAME" /> er deaktivert fordi den krever ytterligere tillatelser.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> ber om å laste ned flere filer</translation>
@@ -3077,6 +3097,7 @@
 <translation id="5260334392110301220">Smarte anførselstegn</translation>
 <translation id="5260508466980570042">Beklager, e-postadressen eller passordet kan ikke verifiseres. Prøv på nytt.</translation>
 <translation id="5261683757250193089">Åpne i Nettmarked</translation>
+<translation id="5262178194499261222">Fjern passord</translation>
 <translation id="5264148714798105376">Dette kan ta omtrent ett minutt.</translation>
 <translation id="5264252276333215551">Koble til Internett for å starte appen din i kioskmodus.</translation>
 <translation id="5265562206369321422">Frakoblet i mer enn én uke</translation>
@@ -3502,6 +3523,7 @@
 <translation id="5833726373896279253">Disse innstillingene kan bare modifiseres av eieren:</translation>
 <translation id="5834581999798853053">Omtrent <ph name="TIME" /> minutter igjen</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – kamera- eller mikrofonopptak</translation>
+<translation id="5841270259333717135">Konfigurer Ethernet</translation>
 <translation id="5842497610951477805">Slå Bluetooth av og på</translation>
 <translation id="5846200638699387931">Feil i relasjonssyntaks: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Allerede lagt til</translation>
@@ -3547,6 +3569,7 @@
 <translation id="5900358982890952556">Oppgrader Linux (beta)</translation>
 <translation id="5901494423252125310">Skriverdekselet er åpent</translation>
 <translation id="5901630391730855834">Gul</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Du har slått på igjen én potensielt skadelig utvidelse}other{Du har slått på igjen # potensielt skadelige utvidelser}}</translation>
 <translation id="5906655207909574370">Nå er oppdateringen snart ferdig! Start enheten på nytt for å fullføre oppdateringen.</translation>
 <translation id="5906732635754427568">Data som er tilknyttet denne appen, fjernes fra denne enheten.</translation>
 <translation id="5908769186679515905">Blokkér nettsteder fra å kjøre Flash</translation>
@@ -3576,6 +3599,7 @@
 <translation id="59324397759951282">USB-enhet fra <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Serienummer</translation>
 <translation id="5933376509899483611">Tidssone</translation>
+<translation id="5935656526031444304">Administrer Safe Browsing</translation>
 <translation id="5938002010494270685">En sikkerhetsoppgradering er tilgjengelig</translation>
 <translation id="5939518447894949180">Tilbakestill</translation>
 <translation id="5941153596444580863">Legg til person …</translation>
@@ -3619,6 +3643,7 @@
 <translation id="5993807461461235661">Denne opplastingen er kryptert og bryter sikkerhetsretningslinjene til organisasjonen din.</translation>
 <translation id="5997337190805127100">Finn ut mer om nettstedstilgang</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultater for «<ph name="SEARCH_TEXT" />»</translation>
+<translation id="6002210667729577411">Flytt gruppen til et nytt vindu</translation>
 <translation id="6002458620803359783">Foretrukne stemmer</translation>
 <translation id="6006484371116297560">Klassisk</translation>
 <translation id="6007240208646052708">Talesøk er ikke tilgjengelig på språket ditt.</translation>
@@ -4157,6 +4182,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Vis skrivebordssnarvei</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> er satt på pause</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Administratoren din<ph name="END_LINK" /> har slått av Safe Browsing</translation>
 <translation id="6742339027238151589">Tilgjengelig for skript</translation>
 <translation id="6745592621698551453">Oppdater nå</translation>
 <translation id="6746124502594467657">Flytt ned</translation>
@@ -4415,6 +4441,7 @@
     <ph name="BEGIN_BOLD" />Vær oppmerksom på dette:<ph name="END_BOLD" /> Lignende stemmer eller opptak av stemmen din kan kanskje også brukes for å få tilgang til assistenten din. Du kan fjerne Voice Match-tillatelsen senere ved å slå den av i Assistent-innstillingene.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Utveksle data med enhetene <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Enheten starter på nytt når oppdateringene er fullført.</translation>
 <translation id="7098389117866926363">USB-C-enhet (venstre port på baksiden)</translation>
 <translation id="7098447629416471489">Andre lagrede søkemotorer vises her</translation>
 <translation id="7099337801055912064">Kan ikke laste inn stor PPD. Maksimal størrelse er 250 kB.</translation>
@@ -4538,7 +4565,7 @@
 <translation id="7258225044283673131">Appen svarer ikke. Velg «Tving avslutning» for å lukke appen.</translation>
 <translation id="7258697411818564379">PIN-koden din er lagt til</translation>
 <translation id="7262004276116528033">Verten for denne påloggingstjenesten er <ph name="SAML_DOMAIN" /></translation>
-<translation id="7266898409676782635">Få både <ph name="DEVICE_TYPE" />-tips, -tilbud og -oppdateringer og gi tilbakemeldinger. Du kan avslutte abonnementet når som helst.</translation>
+<translation id="7266898409676782635">Få både tips om, tilbud på og oppdateringer for <ph name="DEVICE_TYPE" />, og gi tilbakemeldinger. Du kan avslutte abonnementet når som helst.</translation>
 <translation id="7268127947535186412">Denne innstillingen administreres av enhetseieren.</translation>
 <translation id="7270858098575133036">Spør når nettsteder vil bruke systemeksklusive meldinger for å få tilgang til MIDI-enheter</translation>
 <translation id="7272674038937250585">Ingen beskrivelse er oppgitt</translation>
@@ -4887,6 +4914,7 @@
 <translation id="7766807826975222231">Få en innføring</translation>
 <translation id="7766838926148951335">Godta tillatelsene</translation>
 <translation id="7769672763586021400">Modell-ID</translation>
+<translation id="7770651108375708429">Koble fra Wi-Fi</translation>
 <translation id="7771452384635174008">Layout</translation>
 <translation id="7772032839648071052">Bekreft passord</translation>
 <translation id="7772127298218883077">Om <ph name="PRODUCT_NAME" /></translation>
@@ -5045,6 +5073,7 @@
 <translation id="7939412583708276221">Behold uansett</translation>
 <translation id="7942349550061667556">Rød</translation>
 <translation id="7943837619101191061">Legg til plassering</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 passord er utsatt for sikkerhetsbrudd}other{# passord er utsatt for sikkerhetsbrudd}}</translation>
 <translation id="7945031593909029181">«<ph name="CHROME_EXTENSION_NAME" />» vil koble til</translation>
 <translation id="7946586320617670168">Opprinnelsen må være sikker</translation>
 <translation id="794676567536738329">Bekreftelse av tillatelser</translation>
@@ -5144,6 +5173,7 @@
 <translation id="8059417245945632445">&amp;Inspiser enheter</translation>
 <translation id="8059456211585183827">Det er ingen skrivere tilgjengelig for lagring.</translation>
 <translation id="8063235345342641131">Grønt standardbrukerbilde</translation>
+<translation id="8063535366119089408">Se filen</translation>
 <translation id="8064671687106936412">Nøkkel:</translation>
 <translation id="8068253693380742035">Trykk for å logge på</translation>
 <translation id="8068809649322155577">Dette sletter alle dataene og informasjonskapslene som er lagret av <ph name="SITE_GROUP_NAME" />, eventuelle underordnede nettsteder og tilhørende apper som er installert.</translation>
@@ -5209,6 +5239,7 @@
 <translation id="8152091997436726702">Skriverregistreringen er tidsavbrutt. Hvis du vil registrere en skriver, må du bekrefte registreringen på skriveren.</translation>
 <translation id="8154790740888707867">Ingen fil</translation>
 <translation id="815491593104042026">Beklager. Autentiseringen mislyktes fordi den var konfigurert til å bruke en usikret nettadresse (<ph name="BLOCKED_URL" />). Ta kontakt med administratoren din.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Fant ingen passord som er utsatt for sikkerhetsbrudd}=1{{COUNT} passord er utsatt for sikkerhetsbrudd}other{{COUNT} passord er utsatt for sikkerhetsbrudd}}</translation>
 <translation id="8157704005178149728">Konfigurerer tilsyn</translation>
 <translation id="8158117992543756526">Denne enheten sluttet å motta automatiske programvare- og sikkerhetsoppdateringer i <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Feil ved konfigurasjon av sertifikattillit</translation>
@@ -5262,6 +5293,7 @@
 <translation id="8226742006292257240">Nedenfor ser du et tilfeldig generert TPM-passord som er tildelt datamaskinen din:</translation>
 <translation id="8227119283605456246">Legg ved fil</translation>
 <translation id="8230134520748321204">Vil du lagre passord for <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Internett-innstillinger</translation>
 <translation id="8234795456569844941">Hjelp programutviklerne våre med å løse dette problemet. Fortell oss hva som skjedde rett før du fikk profilfeilmeldingen:</translation>
 <translation id="8236123533334037984">Organisasjonen din gjennomsøker denne opplastingen for sikkerhetsgodkjenning.</translation>
 <translation id="8236917170563564587">Del denne fanen i stedet</translation>
@@ -5599,6 +5631,7 @@
 <translation id="8688579245973331962">Ser du ikke navnet ditt?</translation>
 <translation id="8688591111840995413">Feil passord</translation>
 <translation id="8688672835843460752">Tilgjengelig</translation>
+<translation id="8691418731028620688">Koble til Wi-Fi</translation>
 <translation id="8695825812785969222">Åpne p&amp;lassering ...</translation>
 <translation id="869884720829132584">Programmeny</translation>
 <translation id="869891660844655955">Utløpsdato</translation>
@@ -5758,6 +5791,7 @@
 <translation id="8872187374998143710">Start enheten på nytt for å bruke Plugin VM.</translation>
 <translation id="8872777911145321141">Spør når nettsteder vil bruke virtuell virkelighet-enhetene eller -dataene dine (anbefales)</translation>
 <translation id="8874184842967597500">Ikke tilkoblet</translation>
+<translation id="8875775314572167244">Ethernet-innstillinger</translation>
 <translation id="8876307312329369159">Denne innstillingen kan ikke endres under en demonstrasjonsøkt.</translation>
 <translation id="8877448029301136595">[overordnet katalog]</translation>
 <translation id="8878384954777710821">Avinstallerer Plugin VM …</translation>
@@ -5799,6 +5833,7 @@
 <translation id="892706138619340876">Tilbakestilte noen innstillinger</translation>
 <translation id="8930351635855238750">Nye innstillinger for informasjonskapsler trer i kraft når du laster inn siden på nytt</translation>
 <translation id="8931394284949551895">Nye enheter</translation>
+<translation id="8931475688782629595">Administrer hva du synkroniserer</translation>
 <translation id="8932894639908691771">Alternativer for brytertilgang</translation>
 <translation id="8933960630081805351">&amp;Vis i Finder</translation>
 <translation id="8934732568177537184">Fortsett</translation>
@@ -5956,6 +5991,7 @@
 <translation id="9148126808321036104">Logg på igjen</translation>
 <translation id="9149866541089851383">Endre</translation>
 <translation id="9150045010208374699">bruke kameraet ditt</translation>
+<translation id="9150429437595727962">Wi-Fi-innstillinger</translation>
 <translation id="9153934054460603056">Lagre identitet og passord</translation>
 <translation id="9154194610265714752">Oppdatert</translation>
 <translation id="91568222606626347">Opprett snarvei</translation>
@@ -6017,6 +6053,7 @@
 <translation id="945522503751344254">Gi tilbakemelding</translation>
 <translation id="947329552760389097">&amp;Undersøk elementer</translation>
 <translation id="952992212772159698">Ikke aktivert</translation>
+<translation id="956500788634395331">Du er beskyttet mot potensielt skadelige utvidelser</translation>
 <translation id="957960681186851048">Dette nettstedet prøvde å laste ned flere filer automatisk</translation>
 <translation id="9580706199804957">Kunne ikke koble til Google-tjenester</translation>
 <translation id="960719561871045870">Operatørkode</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 481a72aa..62406c5 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Ustawienia pamięci Adobe Flash Playera</translation>
 <translation id="1274997165432133392">Pliki cookie i inne dane witryn</translation>
 <translation id="1280820357415527819">Szukam sieci komórkowych</translation>
+<translation id="1280965841156951489">Edytuj pliki</translation>
 <translation id="1282420830958964167">Ustawiony przez rodzica czas korzystania z aplikacji „<ph name="APP_NAME" />” dobiegł końca. Jutro możesz z niej korzystać przez <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Nigdy nie tłumacz tej witryny</translation>
 <translation id="1285484354230578868">Przechowywanie danych na koncie Dysku Google</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Ciemnofioletowy</translation>
 <translation id="1692799361700686467">Pliki cookie z wielu witryn są dozwolone.</translation>
 <translation id="1697150536837697295">Sztuka</translation>
+<translation id="1697686431566694143">Edytuj plik</translation>
 <translation id="1698122934742150150">Tylko w bieżącej sesji incognito</translation>
 <translation id="1698650002254827833">Nie można załadować listy aplikacji. Spróbuj ponownie.</translation>
 <translation id="1701062906490865540">Usuń tę osobę</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Nie zainstalowano żadnych komponentów.</translation>
 <translation id="1932098463447129402">Nie wcześniej niż</translation>
 <translation id="1933809209549026293">Podłącz mysz lub klawiaturę. Jeśli używasz urządzenia Bluetooth, upewnij się, że jest ono gotowe do sparowania.</translation>
+<translation id="1936931585862840749">Wpisz wartość numeryczną, by określić liczbę kopii do wydrukowania (od 1 do <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Kontenera o architekturze <ph name="ARCHITECTURE_CONTAINER" /> nie można zaimportować na tym urządzeniu, które ma architekturę <ph name="ARCHITECTURE_DEVICE" />. Możesz przywrócić ten kontener na innym urządzeniu albo uzyskać dostęp do plików znajdujących się wewnątrz obrazu kontenera, otwierając go w aplikacji Pliki.</translation>
 <translation id="1938351510777341717">Polecenie zewnętrzne</translation>
 <translation id="1940546824932169984">Połączone urządzenia</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Ustaw tę kartę jako aktywną</translation>
 <translation id="2344028582131185878">Pobieranie automatyczne</translation>
 <translation id="2345723121311404059">Jedna strona do: <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Usługa SODA</translation>
 <translation id="2347644257713614136">Korzystanie z Hangouts i Cast for Education podlega Polityce prywatności Google.</translation>
 <translation id="2348176352564285430">Aplikacja: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Załadowano ponownie</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Przywracanie Linuksa zostało anulowane</translation>
 <translation id="2423578206845792524">Zapisz gra&amp;fikę jako...</translation>
 <translation id="2428510569851653187">Opisz, co robiłeś, gdy wystąpiła awaria karty</translation>
+<translation id="2428939361789119025">Wyłączanie sieci Wi-Fi</translation>
 <translation id="2431027948063157455">Nie udało się załadować Asystenta Google. Spróbuj ponownie.</translation>
 <translation id="2432753757290432042">Wymagana aktualizacja Linuksa (Beta)</translation>
 <translation id="2433452467737464329">Aby strona była odświeżana automatycznie, dodaj parametr zapytania w adresie URL: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Wysyłaj dane diagnostyczne oraz informacje o użyciu. Pomóż ulepszyć działanie Androida, wysyłając automatycznie do Google dane diagnostyczne oraz informacje o używaniu urządzenia i aplikacji. Dzięki temu będziemy mogli poprawić stabilność systemu i aplikacji oraz wprowadzić inne ulepszenia. Niektóre dane zbiorcze pomogą nam też udoskonalić aplikacje Google lub zostaną wykorzystane przez naszych partnerów, na przykład deweloperów aplikacji na Androida. Jeśli włączysz ustawienie Dodatkowa aktywność w internecie i aplikacjach, te dane mogą być zapisywane na Twoim koncie Google. <ph name="BEGIN_LINK1" />Więcej informacji<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Dodaj połączenie</translation>
 <translation id="2947605845283690091">Przeglądanie stron internetowych powinno przebiegać bez problemu. Poświęć chwilę na <ph name="BEGIN_LINK" />sprawdzenie swoich rozszerzeń<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{Jedno potencjalnie niebezpieczne rozszerzenie zostało wyłączone. Możesz też je usunąć.}few{# potencjalnie niebezpieczne rozszerzenia zostały wyłączone. Możesz też je usunąć.}many{# potencjalnie niebezpiecznych rozszerzeń zostało wyłączonych. Możesz też je usunąć.}other{# potencjalnie niebezpiecznego rozszerzenia zostało wyłączone. Możesz też je usunąć.}}</translation>
 <translation id="2948300991547862301">Wejdź na <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Szybka, prosta i bezpieczna przeglądarka na miarę współczesnego internetu.</translation>
 <translation id="2949289451367477459">Używanie informacji o lokalizacji. Zezwól na używanie lokalizacji tego urządzenia przez aplikacje i usługi, które mają dostęp do lokalizacji. Google może okresowo gromadzić dane o lokalizacji i używać ich anonimowo, by zwiększyć dokładność lokalizacji oraz usprawnić działanie usług opartych na lokalizacji. <ph name="BEGIN_LINK1" />Więcej informacji<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Zainstalować aplikację?</translation>
 <translation id="3067198360141518313">Uruchom wtyczkę</translation>
 <translation id="3071624960923923138">Kliknij tutaj, by otworzyć nową kartę</translation>
+<translation id="3072775339180057696">Zezwolić witrynie na wyświetlanie pliku <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Aby rozpocząć procedurę Powerwash, musisz ponownie uruchomić urządzenie. Po ponownym uruchomieniu poprosimy Cię o potwierdzenie, że chcesz kontynuować.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Twoje dane logowania zostały usunięte</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Strona może używać kamery</translation>
 <translation id="3085752524577180175">Host SOCKS</translation>
 <translation id="3088052000289932193">Strona używa MIDI</translation>
+<translation id="3088128611727407543">Przygotowuję profil aplikacji…</translation>
 <translation id="3088325635286126843">&amp;Zmień nazwę</translation>
 <translation id="3089137131053189723">Wyszukiwanie zostało wyczyszczone</translation>
 <translation id="3090193911106258841">Otwieram wejście audio i wideo</translation>
@@ -1596,6 +1604,7 @@
     Opis:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Aplikacje Chrome</translation>
+<translation id="3150693969729403281">Sprawdź bezpieczeństwo teraz</translation>
 <translation id="3150927491400159470">Wymuś ponowne załadowanie</translation>
 <translation id="315116470104423982">Mobilna transmisja danych</translation>
 <translation id="3151539355209957474">Czas rozpoczęcia</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Zaloguj się w Chrome</translation>
 <translation id="3285322247471302225">Nowa &amp;karta</translation>
 <translation id="328571385944182268">Zapisywać Twoje hasła?</translation>
+<translation id="328785681103589998">Witryna <ph name="ORIGIN" /> będzie mogła wyświetlać plik <ph name="FILENAME" />, dopóki nie zamkniesz wszystkich jej kart<ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Rozszerzenia działające w trybie dewelopera mogą uszkodzić Twój komputer. Jeśli nie jesteś deweloperem, wyłącz je dla bezpieczeństwa.</translation>
 <translation id="3289856944988573801">Jeśli chcesz sprawdzić aktualizacje, użyj Ethernetu lub Wi-Fi.</translation>
 <translation id="3290356915286466215">Niezabezpieczona</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Odczyt Twoich danych na kilku stronach internetowych</translation>
 <translation id="3448086340637592206">Dodatkowe warunki korzystania z Google Chrome i Chrome OS</translation>
 <translation id="3448492834076427715">Aktualizuj konto</translation>
+<translation id="3449393517661170867">Nowe okno z kartami</translation>
 <translation id="3449839693241009168">Naciśnij klawisz <ph name="SEARCH_KEY" />, aby wysłać polecenia do rozszerzenia <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Stan bezczynności – procentowo</translation>
 <translation id="3451332697983754369">Synchronizuj moje urządzenie z <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Dziękujemy za opinię. Jesteś teraz offline, więc Twoje zgłoszenie zostanie wysłane później.</translation>
 <translation id="3682824389861648626">Próg ruchu</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> – żądanie udostępnienia ekranu</translation>
+<translation id="3686074530047028092">Konto edukacyjne</translation>
 <translation id="368789413795732264">Wystąpił błąd podczas próby zapisu pliku: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Zapisywanie danych w plikach i folderach otwieranych w aplikacji</translation>
 <translation id="3688526734140524629">Zmień kanał</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Blokowanie części stron internetowych</translation>
 <translation id="3760460896538743390">Sprawdź &amp;stronę tła</translation>
 <translation id="37613671848467444">Otwórz w oknie &amp;incognito</translation>
+<translation id="3761556954875533505">Zezwolić witrynie na edytowanie plików?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Komunikuje się z urządzeniem USB}few{Komunikuje się z # urządzeniami USB}many{Komunikuje się z # urządzeniami USB}other{Komunikuje się z # urządzenia USB}}</translation>
 <translation id="3765246971671567135">Nie udało się odczytać zasad trybu demonstracyjnego offline.</translation>
 <translation id="3768037234834996183">Synchronizuję ustawienia...</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Odmawiaj</translation>
 <translation id="3928570707778085600">Zapisać zmiany w: <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Te rozszerzenia mogą odczytywać i zmieniać informacje na tej stronie.</translation>
+<translation id="3930155420525972941">Przenieś grupę do nowego okna</translation>
 <translation id="3930737994424905957">Szukam urządzeń</translation>
 <translation id="3930968231047618417">Kolor tła</translation>
 <translation id="3933283459331715412">Przywróć usunięte hasło użytkownika <ph name="USERNAME" /></translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Zgadzam się</translation>
 <translation id="413121957363593859">Komponenty</translation>
 <translation id="4131410914670010031">Czarno-biały</translation>
+<translation id="4133076602192971179">Otwórz aplikację, by zmienić hasło</translation>
 <translation id="4136203100490971508">Podświetlenie nocne wyłączy się automatycznie o wschodzie słońca</translation>
 <translation id="41365691917097717">Jeśli będziesz kontynuować, włączone zostanie debugowanie ADB do tworzenia i testowania aplikacji na Androida. Pamiętaj, że to działanie wiąże się z zezwoleniem na instalowanie aplikacji na Androida, które nie zostały zweryfikowane przez Google, a do wyłączenia tej funkcji konieczne jest przywrócenie ustawień fabrycznych.</translation>
 <translation id="4138267921960073861">Pokaż nazwy użytkowników i zdjęcia na stronie logowania</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Nigdy nie tłumacz z tego języka: <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Konfigurowanie kontroli rodzicielskiej</translation>
 <translation id="4333854382783149454">PKCS #1, SHA-1 z szyfrowaniem RSA</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Twój Administrator ponownie włączył 1 potencjalnie niebezpieczne rozszerzenie}few{Twój administrator ponownie włączył # potencjalnie niebezpieczne rozszerzenia}many{Twój administrator ponownie włączył # potencjalnie niebezpiecznych rozszerzeń}other{Twój administrator ponownie włączył # potencjalnie niebezpiecznego rozszerzenia}}</translation>
 <translation id="4336434711095810371">Wyczyść wszystkie dane</translation>
 <translation id="4336979451636460645">Dzienniki sieciowe są dostępne tutaj: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> chce nawiązać połączenie z aplikacją „<ph name="EXTENSION_NAME" />”</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Używasz klucza bezpieczeństwa, który nie jest zarejestrowany w tej witrynie</translation>
 <translation id="4788092183367008521">Sprawdź połączenie sieciowe i spróbuj jeszcze raz.</translation>
 <translation id="4792711294155034829">&amp;Zgłaszanie problemu...</translation>
+<translation id="4794810983896241342">Aktualizacjami zarządza <ph name="BEGIN_LINK" />Twój administrator<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Strona internetowa, tylko kod HTML</translation>
 <translation id="4798236378408895261">Dołącz <ph name="BEGIN_LINK" />dzienniki Bluetooth<ph name="END_LINK" /> (na użytek wewnętrzny Google)</translation>
 <translation id="4801448226354548035">Ukryj konta</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Otwórz nową kartę, by przeglądać dwie strony naraz</translation>
 <translation id="4909038193460299775">Ponieważ to konto jest zarządzane przez <ph name="DOMAIN" />, Twoje zakładki, historia, hasła i inne ustawienia zostaną usunięte z tego urządzenia. Twoje dane pozostaną zapisane na koncie Google. Możesz nimi zarządzać w <ph name="BEGIN_LINK" />Panelu Google<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Wyjścia z nieaktywności</translation>
+<translation id="4916542008280060967">Zezwolić witrynie na edytowanie pliku <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Przełącz się na bezpieczną przeglądarkę</translation>
 <translation id="4917385247580444890">Silny</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> chce nawiązać połączenie z rozszerzeniem „<ph name="EXTENSION_NAME" />”</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Zapamiętaj</translation>
 <translation id="5018207570537526145">Otwórz stronę rozszerzeń</translation>
 <translation id="5021750053540820849">Jeszcze nie zaktualizowano</translation>
+<translation id="5026806129670917316">Włączanie sieci Wi-Fi</translation>
 <translation id="5026874946691314267">Nie pokazuj więcej tego komunikatu</translation>
 <translation id="5027550639139316293">Certyfikat poczty e-mail</translation>
 <translation id="5027562294707732951">Dodaj rozszerzenie</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">Konsola &amp;JavaScript</translation>
 <translation id="5184209580557088469">Istnieje już bilet przypisany do tej nazwy użytkownika</translation>
 <translation id="5184662919967270437">Aktualizuję urządzenie</translation>
+<translation id="5185359571430619712">Sprawdź rozszerzenia</translation>
 <translation id="5185386675596372454">Najnowsza wersja rozszerzenia „<ph name="EXTENSION_NAME" />” została wyłączona, ponieważ wymaga więcej uprawnień.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> chce pobrać wiele plików</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Inteligentne cudzysłowy</translation>
 <translation id="5260508466980570042">Niestety, nie udało się zweryfikować Twojego adresu e-mail lub hasła. Spróbuj ponownie.</translation>
 <translation id="5261683757250193089">Otwórz w Chrome Web Store</translation>
+<translation id="5262178194499261222">Usuń hasło</translation>
 <translation id="5264148714798105376">To może potrwać około minuty.</translation>
 <translation id="5264252276333215551">Aby uruchomić aplikację w trybie kiosku, połącz się z internetem.</translation>
 <translation id="5265562206369321422">Offline od ponad tygodnia</translation>
@@ -3507,6 +3528,7 @@
 <translation id="5833726373896279253">Tylko właściciel może zmodyfikować te ustawienia:</translation>
 <translation id="5834581999798853053">Zostało około <ph name="TIME" /> min</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – nagrywanie kamerą lub mikrofonem</translation>
+<translation id="5841270259333717135">Konfiguracja sieci Ethernet</translation>
 <translation id="5842497610951477805">Włącz Bluetooth</translation>
 <translation id="5846200638699387931">Błąd składni relacji: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Już dodano</translation>
@@ -3552,6 +3574,7 @@
 <translation id="5900358982890952556">Uaktualnij Linuksa (Beta)</translation>
 <translation id="5901494423252125310">Otwarte drzwiczki drukarki</translation>
 <translation id="5901630391730855834">Żółty</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Ponownie włączyłeś 1 potencjalnie niebezpieczne rozszerzenie}few{Ponownie włączyłeś # potencjalnie niebezpieczne rozszerzenia}many{Ponownie włączyłeś # potencjalnie niebezpiecznych rozszerzeń}other{Ponownie włączyłeś # potencjalnie niebezpiecznego rozszerzenia}}</translation>
 <translation id="5906655207909574370">Już prawie gotowe. Uruchom ponownie urządzenie, by zakończyć aktualizację.</translation>
 <translation id="5906732635754427568">Dane powiązane z tą aplikacją zostaną usunięte z urządzenia.</translation>
 <translation id="5908769186679515905">Zablokuj uruchamianie Flasha na stronach</translation>
@@ -3581,6 +3604,7 @@
 <translation id="59324397759951282">Urządzenie USB firmy <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Numer seryjny</translation>
 <translation id="5933376509899483611">Strefa czasowa</translation>
+<translation id="5935656526031444304">Zarządzaj Bezpiecznym przeglądaniem</translation>
 <translation id="5938002010494270685">Dostępna aktualizacja zabezpieczeń</translation>
 <translation id="5939518447894949180">Resetuj</translation>
 <translation id="5941153596444580863">Dodaj osobę...</translation>
@@ -3624,6 +3648,7 @@
 <translation id="5993807461461235661">Te przesyłane dane są zaszyfrowanie i naruszają zasady bezpieczeństwa obowiązujące w Twojej organizacji.</translation>
 <translation id="5997337190805127100">Więcej informacji o uprawnieniach dostępu do stron</translation>
 <translation id="6000758707621254961">Wyniki wyszukiwania dla zapytania „<ph name="SEARCH_TEXT" />”: <ph name="RESULT_COUNT" /></translation>
+<translation id="6002210667729577411">Przenieś grupę do nowego okna</translation>
 <translation id="6002458620803359783">Preferowane głosy</translation>
 <translation id="6006484371116297560">Klasyczny</translation>
 <translation id="6007240208646052708">Wyszukiwanie głosowe jest niedostępne w Twoim języku.</translation>
@@ -4162,6 +4187,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Pokaż skrót na pulpicie</translation>
 <translation id="6740234557573873150">Wstrzymano pobieranie <ph name="FILE_NAME" /></translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Twój administrator<ph name="END_LINK" /> wyłączył Bezpieczne przeglądanie</translation>
 <translation id="6742339027238151589">Dostępny dla skryptu</translation>
 <translation id="6745592621698551453">Aktualizuj teraz</translation>
 <translation id="6746124502594467657">W dół</translation>
@@ -4420,6 +4446,7 @@
     <ph name="BEGIN_BOLD" />Pamiętaj:<ph name="END_BOLD" /> Osoby, które mają podobny głos lub użyją nagrania, również mogą uzyskać dostęp do Asystenta. Uprawnienie do używania funkcji Voice Match możesz później wyłączyć w Ustawieniach Asystenta.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Wymiana danych z urządzeniami o nazwach: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Po ukończeniu aktualizacji urządzenie uruchomi się ponownie.</translation>
 <translation id="7098389117866926363">Urządzenie USB-C (lewy port z tyłu)</translation>
 <translation id="7098447629416471489">Tutaj pojawią się inne zapisane wyszukiwarki</translation>
 <translation id="7099337801055912064">Nie można załadować pliku PPD, bo jest zbyt duży. Maksymalny rozmiar to 250 kB.</translation>
@@ -4892,6 +4919,7 @@
 <translation id="7766807826975222231">Obejrzyj prezentację</translation>
 <translation id="7766838926148951335">Zaakceptuj uprawnienia</translation>
 <translation id="7769672763586021400">Identyfikator modelu</translation>
+<translation id="7770651108375708429">Rozłączanie się z siecią Wi-Fi</translation>
 <translation id="7771452384635174008">Układ</translation>
 <translation id="7772032839648071052">Potwierdź hasło</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> – informacje</translation>
@@ -5050,6 +5078,7 @@
 <translation id="7939412583708276221">Zachowaj mimo to</translation>
 <translation id="7942349550061667556">Czerwony</translation>
 <translation id="7943837619101191061">Dodaj lokalizację...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{Jedno przejęte hasło}few{# przejęte hasła}many{# przejętych haseł}other{# przejętego hasła}}</translation>
 <translation id="7945031593909029181">„<ph name="CHROME_EXTENSION_NAME" />” chce się połączyć</translation>
 <translation id="7946586320617670168">Źródło musi być bezpieczne</translation>
 <translation id="794676567536738329">Potwierdź uprawnienia</translation>
@@ -5149,6 +5178,7 @@
 <translation id="8059417245945632445">&amp;Sprawdź urządzenia</translation>
 <translation id="8059456211585183827">Nie ma dostępnych drukarek do zapisania.</translation>
 <translation id="8063235345342641131">Domyślny zielony awatar</translation>
+<translation id="8063535366119089408">Wyświetl plik</translation>
 <translation id="8064671687106936412">Klucz:</translation>
 <translation id="8068253693380742035">Kliknij, by się zalogować</translation>
 <translation id="8068809649322155577">Spowoduje to usunięcie wszystkich danych i plików cookie zapisanych przez grupę <ph name="SITE_GROUP_NAME" />, należące do niej strony i jej zainstalowane aplikacje.</translation>
@@ -5214,6 +5244,7 @@
 <translation id="8152091997436726702">Upłynął limit czasu rejestracji drukarki. Aby ją zarejestrować, musisz potwierdzić na niej rejestrację.</translation>
 <translation id="8154790740888707867">Brak pliku</translation>
 <translation id="815491593104042026">Ups, uwierzytelnianie nie powiodło się, bo zostało skonfigurowane do używania niezabezpieczonego URL-a (<ph name="BLOCKED_URL" />). Skontaktuj się z administratorem.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Nie znaleziono przejętych haseł}=1{{COUNT} przejęte hasło}few{{COUNT} przejęte hasła}many{{COUNT} przejętych haseł}other{{COUNT} przejętego hasła}}</translation>
 <translation id="8157704005178149728">Konfiguruję nadzorowanie…</translation>
 <translation id="8158117992543756526">To urządzenie nie otrzymuje już automatycznych aktualizacji zabezpieczeń i oprogramowania od: <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Błąd podczas ustawiania zaufania do certyfikatu</translation>
@@ -5267,6 +5298,7 @@
 <translation id="8226742006292257240">Poniżej znajduje się losowo wygenerowane hasło modułu TPM, które zostało przypisane do Twojego komputera:</translation>
 <translation id="8227119283605456246">Załącz plik</translation>
 <translation id="8230134520748321204">Zapisać hasło do: <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Ustawienia internetu</translation>
 <translation id="8234795456569844941">Pomóż naszym inżynierom rozwiązać ten problem. Powiedz nam, co się działo tuż przed wyświetleniem się komunikatu o błędzie profilu:</translation>
 <translation id="8236123533334037984">Twoja organizacja skanuje to przesyłanie, by zatwierdzić jego zgodność z zasadami bezpieczeństwa.</translation>
 <translation id="8236917170563564587">Udostępnij tę kartę</translation>
@@ -5604,6 +5636,7 @@
 <translation id="8688579245973331962">Nie widzisz swojej nazwy?</translation>
 <translation id="8688591111840995413">Nieprawidłowe hasło</translation>
 <translation id="8688672835843460752">Dostępne</translation>
+<translation id="8691418731028620688">Łączenie się z siecią Wi-Fi</translation>
 <translation id="8695825812785969222">Otwórz &amp;lokalizację</translation>
 <translation id="869884720829132584">Menu aplikacji</translation>
 <translation id="869891660844655955">Data wygaśnięcia</translation>
@@ -5763,6 +5796,7 @@
 <translation id="8872187374998143710">Aby użyć Plugin VM, uruchom ponownie urządzenie.</translation>
 <translation id="8872777911145321141">Pytaj, gdy strona chce korzystać z urządzeń i danych rzeczywistości wirtualnej (zalecane)</translation>
 <translation id="8874184842967597500">Brak połączenia</translation>
+<translation id="8875775314572167244">Ustawienia sieci Ethernet</translation>
 <translation id="8876307312329369159">Tego ustawienia nie można zmienić w sesji demonstracyjnej.</translation>
 <translation id="8877448029301136595">[katalog główny]</translation>
 <translation id="8878384954777710821">Odinstalowuję Plugin VM...</translation>
@@ -5804,6 +5838,7 @@
 <translation id="892706138619340876">Niektóre ustawienia zostały zresetowane</translation>
 <translation id="8930351635855238750">Nowe ustawienia plików cookie zostaną zastosowane po ponownym załadowaniu strony</translation>
 <translation id="8931394284949551895">Nowe urządzenia</translation>
+<translation id="8931475688782629595">Zarządzanie synchronizacją</translation>
 <translation id="8932894639908691771">Opcje Switch Access</translation>
 <translation id="8933960630081805351">&amp;Pokaż w Finderze</translation>
 <translation id="8934732568177537184">Dalej</translation>
@@ -5961,6 +5996,7 @@
 <translation id="9148126808321036104">Zaloguj się ponownie</translation>
 <translation id="9149866541089851383">Edytuj...</translation>
 <translation id="9150045010208374699">Korzystanie z Twojej kamery</translation>
+<translation id="9150429437595727962">Ustawienia Wi-Fi</translation>
 <translation id="9153934054460603056">Zapisz tożsamość i hasło</translation>
 <translation id="9154194610265714752">Zaktualizowano</translation>
 <translation id="91568222606626347">Utwórz skrót...</translation>
@@ -6022,6 +6058,7 @@
 <translation id="945522503751344254">Wyślij zgłoszenie</translation>
 <translation id="947329552760389097">&amp;Sprawdź elementy</translation>
 <translation id="952992212772159698">Nie aktywowano</translation>
+<translation id="956500788634395331">Masz ochronę przed potencjalnie niebezpiecznymi rozszerzeniami</translation>
 <translation id="957960681186851048">Ta strona próbowała pobrać automatycznie wiele plików</translation>
 <translation id="9580706199804957">Nie udało się połączyć z usługami Google</translation>
 <translation id="960719561871045870">Kod operatora</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 51d047ef..b71dd90 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Configurações de armazenamento do Adobe Flash Player</translation>
 <translation id="1274997165432133392">Cookies e outros dados do site</translation>
 <translation id="1280820357415527819">Pesquisando redes móveis</translation>
+<translation id="1280965841156951489">Editar arquivos</translation>
 <translation id="1282420830958964167">O limite no app <ph name="APP_NAME" /> definido pelo seu pai/mãe chegou ao fim. Você poderá usá-lo amanhã por <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Nunca traduzir este site</translation>
 <translation id="1285484354230578868">Armazenar dados em sua conta do Google Drive</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Roxo-escuro</translation>
 <translation id="1692799361700686467">Cookies de vários sites foram permitidos.</translation>
 <translation id="1697150536837697295">Arte</translation>
+<translation id="1697686431566694143">Editar arquivo</translation>
 <translation id="1698122934742150150">Apenas a sessão anônima atual</translation>
 <translation id="1698650002254827833">Não é possível carregar a lista de apps. Tente novamente.</translation>
 <translation id="1701062906490865540">Remover esta pessoa</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Nenhum componente instalado.</translation>
 <translation id="1932098463447129402">Não antes</translation>
 <translation id="1933809209549026293">Conecte um mouse ou um teclado. Se você está usando um dispositivo com Bluetooth, certifique-se de que ele esteja pronto para ser pareado.</translation>
+<translation id="1936931585862840749">Use um número para indicar quantas cópias serão impressas (1 a <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Não é possível importar o tipo de arquitetura de contêiner <ph name="ARCHITECTURE_CONTAINER" /> com este dispositivo, que é <ph name="ARCHITECTURE_DEVICE" />. Tente restaurar esse contêiner em um dispositivo diferente ou acesse os arquivos que estão dentro desta imagem do contêiner abrindo-os no app Arquivos.</translation>
 <translation id="1938351510777341717">Comando externo</translation>
 <translation id="1940546824932169984">Dispositivos conectados</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Focar esta guia</translation>
 <translation id="2344028582131185878">Downloads automáticos</translation>
 <translation id="2345723121311404059">1 página para <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Serviço SODA</translation>
 <translation id="2347644257713614136">O uso do Hangouts e do Cast for Education é regido pela Política de Privacidade do Google.</translation>
 <translation id="2348176352564285430">App: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Atualizada</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Restauração do Linux cancelada</translation>
 <translation id="2423578206845792524">&amp;Salvar imagem como...</translation>
 <translation id="2428510569851653187">Descrever o que você estava fazendo quando a guia travou</translation>
+<translation id="2428939361789119025">Desativar o Wi-Fi</translation>
 <translation id="2431027948063157455">Não foi possível carregar o Google Assistente. Verifique sua conexão de rede e tente novamente.</translation>
 <translation id="2432753757290432042">Atualização do Linux (Beta) obrigatória</translation>
 <translation id="2433452467737464329">Adicione um parâmetro de consulta ao URL para atualizar automaticamente a página: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Envie dados de uso e diagnóstico. Ajude a melhorar sua experiência com o Android enviando automaticamente ao Google dados de diagnóstico, de uso de apps e do dispositivo. Eles ajudarão a melhorar o sistema, a estabilidade de apps e muito mais. Alguns dados agregados também ajudarão os apps do Google e os nossos parceiros, como os desenvolvedores Android. Se a configuração "Atividade na Web e de apps adicional" estiver ativada, esses dados poderão ser salvos na sua Conta do Google. <ph name="BEGIN_LINK1" />Saiba mais<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Adicionar conexão</translation>
 <translation id="2947605845283690091">A navegação da Web deverá ser rápida. Aproveite para <ph name="BEGIN_LINK" />verificar suas extensões<ph name="END_LINK" /> agora.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 extensão possivelmente nociva foi desativada. Você também pode removê-la.}one{# extensão possivelmente nociva foi desativada. Você também pode removê-la.}other{# extensões possivelmente nocivas foram desativadas. Você também pode removê-las.}}</translation>
 <translation id="2948300991547862301">Ir para a página <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Um navegador da Web rápido, simples e seguro, desenvolvido para a Web moderna.</translation>
 <translation id="2949289451367477459">Usar local. Deixe que apps e serviços com permissão de localização usem o local do dispositivo. O Google pode coletar dados de local periodicamente e usá-los de forma anônima para melhorar a precisão de local e os serviços com base na localização. <ph name="BEGIN_LINK1" />Saiba mais<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Instalar app?</translation>
 <translation id="3067198360141518313">Executar este plug-in</translation>
 <translation id="3071624960923923138">Você pode clicar aqui para abrir uma nova guia</translation>
+<translation id="3072775339180057696">Permitir que o site veja <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">É necessária uma reinicialização para iniciar o processo Powerwash. Após a reinicialização, solicitaremos que você confirme que deseja continuar.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Seus dados de login foram excluídos</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">O site pode usar sua câmera</translation>
 <translation id="3085752524577180175">Host SOCKS</translation>
 <translation id="3088052000289932193">O site está usando um dispositivo MIDI</translation>
+<translation id="3088128611727407543">Preparando perfil de app…</translation>
 <translation id="3088325635286126843">&amp;Renomear...</translation>
 <translation id="3089137131053189723">Pesquisa apagada</translation>
 <translation id="3090193911106258841">Acessando entrada de áudio e vídeo</translation>
@@ -1596,6 +1604,7 @@
     Descrição:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">apps do Chrome</translation>
+<translation id="3150693969729403281">Executar confirmação de segurança</translation>
 <translation id="3150927491400159470">Recarregamento forçado</translation>
 <translation id="315116470104423982">Dados do celular</translation>
 <translation id="3151539355209957474">Horário de início</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Fazer login no Google Chrome</translation>
 <translation id="3285322247471302225">Nova &amp;guia</translation>
 <translation id="328571385944182268">Salvar senhas?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> poderá ver <ph name="FILENAME" /> até que você feche todas as guias de <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Extensões executadas no modo de desenvolvedor podem prejudicar o computador. Se você não for desenvolvedor, para sua segurança, desative essas extensões que estão sendo executadas no modo de desenvolvedor.</translation>
 <translation id="3289856944988573801">Para verificar se há atualizações, utilize Ethernet ou Wi-Fi.</translation>
 <translation id="3290356915286466215">Não protegida</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Leia seus dados em uma série de websites</translation>
 <translation id="3448086340637592206">Termos adicionais do Google Chrome e do Chrome OS</translation>
 <translation id="3448492834076427715">Atualizar conta</translation>
+<translation id="3449393517661170867">Nova janela com guias</translation>
 <translation id="3449839693241009168">Pressione <ph name="SEARCH_KEY" /> para enviar comandos para <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Porcentagem de ocupação em estado de inatividade</translation>
 <translation id="3451332697983754369">Sincronizar meu <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Agradecemos seu feedback. Você está off-line no momento. Seu relatório será enviado mais tarde.</translation>
 <translation id="3682824389861648626">Limite de movimento</translation>
 <translation id="3683524264665795342">Solicitação de compartilhamento da tela do <ph name="APP_NAME" /></translation>
+<translation id="3686074530047028092">Conta do Education</translation>
 <translation id="368789413795732264">Ocorreu um erro ao tentar gravar o arquivo: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Realizar gravações em arquivos e pastas que você abre no aplicativo</translation>
 <translation id="3688526734140524629">Mudar de canal</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Bloquear partes das páginas da Web</translation>
 <translation id="3760460896538743390">Inspecionar página de &amp;fundo</translation>
 <translation id="37613671848467444">Abrir em &amp;janela anônima</translation>
+<translation id="3761556954875533505">Permitir que o site edite arquivos?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Comunicar-se com um dispositivo USB}one{Comunicar-se com # dispositivos USB}other{Comunicar-se com # dispositivos USB}}</translation>
 <translation id="3765246971671567135">Não foi possível ler a política do modo de demonstração off-line.</translation>
 <translation id="3768037234834996183">Sincronizando suas preferências...</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Negar</translation>
 <translation id="3928570707778085600">Salvar alterações em <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Estas extensões podem ver e mudar as informações neste site.</translation>
+<translation id="3930155420525972941">Mover grupo para nova janela</translation>
 <translation id="3930737994424905957">Procurando dispositivos</translation>
 <translation id="3930968231047618417">Cor do plano de fundo</translation>
 <translation id="3933283459331715412">Restaurar senha excluída de <ph name="USERNAME" /></translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Aceito</translation>
 <translation id="413121957363593859">Componentes</translation>
 <translation id="4131410914670010031">Preto e branco</translation>
+<translation id="4133076602192971179">Abra o app para mudar sua senha</translation>
 <translation id="4136203100490971508">O Modo noturno será desativado automaticamente ao amanhecer</translation>
 <translation id="41365691917097717">Se você continuar, a depuração do adb será ativada para a criação e o teste de apps para Android. Essa ação permite a instalação de apps para Android que não foram verificados pelo Google. Para desativar, será necessária uma redefinição para a configuração original.</translation>
 <translation id="4138267921960073861">Mostrar nomes de usuários e fotos na tela de login</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Nunca traduzir <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Configurar o controle dos pais</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 com criptografia RSA</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{O administrador reativou 1 extensão possivelmente nociva}one{O administrador reativou # extensão possivelmente nociva}other{O administrador reativou # extensões possivelmente nocivas}}</translation>
 <translation id="4336434711095810371">Limpar todos os dados</translation>
 <translation id="4336979451636460645">Para registros de rede, consulte: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> deseja se comunicar com o aplicativo "<ph name="EXTENSION_NAME" />"</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Você está usando uma chave de segurança que não está registrada neste site</translation>
 <translation id="4788092183367008521">Verifique sua conexão de rede e tente novamente.</translation>
 <translation id="4792711294155034829">&amp;Informar um problema...</translation>
+<translation id="4794810983896241342">As atualizações são gerenciadas pelo <ph name="BEGIN_LINK" />seu administrador<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Página da web, somente HTML</translation>
 <translation id="4798236378408895261">Anexar <ph name="BEGIN_LINK" />registros de Bluetooth<ph name="END_LINK" /> (interno do Google)</translation>
 <translation id="4801448226354548035">Ocultar contas</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Abra uma nova guia para navegar em dois sites de uma vez</translation>
 <translation id="4909038193460299775">Como essa conta é gerenciada por <ph name="DOMAIN" />, seus favoritos, histórico, senhas e outras configurações serão excluídos desse dispositivo. No entanto, seus dados permanecerão armazenados na sua Conta do Google e poderão ser gerenciados no <ph name="BEGIN_LINK" />Painel do Google<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Ativações do estado ocioso</translation>
+<translation id="4916542008280060967">Permitir que o site edite <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Mudar para um navegador seguro</translation>
 <translation id="4917385247580444890">Forte</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> deseja se comunicar com a extensão "<ph name="EXTENSION_NAME" />"</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Lembrar</translation>
 <translation id="5018207570537526145">Abrir o site da extensão</translation>
 <translation id="5021750053540820849">Ainda não atualizada</translation>
+<translation id="5026806129670917316">Ativar o Wi-Fi</translation>
 <translation id="5026874946691314267">Não mostrar isto novamente</translation>
 <translation id="5027550639139316293">Certificado de e-mail</translation>
 <translation id="5027562294707732951">Adicionar extensão</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">&amp;Console JavaScript</translation>
 <translation id="5184209580557088469">Já existe um tíquete com esse nome de usuário</translation>
 <translation id="5184662919967270437">Atualizando o dispositivo</translation>
+<translation id="5185359571430619712">Revisar extensões</translation>
 <translation id="5185386675596372454">A versão mais recente de "<ph name="EXTENSION_NAME" />" foi desativada porque requer mais permissões.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422">Solicitação do download de vários arquivos feita por <ph name="ORIGIN" /></translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Aspas inglesas</translation>
 <translation id="5260508466980570042">Não foi possível confirmar seu e-mail ou senha. Tente novamente.</translation>
 <translation id="5261683757250193089">Abrir na Web Store</translation>
+<translation id="5262178194499261222">Remover senha</translation>
 <translation id="5264148714798105376">Isso pode levar aproximadamente um minuto.</translation>
 <translation id="5264252276333215551">Conecte-se à Internet para iniciar seu aplicativo no modo quiosque.</translation>
 <translation id="5265562206369321422">Off-line há mais de uma semana</translation>
@@ -3508,6 +3529,7 @@
 <translation id="5833726373896279253">Estas definições somente poderão ser alteradas pelo proprietário:</translation>
 <translation id="5834581999798853053">Cerca de <ph name="TIME" /> minutos restantes</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Gravação de câmera ou microfone</translation>
+<translation id="5841270259333717135">Configurar ethernet</translation>
 <translation id="5842497610951477805">Ativar Bluetooth</translation>
 <translation id="5846200638699387931">Erro de sintaxe na relação: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Já adicionada</translation>
@@ -3553,6 +3575,7 @@
 <translation id="5900358982890952556">Fazer upgrade do Linux (Beta)</translation>
 <translation id="5901494423252125310">A porta da impressora está aberta</translation>
 <translation id="5901630391730855834">Amarelo</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Você reativou 1 extensão possivelmente nociva}one{Você reativou # extensão possivelmente nociva}other{Você reativou # extensões possivelmente nocivas}}</translation>
 <translation id="5906655207909574370">Atualização quase concluída. Reinicie o dispositivo para concluí-la.</translation>
 <translation id="5906732635754427568">Os dados associados a este app serão removidos deste dispositivo.</translation>
 <translation id="5908769186679515905">Impedir que sites executem Flash</translation>
@@ -3582,6 +3605,7 @@
 <translation id="59324397759951282">Dispositivo USB de <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Serial</translation>
 <translation id="5933376509899483611">Fuso horário</translation>
+<translation id="5935656526031444304">Gerenciar "Navegação segura"</translation>
 <translation id="5938002010494270685">Atualização de segurança disponível</translation>
 <translation id="5939518447894949180">Redefinir</translation>
 <translation id="5941153596444580863">Adicionar pessoa...</translation>
@@ -3625,6 +3649,7 @@
 <translation id="5993807461461235661">Este upload está criptografado e viola as políticas de segurança da sua organização.</translation>
 <translation id="5997337190805127100">Saiba mais sobre o acesso aos sites</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultados para "<ph name="SEARCH_TEXT" />"</translation>
+<translation id="6002210667729577411">Mover grupo para nova janela</translation>
 <translation id="6002458620803359783">Vozes preferidas</translation>
 <translation id="6006484371116297560">Clássico</translation>
 <translation id="6007240208646052708">A pesquisa por voz no seu idioma não está disponível.</translation>
@@ -4164,6 +4189,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Mostrar atalho na área de trabalho</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> pausado</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Seu administrador<ph name="END_LINK" /> desativou o "Navegação segura"</translation>
 <translation id="6742339027238151589">Acessível ao script</translation>
 <translation id="6745592621698551453">Atualizar agora</translation>
 <translation id="6746124502594467657">Mover para baixo</translation>
@@ -4422,6 +4448,7 @@
     <ph name="BEGIN_BOLD" />Lembre-se:<ph name="END_BOLD" /> é possível que uma voz semelhante ou uma gravação consiga acessar seu Assistente. Você pode retirar a permissão do Voice Match posteriormente desativando-o nas configurações do Assistente.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Trocar dados com os dispositivos chamados: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">O dispositivo será reiniciado quando as atualizações forem concluídas.</translation>
 <translation id="7098389117866926363">Dispositivo USB-C (porta traseira da esquerda)</translation>
 <translation id="7098447629416471489">Outros mecanismos de pesquisa salvos serão exibidos aqui</translation>
 <translation id="7099337801055912064">Não é possível carregar um PPD grande. O tamanho máximo é 250 KB.</translation>
@@ -4894,6 +4921,7 @@
 <translation id="7766807826975222231">Fazer o tour</translation>
 <translation id="7766838926148951335">Aceitar permissões</translation>
 <translation id="7769672763586021400">Código do modelo</translation>
+<translation id="7770651108375708429">Desconectar Wi-Fi</translation>
 <translation id="7771452384635174008">Layout</translation>
 <translation id="7772032839648071052">Confirmar senha</translation>
 <translation id="7772127298218883077">Sobre o <ph name="PRODUCT_NAME" /></translation>
@@ -5052,6 +5080,7 @@
 <translation id="7939412583708276221">Manter assim mesmo</translation>
 <translation id="7942349550061667556">Vermelho</translation>
 <translation id="7943837619101191061">Adicionar local...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 senha comprometida}one{# senha comprometida}other{# senhas comprometidas}}</translation>
 <translation id="7945031593909029181">A extensão "<ph name="CHROME_EXTENSION_NAME" />" deseja se conectar a</translation>
 <translation id="7946586320617670168">A origem precisa ser segura</translation>
 <translation id="794676567536738329">Confirmar permissões</translation>
@@ -5151,6 +5180,7 @@
 <translation id="8059417245945632445">&amp;Inspecionar dispositivos</translation>
 <translation id="8059456211585183827">Não há impressoras disponíveis para salvar.</translation>
 <translation id="8063235345342641131">Avatar verde padrão</translation>
+<translation id="8063535366119089408">Ver arquivo</translation>
 <translation id="8064671687106936412">Chave:</translation>
 <translation id="8068253693380742035">Toque para fazer login</translation>
 <translation id="8068809649322155577">Isso removerá todos os dados e cookies armazenados por <ph name="SITE_GROUP_NAME" />, os sites relacionados e os apps instalados dele.</translation>
@@ -5216,6 +5246,7 @@
 <translation id="8152091997436726702">O tempo limite de registro da impressora expirou. Para registrar uma impressora, você deve confirmar o registro na impressora.</translation>
 <translation id="8154790740888707867">Nenhum arquivo</translation>
 <translation id="815491593104042026">Falha na autenticação, porque ela foi configurada para usar um URL não seguro (<ph name="BLOCKED_URL" />). Entre em contato com o administrador.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Não foram encontradas senhas comprometidas}=1{{COUNT} senha comprometida}one{{COUNT} senha comprometida}other{{COUNT} senhas comprometidas}}</translation>
 <translation id="8157704005178149728">Configurando a supervisão</translation>
 <translation id="8158117992543756526">Este dispositivo parou de receber atualizações automáticas de software e segurança em <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Erro nas configurações de confiança do certificado</translation>
@@ -5269,6 +5300,7 @@
 <translation id="8226742006292257240">A senha abaixo foi gerada de forma aleatória e atribuída ao seu computador:</translation>
 <translation id="8227119283605456246">Anexar arquivo</translation>
 <translation id="8230134520748321204">Salvar senha para <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Configurações da Internet</translation>
 <translation id="8234795456569844941">Ajude nossos engenheiros a corrigir esse problema. Conte-nos o que aconteceu logo antes de você receber a mensagem de erro de perfil:</translation>
 <translation id="8236123533334037984">A organização está verificando a segurança do upload antes de aprová-lo.</translation>
 <translation id="8236917170563564587">Compartilhar esta guia</translation>
@@ -5606,6 +5638,7 @@
 <translation id="8688579245973331962">Não encontra seu nome?</translation>
 <translation id="8688591111840995413">Senha incorreta</translation>
 <translation id="8688672835843460752">Disponível</translation>
+<translation id="8691418731028620688">Conectar Wi-Fi</translation>
 <translation id="8695825812785969222">Abrir &amp;local...</translation>
 <translation id="869884720829132584">Menu Aplicativos</translation>
 <translation id="869891660844655955">Validade</translation>
@@ -5765,6 +5798,7 @@
 <translation id="8872187374998143710">Reinicie o dispositivo para usar o Plugin VM.</translation>
 <translation id="8872777911145321141">Perguntar quando um site quiser usar seus dispositivos e dados de realidade virtual (recomendado)</translation>
 <translation id="8874184842967597500">Não conectado</translation>
+<translation id="8875775314572167244">Configurações de ethernet</translation>
 <translation id="8876307312329369159">Não é possível alterar essa configuração em uma sessão de demonstração.</translation>
 <translation id="8877448029301136595">[diretório pai]</translation>
 <translation id="8878384954777710821">Desinstalando o Plugin VM...</translation>
@@ -5806,6 +5840,7 @@
 <translation id="892706138619340876">Algumas configurações foram redefinidas</translation>
 <translation id="8930351635855238750">Novas configurações de cookies entrarão em vigor depois que a página for atualizada</translation>
 <translation id="8931394284949551895">Novos dispositivos</translation>
+<translation id="8931475688782629595">Gerenciar o que é sincronizado</translation>
 <translation id="8932894639908691771">Opções do acesso com interruptor</translation>
 <translation id="8933960630081805351">&amp;Mostrar no Finder</translation>
 <translation id="8934732568177537184">Continuar</translation>
@@ -5963,6 +5998,7 @@
 <translation id="9148126808321036104">Faça login novamente</translation>
 <translation id="9149866541089851383">Editar...</translation>
 <translation id="9150045010208374699">Usar câmera</translation>
+<translation id="9150429437595727962">Configurações do Wi-Fi</translation>
 <translation id="9153934054460603056">Salvar identidade e senha</translation>
 <translation id="9154194610265714752">Atualizado</translation>
 <translation id="91568222606626347">Criar atalho...</translation>
@@ -6024,6 +6060,7 @@
 <translation id="945522503751344254">Enviar comentários</translation>
 <translation id="947329552760389097">&amp;Inspecionar elementos</translation>
 <translation id="952992212772159698">Desativado</translation>
+<translation id="956500788634395331">Você tem proteção contra extensões possivelmente nocivas</translation>
 <translation id="957960681186851048">Este site tentou fazer o download de vários arquivos automaticamente</translation>
 <translation id="9580706199804957">Não foi possível conectar-se aos serviços do Google</translation>
 <translation id="960719561871045870">Código da operadora</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 9b13816..c808b7f 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Definições de armazenamento do Adobe Flash Player</translation>
 <translation id="1274997165432133392">Cookies e outros dados do site</translation>
 <translation id="1280820357415527819">A pesquisar redes móveis…</translation>
+<translation id="1280965841156951489">Editar ficheiros</translation>
 <translation id="1282420830958964167">O limite na aplicação "<ph name="APP_NAME" />" que um dos teus pais definiu esgotou-se. Amanhã, podes utilizá-la durante <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Nunca traduzir este site</translation>
 <translation id="1285484354230578868">Armazenar dados na sua conta Google Drive</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Roxo escuro</translation>
 <translation id="1692799361700686467">Permitidos cookies de vários sites.</translation>
 <translation id="1697150536837697295">Arte</translation>
+<translation id="1697686431566694143">Editar ficheiro</translation>
 <translation id="1698122934742150150">Apenas para a sessão no modo de navegação anónima atual</translation>
 <translation id="1698650002254827833">Não é possível carregar a lista de aplicações. Tente novamente.</translation>
 <translation id="1701062906490865540">Remover esta pessoa</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Não existem componentes instalados.</translation>
 <translation id="1932098463447129402">Não anterior a</translation>
 <translation id="1933809209549026293">Ligue um rato ou um teclado. Se estiver a utilizar um dispositivo Bluetooth, certifique-se de que está preparado para sincronizar.</translation>
+<translation id="1936931585862840749">Utilize um número para indicar as cópias a imprimir (1 a <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Não é possível importar o tipo de arquitetura de contentor <ph name="ARCHITECTURE_CONTAINER" /> com este dispositivo cuja arquitetura é <ph name="ARCHITECTURE_DEVICE" />. Pode tentar restaurar este contentor para um dispositivo diferente ou pode aceder aos ficheiros contidos na imagem deste contentor através da aplicação Ficheiros.</translation>
 <translation id="1938351510777341717">Comando externo</translation>
 <translation id="1940546824932169984">Dispositivos associados</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Focar este separador</translation>
 <translation id="2344028582131185878">Transferências automáticas</translation>
 <translation id="2345723121311404059">1 página para <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Serviço SODA</translation>
 <translation id="2347644257713614136">A utilização do Hangouts e do Cast for Education é regida pela Política de Privacidade da Google.</translation>
 <translation id="2348176352564285430">Aplicação: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Atualizada.</translation>
@@ -1045,6 +1049,7 @@
 <translation id="2422125132043002186">Restauro do Linux cancelado</translation>
 <translation id="2423578206845792524">Guard&amp;ar imagem como...</translation>
 <translation id="2428510569851653187">Descreva o que estava a fazer quando o separador falhou</translation>
+<translation id="2428939361789119025">Desligar o Wi-Fi</translation>
 <translation id="2431027948063157455">Não foi possível carregar o Assistente Google. Verifique a sua ligação à rede e tente novamente.</translation>
 <translation id="2432753757290432042">É necessária a atualização do Linux (Beta).</translation>
 <translation id="2433452467737464329">Adicione um parâmetro de consulta ao URL para atualizar automaticamente a página: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1462,6 +1467,7 @@
 <translation id="2944060181911631861">Envie dados de utilização e diagnóstico. Ajude a melhorar a experiência Android ao enviar automaticamente dados de diagnóstico, de utilização do dispositivo e das aplicações para a Google. Deste modo, ajudará a melhorar a estabilidade das aplicações e do sistema, entre outras melhorias. Alguns dados agregados também ajudarão as aplicações e os parceiros Google, como os programadores Android. Se a definição Atividade da Web e de aplicações adicional estiver ativada, estes dados podem ser guardados na sua Conta Google. <ph name="BEGIN_LINK1" />Saiba mais<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Adicionar ligação</translation>
 <translation id="2947605845283690091">A navegação na Web deve ser rápida. Dedique algum tempo a <ph name="BEGIN_LINK" />verificar as extensões<ph name="END_LINK" /> agora.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{Foi desativada 1 extensão potencialmente prejudicial. Também a pode remover.}other{Foram desativadas # extensões potencialmente prejudiciais. Também as pode remover.}}</translation>
 <translation id="2948300991547862301">Aceder a <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Navegador de Internet rápido, simples e seguro, concebido para a Web moderna.</translation>
 <translation id="2949289451367477459">Utilize a localização. Permita que as aplicações e os serviços com a autorização de acesso à localização utilizem a deste dispositivo. A Google pode recolher periodicamente dados de localização e utilizar estes dados anonimamente para melhorar a precisão da localização e os serviços baseados na localização. <ph name="BEGIN_LINK1" />Saiba mais<ph name="END_LINK1" />.</translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Pretende instalar a aplicação?</translation>
 <translation id="3067198360141518313">Executar este plug-in</translation>
 <translation id="3071624960923923138">Pode clicar aqui para abrir um novo separador</translation>
+<translation id="3072775339180057696">Pretende permitir que o site veja o ficheiro <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">É necessário reiniciar para começar o processo Powerwash. Depois do reinício, terá de confirmar que pretende prosseguir.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Os seus dados de início de sessão foram eliminados.</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">O site pode utilizar a câmara.</translation>
 <translation id="3085752524577180175">Anfitrião SOCKS</translation>
 <translation id="3088052000289932193">O site está a utilizar MIDI</translation>
+<translation id="3088128611727407543">A preparar o perfil da app…</translation>
 <translation id="3088325635286126843">&amp;Mudar o nome...</translation>
 <translation id="3089137131053189723">Pesquisa limpa.</translation>
 <translation id="3090193911106258841">A aceder à entrada de áudio e de vídeo</translation>
@@ -1596,6 +1604,7 @@
     Descrição:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Aplicações do Chrome</translation>
+<translation id="3150693969729403281">Executar verificação de segurança agora</translation>
 <translation id="3150927491400159470">Atualização Pesada</translation>
 <translation id="315116470104423982">Dados móveis</translation>
 <translation id="3151539355209957474">Hora de início</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Iniciar sessão no Chrome</translation>
 <translation id="3285322247471302225">Novo &amp;Separador</translation>
 <translation id="328571385944182268">Pretende guardar as suas palavras-passe?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> poderá ver o ficheiro <ph name="FILENAME" /> até fechar todos os separadores de <ph name="ORIGIN" />.</translation>
 <translation id="3288047731229977326">As extensões que funcionam no modo de programador podem danificar o seu computador. Se não é programador, deverá desativar as extensões que sejam executadas neste modo para se manter protegido.</translation>
 <translation id="3289856944988573801">Para verificar se existem atualizações, utilize Ethernet ou Wi-Fi.</translation>
 <translation id="3290356915286466215">Não protegida</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Ler os seus dados em vários Sites</translation>
 <translation id="3448086340637592206">Termos Adicionais do Google Chrome e do Chrome OS</translation>
 <translation id="3448492834076427715">Atualizar conta</translation>
+<translation id="3449393517661170867">Nova janela com separadores</translation>
 <translation id="3449839693241009168">Prima <ph name="SEARCH_KEY" /> para enviar comandos para <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Percentagem de ocupação no estado inativo</translation>
 <translation id="3451332697983754369">Sincronizar o meu <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Obrigado pelos seus comentários. Neste modo, está offline, pelo que o seu relatório será enviado mais tarde.</translation>
 <translation id="3682824389861648626">Limite de movimentos</translation>
 <translation id="3683524264665795342">Pedido de Partilha de Ecrã de <ph name="APP_NAME" /></translation>
+<translation id="3686074530047028092">Conta de educação</translation>
 <translation id="368789413795732264">Ocorreu um erro ao tentar escrever o ficheiro: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Escrever em ficheiros e pastas que são abertos na aplicação</translation>
 <translation id="3688526734140524629">Alterar canal</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Bloquear partes de páginas Web</translation>
 <translation id="3760460896538743390">Inspecionar Página de Fundo</translation>
 <translation id="37613671848467444">Abrir na Janela de &amp;Navegação Anónima</translation>
+<translation id="3761556954875533505">Pretende permitir que o site edite ficheiros?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Comunicar com um dispositivo USB}other{Comunicar com # dispositivos USB}}</translation>
 <translation id="3765246971671567135">Não foi possível ler a política do modo de demonstração offline.</translation>
 <translation id="3768037234834996183">A sincronizar as preferências...</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Recusar</translation>
 <translation id="3928570707778085600">Pretende guardar as alterações a <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Estas extensões podem ver e alterar as informações neste site.</translation>
+<translation id="3930155420525972941">Mover grupo para nova janela</translation>
 <translation id="3930737994424905957">A procurar dispositivos…</translation>
 <translation id="3930968231047618417">Cor do fundo</translation>
 <translation id="3933283459331715412">Restaurar a palavra-passe eliminada para <ph name="USERNAME" /></translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Concordo</translation>
 <translation id="413121957363593859">Componentes</translation>
 <translation id="4131410914670010031">Preto e branco</translation>
+<translation id="4133076602192971179">Abrir a app para alterar a sua palavra-passe</translation>
 <translation id="4136203100490971508">A Luz noturna irá desativar-se automaticamente ao nascer do sol.</translation>
 <translation id="41365691917097717">Se continuar, vai ativar a depuração do adb para criar e testar aplicações para Android. Tenha em atenção que esta ação permite a instalação de aplicações para Android que não foram validadas pela Google. Além disso, se pretender desativar o adb, terá de efetuar uma reposição de fábrica.</translation>
 <translation id="4138267921960073861">Mostrar nomes de utilizador e fotos no ecrã de início de sessão</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Nunca traduzir do <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Configure o controlo parental</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 Com encriptação RSA</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{O seu administrador reativou 1 extensão potencialmente prejudicial.}other{O seu administrador reativou # extensões potencialmente prejudiciais.}}</translation>
 <translation id="4336434711095810371">Limpar todos os dados</translation>
 <translation id="4336979451636460645">Para aceder aos registos da rede, consulte <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> pretende comunicar com a aplicação "<ph name="EXTENSION_NAME" />"</translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Está a utilizar uma chave de segurança que não está registada neste Website.</translation>
 <translation id="4788092183367008521">Verifique a sua ligação à rede e tente novamente.</translation>
 <translation id="4792711294155034829">&amp;Comunicar um problema...</translation>
+<translation id="4794810983896241342"><ph name="BEGIN_LINK" />O seu administrador<ph name="END_LINK" /> gere as atualizações.</translation>
 <translation id="479536056609751218">Página Web, Apenas HTML</translation>
 <translation id="4798236378408895261">Anexar <ph name="BEGIN_LINK" />registos do Bluetooth<ph name="END_LINK" /> (interno da Google)</translation>
 <translation id="4801448226354548035">Ocultar contas</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Abra um novo separador para navegar em dois sites em simultâneo</translation>
 <translation id="4909038193460299775">Como esta conta é gerida por <ph name="DOMAIN" />, os seus marcadores, histórico, palavras-passe e outras definições serão apagados deste dispositivo. No entanto, os seus dados continuarão armazenados na sua Conta Google e podem ser geridos no <ph name="BEGIN_LINK" />Painel de Controlo Google<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Reativações após inatividade</translation>
+<translation id="4916542008280060967">Pretende permitir que o site edite o ficheiro <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Mude para um navegador seguro</translation>
 <translation id="4917385247580444890">Forte</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> pretende comunicar com a extensão "<ph name="EXTENSION_NAME" />"</translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Memorizar</translation>
 <translation id="5018207570537526145">Abrir o Website da extensão</translation>
 <translation id="5021750053540820849">Ainda por atualizar</translation>
+<translation id="5026806129670917316">Ativar Wi-Fi</translation>
 <translation id="5026874946691314267">Não voltar a mostrar</translation>
 <translation id="5027550639139316293">Certificado de email</translation>
 <translation id="5027562294707732951">Adicionar extensão</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">Consola de &amp;JavaScript</translation>
 <translation id="5184209580557088469">Já existe uma permissão com este nome de utilizador.</translation>
 <translation id="5184662919967270437">A atualizar o dispositivo…</translation>
+<translation id="5185359571430619712">Extensões de comentários</translation>
 <translation id="5185386675596372454">A versão mais recente de "<ph name="EXTENSION_NAME" />" foi desativada porque necessita de mais permissões.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> pretende transferir vários ficheiros.</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Aspas inteligentes</translation>
 <translation id="5260508466980570042">Lamentamos, mas não foi possível confirmar o seu email ou palavra-passe. Tente novamente.</translation>
 <translation id="5261683757250193089">Abrir na Web Store</translation>
+<translation id="5262178194499261222">Remover palavra-passe</translation>
 <translation id="5264148714798105376">Esta ação pode demorar cerca de um minuto.</translation>
 <translation id="5264252276333215551">Ligue-se à Internet para iniciar a aplicação no modo quiosque.</translation>
 <translation id="5265562206369321422">Offline durante mais de uma semana</translation>
@@ -3508,6 +3529,7 @@
 <translation id="5833726373896279253">Estas definições só podem ser modificadas pelo proprietário:</translation>
 <translation id="5834581999798853053">Faltam cerca de <ph name="TIME" /> minutos</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – câmara ou microfone a gravar</translation>
+<translation id="5841270259333717135">Configurar Ethernet</translation>
 <translation id="5842497610951477805">Ativar o Bluetooth</translation>
 <translation id="5846200638699387931">Erro de sintaxe de relação: <ph name="ERROR_LINE" />.</translation>
 <translation id="5849212445710944278">Já adicionada</translation>
@@ -3553,6 +3575,7 @@
 <translation id="5900358982890952556">Atualize o Linux (Beta)</translation>
 <translation id="5901494423252125310">Porta da impressora aberta</translation>
 <translation id="5901630391730855834">Amarelo</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Reativou 1 extensão potencialmente prejudicial.}other{Reativou # extensões potencialmente prejudiciais.}}</translation>
 <translation id="5906655207909574370">Quase atualizado! Reinicie o dispositivo para concluir a atualização.</translation>
 <translation id="5906732635754427568">Os dados associados a esta aplicação serão removidos deste dispositivo.</translation>
 <translation id="5908769186679515905">Impedir que os sites executem o Flash</translation>
@@ -3582,6 +3605,7 @@
 <translation id="59324397759951282">Dispositivo USB de <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Série</translation>
 <translation id="5933376509899483611">Fuso horário</translation>
+<translation id="5935656526031444304">Gerir Navegação segura</translation>
 <translation id="5938002010494270685">Atualização de segurança disponível</translation>
 <translation id="5939518447894949180">Repor</translation>
 <translation id="5941153596444580863">Adicionar pessoa...</translation>
@@ -3625,6 +3649,7 @@
 <translation id="5993807461461235661">Este carregamento está encriptado e viola as políticas de segurança da sua entidade.</translation>
 <translation id="5997337190805127100">Saiba mais acerca do acesso a sites</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultados para "<ph name="SEARCH_TEXT" />"</translation>
+<translation id="6002210667729577411">Mover grupo para nova janela</translation>
 <translation id="6002458620803359783">Vozes preferidas</translation>
 <translation id="6006484371116297560">Clássico</translation>
 <translation id="6007240208646052708">A pesquisa por voz não está disponível no seu idioma.</translation>
@@ -4163,6 +4188,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [ <ph name="ISSUED_TO" /> ]</translation>
 <translation id="6739923123728562974">Mostrar atalho no ambiente de trabalho</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> em pausa</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />O seu administrador<ph name="END_LINK" /> desativou a Navegação segura.</translation>
 <translation id="6742339027238151589">Acessível ao script</translation>
 <translation id="6745592621698551453">Atualizar agora</translation>
 <translation id="6746124502594467657">Mover para baixo</translation>
@@ -4421,6 +4447,7 @@
     <ph name="BEGIN_BOLD" />Atenção:<ph name="END_BOLD" /> Uma voz ou uma gravação semelhante também poderá aceder ao seu Assistente. Pode remover a autorização do Voice Match mais tarde ao desativá-la nas Definições do Assistente.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Trocar dados com os seguintes dispositivos: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">O dispositivo irá reiniciar quando as atualizações estiverem concluídas.</translation>
 <translation id="7098389117866926363">Dispositivo USB-C (porta traseira esquerda)</translation>
 <translation id="7098447629416471489">Os outros motores de pesquisa guardados aparecem aqui</translation>
 <translation id="7099337801055912064">Não é possível carregar PPDs grandes. O tamanho máximo é 250 kB.</translation>
@@ -4893,6 +4920,7 @@
 <translation id="7766807826975222231">Faça uma visita guiada</translation>
 <translation id="7766838926148951335">Aceitar autorizações</translation>
 <translation id="7769672763586021400">ID do modelo</translation>
+<translation id="7770651108375708429">Desligar o Wi-Fi</translation>
 <translation id="7771452384635174008">Disposição</translation>
 <translation id="7772032839648071052">Confirmar frase de acesso</translation>
 <translation id="7772127298218883077">Acerca do <ph name="PRODUCT_NAME" /></translation>
@@ -5051,6 +5079,7 @@
 <translation id="7939412583708276221">Manter na mesma</translation>
 <translation id="7942349550061667556">Vermelho</translation>
 <translation id="7943837619101191061">Adicionar Localização...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 palavra-passe comprometida.}other{# palavras-passe comprometidas.}}</translation>
 <translation id="7945031593909029181">O "<ph name="CHROME_EXTENSION_NAME" />" pretende estabelecer ligação</translation>
 <translation id="7946586320617670168">A origem tem de ser segura.</translation>
 <translation id="794676567536738329">Confirmar Permissões</translation>
@@ -5150,6 +5179,7 @@
 <translation id="8059417245945632445">&amp;Inspecionar dispositivos</translation>
 <translation id="8059456211585183827">Não existem impressoras disponíveis para guardar.</translation>
 <translation id="8063235345342641131">Avatar verde predefinido</translation>
+<translation id="8063535366119089408">Ver ficheiro</translation>
 <translation id="8064671687106936412">Chave:</translation>
 <translation id="8068253693380742035">Toque para iniciar sessão</translation>
 <translation id="8068809649322155577">Esta ação irá limpar todos os dados e cookies armazenados pelo grupo de sites <ph name="SITE_GROUP_NAME" />, por quaisquer sites associados a este e pelas respetivas apps instaladas.</translation>
@@ -5214,6 +5244,7 @@
 <translation id="8152091997436726702">O tempo limite do registo da impressora foi excedido. Para registar uma impressora, terá de confirmar o registo na impressora.</translation>
 <translation id="8154790740888707867">Sem ficheiro</translation>
 <translation id="815491593104042026">Ups! A autenticação falhou, porque foi configurada para utilizar um URL não seguro (<ph name="BLOCKED_URL" />). Contacte o gestor.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Não foram encontradas palavras-passe comprometidas.}=1{{COUNT} palavra-passe comprometida.}other{{COUNT} palavras-passe comprometidas.}}</translation>
 <translation id="8157704005178149728">A configurar a supervisão</translation>
 <translation id="8158117992543756526">Este dispositivo deixou de receber atualizações automáticas de software e segurança em <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Saber mais<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Erro ao definir a confiança do certificado</translation>
@@ -5267,6 +5298,7 @@
 <translation id="8226742006292257240">A palavra-passe TPM abaixo foi gerada aleatoriamente e atribuída ao seu computador:</translation>
 <translation id="8227119283605456246">Anexar ficheiro</translation>
 <translation id="8230134520748321204">Pretende guardar a palavra-passe para <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Definições de Internet</translation>
 <translation id="8234795456569844941">Ajude os nossos engenheiros a resolver este problema. Diga-nos o que aconteceu imediatamente antes de ter recebido a mensagem de erro do perfil:</translation>
 <translation id="8236123533334037984">A sua entidade está a analisar este carregamento para a aprovação de segurança.</translation>
 <translation id="8236917170563564587">Em alternativa, partilhar este separador</translation>
@@ -5604,6 +5636,7 @@
 <translation id="8688579245973331962">Não vê o seu nome?</translation>
 <translation id="8688591111840995413">Palavra-passe incorreta</translation>
 <translation id="8688672835843460752">Disponível</translation>
+<translation id="8691418731028620688">Ligar o Wi-Fi</translation>
 <translation id="8695825812785969222">Abrir &amp;Localização...</translation>
 <translation id="869884720829132584">Menu Aplicações</translation>
 <translation id="869891660844655955">Data de expiração</translation>
@@ -5763,6 +5796,7 @@
 <translation id="8872187374998143710">Reinicie o dispositivo para utilizar o Plugin VM.</translation>
 <translation id="8872777911145321141">Perguntar quando um site pretender utilizar os seus dados e dispositivos de realidade virtual (recomendado)</translation>
 <translation id="8874184842967597500">Sem ligação</translation>
+<translation id="8875775314572167244">Definições de Ethernet</translation>
 <translation id="8876307312329369159">Não é possível alterar esta definição numa sessão de demonstração.</translation>
 <translation id="8877448029301136595">[directório principal]</translation>
 <translation id="8878384954777710821">A desinstalar o Plugin VM…</translation>
@@ -5804,6 +5838,7 @@
 <translation id="892706138619340876">Algumas definições foram repostas</translation>
 <translation id="8930351635855238750">As novas definições de cookies terão efeito depois de atualizar a página.</translation>
 <translation id="8931394284949551895">Novos dispositivos</translation>
+<translation id="8931475688782629595">Efetue a gestão do que sincroniza</translation>
 <translation id="8932894639908691771">Opções do acesso por comutador</translation>
 <translation id="8933960630081805351">Mo&amp;strar no Finder</translation>
 <translation id="8934732568177537184">Continuar</translation>
@@ -5961,6 +5996,7 @@
 <translation id="9148126808321036104">Iniciar sessão novamente</translation>
 <translation id="9149866541089851383">Editar...</translation>
 <translation id="9150045010208374699">Utilizar a sua câmara</translation>
+<translation id="9150429437595727962">Definições de Wi-Fi</translation>
 <translation id="9153934054460603056">Guardar identidade e palavra-passe</translation>
 <translation id="9154194610265714752">Atualizado</translation>
 <translation id="91568222606626347">Criar atalho...</translation>
@@ -6022,6 +6058,7 @@
 <translation id="945522503751344254">Enviar comentários</translation>
 <translation id="947329552760389097">&amp;Inspecionar elementos</translation>
 <translation id="952992212772159698">Não activado</translation>
+<translation id="956500788634395331">Tem proteção contra extensões potencialmente prejudiciais.</translation>
 <translation id="957960681186851048">Este site tentou transferir vários ficheiros automaticamente</translation>
 <translation id="9580706199804957">Não foi possível estabelecer ligação aos serviços Google.</translation>
 <translation id="960719561871045870">Código do operador</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index abfef89e..f255bef 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Удалить данные этих приложений?</translation>
 <translation id="1045692658517323508">{0,plural, =1{Перезагрузите устройство в течение 1 минуты}one{Перезагрузите устройство в течение # минуты}few{Перезагрузите устройство в течение # минут}many{Перезагрузите устройство в течение # минут}other{Перезагрузите устройство в течение # минуты}}</translation>
 <translation id="1046635659603195359">Вы уже настроили Voice Match в Google Ассистенте на другом устройстве. Предыдущие записи вашего голоса можно использовать для создания образца на этом устройстве. Настройка займет не больше минуты.</translation>
+<translation id="104710386808485638">Перезапустить Linux?</translation>
 <translation id="1047431265488717055">Скопировать &amp;текст ссылки</translation>
 <translation id="1048286738600630630">Дисплеи</translation>
 <translation id="1049743911850919806">Инкогнито</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Чтобы экспортировать сертификат клиента, войдите в <ph name="TOKEN_NAME" />.</translation>
 <translation id="1163931534039071049">&amp;Просмотр кода фрейма</translation>
 <translation id="1164674268730883318">Отключить Smart Lock для устройства <ph name="DEVICE_TYPE" />?</translation>
+<translation id="1164891049599601209">Введен на поддельном сайте</translation>
 <translation id="1164899421101904659">Введите PUK-код</translation>
 <translation id="1165039591588034296">Ошибка</translation>
 <translation id="1166212789817575481">Закрыть вкладки справа</translation>
@@ -397,6 +399,7 @@
 <translation id="1545177026077493356">Автоматическое включение режима киоска</translation>
 <translation id="1545775234664667895">Установлена тема "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">Расширение изменило страницу, которая открывается при нажатии кнопки "Главная страница".</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> хочет установить расширение "<ph name="EXTENSION_TYPE" />", которое может:</translation>
 <translation id="1549275686094429035">ARC включен</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> запрашивает доступ к тому "<ph name="VOLUME_NAME" />". Это может привести к изменению или удалению файлов.</translation>
 <translation id="1553538517812678578">неограниченно</translation>
@@ -495,6 +498,7 @@
 <translation id="1679806121152819234">Плагин ВМ</translation>
 <translation id="1679810534535368772">Закрыть страницу?</translation>
 <translation id="167983332380191032">От сервиса управления получен недействительный код HTTP.</translation>
+<translation id="1680841347983561661">Попробуйте запустить Google Play снова через несколько секунд.</translation>
 <translation id="1680849702532889074">В процессе установки приложения для Linux произошла ошибка.</translation>
 <translation id="16815041330799488">Не предоставлять сайтам доступ к тексту и изображениям, скопированным в буфер обмена</translation>
 <translation id="1682548588986054654">Новое окно в режиме инкогнито</translation>
@@ -748,6 +752,7 @@
 <translation id="2025632980034333559">Произошел сбой <ph name="APP_NAME" />. Нажмите на это сообщение, чтобы вновь загрузить это расширение.</translation>
 <translation id="2025891858974379949">Небезопасный контент</translation>
 <translation id="202918510990975568">Чтобы настроить параметры безопасности и входа, введите пароль.</translation>
+<translation id="2030672406208960151">Открыть терминал для восстановления</translation>
 <translation id="2034346955588403444">Добавить сеть Wi-Fi</translation>
 <translation id="203574396658008164">Делать заметки, когда экран заблокирован</translation>
 <translation id="2037445849770872822">Для этого аккаунта Google настроен родительский контроль. Чтобы изменить некоторые параметры, нажмите "Продолжить".
@@ -900,6 +905,7 @@
 <translation id="2220572644011485463">PIN-код или пароль</translation>
 <translation id="2224444042887712269">Этот параметр установлен пользователем <ph name="OWNER_EMAIL" /></translation>
 <translation id="2224551243087462610">Изменить имя папки</translation>
+<translation id="2225864335125757863">Чтобы защитить свой аккаунт, немедленно смените следующие пароли:</translation>
 <translation id="2226449515541314767">Этому сайту запрещено получать полный контроль над устройствами MIDI.</translation>
 <translation id="222704500187107962">Это исключение будет автоматически удалено, после того как вы завершите текущий сеанс в режиме инкогнито</translation>
 <translation id="2227179592712503583">Удалить подсказку</translation>
@@ -1020,6 +1026,7 @@
 <translation id="2387052489799050037">Переход на главный экран</translation>
 <translation id="2387458720915042159">Тип подключения через прокси-сервер</translation>
 <translation id="2391419135980381625">Стандартный шрифт</translation>
+<translation id="2392163307141705938">Время, установленное родителями для приложения "<ph name="IDS_SHORT_PRODUCT_NAME" />", истекло.</translation>
 <translation id="2392369802118427583">Активировать</translation>
 <translation id="2394566832561516196">Настройки будут сброшены при следующей перезагрузке.</translation>
 <translation id="2395616325548404795">Устройство <ph name="DEVICE_TYPE" /> зарегистрировано в организации, но при передаче данных об объекте и местоположении произошла ошибка. Введите эту информацию вручную в консоли администратора.</translation>
@@ -1084,6 +1091,7 @@
 <translation id="247949520305900375">Общий доступ к аудио</translation>
 <translation id="2480868415629598489">Изменение копируемых и вставляемых данных</translation>
 <translation id="2482878487686419369">Уведомления</translation>
+<translation id="2483610039979585156">Сайт <ph name="ORIGIN" /> сможет изменять файл "<ph name="FILENAME" />", пока вы не закроете все вкладки на сайте <ph name="ORIGIN" />.</translation>
 <translation id="2484959914739448251">Чтобы удалить данные о работе в браузере со всех синхронизированных устройств и из аккаунта Google, <ph name="BEGIN_LINK" />введите кодовую фразу<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Пароль сохранен на этом устройстве</translation>
 <translation id="2485422356828889247">Удалить</translation>
@@ -1297,6 +1305,7 @@
 <translation id="274290345632688601">Восстановление приложений и файлов Linux…</translation>
 <translation id="2743387203779672305">Скопировать в буфер</translation>
 <translation id="2745080116229976798">Квалифицированное подчинение Microsoft</translation>
+<translation id="2748061034695037846">Работа с сайтом <ph name="DOMAIN" /> приостановлена</translation>
 <translation id="2749756011735116528">Войти в <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">Проверять грамматику и правописание</translation>
 <translation id="2751739896257479635">2-й этап аутентификации EAP</translation>
@@ -1305,6 +1314,7 @@
 <translation id="275662540872599901">экран выключен</translation>
 <translation id="2762441749940182211">Доступ к камере запрещен</translation>
 <translation id="2765217105034171413">Мелкий</translation>
+<translation id="2766161002040448006">Запросить разрешение у родителей</translation>
 <translation id="276969039800130567">Вы вошли как <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="2770465223704140727">Удалить из списка</translation>
 <translation id="2770690685823456775">Экспортируйте пароли в другую папку.</translation>
@@ -1556,6 +1566,7 @@
 <translation id="3115580024857770654">Свернуть все</translation>
 <translation id="3117362587799608430">Док-станция не полностью совместима с устройством</translation>
 <translation id="3118319026408854581">Справка <ph name="PRODUCT_NAME" /></translation>
+<translation id="3118654181216384296">Попробуйте запустить Linux снова через несколько секунд.</translation>
 <translation id="3120430004221004537">Неполное шифрование операции на устройстве <ph name="DEVICE_NAME" />.</translation>
 <translation id="3121793941267913344">Сбросить настройки устройства <ph name="IDS_SHORT_PRODUCT_NAME" /></translation>
 <translation id="3122464029669770682">ЦПУ</translation>
@@ -1565,6 +1576,7 @@
 <translation id="3127156390846601284">Все данные указанных сайтов будут удалены с устройства. Продолжить?</translation>
 <translation id="3127860049873093642">Чтобы исключить сбои при зарядке и во время работы, используйте совместимый адаптер питания Dell или адаптер USB Type-C.</translation>
 <translation id="3129173833825111527">Левое поле</translation>
+<translation id="3129215702932019810">Ошибка при запуске приложения</translation>
 <translation id="3130528281680948470">Настройки устройства будут сброшены, а локальные данные и аккаунты пользователей – удалены. Это действие нельзя отменить.</translation>
 <translation id="313205617302240621">Забыли пароль?</translation>
 <translation id="3132996321662585180">Обновлять ежедневно</translation>
@@ -1780,6 +1792,7 @@
 <translation id="3441653493275994384">Экран</translation>
 <translation id="3445925074670675829">Устройство USB-C</translation>
 <translation id="344630545793878684">Просмотр данных на нескольких сайтах</translation>
+<translation id="3448086340637592206">Дополнительные условия использования Google Chrome и Chrome OS</translation>
 <translation id="3448492834076427715">Обновить аккаунт</translation>
 <translation id="3449839693241009168">Нажмите <ph name="SEARCH_KEY" /> для отправки команд в <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Продолжительность состояния бездействия в процентах</translation>
@@ -2127,6 +2140,7 @@
 <translation id="3873423927483480833">Показать PIN-коды</translation>
 <translation id="3873915545594852654">Не удалось запустить ARC++.</translation>
 <translation id="3879748587602334249">Диспетчер загрузки</translation>
+<translation id="3881321138433527084">Безопасный просмотр отключен. Включите его, чтобы не подвергать себя опасности в Интернете.</translation>
 <translation id="3882165008614329320">Видео с камеры или из файла</translation>
 <translation id="3886446263141354045">Ваш запрос на доступ к сайту отправлен пользователю <ph name="NAME" /></translation>
 <translation id="3888550877729210209">Заметки в приложении "<ph name="LOCK_SCREEN_APP_NAME" />"</translation>
@@ -2468,6 +2482,7 @@
 <translation id="4384652540891215547">Активация расширения</translation>
 <translation id="438503109373656455">Скачки</translation>
 <translation id="4387004326333427325">Сертификат аутентификации отклонен удаленно</translation>
+<translation id="4387890294700445764">Похищенные пароли</translation>
 <translation id="4389091756366370506">Пользователь <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Инкогнито}one{# окно в режиме инкогнито}few{# окна в режиме инкогнито}many{# окон в режиме инкогнито}other{# окна в режиме инкогнито}}</translation>
 <translation id="439266289085815679">Конфигурацию Bluetooth контролирует пользователь <ph name="USER_EMAIL" />.</translation>
@@ -2499,6 +2514,7 @@
 <translation id="4429030830601238961">Эти данные нарушают правила безопасности организации, поэтому их нельзя вставить.</translation>
 <translation id="4430019312045809116">Объем</translation>
 <translation id="4430369329743628066">Закладка добавлена</translation>
+<translation id="4432621511648257259">Неверный пароль.</translation>
 <translation id="4434045419905280838">Всплывающие окна и переадресация</translation>
 <translation id="443454694385851356">Устаревшие (небезопасно)</translation>
 <translation id="443475966875174318">Обновление или удаление несовместимых приложений</translation>
@@ -2748,6 +2764,7 @@
 <translation id="4808667324955055115">Всплывающие окна заблокированы</translation>
 <translation id="480990236307250886">Перейти на главную страницу</translation>
 <translation id="4811503964269049987">Добавить выбранную вкладку в группу</translation>
+<translation id="4811818760963189951">Функция отключена, поскольку вы отключили синхронизацию истории.</translation>
 <translation id="4813136279048157860">Мои изображения</translation>
 <translation id="4813512666221746211">Ошибка сети</translation>
 <translation id="4814378367953456825">Введите название для этого отпечатка пальца.</translation>
@@ -2777,6 +2794,7 @@
 <translation id="4850669014075537160">Прокрутка</translation>
 <translation id="4850886885716139402">Посмотреть</translation>
 <translation id="4853020600495124913">Открыть в &amp;новом окне</translation>
+<translation id="4854317507773910281">Выберите родителя, которому будет отправлен запрос на одобрение.</translation>
 <translation id="485480310608090163">Дополнительные настройки и разрешения</translation>
 <translation id="4856478137399998590">Служба передачи данных в мобильных сетях активирована и готова к использованию</translation>
 <translation id="4856855265648545577">Показывать кнопки "Панель запуска", "Назад" и "Обзор" на панели запуска при работе с устройством в режиме планшета. Этот параметр активируется, когда включаются функции ChromeVox (озвучивание текста на экране) или Switch Access.</translation>
@@ -2913,10 +2931,12 @@
 <translation id="5040823038948176460">Дополнительные настройки контента</translation>
 <translation id="5042282098504489593">Откройте настройки, чтобы подключить устройство <ph name="USB_DEVICE_NAME" /> к Linux</translation>
 <translation id="5043913660911154449">Или укажите PPD-файл для принтера. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Функция отключена, поскольку синхронизируемые данные зашифрованы с помощью кодовой фразы.</translation>
 <translation id="5045550434625856497">Неправильный пароль</translation>
 <translation id="504561833207953641">Окно или вкладка откроются в текущем сеансе браузера.</translation>
 <translation id="5047421709274785093">Запретить сайтам использовать датчики движения и освещенности</translation>
 <translation id="5050042263972837708">Название группы</translation>
+<translation id="5051073330196664891">Общие Условия использования Google</translation>
 <translation id="5051836348807686060">Проверка правописания не поддерживается для выбранных языков.</translation>
 <translation id="5052499409147950210">Изменение сайта</translation>
 <translation id="5053604404986157245">Отсутствует сгенерированный пароль доверенного платформенного модуля (в результате применения процесса Powerwash).</translation>
@@ -2954,6 +2974,7 @@
 <translation id="5097002363526479830">Не удалось подключиться к сети <ph name="NAME" />: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Открыть все закладки</translation>
 <translation id="5101839224773798795">Автоматически регистрировать нажатие кнопки мыши, когда указатель останавливается</translation>
+<translation id="5107443654503185812">Расширение отключило Безопасный просмотр.</translation>
 <translation id="5108967062857032718">Настройки – Удаление приложений для Android</translation>
 <translation id="5109044022078737958">Мия</translation>
 <translation id="5111646998522066203">Выйти из режима инкогнито</translation>
@@ -3040,6 +3061,7 @@
 <translation id="523505283826916779">Настройки специальных возможностей</translation>
 <translation id="5235750401727657667">Замена страницы, которая появляется на новой вкладке</translation>
 <translation id="5238278114306905396">Приложение "<ph name="EXTENSION_NAME" />" автоматически удалено.</translation>
+<translation id="5239730228370806996">Перенесенные данные нарушают правила безопасности вашей организации. Все равно продолжить?</translation>
 <translation id="5241128660650683457">Просмотр ваших данных на посещаемых сайтах</translation>
 <translation id="5242724311594467048">Включить приложение "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="5243522832766285132">Повторите попытку через несколько секунд</translation>
@@ -3327,6 +3349,7 @@
 <translation id="5618075537869101857">К сожалению, не удалось запустить киоск-приложение.</translation>
 <translation id="5618333180342767515">(это может занять несколько минут)</translation>
 <translation id="56197088284879152">Соединение с удаленным устройством <ph name="DEVICE_NAME" /> перегружено.</translation>
+<translation id="5620163320393916465">Сохраненных паролей нет.</translation>
 <translation id="5620549857835247159">Показывать кнопки "Панель запуска", "Назад" и "Обзор" на панели запуска при работе с устройством в режиме планшета.</translation>
 <translation id="5620568081365989559">Инструменты разработчика запрашивают полный доступ к каталогу <ph name="FOLDER_PATH" />. Убедитесь, что в нем нет конфиденциальных данных.</translation>
 <translation id="5620612546311710611">статистика использования</translation>
@@ -3420,6 +3443,7 @@
 <translation id="5747785204778348146">Нестабильная</translation>
 <translation id="5747809636523347288">Вс&amp;тавить и перейти на страницу <ph name="URL" /></translation>
 <translation id="5750324801516359607">Далеко</translation>
+<translation id="5751887393582880060">Загрузка этих данных нарушает правила безопасности организации. Все равно продолжить?</translation>
 <translation id="5756163054456765343">Справочный &amp;центр</translation>
 <translation id="5759728514498647443">"<ph name="APP_NAME" />" может читать документы, отправленные на печать через приложение "<ph name="APP_NAME" />".</translation>
 <translation id="5763751966069581670">USB-устройства не найдены</translation>
@@ -3629,6 +3653,7 @@
 <translation id="6040852767465482106">Анонимная идентификация</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Когда геолокация Google включена, местоположение устройства определяется с помощью датчиков, Wi‑Fi и мобильных сетей.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />При желании отключите эту функцию в настройках устройства. Там же вы можете запретить использование датчиков, Wi‑Fi и мобильных сетей для уточнения местоположения.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409">Сайт <ph name="ORIGIN" /> сможет просматривать файлы в папке "<ph name="FOLDERNAME" />", пока вы не закроете все вкладки на сайте <ph name="ORIGIN" />.</translation>
 <translation id="6041155700700864984">Обычный режим</translation>
 <translation id="604124094241169006">Автоматически</translation>
 <translation id="6042308850641462728">Ещё</translation>
@@ -3690,6 +3715,7 @@
 <translation id="6104311680260824317">Не удалось подключить устройство к домену. Сервер не поддерживает выбранные типы шифрования Kerberos. В настройках шифрования установите флажок "Другие параметры".</translation>
 <translation id="6104641575223043670">Организация "<ph name="ORGANIZATION_NAME" />" просит обновить ПО на устройстве прямо сейчас.</translation>
 <translation id="6106186653986077033">Требуется лицензия для Plugin VM</translation>
+<translation id="6107047744202598802">Позволяет сайтам запоминать, когда вы посещаете их, и следить за вашими действиями в Интернете</translation>
 <translation id="6112294629795967147">Коснитесь для изменения размера</translation>
 <translation id="6112727384379533756">Добавить билет</translation>
 <translation id="6112931163620622315">Проверьте телефон</translation>
@@ -3768,6 +3794,7 @@
 <translation id="622537739776246443">Профиль будет удален</translation>
 <translation id="6225475702458870625">Интернет-подключение доступно через <ph name="PHONE_NAME" />.</translation>
 <translation id="6226777517901268232">Файл секретного ключа (необязательно)</translation>
+<translation id="6227280783235722609">расширение</translation>
 <translation id="6228691855869374890">Этот сайт имеет полный контроль над устройствами MIDI.</translation>
 <translation id="6228720835160974792">Создать QR-код для этого изображения</translation>
 <translation id="6229890768313448549">Не удалось скачать Условия использования Google Play. Повторите попытку.</translation>
@@ -3819,6 +3846,7 @@
 <translation id="6285120108426285413">Файл <ph name="FILE_NAME" /> скачивают редко. Возможно, он вредоносный.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Новый принтер в сети}one{Новые принтеры в сети}few{Новые принтеры в сети}many{Новые принтеры в сети}other{Новые принтеры в сети}}</translation>
 <translation id="6286708577777130801">Данные сохраненного пароля</translation>
+<translation id="6291163159361301370">Для запуска Linux организация <ph name="ORGANIZATION_NAME" /> требует выполнить резервное копирование данных и сбросить настройки устройства Chromebook до заводских.</translation>
 <translation id="6291949900244949761">Запрашивать мое разрешение на доступ сайтов к USB-устройствам (рекомендуется)</translation>
 <translation id="6291953229176937411">Показать в Finder</translation>
 <translation id="6295158916970320988">Все сайты</translation>
@@ -3927,7 +3955,7 @@
 <translation id="6447842834002726250">Файлы сookie</translation>
 <translation id="6450876761651513209">Изменение настроек конфиденциальности</translation>
 <translation id="6451180435462401570">Управление устройствами с поддержкой виртуальной печати</translation>
-<translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{"<ph name="PAGE_TITLE" />" и ещё 1 вкладка}one{"<ph name="PAGE_TITLE" />" и ещё # вкладка}few{"<ph name="PAGE_TITLE" />" и ещё # вкладки}many{"<ph name="PAGE_TITLE" />" и ещё # вкладок}other{"<ph name="PAGE_TITLE" />" и ещё # вкладок}}</translation>
+<translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{"<ph name="PAGE_TITLE" />" и ещё 1 вкладка}one{"<ph name="PAGE_TITLE" />" и ещё # вкладка}few{"<ph name="PAGE_TITLE" />" и ещё # вкладки}many{"<ph name="PAGE_TITLE" />" и ещё # вкладок}other{"<ph name="PAGE_TITLE" />" и ещё # вкладки}}</translation>
 <translation id="6451689256222386810">Если вы забыли кодовую фразу или хотите изменить эту настройку, <ph name="BEGIN_LINK" />сбросьте параметры синхронизации<ph name="END_LINK" />.</translation>
 <translation id="6452181791372256707">Отклонить</translation>
 <translation id="6452961788130242735">Ошибка сети или неверная область.</translation>
@@ -4015,6 +4043,7 @@
 <translation id="6561726789132298588">Войти</translation>
 <translation id="656293578423618167">Слишком длинное название файла или путь к нему. Выберите другое название или каталог.</translation>
 <translation id="6563469144985748109">Ещё не одобрено администратором</translation>
+<translation id="6565955132287672866">Вы неправильно завершили работу устройства. Перезапустите его, чтобы использовать бета-версию Linux.</translation>
 <translation id="6567688344210276845">Не удалось загрузить значок "<ph name="ICON" />" для действия страницы.</translation>
 <translation id="6569934958368283244">Другие пользователи</translation>
 <translation id="657402800789773160">&amp;Обновить страницу</translation>
@@ -4108,7 +4137,7 @@
 <translation id="6706210727756204531">Область применения</translation>
 <translation id="6707389671160270963">Клиентский сертификат SSL</translation>
 <translation id="6708242697268981054">Расположение:</translation>
-<translation id="6709002550153567782">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{"<ph name="PAGE_TITLE" />" и ещё 1 вкладка}one{"<ph name="PAGE_TITLE" />" и ещё # вкладка}few{"<ph name="PAGE_TITLE" />" и ещё # вкладки}many{"<ph name="PAGE_TITLE" />" и ещё # вкладок}other{"<ph name="PAGE_TITLE" />" и ещё # вкладок}}</translation>
+<translation id="6709002550153567782">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{"<ph name="PAGE_TITLE" />" и ещё 1 вкладка}one{"<ph name="PAGE_TITLE" />" и ещё # вкладка}few{"<ph name="PAGE_TITLE" />" и ещё # вкладки}many{"<ph name="PAGE_TITLE" />" и ещё # вкладок}other{"<ph name="PAGE_TITLE" />" и ещё # вкладки}}</translation>
 <translation id="6709133671862442373">Новости</translation>
 <translation id="6709357832553498500">Подключиться через <ph name="EXTENSIONNAME" /></translation>
 <translation id="6710213216561001401">Назад</translation>
@@ -4512,6 +4541,7 @@
 <translation id="7258225044283673131">Приложение не отвечает. Чтобы выйти из него, нажмите "Закрыть принудительно".</translation>
 <translation id="7258697411818564379">PIN-код сохранен</translation>
 <translation id="7262004276116528033">Сервис входа размещен в домене <ph name="SAML_DOMAIN" /></translation>
+<translation id="7266898409676782635">Вы можете подписаться на нашу рассылку и получать советы по работе с устройствами <ph name="DEVICE_TYPE" />, специальные предложения и новости, а также оставить отзыв о продукте. Отказаться от рассылки можно в любой момент.</translation>
 <translation id="7268127947535186412">Этим параметром управляет владелец устройства.</translation>
 <translation id="7270858098575133036">Уведомлять меня о сайтах, пытающихся использовать системные сообщения для доступа к MIDI-устройствам</translation>
 <translation id="7272674038937250585">Описания нет</translation>
@@ -4585,6 +4615,7 @@
 <translation id="7364796246159120393">Выберите файл</translation>
 <translation id="7366415735885268578">Добавление сайта</translation>
 <translation id="7366909168761621528">Данные о работе в браузере</translation>
+<translation id="7367714965999718019">Генератор QR-кодов</translation>
 <translation id="736877393389250337">Не удалось открыть страницу <ph name="URL" /> в <ph name="ALTERNATIVE_BROWSER_NAME" />. Обратитесь к системному администратору.</translation>
 <translation id="7370592524170198497">EAP для сети Ethernet:</translation>
 <translation id="7371006317849674875">Время начала</translation>
@@ -4842,8 +4873,10 @@
 <translation id="7737238973539693982">Удаление Linux (бета)</translation>
 <translation id="7740996059027112821">Стандартный</translation>
 <translation id="7744047395460924128">Просмотр истории печати</translation>
+<translation id="7744192722284567281">Похищен при утечке данных</translation>
 <translation id="7746457520633464754">Для обнаружения опасных приложений и сайтов Chrome отправляет в Google URL некоторых страниц, которые вы открываете, контент на них, а также определенные сведения о системе</translation>
 <translation id="7750228210027921155">Картинка в картинке</translation>
+<translation id="7751229152614300329">Вы используете последнюю версию Безопасного просмотра. Он защищает вас от вредоносных сайтов и файлов.</translation>
 <translation id="7751260505918304024">Показать все</translation>
 <translation id="7754704193130578113">Всегда указывать место для скачивания</translation>
 <translation id="7755287808199759310">Для разблокировки обратитесь к родителю.</translation>
@@ -4991,6 +5024,7 @@
 <translation id="7910768399700579500">&amp;Новая папка</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Пароль был изменен на сервере. Выйдите из аккаунта и войдите снова.</translation>
+<translation id="7914583336730284547">Перенесенные файлы нарушают правила безопасности вашей организации. Все равно продолжить?</translation>
 <translation id="7915457674565721553">Чтобы настроить родительский контроль, подключитесь к Интернету.</translation>
 <translation id="7915471803647590281">Введите текст отзыва.</translation>
 <translation id="7918257978052780342">Зарегистрироваться</translation>
@@ -5088,6 +5122,7 @@
 <translation id="8028803902702117856">Скачивание файла <ph name="FILE_NAME" /> (<ph name="SIZE" />)</translation>
 <translation id="8028993641010258682">Размер</translation>
 <translation id="8030656706657716245">Добавить принтер</translation>
+<translation id="8030852056903932865">Одобрить</translation>
 <translation id="8032244173881942855">Невозможно транслировать вкладку</translation>
 <translation id="8033827949643255796">Выделено.</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Открыть все в режиме &amp;инкогнито}=1{Открыть в режиме &amp;инкогнито}one{Открыть все (#) в режиме &amp;инкогнито}few{Открыть все (#) в режиме &amp;инкогнито}many{Открыть все (#) в режиме &amp;инкогнито}other{Открыть все (#) в режиме &amp;инкогнито}}</translation>
@@ -5407,6 +5442,7 @@
 <translation id="8472623782143987204">требуется оборудование</translation>
 <translation id="8473863474539038330">Адреса и другие данные</translation>
 <translation id="8475313423285172237">Одна из программ на вашем компьютере установила расширение, которое может влиять на работу Chrome.</translation>
+<translation id="8476659515398963495">Вставляемые данные нарушают правила безопасности вашей организации. Все равно продолжить?</translation>
 <translation id="8477241577829954800">Заменен</translation>
 <translation id="8477384620836102176">&amp;Общие</translation>
 <translation id="8480082892550707549">Даже если вы когда-то успешно скачивали файлы с этого сайта, он мог подвергнуться атаке впоследствии. Повторите попытку позже.</translation>
@@ -5460,6 +5496,7 @@
 <translation id="8547013269961688403">Включить полноэкранную лупу</translation>
 <translation id="85486688517848470">Чтобы сменить режим клавиш верхнего ряда, удерживайте кнопку поиска</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 объект}one{# объект}few{# объекта}many{# объектов}other{# объекта}}</translation>
+<translation id="8550165047974571882">Сайт <ph name="ORIGIN" /> сможет изменять файлы в папке "<ph name="FOLDERNAME" />", пока вы не закроете все вкладки на сайте <ph name="ORIGIN" />.</translation>
 <translation id="8551388862522347954">Лицензии</translation>
 <translation id="8553342806078037065">Другие пользователи</translation>
 <translation id="8554899698005018844">Язык не указан</translation>
@@ -5518,6 +5555,7 @@
 <translation id="8637688295594795546">Доступно обновление системы. Подготовка к скачиванию…</translation>
 <translation id="8639047128869322042">Поиск вредоносного ПО…</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – порт</translation>
+<translation id="8641606876632989680">Вы получите уведомление от Chrome, если войдете в аккаунт с похищенным паролем.</translation>
 <translation id="8642900771896232685">2 секунды</translation>
 <translation id="8642947597466641025">Увеличить размер шрифта</translation>
 <translation id="8644655801811752511">Не удалось сбросить настройки электронного ключа. Попробуйте сделать это сразу после того, как вставите ключ.</translation>
@@ -5567,6 +5605,7 @@
 <translation id="869884720829132584">Меню приложений</translation>
 <translation id="869891660844655955">Срок действия</translation>
 <translation id="8703346390800944767">Пропустить</translation>
+<translation id="870341961648617780">Безопасный просмотр и расширенные настройки безопасности</translation>
 <translation id="8705331520020532516">Серийный номер</translation>
 <translation id="8705580154597116082">Доступно подключение к Wi-Fi через телефон</translation>
 <translation id="8705629851992224300">Не удалось прочитать электронный ключ.</translation>
@@ -5612,6 +5651,7 @@
 <translation id="874689135111202667">{0,plural, =1{Загрузить файл на этот сайт?}one{Загрузить # файл на этот сайт?}few{Загрузить # файла на этот сайт?}many{Загрузить # файлов на этот сайт?}other{Загрузить # файла на этот сайт?}}</translation>
 <translation id="8748384418490037181">Параметры Smart Lock</translation>
 <translation id="8749863574775030885">Доступ к USB-устройствам от неизвестного поставщика</translation>
+<translation id="8750133148106010815">Для запуска Google Play организация <ph name="ORGANIZATION_NAME" /> требует выполнить резервное копирование данных и сбросить настройки устройства Chromebook до заводских.</translation>
 <translation id="8750155211039279868">Сайт <ph name="ORIGIN" /> запрашивает разрешение подключиться к последовательному порту</translation>
 <translation id="8754200782896249056">&lt;p&gt;При работе <ph name="PRODUCT_NAME" /> в поддерживаемой среде на компьютере используются системные настройки прокси-сервера. Однако либо ваша система не поддерживается, либо возникли неполадки при запуске системной конфигурации.&lt;/p&gt;
 
@@ -5641,7 +5681,7 @@
 <translation id="8781834595282316166">Добавить новую вкладку в группу</translation>
 <translation id="8782565991310229362">Запуск киоск-приложения был отменен.</translation>
 <translation id="8783093612333542422">&lt;strong&gt;<ph name="SENDER" />&lt;/strong&gt; хочет открыть вам доступ к принтеру &lt;strong&gt;<ph name="PRINTER_NAME" />&lt;/strong&gt;.</translation>
-<translation id="8783834180813871000">Введите код Bluetooth-подключения и нажмите "Ввод".</translation>
+<translation id="8783834180813871000">Введите код Bluetooth-подключения и нажмите Ввод.</translation>
 <translation id="8784626084144195648">Среднее по группам</translation>
 <translation id="8785622406424941542">Стилус</translation>
 <translation id="8787254343425541995">Использовать прокси-серверы для общих сетей</translation>
@@ -5666,6 +5706,7 @@
 <translation id="8809147117840417135">Светло-бирюзовый</translation>
 <translation id="8813698869395535039">Не удалось войти в аккаунт <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">лист бумаги</translation>
+<translation id="8813872945700551674">Для установки расширения "<ph name="EXTENSION_NAME" />" требуется одобрение одного из родителей</translation>
 <translation id="8813969267212093033">Текущий язык системы</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Сканирование архива...</translation>
@@ -5946,6 +5987,7 @@
 <translation id="9203398526606335860">&amp;Сбор данных включен</translation>
 <translation id="9203904171912129171">Выберите устройство</translation>
 <translation id="9203962528777363226">Администратор этого устройства отключил возможность добавлять новых пользователей</translation>
+<translation id="9211177926627870898">Требуется обновление</translation>
 <translation id="9214520840402538427">К сожалению, срок инициализации для атрибутов времени установки истек. Обратитесь в службу поддержки.</translation>
 <translation id="9214695392875603905">Кекс</translation>
 <translation id="9215293857209265904">Добавлено расширение или приложение: <ph name="EXTENSION_NAME" /></translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index c774b76..a06f8ec3 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Adobe Flash Player ආචයන සැකසීම්</translation>
 <translation id="1274997165432133392">කුකී සහ වෙනත් අඩවි දත්ත</translation>
 <translation id="1280820357415527819">ජංගම ජාල සඳහා සොයමින්</translation>
+<translation id="1280965841156951489">ගොනු සංස්කරණ කරන්න</translation>
 <translation id="1282420830958964167">ඔබේ මාපියන් "<ph name="APP_NAME" />" මත සැකසූ සීමාව ඉක්ම විය. ඔබට එය හෙට <ph name="TIME_LIMIT" />කට භාවිත කළ හැක.</translation>
 <translation id="1285320974508926690">මෙම අඩවිය කිසිවිට පරිවර්තනය නොකරන්න</translation>
 <translation id="1285484354230578868">ඔබේ Google Drive ගිනුම තුළ දත්ත ගබඩා කරන්න</translation>
@@ -510,6 +511,7 @@
 <translation id="1692210323591458290">තද දම්</translation>
 <translation id="1692799361700686467">බොහෝ අඩවිවලින් කුකීස්වලට ඉඩ දී තිබේ.</translation>
 <translation id="1697150536837697295">කලාව</translation>
+<translation id="1697686431566694143">ගොනුව සංස්කරණ කරන්න</translation>
 <translation id="1698122934742150150">වත්මන් අප්‍රසිද්ධ සැසිය පමණි</translation>
 <translation id="1698650002254827833">යෙදුම් ලැයිස්තුව පූරණය කළ නොහැක. කරුණාකර නැවත උත්සාහ කරන්න.</translation>
 <translation id="1701062906490865540">මෙම පුද්ගලයා ඉවත් කරන්න</translation>
@@ -695,6 +697,7 @@
 <translation id="1931152874660185993">කිසිදු උපාංගයක් හමු නොවීය.</translation>
 <translation id="1932098463447129402">මීට පසු</translation>
 <translation id="1933809209549026293">කරුණාකර මුසිකයක් හෝ යතුරු පුවරුවක් සම්බන්ධ කරන්න. ඔබ බ්ලූටූත් උපාංගයක් භාවිතා කරමින් සිටින්නේ නම්, එය යුගල කිරීමට සුදානම් බව තහවුරු කර ගන්න.</translation>
+<translation id="1936931585862840749">මුද්‍රණ කරන පිටපත් ගණන දැක්වීමට සංඛ්‍යාවක් භාවිත කරන්න (1 සිට <ph name="MAX_COPIES" /> දක්වා).</translation>
 <translation id="1937774647013465102"><ph name="ARCHITECTURE_DEVICE" /> වන මෙම උපාංගය සමඟ <ph name="ARCHITECTURE_CONTAINER" /> භාජන නිර්මාණශිල්ප වර්ගය ආයාත කළ නොහැක. ඔබට මෙම භාජනය වෙනත් උපාංගයකට ප්‍රතිසාධන කිරීමට උත්සාහ කළ හැක, නැති නම් ඔබට ගොනු යෙදුම විවෘත කිරීමෙන් මෙම භාජන රූපය තුළ ගොනු වෙත ප්‍රවේශ විය හැක.</translation>
 <translation id="1938351510777341717">බාහිර විධානය</translation>
 <translation id="1940546824932169984">සම්බන්ධ කළ උපාංග</translation>
@@ -990,6 +993,7 @@
 <translation id="2343747224442182863">මෙම පටිත්තට අවධානය යොමු කරන්න</translation>
 <translation id="2344028582131185878">ස්වයංක්‍රීය බාගැනීම්</translation>
 <translation id="2345723121311404059"><ph name="PRINTER_NAME" /> වෙත පිටු 1ක්</translation>
+<translation id="2346953515226895098">SODA සේවය</translation>
 <translation id="2347644257713614136">අධ්‍යාපනය සඳහා Hangouts සහ Cast භාවිතය Google රහස්‍යතා ප්‍රතිපත්තිය මගින් පාලනය වේ.</translation>
 <translation id="2348176352564285430">යෙදුම: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">යළි පූරණ කළා</translation>
@@ -1043,6 +1047,7 @@
 <translation id="2422125132043002186">ලිනක්ස් ප්‍රතිසාධනය අවලංගු කළා</translation>
 <translation id="2423578206845792524">රූපය මෙසෙල සුරකින්න...</translation>
 <translation id="2428510569851653187">පටිත්ත බිඳ වැටුණු විට ඔබ කළ දේ විස්තර කරන්න</translation>
+<translation id="2428939361789119025">WiFi අක්‍රිය කරන්න</translation>
 <translation id="2431027948063157455">Google සහායක පූරණය කළ නොහැකි විය, ඔබේ ජාල සබැඳුම පරීක්ෂා කර යළි උත්සාහ කරන්න.</translation>
 <translation id="2432753757290432042">Linux (Beta) යාවත්කාලීනයක් අවශ්‍යයි</translation>
 <translation id="2433452467737464329">පිටුව ඉබේම නැවුම් කිරීමට URL තුළ විමසුමක් එක් කෙරේ: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1460,6 +1465,7 @@
 <translation id="2944060181911631861">භාවිත සහ දෝෂ නිර්ණ දත්ත යවන්න. ස්වයංක්‍රියව රෝග විනිශ්චය, උපාංග සහ යෙදුම් භාවිත දත්ත Google වෙත යැවීමෙන් ඔබගේ Android අත්දැකීම වැඩි දියුණු කර ගැනීමට උපකාරී වන්න. මෙය පද්ධති සහ යෙදුම් ස්ථායිතාවට සහ අනෙකුත් වැඩිදියුණු කිරීම්වලට උදවු කරයි. සමහර එකතු කළ දත්ත Google යෙදුම්වලට සහ Android සංවර්ධකයින් වැනි හවුල්කරුවන්ට ද උදවු කරති. ඔබේ අමතර වෙබ් සහ යෙදුම් ක්‍රියාකාරකම් සැකසීම සක්‍රීය නම්, මෙම දත්ත ඔබේ Google ගිණුුමට සුරකිනු ලැබේ. <ph name="BEGIN_LINK1" />තවත් දැන ගන්න<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">සබඳතාව එක් කරන්න</translation>
 <translation id="2947605845283690091">වෙබ් බ්‍රවුස් කිරීම වේගවත් විය යුතු ය. දැන් <ph name="BEGIN_LINK" />ඔබේ දිගු පරීක්‍ෂා කිරීමට<ph name="END_LINK" /> මොහොතක් ගන්න.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 හානිකර විය හැකි දිගුවක් අක්‍රියයි. ඔබට එය ඉවත් කිරීමට ද හැකිය.}one{හානිකර විය හැකි දිගු # ක් අක්‍රියයි. ඔබට ඒවා ඉවත් කිරීමට ද හැකිය.}other{හානිකර විය හැකි දිගු # ක් අක්‍රියයි. ඔබට ඒවා ඉවත් කිරීමට ද හැකිය.}}</translation>
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" /> වෙත යන්න</translation>
 <translation id="29488703364906173">නූතන වෙබ සඳහා තැනූ, වේගවත්, සරල, සහ ආරක්සිත වෙබ් බ්‍රවුසරය.</translation>
 <translation id="2949289451367477459">ස්ථානය භාවිතා කරන්න. මෙම උපාංගයේ ස්ථානය භාවිත කිරීමට ස්ථාන අවසරය සහිත යෙදුම් සහ සේවාවලට ඉඩ දෙන්න. Google ස්ථාන දත්ත වරින් වර රැස් කිරීම සහ මෙම දත්ත ස්ථාන නිරවද්‍යතාව සහ ස්ථානය පදනම් සේවා වැඩි දියුණු කිරීමට උදවු වීමට නිර්නාමික ආකාරයකින් භාවිතා කිරීම කළ හැකිය. <ph name="BEGIN_LINK1" />තව දැන ගන්න<ph name="END_LINK1" /></translation>
@@ -1540,6 +1546,7 @@
 <translation id="3067198179881736288">වැඩසටහන සථාපනය කරන්න ද?</translation>
 <translation id="3067198360141518313">මෙම ප්ලගිනය ධාවනය කරන්න</translation>
 <translation id="3071624960923923138">ඔබට නව පටිත්තක් විවෘත කිරීමට මෙහි ක්ලික් කළ හැකිය</translation>
+<translation id="3072775339180057696">වෙබ් අඩවිය <ph name="FILE_NAME" /> බැලීමට ඉඩ දෙන්නේද?</translation>
 <translation id="3075874217500066906">Powerwash ක්‍රියාවලිය ඇරඹීම සඳහා නැවත ආරම්භ කිරීමක් අවශයි. නැවත ඇරඹූ පසු ඔබට ඉදිරිය යා යුත්තේ කෙසේදැයි විමසනු ඇත.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">ඔබේ පුරන දත්ත මකන ලදි</translation>
@@ -1552,6 +1559,7 @@
 <translation id="3085412380278336437">අඩවියට ඔබේ කැමරාව භාවිත කළ හැකිය</translation>
 <translation id="3085752524577180175">SOCKS සංග්‍රාහක</translation>
 <translation id="3088052000289932193">වෙබ් අඩවිය MIDI භාවිත කරයි</translation>
+<translation id="3088128611727407543">යෙදුම් පැතිකඩ සූදානම් කෙරේ...</translation>
 <translation id="3088325635286126843">&amp;යළි නම් කරන්න...</translation>
 <translation id="3089137131053189723">සෙවුම හිස් කළා</translation>
 <translation id="3090193911106258841">ශ්‍රව්‍ය සහ වීඩියෝ ආදානයට ප්‍රවේශ වෙමින්</translation>
@@ -1593,6 +1601,7 @@
     විස්තරය:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome යෙදුම්</translation>
+<translation id="3150693969729403281">දැන් ආරක්‍ෂක පරීක්‍ෂාව ධාවන කරන්න</translation>
 <translation id="3150927491400159470">දැඩි නැවුම් කිරීම</translation>
 <translation id="315116470104423982">ජංගම දත්ත</translation>
 <translation id="3151539355209957474">ආරම්භක වේලාව</translation>
@@ -1685,6 +1694,7 @@
 <translation id="3282568296779691940">Chrome වෙත පුරන්න</translation>
 <translation id="3285322247471302225">නව සහ ටැබ</translation>
 <translation id="328571385944182268">ඔබේ මුරපදය සුරකින්නද?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> හට ඔබ පටිති <ph name="ORIGIN" /> ම වසන තෙක් <ph name="FILENAME" /> බැලීමට හැකි වෙයි</translation>
 <translation id="3288047731229977326">සංවර්ධක ප්‍රකාරය තුළ ධාවනය වන දිගු ඔබගේ පරිගණකයට හානි කළ හැක. ඔබ සංවර්ධකයකු නොවේ නම්, ආරක්ෂිතව සිටීමට ඔබ සංවර්ධක ප්‍රකාරය තුළ ධාවනය වන මෙම දිගු අබල කළ යුතුයි.</translation>
 <translation id="3289856944988573801">යාවත්කාල පරීක්ෂා කිරීමට, කරුණාකර ඊදර්නෙට් හෝ Wi-Fi භාවිතා කරන්න.</translation>
 <translation id="3290356915286466215">අනාරක්‍ෂිතයි</translation>
@@ -1793,6 +1803,7 @@
 <translation id="344630545793878684">වෙබ අඩවි විශාල ගණනක ඔබගේ දත්ත කියවන්න</translation>
 <translation id="3448086340637592206">Google Chrome සහ Chrome OS අතිරේක නියම</translation>
 <translation id="3448492834076427715">ගිණුම යාවත්කාලීන කරන්න</translation>
+<translation id="3449393517661170867">නව පටිති කවුළුව</translation>
 <translation id="3449839693241009168"><ph name="SEARCH_KEY" /> ඔබා නියෝග <ph name="EXTENSION_NAME" /> වෙත යවන්න</translation>
 <translation id="3450157232394774192">නිශ්චල තත්ව අදිවැසුම් ප්‍රතිශතය</translation>
 <translation id="3451332697983754369">මගේ <ph name="DEVICE_TYPE" /> සමමුහූර්ත කරන්න</translation>
@@ -1973,6 +1984,7 @@
 <translation id="3681311097828166361">ඔබගේ ප්‍රතිපෝෂණයට ස්තූතියි. ඔබ දැන් නොබැඳි වන අතර, ඔබේ වාර්තාව පසුව යවනු ඇත.</translation>
 <translation id="3682824389861648626">චලන සීමාන්තිකය</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> තිර බෙදාගැනීම් ඉල්ලීමක්</translation>
+<translation id="3686074530047028092">අධ්‍යාපන ගිණුම</translation>
 <translation id="368789413795732264">මෙම ගොනුව ලිවීමට උත්සාහ කිරීමේදී දෝෂයක් ඇති විය: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">ඔබ යෙදුම තුළ විවෘත කරන ගොනු සහ ෆෝල්ඩර වෙතට ලියන්න</translation>
 <translation id="3688526734140524629">නාලිකාව වෙනස් කරන්න</translation>
@@ -2041,6 +2053,7 @@
 <translation id="3759933321830434300">වෙබ් පිටුවල කොටස් අවහිර කරන්න</translation>
 <translation id="3760460896538743390">පසුබිම් පිටුව විමර්ශනය (&amp;B)</translation>
 <translation id="37613671848467444">&amp;අප්‍රකට කවුළුවක විවෘත කරන්න</translation>
+<translation id="3761556954875533505">වෙබ් අඩවියට ගොනු සංස්කරණ කිරීමට ඉඩ දෙන්නේද?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{ USB උපාංගයක් සමඟ සන්නිවේදනය කරන්න}one{ # USB උපාංග සමඟ සන්නිවේදනය කරන්න}other{ # USB උපාංග සමඟ සන්නිවේදනය කරන්න}}</translation>
 <translation id="3765246971671567135">නොබැඳි ආදර්ශන ප්‍රකාර ප්‍රතිපත්තිය කියවීමට නොහැකි විය.</translation>
 <translation id="3768037234834996183">ඔබේ මනාප සමමුහුර්ත කරමින්...</translation>
@@ -2177,6 +2190,7 @@
 <translation id="3927932062596804919">ප්‍රතික්ෂේප කරන්න</translation>
 <translation id="3928570707778085600"><ph name="FILE_OR_FOLDER_NAME" /> වෙත වෙනස්කම් සුරකින්නද?</translation>
 <translation id="3929426037718431833">මෙම දිගුවලට මෙම වෙබ් අඩවිය මත තොරතුරු බැලීමටත් වෙනස් කිරීමටත් හැකි ය.</translation>
+<translation id="3930155420525972941">සමූහය නව කවුළුවට ගෙන යන්න</translation>
 <translation id="3930737994424905957">උපාංග සඳහා සොයමින්</translation>
 <translation id="3930968231047618417">පසුබිම් වර්ණය</translation>
 <translation id="3933283459331715412"><ph name="USERNAME" /> සඳහා මැකූ මුරපදය ප්‍රතිසාධනය කරන්න</translation>
@@ -2335,6 +2349,7 @@
 <translation id="4130750466177569591">මම එකඟ වෙමි</translation>
 <translation id="413121957363593859">අංග</translation>
 <translation id="4131410914670010031">කළු සහ සුදු</translation>
+<translation id="4133076602192971179">ඔබේ මුරපදය වෙනස් කිරීමට යෙදුම විවෘත කරන්න</translation>
 <translation id="4136203100490971508">රාත්‍රී ආලෝකය හිරු නැගීමේදී ස්වයංක්‍රීයව ක්‍රියාවිරහිත වනු ඇත</translation>
 <translation id="41365691917097717">ඉදිරියට යාම Android යෙදුම් සෑදීම සහ පරීක්‍ෂා කිරීම සඳහා ADB නිදොස් කිරීම සබල කරයි. මෙම ක්‍රියාව Google විසින් සත්‍යාපිත නොවන Android යෙදුම් ස්ථාපන කිරීමට ඉඩ දෙන අතර, අබල කිරීමට කර්මාන්තශාලා යළි සැකසුමක් අවශ්‍ය වන බව සලකන්න.</translation>
 <translation id="4138267921960073861">සයින්-ඉන් තිරයෙහි භාවිතනම, සහ ඡායාරූපය පෙන්වන්න</translation>
@@ -2446,6 +2461,7 @@
 <translation id="4330387663455830245">කිසිවිටක <ph name="LANGUAGE" /> පරිවර්තනය නොකරන්න</translation>
 <translation id="4332976768901252016">මාපිය පාලන සකසන්න</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 With RSA සංකේතනය</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{ඔබේ පරිපාලකයා 1 හානිකර විය හැකි දිගුවක් ආපසු සක්‍රීය කර ඇත}one{ඔබේ පරිපාලකයා හානිකර විය හැකි දිගු # ක් ආපසු සක්‍රීය කර ඇත}other{ඔබේ පරිපාලකයා හානිකර විය හැකි දිගු # ක් ආපසු සක්‍රීය කර ඇත}}</translation>
 <translation id="4336434711095810371">සියලු දත්ත හිස් කරන්න</translation>
 <translation id="4336979451636460645">ජාල වාර්ථා සඳහා, බලන්න: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> හට "<ph name="EXTENSION_NAME" />" යෙදුම සමඟ සන්නිවේදනය කිරීමට අවශ්‍යයි</translation>
@@ -2752,6 +2768,7 @@
 <translation id="4785719467058219317">ඔබ මෙම වෙබ් අඩවිය සමඟ ලියාපදිංචි නොකළ ආරක්‍ෂක යතුරක් භාවිත කරයි</translation>
 <translation id="4788092183367008521">ඔබගේ අන්තර්ජාල සම්බන්ධතාව පරීක්‍ෂා කර නැවත උත්සාහ කරන්න.</translation>
 <translation id="4792711294155034829">ගැටළුවක් වාර්තා කරන්න...</translation>
+<translation id="4794810983896241342">යාවත්කාලීන <ph name="BEGIN_LINK" />ඔබේ පරිපාලකයා<ph name="END_LINK" /> විසින් කළමනා කෙරේ</translation>
 <translation id="479536056609751218">වෙබ් පිටුව, HTML පමණී</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />බ්ලූටූත් ලොග<ph name="END_LINK" /> අමුණන්න (Google අභ්‍යන්තර)</translation>
 <translation id="4801448226354548035">ගිණුම් සඟවන්න</translation>
@@ -2847,6 +2864,7 @@
 <translation id="4908811072292128752">අඩවි දෙකක් එකවර බ්‍රවුස් කිරීම සඳහා නව පටිත්තක් විවෘත කරන්න</translation>
 <translation id="4909038193460299775">මෙම ගිණුම <ph name="DOMAIN" /> මගින් කළමනාකරණය කරන නිසා, ඔබගේ පිටුසන්, ඉතිහාසය, මුරපද, සහ අනෙකුත් සැකසීම් මෙම උපාංගය වෙතින් හිස් කරනු ඇත. කෙසේ වෙතත්, ඔබගේ දත්ත ඔබගේ Google ගිණුමේ ගබඩා කර තිබෙනු ඇති අතර <ph name="BEGIN_LINK" />Google උපකරණ පුවරුව<ph name="END_LINK" /> තුළ කළමනාකරණය කළ හැකිය.</translation>
 <translation id="4912643508233590958">අක්‍රීය අවධි වීම්</translation>
+<translation id="4916542008280060967">වෙබ් අඩවියට <ph name="FILE_NAME" /> සංස්කරණ කිරීමට ඉඩ දෙන්නේද?</translation>
 <translation id="491691592645955587">සුරක්ෂිත බ්‍රව්සරයකට මාරු වන්න</translation>
 <translation id="4917385247580444890">ශක්තිමත්</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> හට "<ph name="EXTENSION_NAME" />" දිගුව සමඟ සන්නිවේදනය කිරීමට අවශ්‍යයි</translation>
@@ -2918,6 +2936,7 @@
 <translation id="5017633213534173756">මතක තබා ගන්න</translation>
 <translation id="5018207570537526145">දිගු වෙබ් අඩවිය විවෘත කරන්න</translation>
 <translation id="5021750053540820849">තවමත් යාවත්කාලීන නොකළ</translation>
+<translation id="5026806129670917316">Wi-Fi සක්‍රීය කරන්න</translation>
 <translation id="5026874946691314267">නැවත මෙය පෙන්වන්න එපා</translation>
 <translation id="5027550639139316293">ඊමේල් සහතිකය</translation>
 <translation id="5027562294707732951">දිගුව එක් කරන්න</translation>
@@ -3030,6 +3049,7 @@
 <translation id="5184063094292164363">&amp;JavaScript කොන්සෝලය</translation>
 <translation id="5184209580557088469">මෙම පරිශීලක නාමය සහිත ප්‍රවේශපත්‍රයක් දැනටමත් පවතියි</translation>
 <translation id="5184662919967270437">ඔබේ උපාංගය යාවත්කාලීන කරමින්</translation>
+<translation id="5185359571430619712">දිගු සමාලෝචන කරන්න</translation>
 <translation id="5185386675596372454">වැඩි අවශ්‍ය බැවින්  "<ph name="EXTENSION_NAME" />" හි නවතම සංස්කරණය අක්‍රීය කරන ලදී.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> හට බහුවිධ ගොනු බාගැනීමට අවශ්‍යයි</translation>
@@ -3080,6 +3100,7 @@
 <translation id="5260334392110301220">ස්මාර්ට් මිල ගණන්</translation>
 <translation id="5260508466980570042">කණගාටුයි, ඔබේ ඊමේල් ලිපිනය හෝ මුරපදය තහවුරු කරගත නොහැක. නැවත උත්සාහ කරන්න.</translation>
 <translation id="5261683757250193089">Web Store හි විවෘත කරන්න</translation>
+<translation id="5262178194499261222">මුරපදය ඉවත් කරන්න</translation>
 <translation id="5264148714798105376">මෙය මිනිත්තුවක් හෝ කිහිපයක් ගත හැකිය.</translation>
 <translation id="5264252276333215551">ඔබේ යෙදුම කියෝස්ක් ප්‍රකාරය තුළ දියත් කිරීමට කරුණාකර අන්තර්ජාලයට සබඳවන්න</translation>
 <translation id="5265562206369321422">සතියකට වඩා වැඩියෙන් නොසබැඳියි</translation>
@@ -3505,6 +3526,7 @@
 <translation id="5833726373896279253">මෙම සැකසුම් හිමිකරු විසින් පමණක් වෙනස් කළ හැක:</translation>
 <translation id="5834581999798853053">මිනිත්තු <ph name="TIME" /> පමණ ඉතිරිව ඇත</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - කැමරා හෝ මයික්‍රෆෝන පටිගත කිරීම</translation>
+<translation id="5841270259333717135">ඊදර්නෙට් වින්‍යාස කරන්න</translation>
 <translation id="5842497610951477805">බ්ලූටූත් සබල</translation>
 <translation id="5846200638699387931">බන්ධන කාරක රීති දෝෂය: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">දැනටමත් එක් කෙරිණි</translation>
@@ -3550,6 +3572,7 @@
 <translation id="5900358982890952556">ලිනක්ස් (බීටා) උත්ශ්‍රේණි කරන්න</translation>
 <translation id="5901494423252125310">මුද්‍රක දොර විවෘතයි</translation>
 <translation id="5901630391730855834">කහ</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{ඔබ 1 හානිකර විය හැකි දිගුවක් ආපසු සක්‍රීය කර ඇත}one{ඔබ හානිකර විය හැකි දිගු # ක් ආපසු සක්‍රීය කර ඇත}other{ඔබ හානිකර විය හැකි දිගු # ක් ආපසු සක්‍රීය කර ඇත}}</translation>
 <translation id="5906655207909574370">බොහෝ දුරට යාවත්කාලීනයි! යාවත්කාලීනය අවසන් කිරීමට ඔබේ උපාංගය යළි අරඹන්න.</translation>
 <translation id="5906732635754427568">මෙම යෙදුම සමඟ සම්බන්ධ දත්ත මෙම උපාංගයෙන් ඉවත් කරනු ඇත.</translation>
 <translation id="5908769186679515905">ෆ්ලෑෂ් ධාවනය වීමෙන් අඩවි අවහිර කරන්න</translation>
@@ -3579,6 +3602,7 @@
 <translation id="59324397759951282"><ph name="MANUFACTURER_NAME" /> වෙතින් USB උපාංගය</translation>
 <translation id="5932881020239635062">අනුක්‍රමික</translation>
 <translation id="5933376509899483611">වේලා කලාපය</translation>
+<translation id="5935656526031444304">ආරක්‍ෂිත බ්‍රවුස් කිරීම කළමනා කරන්න</translation>
 <translation id="5938002010494270685">ආරක්ෂක උත්ශ්‍රේණි කිරීමක් ඇත</translation>
 <translation id="5939518447894949180">නැවත සකසන්න</translation>
 <translation id="5941153596444580863">පුද්ගලයා එක් කරන්න...</translation>
@@ -3622,6 +3646,7 @@
 <translation id="5993807461461235661">මෙම උඩුගත කිරීම සංකේතිත වන අතර, ඔබේ ආයතනයේ ආරක්‍ෂක ප්‍රතිපත්ති උල්ලංඝන කරයි.</translation>
 <translation id="5997337190805127100">වෙබ් අඩවි ප්‍රවේශය ගැන තවත් දැන ගන්න</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' සඳහා ප්‍රතිඵල <ph name="RESULT_COUNT" />ක්</translation>
+<translation id="6002210667729577411">සමූහය නව කවුළුවට ගෙන යන්න</translation>
 <translation id="6002458620803359783">මනාප හඬ</translation>
 <translation id="6006484371116297560">පැරණි</translation>
 <translation id="6007240208646052708">ඔබේ භාෂාවෙන් හඬ සෙවීම නොමැත.</translation>
@@ -4158,6 +4183,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">ඩෙස්ක්ටොප් කෙටි මග පෙන්වන්න</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> විරාම කරන ලදී</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />ඔබේ පරිපාලකයා<ph name="END_LINK" /> ආරක්‍ෂිත බ්‍රවුස් කිරීම අක්‍රිය කර ඇත</translation>
 <translation id="6742339027238151589">ස්ක්‍රිප්ට වෙත පිවිසිය හැකි</translation>
 <translation id="6745592621698551453">දැන් යාවත් කරන්න</translation>
 <translation id="6746124502594467657">පහළට ගෙන යන්න</translation>
@@ -4416,6 +4442,7 @@
     <ph name="BEGIN_BOLD" />මතක තබා ගන්න:<ph name="END_BOLD" /> සමාන හඬකට හෝ පටිගත කිරීමකට ද ඔබේ සහකරු වෙත ප්‍රවේශ විය හැකි වීමට ඉඩ ඇත. පසුව සහකරු සැකසීම් තුළින් එය අක්‍රිය කිරීමෙන් ඔබට Voice Match අවසර ඉවත් කළ හැක.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">මෙසේ නම්කළ උපාංගය සමඟ දත්ත හුවමාරු කරගන්න: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">යාවත්කාලීන සම්පූර්ණ වූ විට උපාංගය යළි ඇරඹෙයි.</translation>
 <translation id="7098389117866926363">USB-C උපාංගය (පිටුපස වම් තොට)</translation>
 <translation id="7098447629416471489">වෙනත් සුරැකි සෙවීම් යාන්ත්‍රණ මෙහි දිස් වනු ඇත</translation>
 <translation id="7099337801055912064">විශාල PPD පූරණය කළ නොහැක. උපරිම ප්‍රමාණය 250 kB වේ.</translation>
@@ -4888,6 +4915,7 @@
 <translation id="7766807826975222231">සංචාරයක් කරන්න</translation>
 <translation id="7766838926148951335">අවසර පිළිගන්න</translation>
 <translation id="7769672763586021400">ආදර්ශ ID</translation>
+<translation id="7770651108375708429">Wi-Fi එක විසන්ධි කරන්න</translation>
 <translation id="7771452384635174008">පැතිකඩ</translation>
 <translation id="7772032839648071052">රහස්පදය ස්ථිර කරන්න</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> පිළිබඳ</translation>
@@ -5045,6 +5073,7 @@
 <translation id="7939412583708276221">කෙසේ වුවත් තබා ගන්න</translation>
 <translation id="7942349550061667556">රතු</translation>
 <translation id="7943837619101191061">පිහිටීම එක් කරන්න...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{සමථයට පත් වූ 1 මුරපදයක්}one{සමථයට පත් වූ මුරපද # ක්}other{සමථයට පත් වූ මුරපද # ක්}}</translation>
 <translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" හට සබැඳීමට අවශ්‍යයි</translation>
 <translation id="7946586320617670168">මූලාරම්භය සුරක්‍ෂිත යුතුමයි</translation>
 <translation id="794676567536738329">අවසරයන් තහවුරු කරන්න</translation>
@@ -5143,6 +5172,7 @@
 <translation id="8059417245945632445">&amp;උපාංග පරීක්ෂා කරන්න</translation>
 <translation id="8059456211585183827">සුරැකීමට ලද හැකි මුද්‍රක කිසිවක් නැත.</translation>
 <translation id="8063235345342641131">පෙරනිමි කොළ නියුරුව</translation>
+<translation id="8063535366119089408">ගොනුව බලන්න</translation>
 <translation id="8064671687106936412">යතුර:</translation>
 <translation id="8068253693380742035">පිරීමට ස්පර්ශ කරන්න</translation>
 <translation id="8068809649322155577">මෙය <ph name="SITE_GROUP_NAME" />, සහ එය යටතේ ඇති කිසියම් වෙබ් අඩවි, සහ එහි ස්ථාපිත යෙදුම් විසින් ගබඩා කරනු ලැබූ සියලුම දත්ත සහ කුකී ඉවත් කරයි.</translation>
@@ -5208,6 +5238,7 @@
 <translation id="8152091997436726702">මුද්‍රක ලියාපදිංචිය කාලය ඉකුත් වී ඇත. මුද්‍රකයක් ලියාපදිංචි කිරීම පිනිස, ඔබ මුද්‍රකයෙහි ලියාපදිංචිය තහවුරු කළ යුතුයි.</translation>
 <translation id="8154790740888707867">ගොනු නොමැත</translation>
 <translation id="815491593104042026">ඕහ්!  අනාරක්ශිත ලිපිනයක් (<ph name="BLOCKED_URL" />) භාවිත කිරීමට සකසා ඇති බැවින් අවසරදීම අසාර්ථකයි. කරුණාකර පරිපාලක සබඳ කරගන්න.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{සමථයට පත් වූ මුරපද කිසිවක් නැත}=1{සමථයට පත් වූ {COUNT} මුරපදයක්}one{සමථයට පත් වූ මුරපද {COUNT} ක්}other{සමථයට පත් වූ මුරපද {COUNT} ක්}}</translation>
 <translation id="8157704005178149728">අධීක්‍ෂණය සැකසීම</translation>
 <translation id="8158117992543756526">මෙම උපාංගයට <ph name="MONTH_AND_YEAR" /> තුළ ස්වයංක්‍රීය මාදුකාංග සහ ආරක්‍ෂක යාවත්කාලීන ලබා ගැනීම නැවැත්විය. <ph name="LINK_BEGIN" />තවත් දැන ගන්න<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">සහතික භාර සැකසුම් දෝෂය</translation>
@@ -5261,6 +5292,7 @@
 <translation id="8226742006292257240">පහත දැක්වෙනුයේ ඔබේ පරිගණකය වෙත වෙන් කරන ලද අහඹු ලෙස සාදා ඇති TPM රහස්වචනයයි:</translation>
 <translation id="8227119283605456246">ගොනුව අමුණන්න</translation>
 <translation id="8230134520748321204"><ph name="ORIGIN" /> සඳහා මුරපදය සුරකින්න ද?</translation>
+<translation id="8233762480744368479">අන්තර්ජාල සැකසීම්</translation>
 <translation id="8234795456569844941">කරුණාකර අපේ ඉංජිනේරුවන්ට මෙම ගැටලුව විසඳීමට උදවු කරන්න. ඔබට පැතිකඩ දෝෂ පණිවිඩය ලැබීමට හරියටම පෙර සිදු වූ දේ අපට කියන්න:</translation>
 <translation id="8236123533334037984">ආරක්‍ෂක අනුමැතිය සඳහා ඔබේ ආයතනය මෙම උඩුගත කිරීම ස්කෑන් කරයි.</translation>
 <translation id="8236917170563564587">ඒ වෙනුවට මෙම පටිත්ත බෙදා ගන්න</translation>
@@ -5598,6 +5630,7 @@
 <translation id="8688579245973331962">ඔබේ නම නොපෙනේද?</translation>
 <translation id="8688591111840995413">රහස් වචනය හොඳ නැත</translation>
 <translation id="8688672835843460752">තිබේ</translation>
+<translation id="8691418731028620688">Wi-Fi එකට සම්බන්ධ කරන්න</translation>
 <translation id="8695825812785969222">ස්ථානය විවෘත කරන්න (&amp;L)...</translation>
 <translation id="869884720829132584">යෙදුම් මෙනුව</translation>
 <translation id="869891660844655955">කල් ඉකුත් වීමේ දිනය:</translation>
@@ -5757,6 +5790,7 @@
 <translation id="8872187374998143710">Plugin VM භාවිත කිරීමට ඔබේ උපාංගය යළි අරඹන්න.</translation>
 <translation id="8872777911145321141">වෙබ් අඩවියකට ඔබේ අතත්‍ය යථාර්ථ උපාංග සහ දත්ත භාවිත කිරීමට අවශ්‍ය වූ විට අසන්න (නිර්දේශිතයි)</translation>
 <translation id="8874184842967597500">සබඳවී නොමැත</translation>
+<translation id="8875775314572167244">ඊදර්නෙට් සැකසීම්</translation>
 <translation id="8876307312329369159">මෙම සැකසීම ආදර්ශන සැසිය තුළ වෙනස් කළ නොහැක.</translation>
 <translation id="8877448029301136595">[මූලික නාමාවලිය]</translation>
 <translation id="8878384954777710821">Plugin VM අස්ථාපන කෙරේ...</translation>
@@ -5798,6 +5832,7 @@
 <translation id="892706138619340876">සමහර සැකසීම් යළි පිහිටුවිණි</translation>
 <translation id="8930351635855238750">පිටුව නැවත පූරණය කිරීමෙන් පසු නව කුකී සැකසීම් බල පැවැත්වෙනු ඇත</translation>
 <translation id="8931394284949551895">නව උපාංග</translation>
+<translation id="8931475688782629595">ඔබ සමමුහූර්ත කරන දෙය කළමනා කරන්න</translation>
 <translation id="8932894639908691771">ප්‍රවේශ මාරු විකල්ප</translation>
 <translation id="8933960630081805351">Finder තුළ පෙන්වන්න (&amp;S)</translation>
 <translation id="8934732568177537184">කරගෙන යන්න</translation>
@@ -5955,6 +5990,7 @@
 <translation id="9148126808321036104">නැවත පිවිසෙන්න</translation>
 <translation id="9149866541089851383">සකසන්න...</translation>
 <translation id="9150045010208374699">ඔබගේ කැමරාව භාවිතා කරන්න</translation>
+<translation id="9150429437595727962">Wi-Fi සැකසීම්</translation>
 <translation id="9153934054460603056">අනන්‍යතාව හා මුරපදය සුරකින්න</translation>
 <translation id="9154194610265714752">යාවත්කාලීන කෙරිණි</translation>
 <translation id="91568222606626347">කෙටිමග තනන්න...</translation>
@@ -6016,6 +6052,7 @@
 <translation id="945522503751344254">අදහස් හා යෝජනා යවන්න</translation>
 <translation id="947329552760389097">&amp;මූලද්‍රව්‍ය පරීක්‍ෂා කරන්න</translation>
 <translation id="952992212772159698">සක්‍රීය කර නොමැත</translation>
+<translation id="956500788634395331">හානිකර විය හැකි දිගුවලින් ඔබ ආරක්‍ෂා කෙරේ</translation>
 <translation id="957960681186851048">මෙම අඩවිය ගොනු කිහිපයක් ස්වයංක්‍රීයව බාගැනීමට උත්සාහ කළේය</translation>
 <translation id="9580706199804957">Google සේවාවන් සමඟ සම්බන්ධ විය නොහැක</translation>
 <translation id="960719561871045870">වාහක කේතය</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 78f3914..fb2289b 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Nastavenia úložiska aplikácie Adobe Flash Player</translation>
 <translation id="1274997165432133392">Súbory cookie a ďalšie dáta webov</translation>
 <translation id="1280820357415527819">Hľadajú sa mobilné siete</translation>
+<translation id="1280965841156951489">Upraviť súbory</translation>
 <translation id="1282420830958964167">Vypršal limit aplikácie <ph name="APP_NAME" /> nastavený rodičom. Zajtra ju môžete používať <ph name="TIME_LIMIT" />.</translation>
 <translation id="1285320974508926690">Nikdy neprekladať tieto webové stránky</translation>
 <translation id="1285484354230578868">Ukladať údaje v účte na Disku Google</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Tmavofialová</translation>
 <translation id="1692799361700686467">Boli povolené súbory cookie z viacerých webových stránok.</translation>
 <translation id="1697150536837697295">Umenie</translation>
+<translation id="1697686431566694143">Upraviť súbor</translation>
 <translation id="1698122934742150150">Iba aktuálna relácia inkognito</translation>
 <translation id="1698650002254827833">Zoznam aplikácií sa nedá načítať. Skúste to znova.</translation>
 <translation id="1701062906490865540">Odstrániť túto osobu</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Nie sú nainštalované žiadne komponenty.</translation>
 <translation id="1932098463447129402">Nie pred</translation>
 <translation id="1933809209549026293">Pripojte myš alebo klávesnicu. Ak používate zariadenie Bluetooth, uistite sa, že je pripravené na párovanie.</translation>
+<translation id="1936931585862840749">Zadajte číslo označujúce počet kópií, ktoré chcete vytlačiť (od 1 do <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">S týmto zariadením, ktoré je <ph name="ARCHITECTURE_DEVICE" />, sa nedá importovať typ architektúry kontajnera <ph name="ARCHITECTURE_CONTAINER" />. Tento kontajner môžete skúsiť obnoviť do iného zariadenia, prípadne môžete získať prístup k súborom v tomto obraze kontajnera pomocou aplikácie Súbory.</translation>
 <translation id="1938351510777341717">Externý príkaz</translation>
 <translation id="1940546824932169984">Pripojené zariadenia</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Označiť túto kartu</translation>
 <translation id="2344028582131185878">Automatické sťahovania</translation>
 <translation id="2345723121311404059">1 strana do tlačiarne <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Služba SODA</translation>
 <translation id="2347644257713614136">Používanie služieb Hangouts a Cast for Education sa riadi pravidlami ochrany súkromia spoločnosti Google.</translation>
 <translation id="2348176352564285430">Aplikácia: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Znovu načítané</translation>
@@ -1045,6 +1049,7 @@
 <translation id="2422125132043002186">Obnovenie systému Linux bolo zrušené</translation>
 <translation id="2423578206845792524">Uložiť &amp;obrázok ako...</translation>
 <translation id="2428510569851653187">Opíšte, čo ste robili, keď karta zlyhala</translation>
+<translation id="2428939361789119025">Vypnúť Wi-Fi</translation>
 <translation id="2431027948063157455">Asistent Google sa nenačítal. Skontrolujte sieťové pripojenie a skúste to znova.</translation>
 <translation id="2432753757290432042">Vyžaduje sa aktualizácia systému Linux (beta)</translation>
 <translation id="2433452467737464329">Pridajte parameter dopytu do webovej adresy na automatické obnovenie stránky: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1462,6 +1467,7 @@
 <translation id="2944060181911631861">Odosielať údaje o využití a diagnostiky. Pomôžte zlepšiť prostredie Androidu automatickým odosielaním diagnostík a údajov o používaní zariadenia a aplikácií do Googlu. Pomôžu zvýšiť stabilitu systému a aplikácií a poskytovať ďalšie vylepšenia. Niektoré súhrnné údaje tiež pomôžu aplikáciám Google a partnerom, ako napríklad vývojárom Androidu. Ak aktivujete dodatočnú aktivitu na internete a v aplikáciách, tieto údaje sa môžu uložiť vo vašom účte Google. <ph name="BEGIN_LINK1" />Ďalšie informácie<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Pridať pripojenie</translation>
 <translation id="2947605845283690091">Prehliadanie webu by malo byť rýchle. Strávte chvíľu <ph name="BEGIN_LINK" />kontrolou rozšírení<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 potenciálne škodlivé rozšírenie je vypnuté. Môžete ho tiež odstrániť.}few{# potenciálne škodlivé rozšírenia sú vypnuté. Môžete ich tiež odstrániť.}many{# potentially harmful extensions are off. You can also remove them.}other{# potenciálne škodlivých rozšírení je vypnutých. Môžete ich tiež odstrániť.}}</translation>
 <translation id="2948300991547862301">Prejsť na stránku <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Rýchly, jednoduchý a bezpečný webový prehliadač vytvorený pre moderný web.</translation>
 <translation id="2949289451367477459">Používanie polohy. Povoľte aplikáciám a službám s povoleným prístupom k polohe používať polohu tohto zariadenia. Google môže pravidelne zhromažďovať údaje o polohe a používať ich anonymne na zlepšovanie presnosti a služieb na základe polohy. <ph name="BEGIN_LINK1" />Ďalšie informácie<ph name="END_LINK1" /></translation>
@@ -1542,6 +1548,7 @@
 <translation id="3067198179881736288">Inštalovať aplikáciu?</translation>
 <translation id="3067198360141518313">Spustiť tento doplnok</translation>
 <translation id="3071624960923923138">Kliknite tu a otvorte novú kartu</translation>
+<translation id="3072775339180057696">Chcete povoliť webu zobraziť si súbor <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Spustenie procesu úplného obnovenia (Powerwash) vyžaduje reštartovanie. Po reštartovaní budete musieť potvrdiť, že chcete pokračovať.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Vaše prihlasovacie údaje boli odstránené</translation>
@@ -1554,6 +1561,7 @@
 <translation id="3085412380278336437">Web môže používať vašu kameru</translation>
 <translation id="3085752524577180175">Hostiteľ SOCKS</translation>
 <translation id="3088052000289932193">Web používa MIDI</translation>
+<translation id="3088128611727407543">Pripravuje sa profil aplikácie...</translation>
 <translation id="3088325635286126843">&amp;Premenovať...</translation>
 <translation id="3089137131053189723">Vyhľadávanie bolo vymazané</translation>
 <translation id="3090193911106258841">Pristupovanie k zvukovému vstupu a vstupu videa</translation>
@@ -1595,6 +1603,7 @@
     Popis:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Aplikácie Chrome</translation>
+<translation id="3150693969729403281">Spustiť kontrolu bezpečnosti</translation>
 <translation id="3150927491400159470">Vynútiť opätovné načítanie</translation>
 <translation id="315116470104423982">Mobilné dátové prenosy</translation>
 <translation id="3151539355209957474">Čas začiatku</translation>
@@ -1687,6 +1696,7 @@
 <translation id="3282568296779691940">Prihlásenie do prehliadača Chrome</translation>
 <translation id="3285322247471302225">Nová &amp;karta</translation>
 <translation id="328571385944182268">Chcete ukladať heslá?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> si bude môcť zobraziť súbor <ph name="FILENAME" />, dokým nezavriete všetky karty webu <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Rozšírenia spustené v režime pre vývojárov môžu poškodiť váš počítač. Ak nie ste vývojár, mali by ste v záujme bezpečnosti rozšírenia spustené v režime vývojára zakázať.</translation>
 <translation id="3289856944988573801">Ak chcete skontrolovať aktualizácie, použite sieť ethernet alebo Wi‑Fi.</translation>
 <translation id="3290356915286466215">Nezabezpečené</translation>
@@ -1795,6 +1805,7 @@
 <translation id="344630545793878684">Čítať vaše údaje na viacerých webových stránkach</translation>
 <translation id="3448086340637592206">Doplňujúce zmluvné podmienky prehliadača Google Chrome a systému Chrome OS</translation>
 <translation id="3448492834076427715">Aktualizovať účet</translation>
+<translation id="3449393517661170867">Nové okno s kartami</translation>
 <translation id="3449839693241009168">Stlačením tlačidla <ph name="SEARCH_KEY" /> odošlete príkazy rozšíreniu <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Percento obsadenia priestoru údajmi stavu nečinnosti</translation>
 <translation id="3451332697983754369">Synchronizovať moje zariadenie <ph name="DEVICE_TYPE" /></translation>
@@ -1975,6 +1986,7 @@
 <translation id="3681311097828166361">Ďakujeme vám za spätnú väzbu. Teraz ste offline a vaše hlásenie sa odošle neskôr.</translation>
 <translation id="3682824389861648626">Limit pohybu</translation>
 <translation id="3683524264665795342">Žiadosť o zdieľanie obrazovky s aplikáciou <ph name="APP_NAME" /></translation>
+<translation id="3686074530047028092">Vzdelávací účet</translation>
 <translation id="368789413795732264">Pri zapisovaní súboru sa vyskytla chyba: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Zapisovať do súborov a priečinkov, ktoré v aplikácii otvoríte</translation>
 <translation id="3688526734140524629">Zmeniť kanál</translation>
@@ -2043,6 +2055,7 @@
 <translation id="3759933321830434300">Blokovať časti webových stránok</translation>
 <translation id="3760460896538743390">Skontrolovať &amp;stránku na pozadí</translation>
 <translation id="37613671848467444">Otvoriť v &amp;okne inkognito</translation>
+<translation id="3761556954875533505">Chcete povoliť webu upravovať súbory?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Komunikujte so zariadením USB}few{Komunikujte s # zariadeniami USB}many{Komunikujte s # zariadením USB}other{Komunikujte s # zariadeniami USB}}</translation>
 <translation id="3765246971671567135">Pravidlo pre režim offline ukážky sa nepodarilo načítať.</translation>
 <translation id="3768037234834996183">Synchronizujú sa predvoľby...</translation>
@@ -2178,6 +2191,7 @@
 <translation id="3927932062596804919">Odmietnuť</translation>
 <translation id="3928570707778085600">Chcete uložiť zmeny do súboru alebo priečinka <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Tieto rozšírenia môžu zobrazovať a meniť informácie na tomto webe.</translation>
+<translation id="3930155420525972941">Presunúť skupinu do nového okna</translation>
 <translation id="3930737994424905957">Vyhľadávajú sa zariadenia</translation>
 <translation id="3930968231047618417">Farba pozadia</translation>
 <translation id="3933283459331715412">Obnoviť odstránené heslo používateľa <ph name="USERNAME" /></translation>
@@ -2336,6 +2350,7 @@
 <translation id="4130750466177569591">Súhlasím</translation>
 <translation id="413121957363593859">Komponenty</translation>
 <translation id="4131410914670010031">Čiernobielo</translation>
+<translation id="4133076602192971179">Otvoriť aplikáciu a zmeniť heslo</translation>
 <translation id="4136203100490971508">Nočný režim sa automaticky vypne pri východe slnka</translation>
 <translation id="41365691917097717">Pokračovaním aktivujete ladenie ADB na vytváranie a testovanie aplikácií pre Android. Upozorňujeme, že touto akciou umožníte inštalácie aplikácií pre Android, ktoré Google neoveril, a deaktivácia vyžaduje obnovenie výrobných nastavení.</translation>
 <translation id="4138267921960073861">Zobraziť používateľské mená a fotografie na prihlasovacej obrazovke</translation>
@@ -2447,6 +2462,7 @@
 <translation id="4330387663455830245">Nikdy neprekladať jazyk <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Nastavenie rodičovskej kontroly</translation>
 <translation id="4333854382783149454">Štandard PKCS #1 SHA-1 so šifrovaním RSA</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Váš správca znova zapol 1 potenciálne škodlivé rozšírenie}few{Váš správca znova zapol # potenciálne škodlivé rozšírenia}many{Your administrator turned # potentially harmful extensions back on}other{Váš správca znova zapol # potenciálnych škodlivých rozšírení}}</translation>
 <translation id="4336434711095810371">Vymazať všetky údaje</translation>
 <translation id="4336979451636460645">Denníky siete nájdete na stránke <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942">Web <ph name="ORIGIN" /> chce komunikovať s aplikáciou <ph name="EXTENSION_NAME" /></translation>
@@ -2753,6 +2769,7 @@
 <translation id="4785719467058219317">Používate bezpečnostný kľúč, ktorý nie je registrovaný s týmto webom</translation>
 <translation id="4788092183367008521">Skontrolujte pripojenie k sieti a skúste to znova.</translation>
 <translation id="4792711294155034829">Nahlásiť p&amp;roblém…</translation>
+<translation id="4794810983896241342">Aktualizácie riadi <ph name="BEGIN_LINK" />váš správca<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Webová stránka, len kód HTML</translation>
 <translation id="4798236378408895261">Priložiť <ph name="BEGIN_LINK" />denníky rozhrania Bluetooth<ph name="END_LINK" /> (interné informácie Google)</translation>
 <translation id="4801448226354548035">Skryť účty</translation>
@@ -2848,6 +2865,7 @@
 <translation id="4908811072292128752">Otvorte novú kartu a prehliadajte dva weby súčasne</translation>
 <translation id="4909038193460299775">Keďže tento účet spravuje doména <ph name="DOMAIN" />, budú z tohto zariadenia vymazané vaše záložky, história, heslá a ďalšie nastavenia. Vaše údaje však zostanú uložené v účte Google a môžete ich spravovať pomocou panela <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Prebudenia z nečinnosti</translation>
+<translation id="4916542008280060967">Chcete povoliť webu upravovať súbor <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Prepnite na bezpečný prehliadač</translation>
 <translation id="4917385247580444890">Silné</translation>
 <translation id="4918021164741308375">Web <ph name="ORIGIN" /> chce komunikovať s rozšírením <ph name="EXTENSION_NAME" /></translation>
@@ -2919,6 +2937,7 @@
 <translation id="5017633213534173756">Zapamätať</translation>
 <translation id="5018207570537526145">Otvoriť web rozšírenia</translation>
 <translation id="5021750053540820849">Zatiaľ neaktualizované</translation>
+<translation id="5026806129670917316">Zapnúť sieť Wi‑Fi</translation>
 <translation id="5026874946691314267">Viac nezobrazovať</translation>
 <translation id="5027550639139316293">E-mailový certifikát</translation>
 <translation id="5027562294707732951">Pridať rozšírenie</translation>
@@ -3031,6 +3050,7 @@
 <translation id="5184063094292164363">Konzola &amp;JavaScript</translation>
 <translation id="5184209580557088469">Tiket s týmto používateľským menom už existuje</translation>
 <translation id="5184662919967270437">Zariadenie sa aktualizuje</translation>
+<translation id="5185359571430619712">Skontrolovať rozšírenia</translation>
 <translation id="5185386675596372454">Najnovšia verzia doplnku „<ph name="EXTENSION_NAME" />“ bola zakázaná, pretože vyžaduje viac povolení.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> chce stiahnuť viacero súborov</translation>
@@ -3081,6 +3101,7 @@
 <translation id="5260334392110301220">Inteligentné úvodzovky</translation>
 <translation id="5260508466980570042">Vašu e-mailovú adresu alebo vaše heslo sa nepodarilo overiť. Skúste to znova.</translation>
 <translation id="5261683757250193089">Otvoriť v Internetovom obchode</translation>
+<translation id="5262178194499261222">Odstrániť heslo</translation>
 <translation id="5264148714798105376">Môže to chvíľu trvať.</translation>
 <translation id="5264252276333215551">Ak chcete aplikáciu spustiť v režime verejného terminálu, pripojte sa k internetu.</translation>
 <translation id="5265562206369321422">Offline viac ako týždeň</translation>
@@ -3506,6 +3527,7 @@
 <translation id="5833726373896279253">Tieto nastavenia môže upraviť len vlastník:</translation>
 <translation id="5834581999798853053">Zostáva približne <ph name="TIME" /> min.</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – Kamera alebo mikrofón zaznamenáva obsah</translation>
+<translation id="5841270259333717135">Konfigurácia ethernetu</translation>
 <translation id="5842497610951477805">Povolenie rozhrania Bluetooth</translation>
 <translation id="5846200638699387931">Chyba syntaxe vzťahu: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Už pridané</translation>
@@ -3551,6 +3573,7 @@
 <translation id="5900358982890952556">Inovácia systému Linux (beta)</translation>
 <translation id="5901494423252125310">Dvierka tlačiarne sú otvorené</translation>
 <translation id="5901630391730855834">Žltá</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Znova ste zapli 1 potenciálne škodlivé rozšírenie}few{Znova ste zapli # potenciálne škodlivé rozšírenia}many{You turned # potentially harmful extensions back on}other{Znova ste zapli # potenciálnych škodlivých rozšírení}}</translation>
 <translation id="5906655207909574370">Aktualizácia je takmer hotová! Dokončite ju reštartovaním zariadenia.</translation>
 <translation id="5906732635754427568">Dáta priradené k danej aplikácii budú odstránené z tohto zariadenia.</translation>
 <translation id="5908769186679515905">Zakázať webom spúšťať Flash</translation>
@@ -3580,6 +3603,7 @@
 <translation id="59324397759951282">Zariadenie USB od výrobcu <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Sériové č.</translation>
 <translation id="5933376509899483611">Časové pásmo</translation>
+<translation id="5935656526031444304">Spravovať Bezpečné prehliadanie</translation>
 <translation id="5938002010494270685">K dispozícii je bezpečnostná inovácia</translation>
 <translation id="5939518447894949180">Resetovať</translation>
 <translation id="5941153596444580863">Pridať osobu...</translation>
@@ -3623,6 +3647,7 @@
 <translation id="5993807461461235661">Tento nahraný súbor je šifrovaný a porušuje pravidlá zabezpečenia vašej organizácie.</translation>
 <translation id="5997337190805127100">Ďalšie informácie o prístupe k webom</translation>
 <translation id="6000758707621254961">Viacero výsledkov (<ph name="RESULT_COUNT" />) pre hľadaný výraz „<ph name="SEARCH_TEXT" />“</translation>
+<translation id="6002210667729577411">Presunúť skupinu do nového okna</translation>
 <translation id="6002458620803359783">Preferované hlasy</translation>
 <translation id="6006484371116297560">Klasický</translation>
 <translation id="6007240208646052708">Hlasové vyhľadávanie nie je k dispozícii vo vašom jazyku.</translation>
@@ -4161,6 +4186,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [ <ph name="ISSUED_TO" /> ]</translation>
 <translation id="6739923123728562974">Zobraziť odkaz na pracovnej ploche</translation>
 <translation id="6740234557573873150">Pozastavené sťahovanie súboru <ph name="FILE_NAME" /></translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Váš správca<ph name="END_LINK" /> vypol Bezpečné prehliadanie</translation>
 <translation id="6742339027238151589">Prístupné pre skript</translation>
 <translation id="6745592621698551453">Aktualizovať</translation>
 <translation id="6746124502594467657">Presunúť nadol</translation>
@@ -4419,6 +4445,7 @@
     <ph name="BEGIN_BOLD" />Nezabudnite:<ph name="END_BOLD" /> Prístup k vášmu Asistentovi možno tiež získať podobným hlasom alebo záznamom. Povolenie pre funkciu Voice Match môžete odstrániť neskôr jej vypnutím v nastaveniach Asistenta.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Vymieňať údaje so zariadeniami s nasledujúcimi názvami: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Zariadenie bude reštartované po dokončení aktualizácií.</translation>
 <translation id="7098389117866926363">Zariadenie USB-C (ľavý port vzadu)</translation>
 <translation id="7098447629416471489">Tu sa zobrazia ďalšie uložené vyhľadávače</translation>
 <translation id="7099337801055912064">Súbor PPD sa nedá načítať, pretože je príliš veľký. Maximálna veľkosť je 250 kB.</translation>
@@ -4891,6 +4918,7 @@
 <translation id="7766807826975222231">Spustiť prehliadku</translation>
 <translation id="7766838926148951335">Prijať povolenia</translation>
 <translation id="7769672763586021400">ID modelu</translation>
+<translation id="7770651108375708429">Odpojiť Wi-Fi</translation>
 <translation id="7771452384635174008">Rozloženie</translation>
 <translation id="7772032839648071052">Potvrďte prístupovú frázu</translation>
 <translation id="7772127298218883077">Informácie o aplikácii <ph name="PRODUCT_NAME" /></translation>
@@ -5049,6 +5077,7 @@
 <translation id="7939412583708276221">Aj tak ponechať</translation>
 <translation id="7942349550061667556">Červená</translation>
 <translation id="7943837619101191061">Pridať umiestnenie...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 prelomené heslo}few{# prelomené heslá}many{# compromised passwords}other{# prelomených hesiel}}</translation>
 <translation id="7945031593909029181">Rozšírenie <ph name="CHROME_EXTENSION_NAME" /> žiada o pripojenie</translation>
 <translation id="7946586320617670168">Pôvod musí byť zabezpečený</translation>
 <translation id="794676567536738329">Potvrdiť povolenia</translation>
@@ -5148,6 +5177,7 @@
 <translation id="8059417245945632445">&amp;Preskúmať zariadenia</translation>
 <translation id="8059456211585183827">Nemáte žiadne tlačiarne, ktoré môžete uložiť.</translation>
 <translation id="8063235345342641131">Predvolený zelený avatar</translation>
+<translation id="8063535366119089408">Zobraziť súbor</translation>
 <translation id="8064671687106936412">Kľúč:</translation>
 <translation id="8068253693380742035">Dotykom sa prihlásite</translation>
 <translation id="8068809649322155577">Týmto vymažete všetky dáta a súbory cookie uložené doménou <ph name="SITE_GROUP_NAME" />, všetkými jej podradenými webmi a jej nainštalovanými aplikáciami.</translation>
@@ -5212,6 +5242,7 @@
 <translation id="8152091997436726702">Časový limit na registráciu tlačiarne vypršal. Ak chcete zaregistrovať tlačiareň, musíte jej registráciu potvrdiť.</translation>
 <translation id="8154790740888707867">Žiadny súbor</translation>
 <translation id="815491593104042026">Ojoj! Overenie zlyhalo, pretože bolo nakonfigurované tak, aby použilo nezabezpečenú webovú adresu (<ph name="BLOCKED_URL" />). Kontaktuje svojho správcu.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Neboli zistené žiadne prelomené heslá}=1{{COUNT} prelomené heslo}few{{COUNT} prelomené heslá}many{{COUNT} compromised passwords}other{{COUNT} prelomených hesiel}}</translation>
 <translation id="8157704005178149728">Nastavuje sa dohľad</translation>
 <translation id="8158117992543756526">Toto zariadenie prestalo v období <ph name="MONTH_AND_YEAR" /> dostávať automatické aktualizácie softvéru a zabezpečenia. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Chyba nastavenia dôveryhodnosti certifikátu</translation>
@@ -5265,6 +5296,7 @@
 <translation id="8226742006292257240">Nižšie je uvedené náhodne vygenerované heslo modulu TPM, ktoré bolo priradené k vášmu počítaču:</translation>
 <translation id="8227119283605456246">Pripojiť súbor</translation>
 <translation id="8230134520748321204">Chcete uložiť heslo pre web <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Nastavenia internetu</translation>
 <translation id="8234795456569844941">Pomôžte našim programátorom vyriešiť tento problém. Povedzte nám, čo sa stalo presne predtým, než sa zobrazilo chybové hlásenie profilu:</translation>
 <translation id="8236123533334037984">Vaša organizácia kontroluje tento nahraný súbor kvôli bezpečnostnému schváleniu.</translation>
 <translation id="8236917170563564587">Zdieľať radšej túto kartu</translation>
@@ -5602,6 +5634,7 @@
 <translation id="8688579245973331962">Nezobrazuje sa vaše meno?</translation>
 <translation id="8688591111840995413">Nesprávne heslo</translation>
 <translation id="8688672835843460752">K dispozícii</translation>
+<translation id="8691418731028620688">Pripojiť k sieti Wi-Fi</translation>
 <translation id="8695825812785969222">Otvoriť &amp;umiestnenie...</translation>
 <translation id="869884720829132584">Ponuka Aplikácie</translation>
 <translation id="869891660844655955">Koniec platnosti</translation>
@@ -5761,6 +5794,7 @@
 <translation id="8872187374998143710">Ak chcete používať Plugin VM, reštartujte zariadenie.</translation>
 <translation id="8872777911145321141">Opýtať sa, keď chce web používať vaše zariadenia a údaje virtuálnej reality (odporúčané)</translation>
 <translation id="8874184842967597500">Nepripojené</translation>
+<translation id="8875775314572167244">Nastavenia ethernetu</translation>
 <translation id="8876307312329369159">Toto nastavenie sa nedá zmeniť v relácii ukážky.</translation>
 <translation id="8877448029301136595">[rodičovský adresár]</translation>
 <translation id="8878384954777710821">Prebieha odinštalovanie doplnku Plugin VM…</translation>
@@ -5802,6 +5836,7 @@
 <translation id="892706138619340876">Niektoré nastavenia boli obnovené</translation>
 <translation id="8930351635855238750">Nové nastavenia súborov cookie sa použijú po opätovnom načítaní stránky</translation>
 <translation id="8931394284949551895">Nové zariadenia</translation>
+<translation id="8931475688782629595">Správa synchronizovaného obsahu</translation>
 <translation id="8932894639908691771">Možnosti ovládania prepínačmi</translation>
 <translation id="8933960630081805351">&amp;Zobraziť v aplikácii Finder</translation>
 <translation id="8934732568177537184">Pokračovať</translation>
@@ -5959,6 +5994,7 @@
 <translation id="9148126808321036104">Znova sa prihlásiť</translation>
 <translation id="9149866541089851383">Upraviť...</translation>
 <translation id="9150045010208374699">Používať fotoaparát</translation>
+<translation id="9150429437595727962">Nastavenia Wi‑Fi</translation>
 <translation id="9153934054460603056">Uložiť identitu a heslo</translation>
 <translation id="9154194610265714752">Aktualizované</translation>
 <translation id="91568222606626347">Vytvoriť odkaz...</translation>
@@ -6020,6 +6056,7 @@
 <translation id="945522503751344254">Poslať spätnú väzbu</translation>
 <translation id="947329552760389097">&amp;Skontrolovať prvky</translation>
 <translation id="952992212772159698">Neaktivované</translation>
+<translation id="956500788634395331">Je aktivovaná ochrana pred potenciálne škodlivými rozšíreniami</translation>
 <translation id="957960681186851048">Tento web sa pokúsil automaticky stiahnuť viacero súborov</translation>
 <translation id="9580706199804957">Nepodarilo sa pripojiť k službám Google</translation>
 <translation id="960719561871045870">Kód operátora</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 0d5c778c..396f172 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Подешавања Adobe Flash Player меморијског простора</translation>
 <translation id="1274997165432133392">Колачићи и други подаци о сајтовима</translation>
 <translation id="1280820357415527819">Траже се мобилне мреже</translation>
+<translation id="1280965841156951489">Измените датотеке</translation>
 <translation id="1282420830958964167">Ограничење за апликацију <ph name="APP_NAME" /> које је поставио твој родитељ је истекло. Сутра имаш <ph name="TIME_LIMIT" /> на располагању.</translation>
 <translation id="1285320974508926690">Никад не преводи овај сајт</translation>
 <translation id="1285484354230578868">Складиштите податке на налогу Google диска</translation>
@@ -510,6 +511,7 @@
 <translation id="1692210323591458290">Тамнољубичаста</translation>
 <translation id="1692799361700686467">Колачићи са више сајтова су дозвољени.</translation>
 <translation id="1697150536837697295">Уметност</translation>
+<translation id="1697686431566694143">Измените датотеку</translation>
 <translation id="1698122934742150150">Само актуелна сесија без архивирања</translation>
 <translation id="1698650002254827833">Не можемо да учитамо листу апликација. Покушајте поново.</translation>
 <translation id="1701062906490865540">Уклони ову особу</translation>
@@ -695,6 +697,7 @@
 <translation id="1931152874660185993">Није инсталирана ниједна компонента.</translation>
 <translation id="1932098463447129402">Не пре</translation>
 <translation id="1933809209549026293">Повежите миша или тастатуру. Ако користите Bluetooth уређај, проверите да ли је спреман за упаривање.</translation>
+<translation id="1936931585862840749">Наведите број примерака за штампање (1–<ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Не можете да увезете тип архитектуре контејнера <ph name="ARCHITECTURE_CONTAINER" /> помоћу овог уређаја, који је <ph name="ARCHITECTURE_DEVICE" />. Можете да пробате да вратите овај контејнер на други уређај или да отворите апликацију Датотеке да бисте приступили датотекама у слици овог контејнера.</translation>
 <translation id="1938351510777341717">Спољна команда</translation>
 <translation id="1940546824932169984">Повезани уређаји</translation>
@@ -990,6 +993,7 @@
 <translation id="2343747224442182863">Стави ову картицу у фокус</translation>
 <translation id="2344028582131185878">Аутоматска преузимања</translation>
 <translation id="2345723121311404059">1 страница на штампачу <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Услуга SODA</translation>
 <translation id="2347644257713614136">Коришћење услуга Hangouts и Cast for Education је регулисано Google политиком приватности.</translation>
 <translation id="2348176352564285430">Апликација: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Учитано поново</translation>
@@ -1043,6 +1047,7 @@
 <translation id="2422125132043002186">Враћање Linux-а је отказано</translation>
 <translation id="2423578206845792524">Са&amp;чувај слику као...</translation>
 <translation id="2428510569851653187">Опишите шта сте радили када је картица отказала</translation>
+<translation id="2428939361789119025">Искључите Wi-Fi</translation>
 <translation id="2431027948063157455">Google помоћник није успео да се учита. Проверите мрежну везу, па покушајте поново.</translation>
 <translation id="2432753757290432042">Потребно је ажурирање за Linux (бета)</translation>
 <translation id="2433452467737464329">Додајте параметар упита у URL да бисте аутоматски освежили страницу: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1460,6 +1465,7 @@
 <translation id="2944060181911631861">Шаљите податке о коришћењу и дијагностичке податке. Помозите нам да вам пружимо бољи доживљај Android-а тако што ћете аутоматски слати податке о дијагностици, уређају и коришћењу апликација Google-у. То ће помоћи у одржавању стабилности система и апликације и другим подешавањима. Неки обједињени подаци ће такође помоћи Google апликацијама и партнерима, попут Android програмера. Ако укључите подешавање додатне активности на вебу и у апликацијама, ти подаци ће се можда чувати на Google налогу. <ph name="BEGIN_LINK1" />Сазнајте више<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Додај везу</translation>
 <translation id="2947605845283690091">Прегледање веба треба да буде брзо. Одвојите мало времена и <ph name="BEGIN_LINK" />проверите додатке<ph name="END_LINK" />.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 потенцијално штетан додатак је искључен. Можете и да га уклоните.}one{# потенцијално штетан додатак је искључен. Можете и да их уклоните.}few{# потенцијално штетна додатка су искључена. Можете и да их уклоните.}other{# потенцијално штетних додатака је искључено. Можете и да их уклоните.}}</translation>
 <translation id="2948300991547862301">Иди на <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Брз, једноставан и безбедан веб-прегледач направљен за модерни веб.</translation>
 <translation id="2949289451367477459">Користите локацију. Дозволите апликацијама и услугама са дозволом за локацију да користе локацију овог уређаја. Google може повремено да прикупља податке о локацији и да их користи на анониман начин за побољшање прецизности локације и услуга заснованих на локацији. <ph name="BEGIN_LINK1" />Сазнајте више<ph name="END_LINK1" /></translation>
@@ -1540,6 +1546,7 @@
 <translation id="3067198179881736288">Желите ли да инсталирате апликацију?</translation>
 <translation id="3067198360141518313">Покрени овај додатак</translation>
 <translation id="3071624960923923138">Можете да кликнете овде да бисте отворили нову картицу</translation>
+<translation id="3072775339180057696">Желите ли да дозволите сајту да прегледа датотеку <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Потребно је да поново покренете уређај да би започео процес Powerwash-а. Када поново покренете уређај, затражићемо да потврдите да ли желите да наставите.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Подаци за пријављивање су избрисани</translation>
@@ -1552,6 +1559,7 @@
 <translation id="3085412380278336437">Сајт може да користи камеру</translation>
 <translation id="3085752524577180175">SOCKS хост</translation>
 <translation id="3088052000289932193">Сајт користи MIDI</translation>
+<translation id="3088128611727407543">Припрема се профил апликације...</translation>
 <translation id="3088325635286126843">&amp;Преименуј...</translation>
 <translation id="3089137131053189723">Претрага је обрисана</translation>
 <translation id="3090193911106258841">Приступа се аудио и видео улазу</translation>
@@ -1593,6 +1601,7 @@
     Опис:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome апликације</translation>
+<translation id="3150693969729403281">Обавите безбедносну проверу одмах</translation>
 <translation id="3150927491400159470">Поново учитај са сервера</translation>
 <translation id="315116470104423982">Мобилни подаци</translation>
 <translation id="3151539355209957474">Време почетка</translation>
@@ -1685,6 +1694,7 @@
 <translation id="3282568296779691940">Пријављивање у Chrome</translation>
 <translation id="3285322247471302225">Нова &amp;картица</translation>
 <translation id="328571385944182268">Желите ли да сачувате лозинке?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> ће моћи да прегледа датотеку <ph name="FILENAME" /> док не затворите све картице сајта <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Додаци покренути у режиму програмера могу да нашкоде рачунару. Ако нисте програмер, требало би да онемогућите ове додатке покренуте у режиму програмера да бисте се заштитили.</translation>
 <translation id="3289856944988573801">Да бисте потражили ажурирања, користите етернет или Wi-Fi.</translation>
 <translation id="3290356915286466215">Незаштићено</translation>
@@ -1793,6 +1803,7 @@
 <translation id="344630545793878684">Читање ваших података на више веб-сајтова</translation>
 <translation id="3448086340637592206">Додатни услови за Google Chrome и Chrome ОС</translation>
 <translation id="3448492834076427715">Ажурирај налог</translation>
+<translation id="3449393517661170867">Нови прозор са картицама</translation>
 <translation id="3449839693241009168">Притисните <ph name="SEARCH_KEY" /> да бисте послали команде у <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Проценат заузетости стања мировања</translation>
 <translation id="3451332697983754369">Синхронизуј мој <ph name="DEVICE_TYPE" /></translation>
@@ -1973,6 +1984,7 @@
 <translation id="3681311097828166361">Хвала вам на повратним информацијама. Тренутно сте офлајн и касније ћемо вам послати извештај.</translation>
 <translation id="3682824389861648626">Ограничење кретања</translation>
 <translation id="3683524264665795342">Захтев за дељење екрана апликације <ph name="APP_NAME" /></translation>
+<translation id="3686074530047028092">Образовни налог</translation>
 <translation id="368789413795732264">Дошло је до грешке при покушају уписивања датотеке: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Уписивање у датотеке и директоријуме које отворите у апликацији</translation>
 <translation id="3688526734140524629">Промени канал</translation>
@@ -2041,6 +2053,7 @@
 <translation id="3759933321830434300">Блокирање делова веб-страница</translation>
 <translation id="3760460896538743390">Провери страницу &amp;позадине</translation>
 <translation id="37613671848467444">Отвори у &amp;прозору без архивирања</translation>
+<translation id="3761556954875533505">Желите ли да дозволите сајту да мења датотеке?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Комуникација са USB уређајем}one{Комуникација са # USB уређајем}few{Комуникација са # USB уређаја}other{Комуникација са # USB уређаја}}</translation>
 <translation id="3765246971671567135">Читање офлајн смерница за режим демонстрације није успело.</translation>
 <translation id="3768037234834996183">Подешавања се синхронизују...</translation>
@@ -2176,6 +2189,7 @@
 <translation id="3927932062596804919">Одбиј</translation>
 <translation id="3928570707778085600">Желите ли да сачувате промене у: <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Ови додаци могу да виде и мењају информације на овом сајту.</translation>
+<translation id="3930155420525972941">Премести групу у нови прозор</translation>
 <translation id="3930737994424905957">Траже се уређаји</translation>
 <translation id="3930968231047618417">Боја позадине</translation>
 <translation id="3933283459331715412">Вратите избрисану лозинку за <ph name="USERNAME" /></translation>
@@ -2334,6 +2348,7 @@
 <translation id="4130750466177569591">Прихватам</translation>
 <translation id="413121957363593859">Компоненте</translation>
 <translation id="4131410914670010031">Црно-бело</translation>
+<translation id="4133076602192971179">Отворите апликацију да бисте променили лозинку</translation>
 <translation id="4136203100490971508">Ноћно светло се аутоматски искључује када сунце изађе</translation>
 <translation id="41365691917097717">Ако наставите, омогућићете ADB отклањање грешака за прављење и тестирање Android апликација. Имајте у виду да ова радња омогућава инсталирање Android апликација које Google није верификовао и захтева ресетовање на фабричка подешавања да би се онемогућила.</translation>
 <translation id="4138267921960073861">Приказуј корисничка имена и слике на екрану за пријављивање</translation>
@@ -2445,6 +2460,7 @@
 <translation id="4330387663455830245">Никад не преводи <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Подесите родитељски надзор</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 са RSA шифровањем</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Администратор је поново укључио 1 потенцијално штетан додатак}one{Администратор је поново укључио # потенцијално штетан додатак}few{Администратор је поново укључио # потенцијално штетна додатка}other{Администратор је поново укључио # потенцијално штетних додатака}}</translation>
 <translation id="4336434711095810371">Обриши све податке</translation>
 <translation id="4336979451636460645">Евиденције мреже потражите на: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> жели да комуницира са апликацијом „<ph name="EXTENSION_NAME" />“</translation>
@@ -2751,6 +2767,7 @@
 <translation id="4785719467058219317">Користите безбедносни кључ који није регистрован за овај веб-сајт</translation>
 <translation id="4788092183367008521">Проверите мрежну везу и пробајте поново.</translation>
 <translation id="4792711294155034829">&amp;Пријави проблем...</translation>
+<translation id="4794810983896241342"><ph name="BEGIN_LINK" />Администратор<ph name="END_LINK" /> управља ажурирањима</translation>
 <translation id="479536056609751218">Веб-страница, само HTML</translation>
 <translation id="4798236378408895261">Приложите <ph name="BEGIN_LINK" />Евиденције Bluetooth-а<ph name="END_LINK" /> (Google интерно)</translation>
 <translation id="4801448226354548035">Сакриј налоге</translation>
@@ -2846,6 +2863,7 @@
 <translation id="4908811072292128752">Отворите нову картицу да бисте прегледали два сајта истовремено</translation>
 <translation id="4909038193460299775">Пошто овим налогом управља <ph name="DOMAIN" />, ваши обележивачи, историја, лозинке и друга подешавања ће бити избрисани са овог уређаја. Међутим, ваши подаци ће се и даље чувати на Google налогу и њима можете да управљате на <ph name="BEGIN_LINK" />Google контролној табли<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Буђења из стања мировања</translation>
+<translation id="4916542008280060967">Желите ли да дозволите сајту да мења датотеку <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Пређите на безбедан прегледач</translation>
 <translation id="4917385247580444890">Јак</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> жели да комуницира са додатком „<ph name="EXTENSION_NAME" />“</translation>
@@ -2917,6 +2935,7 @@
 <translation id="5017633213534173756">Запамти</translation>
 <translation id="5018207570537526145">Отвори веб-сајта додатка</translation>
 <translation id="5021750053540820849">Још није ажурирано</translation>
+<translation id="5026806129670917316">Укључите Wi-Fi</translation>
 <translation id="5026874946691314267">Не приказуј ово поново</translation>
 <translation id="5027550639139316293">Сертификат за е-пошту</translation>
 <translation id="5027562294707732951">Додај додатак</translation>
@@ -3029,6 +3048,7 @@
 <translation id="5184063094292164363">&amp;JavaScript конзола</translation>
 <translation id="5184209580557088469">Тикет са овим корисничким именом већ постоји</translation>
 <translation id="5184662919967270437">Ажурирање уређаја</translation>
+<translation id="5185359571430619712">Додаци за рецензије</translation>
 <translation id="5185386675596372454">Најновија верзија додатка „<ph name="EXTENSION_NAME" />“ је онемогућена јер захтева још дозвола.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> жели да преузме више датотека</translation>
@@ -3079,6 +3099,7 @@
 <translation id="5260334392110301220">Паметни наводници</translation>
 <translation id="5260508466980570042">Жао нам је, нисмо успели да верификујемо имејл или лозинку. Пробајте поново.</translation>
 <translation id="5261683757250193089">Отвори у Веб-продавници</translation>
+<translation id="5262178194499261222">Уклони лозинку</translation>
 <translation id="5264148714798105376">Ово ће потрајати минут или два.</translation>
 <translation id="5264252276333215551">Успоставите везу са интернетом да бисте покренули апликацију у режиму киоска.</translation>
 <translation id="5265562206369321422">Офлајн дуже од недељу дана</translation>
@@ -3505,6 +3526,7 @@
 <translation id="5833726373896279253">Ова подешавања може да измени само власник:</translation>
 <translation id="5834581999798853053">Остало је око <ph name="TIME" /> минута</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – Камера или микрофон снимају</translation>
+<translation id="5841270259333717135">Конфигуришите етернет</translation>
 <translation id="5842497610951477805">Омогући Bluetooth</translation>
 <translation id="5846200638699387931">Синтаксичка грешка односа вредности: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Већ је додато</translation>
@@ -3550,6 +3572,7 @@
 <translation id="5900358982890952556">Надоградите Linux (бета)</translation>
 <translation id="5901494423252125310">Врата штампача су отворена</translation>
 <translation id="5901630391730855834">Жута</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Поново сте укључили 1 потенцијално штетан додатак}one{Поново сте укључили # потенцијално штетан додатак}few{Поново сте укључили # потенцијално штетна додатка}other{Поново сте укључили # потенцијално штетних додатака}}</translation>
 <translation id="5906655207909574370">Ажурирање је скоро готово! Поново покрените уређај да бисте довршили ажурирање.</translation>
 <translation id="5906732635754427568">Подаци повезани са овом апликацијом ће бити уклоњени са овог уређаја.</translation>
 <translation id="5908769186679515905">Блокирај сајтове да не би покретали Flash</translation>
@@ -3579,6 +3602,7 @@
 <translation id="59324397759951282">USB произвођача <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Серијски број</translation>
 <translation id="5933376509899483611">Временска зона</translation>
+<translation id="5935656526031444304">Управљајте безбедним прегледањем</translation>
 <translation id="5938002010494270685">Безбедносна надоградња је доступна</translation>
 <translation id="5939518447894949180">Ресетуј</translation>
 <translation id="5941153596444580863">Додај особу...</translation>
@@ -3622,6 +3646,7 @@
 <translation id="5993807461461235661">Ово отпремање је шифровано и крши безбедносне смернице организације.</translation>
 <translation id="5997337190805127100">Сазнајте више о приступу сајтовима</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> резултата за „<ph name="SEARCH_TEXT" />“</translation>
+<translation id="6002210667729577411">Премести групу у нови прозор</translation>
 <translation id="6002458620803359783">Жељени гласови</translation>
 <translation id="6006484371116297560">Класична</translation>
 <translation id="6007240208646052708">Гласовна претрага на вашем језику није доступна.</translation>
@@ -4160,6 +4185,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Прикажи пречицу на радној површини</translation>
 <translation id="6740234557573873150">Преузимање датотеке <ph name="FILE_NAME" /> је паузирано</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Администратор<ph name="END_LINK" /> је искључио безбедно прегледање</translation>
 <translation id="6742339027238151589">Приступачно за скрипту</translation>
 <translation id="6745592621698551453">Ажурирај одмах</translation>
 <translation id="6746124502594467657">Премести надоле</translation>
@@ -4418,6 +4444,7 @@
     <ph name="BEGIN_BOLD" />Имајте на уму следеће:<ph name="END_BOLD" /> Сличан глас или снимак ће можда такође моћи да приступа Помоћнику. Можете касније да уклоните дозволу за Voice Match ако је искључите у подешавањима Помоћника.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Размена података са уређајима следећих назива: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Уређај ће се рестартовати када се ажурирања заврше.</translation>
 <translation id="7098389117866926363">Уређај са USB прикључком типа C (леви задњи порт)</translation>
 <translation id="7098447629416471489">Други сачувани претраживачи ће се појавити овде</translation>
 <translation id="7099337801055912064">Велики PPD не може да се учита. Максимална величина је 250 kB.</translation>
@@ -4890,6 +4917,7 @@
 <translation id="7766807826975222231">Крени у обилазак</translation>
 <translation id="7766838926148951335">Прихвати дозволе</translation>
 <translation id="7769672763586021400">ИД модела</translation>
+<translation id="7770651108375708429">Прекините везу са Wi-Fi мрежом</translation>
 <translation id="7771452384635174008">Распоред</translation>
 <translation id="7772032839648071052">Потврди приступну фразу</translation>
 <translation id="7772127298218883077">О <ph name="PRODUCT_NAME" /> прегледачу</translation>
@@ -5048,6 +5076,7 @@
 <translation id="7939412583708276221">Ипак задржи</translation>
 <translation id="7942349550061667556">Црвена</translation>
 <translation id="7943837619101191061">Додај локацију...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 угрожена лозинка}one{# угрожена лозинка}few{# угрожене лозинке}other{# угрожених лозинки}}</translation>
 <translation id="7945031593909029181">„<ph name="CHROME_EXTENSION_NAME" />“ жели да се повеже</translation>
 <translation id="7946586320617670168">Извор мора да буде безбедан</translation>
 <translation id="794676567536738329">Потврђивање дозвола</translation>
@@ -5147,6 +5176,7 @@
 <translation id="8059417245945632445">&amp;Испитај уређаје</translation>
 <translation id="8059456211585183827">Нема доступних штампача за чување.</translation>
 <translation id="8063235345342641131">Подразумевани зелени аватар</translation>
+<translation id="8063535366119089408">Прикажи датотеку</translation>
 <translation id="8064671687106936412">Кључ:</translation>
 <translation id="8068253693380742035">Додирните да бисте се пријавили</translation>
 <translation id="8068809649322155577">Овим бришете све податке и колачиће које чувају сајт <ph name="SITE_GROUP_NAME" />, сви њему подређени сајтови и његове инсталиране апликације.</translation>
@@ -5212,6 +5242,7 @@
 <translation id="8152091997436726702">Време за регистрацију штампача је истекло. Да бисте регистровали штампач, морате да потврдите регистрацију на штампачу.</translation>
 <translation id="8154790740888707867">Нема датотеке</translation>
 <translation id="815491593104042026">Упс! Потврда аутентичности није успела јер је конфигурисана за коришћење небезбедног URL-а (<ph name="BLOCKED_URL" />). Контактирајте администратора.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Није пронађена ниједна угрожена лозинка}=1{{COUNT} угрожена лозинка}one{{COUNT} угрожена лозинка}few{{COUNT} угрожене лозинке}other{{COUNT} угрожених лозинки}}</translation>
 <translation id="8157704005178149728">Надзор се подешава</translation>
 <translation id="8158117992543756526">Овај уређај је престао да добија аутоматска ажурирања софтвера и безбедносна ажурирања у: <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Грешка при подешавању поузданости сертификата</translation>
@@ -5265,6 +5296,7 @@
 <translation id="8226742006292257240">У наставку је насумично генерисана TPM лозинка која је додељена рачунару:</translation>
 <translation id="8227119283605456246">Приложи датотеку</translation>
 <translation id="8230134520748321204">Желите ли да сачувате лозинку за <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Подешавања интернета</translation>
 <translation id="8234795456569844941">Помозите нашим инжењерима да реше проблем. Реците нам шта се догодило непосредно пре него што сте добили поруку о грешци на профилу:</translation>
 <translation id="8236123533334037984">Ваша организација скенира ово отпремање ради безбедносног одобрења.</translation>
 <translation id="8236917170563564587">Дели ову картицу</translation>
@@ -5602,6 +5634,7 @@
 <translation id="8688579245973331962">Не видите своје име?</translation>
 <translation id="8688591111840995413">Погрешна лозинка</translation>
 <translation id="8688672835843460752">Доступно</translation>
+<translation id="8691418731028620688">Повежите се на Wi-Fi мрежу</translation>
 <translation id="8695825812785969222">Open &amp;Location... (Отвори локацију)</translation>
 <translation id="869884720829132584">Мени апликација</translation>
 <translation id="869891660844655955">Датум истека</translation>
@@ -5761,6 +5794,7 @@
 <translation id="8872187374998143710">Рестартујте уређај да бисте користили Plugin VM.</translation>
 <translation id="8872777911145321141">Питај када сајт жели да користи уређаје и податке виртуелне реалности (препоручено)</translation>
 <translation id="8874184842967597500">Није повезано</translation>
+<translation id="8875775314572167244">Подешавања етернета</translation>
 <translation id="8876307312329369159">Ово подешавање не можете да промените у сесији демонстрације.</translation>
 <translation id="8877448029301136595">[матични директоријум]</translation>
 <translation id="8878384954777710821">Деинсталира се Plugin VM...</translation>
@@ -5802,6 +5836,7 @@
 <translation id="892706138619340876">Нека подешавања су ресетована</translation>
 <translation id="8930351635855238750">Ново подешавање колачића ће се применити када се страница поново учита</translation>
 <translation id="8931394284949551895">Нови уређаји</translation>
+<translation id="8931475688782629595">Управљајте подацима које синхронизујете</translation>
 <translation id="8932894639908691771">Опције приступа помоћу прекидача</translation>
 <translation id="8933960630081805351">&amp;Прикажи у Finder-у</translation>
 <translation id="8934732568177537184">Настави</translation>
@@ -5959,6 +5994,7 @@
 <translation id="9148126808321036104">Пријави ме поново</translation>
 <translation id="9149866541089851383">Измени...</translation>
 <translation id="9150045010208374699">Коришћење камере</translation>
+<translation id="9150429437595727962">Подешавања за Wi-Fi</translation>
 <translation id="9153934054460603056">Сачувај идентитет и лозинку</translation>
 <translation id="9154194610265714752">Ажурирано</translation>
 <translation id="91568222606626347">Направи пречицу...</translation>
@@ -6020,6 +6056,7 @@
 <translation id="945522503751344254">Пошаљи повратне информације</translation>
 <translation id="947329552760389097">&amp;Провери елементе</translation>
 <translation id="952992212772159698">Није активирано</translation>
+<translation id="956500788634395331">Штитимо вас од потенцијално штетних додатака</translation>
 <translation id="957960681186851048">Овај сајт је покушао да аутоматски преузме више датотека</translation>
 <translation id="9580706199804957">Повезивање са Google услугама није успело</translation>
 <translation id="960719561871045870">Кôд мобилног оператера</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 751f4cc8..787a352 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Lagringsinställningar för Adobe Flash Player</translation>
 <translation id="1274997165432133392">Cookies och andra webbplatsdata</translation>
 <translation id="1280820357415527819">Söker efter mobilnätverk</translation>
+<translation id="1280965841156951489">Redigera filer</translation>
 <translation id="1282420830958964167">Du har nått den gräns som din förälder har angett för <ph name="APP_NAME" />. Du kan använda den i <ph name="TIME_LIMIT" /> i morgon.</translation>
 <translation id="1285320974508926690">Översätt aldrig den här webbplatsen</translation>
 <translation id="1285484354230578868">Spara data i Google Drive-kontot</translation>
@@ -513,6 +514,7 @@
 <translation id="1692210323591458290">Mörklila</translation>
 <translation id="1692799361700686467">Cookies från flera webbplatser tillåts.</translation>
 <translation id="1697150536837697295">Konst</translation>
+<translation id="1697686431566694143">Redigera fil</translation>
 <translation id="1698122934742150150">Endast nuvarande inkognitosession</translation>
 <translation id="1698650002254827833">Det gick inte att läsa in listan med appar. Försök igen.</translation>
 <translation id="1701062906490865540">Ta bort personen</translation>
@@ -698,6 +700,7 @@
 <translation id="1931152874660185993">Det finns inga installerade komponenter.</translation>
 <translation id="1932098463447129402">Inte före</translation>
 <translation id="1933809209549026293">Anslut en mus eller ett tangentbord. Om du använder en Bluetooth-enhet kontrollerar du att den är klar att kopplas.</translation>
+<translation id="1936931585862840749">Använd ett nummer som anger hur många kopior som ska skrivas ut (1 till <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Det går inte att importera en behållararkitektur av typen <ph name="ARCHITECTURE_CONTAINER" /> med den här enheten, som är en <ph name="ARCHITECTURE_DEVICE" />. Du kan testa att återställa behållaren till en annan enhet, eller så kan du öppna filerna i behållarbilden via appen Filer.</translation>
 <translation id="1938351510777341717">Extern kommandotangent</translation>
 <translation id="1940546824932169984">Anslutna enheter</translation>
@@ -993,6 +996,7 @@
 <translation id="2343747224442182863">Fokusera på den här fliken</translation>
 <translation id="2344028582131185878">Automatiska nedladdningar</translation>
 <translation id="2345723121311404059">1 sida till <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">SODA-tjänst</translation>
 <translation id="2347644257713614136">Användning av Hangouts och Cast for Education regleras av Googles sekretesspolicy.</translation>
 <translation id="2348176352564285430">App: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Inläst igen</translation>
@@ -1046,6 +1050,7 @@
 <translation id="2422125132043002186">Återställningen av Linux har avbrutits</translation>
 <translation id="2423578206845792524">S&amp;para bild som...</translation>
 <translation id="2428510569851653187">Beskriv vad du höll på med när fliken kraschade</translation>
+<translation id="2428939361789119025">Stäng av Wi-Fi</translation>
 <translation id="2431027948063157455">Det gick inte att läsa in Google Assistent. Kontrollera nätverksanslutningen och försök igen.</translation>
 <translation id="2432753757290432042">Uppdatering av Linux (beta) krävs</translation>
 <translation id="2433452467737464329">Lägg till en frågeparameter i webbadressen om du vill uppdatera sidan automatiskt: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1463,6 +1468,7 @@
 <translation id="2944060181911631861">Skicka diagnostik- och användningsdata. Hjälp till att göra Android bättre genom att skicka diagnostikdata, enhetsdata och data om appanvändning till Google automatiskt. Denna data används till att förbättra systemets och apparnas stabilitet med mera. Viss samlad data används även till att förbättra appar från Google och partner, till exempel Android-utvecklare. Om ytterligare webb- och appaktivitet har aktiverats kan denna data sparas i Google-kontot. <ph name="BEGIN_LINK1" />Läs mer<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Lägg till anslutning</translation>
 <translation id="2947605845283690091">Det ska gå snabbt att surfa på webben. Ta dig tid att <ph name="BEGIN_LINK" />kolla igenom dina tillägg<ph name="END_LINK" /> nu.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 tillägg som kan vara skadligt har inaktiverats. Du kan även ta bort det.}other{# tillägg som kan vara skadliga har inaktiverats. Du kan även ta bort dem.}}</translation>
 <translation id="2948300991547862301">Öppna <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">En snabb, enkel och säker webbläsare som är anpassad för den moderna webben.</translation>
 <translation id="2949289451367477459">Använd plats. Tillåt att appar och tjänster med platsbehörighet använder enhetens plats. Google kan med jämna mellanrum samla in data som används anonymt i syfte att förbättra platsangivelsens exakthet och platsbaserade tjänster.<ph name="BEGIN_LINK1" />Läs mer<ph name="END_LINK1" /></translation>
@@ -1543,6 +1549,7 @@
 <translation id="3067198179881736288">Vill du installera appen?</translation>
 <translation id="3067198360141518313">Kör det här plugin-programmet</translation>
 <translation id="3071624960923923138">Du kan klicka här om du vill öppna en ny flik</translation>
+<translation id="3072775339180057696">Vill du låta webbplatsen visa <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">En omstart krävs för att Powerwash-processen ska inledas. Efter omstarten får du bekräfta att du vill fortsätta.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Inloggningsuppgifterna har raderats</translation>
@@ -1555,6 +1562,7 @@
 <translation id="3085412380278336437">Webbplatsen har åtkomst till kameran</translation>
 <translation id="3085752524577180175">SOCKS-värd</translation>
 <translation id="3088052000289932193">MIDI används på webbplatsen</translation>
+<translation id="3088128611727407543">Förbereder appens profil …</translation>
 <translation id="3088325635286126843">&amp;Byt namn ...</translation>
 <translation id="3089137131053189723">Sökningen har rensats</translation>
 <translation id="3090193911106258841">Får åtkomst till ljud- och videoindata</translation>
@@ -1596,6 +1604,7 @@
     Beskrivning:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome-appar</translation>
+<translation id="3150693969729403281">Kontrollera säkerheten nu</translation>
 <translation id="3150927491400159470">Hård inläsning</translation>
 <translation id="315116470104423982">Mobildata</translation>
 <translation id="3151539355209957474">Starttid</translation>
@@ -1688,6 +1697,7 @@
 <translation id="3282568296779691940">Logga in i Chrome</translation>
 <translation id="3285322247471302225">Ny &amp;flik</translation>
 <translation id="328571385944182268">Vill du spara lösenorden?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> kan visa <ph name="FILENAME" /> tills du stänger alla flikar för <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Tillägg som körs i utvecklarläge kan skada datorn. Om du inte är en utvecklare bör du inaktivera tillägg som körs i utvecklarläge för att skydda dig.</translation>
 <translation id="3289856944988573801">Använd Ethernet eller Wi-Fi om du vill söka efter uppdateringar.</translation>
 <translation id="3290356915286466215">Inte skyddat</translation>
@@ -1796,6 +1806,7 @@
 <translation id="344630545793878684">Läsa din data på ett antal webbplatser</translation>
 <translation id="3448086340637592206">Ytterligare villkor för Google Chrome och Chrome OS</translation>
 <translation id="3448492834076427715">Uppdatera kontot</translation>
+<translation id="3449393517661170867">Nytt fönster med flikar</translation>
 <translation id="3449839693241009168">Tryck på <ph name="SEARCH_KEY" /> om du vill skicka kommandon till <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Kapacitetsprocentsats för inaktivitet</translation>
 <translation id="3451332697983754369">Synkronisera min <ph name="DEVICE_TYPE" /></translation>
@@ -1976,6 +1987,7 @@
 <translation id="3681311097828166361">Tack för din feedback. Just nu är du offline, så rapporten skickas senare.</translation>
 <translation id="3682824389861648626">Gräns för rörelse</translation>
 <translation id="3683524264665795342">Förfrågan från <ph name="APP_NAME" /> om skärmdelning</translation>
+<translation id="3686074530047028092">Education-konto</translation>
 <translation id="368789413795732264">Ett fel uppstod när följande fil skulle skrivas: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Skriva till filer och mappar som du öppnar i appen</translation>
 <translation id="3688526734140524629">Byt kanal</translation>
@@ -2044,6 +2056,7 @@
 <translation id="3759933321830434300">Blockera delar av webbsidor</translation>
 <translation id="3760460896538743390">Kontrollera &amp;bakgrundssida</translation>
 <translation id="37613671848467444">Öppna i &amp;inkognitofönster</translation>
+<translation id="3761556954875533505">Vill du låta webbplatsen redigera filer?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Kommunicera med en USB-enhet}other{Kommunicera med # USB-enheter}}</translation>
 <translation id="3765246971671567135">Det gick inte att läsa in offlinepolicyn för demoläge.</translation>
 <translation id="3768037234834996183">Inställningarna synkroniseras ...</translation>
@@ -2179,6 +2192,7 @@
 <translation id="3927932062596804919">Neka</translation>
 <translation id="3928570707778085600">Vill du spara ändringarna i <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">De här tilläggen kan se och ändra information på den här webbplatsen.</translation>
+<translation id="3930155420525972941">Flytta gruppen till ett nytt fönster</translation>
 <translation id="3930737994424905957">Söker efter enheter</translation>
 <translation id="3930968231047618417">Bakgrundsfärg</translation>
 <translation id="3933283459331715412">Återställ det raderade lösenordet för <ph name="USERNAME" /></translation>
@@ -2337,6 +2351,7 @@
 <translation id="4130750466177569591">Jag godkänner</translation>
 <translation id="413121957363593859">Komponenter</translation>
 <translation id="4131410914670010031">Svartvitt</translation>
+<translation id="4133076602192971179">Öppna appen och ändra lösenordet</translation>
 <translation id="4136203100490971508">Nattljuset släcks automatiskt vid soluppgången</translation>
 <translation id="41365691917097717">Om du fortsätter aktiveras felsökning med ADB för Android-appar som du skapar och testar. Observera att den här åtgärden tillåter att Android-appar som inte har verifierats av Google installeras. Du måste återställa enheten till standardinställningarna för att inaktivera detta.</translation>
 <translation id="4138267921960073861">Visa användarnamn och foton på inloggningssidan</translation>
@@ -2448,6 +2463,7 @@
 <translation id="4330387663455830245">Översätt aldrig från <ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Konfigurera föräldrakontroller</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 med RSA-kryptering</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Administratören har återaktiverat 1 tillägg som kan vara skadligt}other{Administratören har återaktiverat # tillägg som kan vara skadliga}}</translation>
 <translation id="4336434711095810371">Rensa all data</translation>
 <translation id="4336979451636460645">Nätverksloggar finns på <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> vill kommunicera med appen <ph name="EXTENSION_NAME" /></translation>
@@ -2754,6 +2770,7 @@
 <translation id="4785719467058219317">Säkerhetsnyckeln som du använder är inte registrerad på den här webbplatsen</translation>
 <translation id="4788092183367008521">Kontrollera nätverksanslutningen och försök igen.</translation>
 <translation id="4792711294155034829">&amp;Rapportera ett problem...</translation>
+<translation id="4794810983896241342">Uppdateringar hanteras av <ph name="BEGIN_LINK" />administratören<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Webbsida, endast HTML</translation>
 <translation id="4798236378408895261">Bifoga <ph name="BEGIN_LINK" />Bluetooth-loggar<ph name="END_LINK" /> (internt för Google)</translation>
 <translation id="4801448226354548035">Dölj konton</translation>
@@ -2849,6 +2866,7 @@
 <translation id="4908811072292128752">Öppna en ny flik om du vill surfa på två webbplatser samtidigt</translation>
 <translation id="4909038193460299775">Eftersom kontot hanteras av <ph name="DOMAIN" /> raderas bokmärken, historik, lösenord och andra inställningar från enheten. Däremot finns uppgifterna kvar i Google-kontot och kan hanteras via <ph name="BEGIN_LINK" />Google Översikt<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Antal gånger som systemets vänteprocess har väckts</translation>
+<translation id="4916542008280060967">Vill du låta webbplatsen redigera <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Byt till en säker webbläsare</translation>
 <translation id="4917385247580444890">Stark</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> vill kommunicera med tillägget <ph name="EXTENSION_NAME" /></translation>
@@ -2920,6 +2938,7 @@
 <translation id="5017633213534173756">Kom ihåg</translation>
 <translation id="5018207570537526145">Öppna webbplatsen för tillägget</translation>
 <translation id="5021750053540820849">Har inte uppdaterats ännu</translation>
+<translation id="5026806129670917316">Aktivera Wi-Fi</translation>
 <translation id="5026874946691314267">Visa inte detta igen</translation>
 <translation id="5027550639139316293">E-postcertifikat</translation>
 <translation id="5027562294707732951">Lägg till tillägg</translation>
@@ -3032,6 +3051,7 @@
 <translation id="5184063094292164363">&amp;JavaScript-konsol</translation>
 <translation id="5184209580557088469">Det finns redan en biljett med det här användarnamnet</translation>
 <translation id="5184662919967270437">Enheten uppdateras</translation>
+<translation id="5185359571430619712">Granska tilläggen</translation>
 <translation id="5185386675596372454">Den senaste versionen av <ph name="EXTENSION_NAME" /> har inaktiverats eftersom ytterligare rättigheter krävs.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> vill ladda ned flera filer</translation>
@@ -3082,6 +3102,7 @@
 <translation id="5260334392110301220">Smarta citattecken</translation>
 <translation id="5260508466980570042">Det gick inte att verifiera e-postadressen eller lösenordet. Försök igen.</translation>
 <translation id="5261683757250193089">Öppna i Web Store</translation>
+<translation id="5262178194499261222">Ta bort lösenordet</translation>
 <translation id="5264148714798105376">Det här kan ta en liten stund.</translation>
 <translation id="5264252276333215551">Anslut till internet för att starta appen i kioskläge.</translation>
 <translation id="5265562206369321422">Offline i mer än en vecka</translation>
@@ -3507,6 +3528,7 @@
 <translation id="5833726373896279253">Inställningarna kan bara ändras av ägaren:</translation>
 <translation id="5834581999798853053">Ca <ph name="TIME" /> minuter kvar</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – kameran eller mikrofonen spelar in</translation>
+<translation id="5841270259333717135">Konfigurera Ethernet</translation>
 <translation id="5842497610951477805">Aktivera Bluetooth</translation>
 <translation id="5846200638699387931">Syntaxfel i relation: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Redan tillagt</translation>
@@ -3552,6 +3574,7 @@
 <translation id="5900358982890952556">Uppgradera Linux (beta)</translation>
 <translation id="5901494423252125310">Skrivarens lucka är öppen</translation>
 <translation id="5901630391730855834">Gul</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Du har återaktiverat 1 tillägg som kan vara skadligt}other{Du har återaktiverat # tillägg som kan vara skadliga}}</translation>
 <translation id="5906655207909574370">Uppdateringen är nästan klar! Slutför den genom att starta om enheten.</translation>
 <translation id="5906732635754427568">Data kopplad till den här appen tas bort från enheten.</translation>
 <translation id="5908769186679515905">Blockera webbplatser från att köra Flash</translation>
@@ -3581,6 +3604,7 @@
 <translation id="59324397759951282">USB-enhet från <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Serienummer</translation>
 <translation id="5933376509899483611">Tidszon</translation>
+<translation id="5935656526031444304">Hantera Säker webbsökning</translation>
 <translation id="5938002010494270685">En säkerhetsuppgradering är tillgänglig</translation>
 <translation id="5939518447894949180">Återställ</translation>
 <translation id="5941153596444580863">Lägg till person …</translation>
@@ -3624,6 +3648,7 @@
 <translation id="5993807461461235661">Uppladdningen är krypterad vilket strider mot organisationens säkerhetspolicy.</translation>
 <translation id="5997337190805127100">Läs mer om webbplatsåtkomst</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultat för <ph name="SEARCH_TEXT" /></translation>
+<translation id="6002210667729577411">Flytta gruppen till ett nytt fönster</translation>
 <translation id="6002458620803359783">Önskade röster</translation>
 <translation id="6006484371116297560">Klassiskt</translation>
 <translation id="6007240208646052708">Röstsökning är inte tillgängligt på ditt språk.</translation>
@@ -4162,6 +4187,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Visa skrivbordsgenväg</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> har pausats</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Administratören<ph name="END_LINK" /> har inaktiverat Säker webbsökning</translation>
 <translation id="6742339027238151589">Tillgänglig för skript</translation>
 <translation id="6745592621698551453">Uppdatera nu</translation>
 <translation id="6746124502594467657">Flytta ned</translation>
@@ -4420,6 +4446,7 @@
     <ph name="BEGIN_BOLD" />Tänk på detta:<ph name="END_BOLD" /> Det kan hända att en liknande röst eller en inspelning också kan använda Assistenten. Du kan ta bort behörigheten för Voice Match senare genom att inaktivera den i inställningarna för Google Assistent.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Utväxla data med enheterna <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Enheten startas om när uppdateringarna har slutförts.</translation>
 <translation id="7098389117866926363">USB-C-enhet (vänstra porten på baksidan)</translation>
 <translation id="7098447629416471489">Andra sparade sökmotorer visas här</translation>
 <translation id="7099337801055912064">PPD-filen var för stor att läsa in. Storleksgränsen är 250 kB.</translation>
@@ -4892,6 +4919,7 @@
 <translation id="7766807826975222231">Ta en rundtur</translation>
 <translation id="7766838926148951335">Godkänn behörigheterna</translation>
 <translation id="7769672763586021400">Modell-id</translation>
+<translation id="7770651108375708429">Koppla från Wi-Fi</translation>
 <translation id="7771452384635174008">Layout</translation>
 <translation id="7772032839648071052">Bekräfta lösenfras</translation>
 <translation id="7772127298218883077">Om <ph name="PRODUCT_NAME" /></translation>
@@ -5050,6 +5078,7 @@
 <translation id="7939412583708276221">Behåll ändå</translation>
 <translation id="7942349550061667556">Röd</translation>
 <translation id="7943837619101191061">Lägg till plats ...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 utsatt lösenord}other{# utsatta lösenord}}</translation>
 <translation id="7945031593909029181"><ph name="CHROME_EXTENSION_NAME" /> vill ansluta</translation>
 <translation id="7946586320617670168">Ursprunget måste vara säkert</translation>
 <translation id="794676567536738329">Bekräfta behörigheter</translation>
@@ -5149,6 +5178,7 @@
 <translation id="8059417245945632445">&amp;Inspektera enheter</translation>
 <translation id="8059456211585183827">Det finns inga skrivare att spara.</translation>
 <translation id="8063235345342641131">Grön standardavatar</translation>
+<translation id="8063535366119089408">Visa fil</translation>
 <translation id="8064671687106936412">Nyckel:</translation>
 <translation id="8068253693380742035">Tryck här om du vill logga in</translation>
 <translation id="8068809649322155577">All data och alla cookies som har sparats av <ph name="SITE_GROUP_NAME" />, alla underordnade webbplatser och tillhörande installerade appar raderas.</translation>
@@ -5214,6 +5244,7 @@
 <translation id="8152091997436726702">Tidsfristen för skrivarregistrering har gått ut. Om du vill registrera en skrivare måste du bekräfta registreringen på skrivaren.</translation>
 <translation id="8154790740888707867">Ingen fil</translation>
 <translation id="815491593104042026">Hoppsan! Autentiseringen misslyckades eftersom den har konfigurerats att använda en webbadress som inte är säker (<ph name="BLOCKED_URL" />). Kontakta administratören.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Inga utsatta lösenord hittades}=1{{COUNT} utsatt lösenord}other{{COUNT} utsatta lösenord}}</translation>
 <translation id="8157704005178149728">Konfigurerar kontroll</translation>
 <translation id="8158117992543756526">Enheten får inga automatiska program- eller säkerhetsuppdateringar sedan <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Fel när certifikatets tillförlitlighet angavs</translation>
@@ -5267,6 +5298,7 @@
 <translation id="8226742006292257240">Nedan visas det slumpmässigt genererade lösenordet för TPM som har tilldelats din dator:</translation>
 <translation id="8227119283605456246">Bifoga fil</translation>
 <translation id="8230134520748321204">Vill du spara lösenordet för <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Internetinställningar</translation>
 <translation id="8234795456569844941">Hjälp våra programutvecklare att lösa problemet genom att berätta vad som hände precis innan profilmeddelandet visades:</translation>
 <translation id="8236123533334037984">Din organisation genomsöker uppladdningen för att få säkerhetsgodkännande.</translation>
 <translation id="8236917170563564587">Dela den här fliken i stället</translation>
@@ -5604,6 +5636,7 @@
 <translation id="8688579245973331962">Hittar du inte ditt namn?</translation>
 <translation id="8688591111840995413">Felaktigt lösenord</translation>
 <translation id="8688672835843460752">Tillgängligt</translation>
+<translation id="8691418731028620688">Anslut till Wi-Fi</translation>
 <translation id="8695825812785969222">Öppna plats...</translation>
 <translation id="869884720829132584">Programmeny</translation>
 <translation id="869891660844655955">Utgångsdatum</translation>
@@ -5763,6 +5796,7 @@
 <translation id="8872187374998143710">Starta om enheten om du vill använda Plugin VM.</translation>
 <translation id="8872777911145321141">Fråga när en webbplats vill använda VR-enheter och VR-data (rekommenderas)</translation>
 <translation id="8874184842967597500">Inte ansluten</translation>
+<translation id="8875775314572167244">Ethernet-inställningar</translation>
 <translation id="8876307312329369159">Inställningen kan inte ändras i demoläget.</translation>
 <translation id="8877448029301136595">[överordnad katalog]</translation>
 <translation id="8878384954777710821">Plugin VM avinstalleras …</translation>
@@ -5804,6 +5838,7 @@
 <translation id="892706138619340876">Vissa inställningar återställdes</translation>
 <translation id="8930351635855238750">De nya inställningarna för cookies börjar gälla när sidan uppdateras</translation>
 <translation id="8931394284949551895">Nya enheter</translation>
+<translation id="8931475688782629595">Hantera det du vill synkronisera</translation>
 <translation id="8932894639908691771">Alternativ för brytarstyrning</translation>
 <translation id="8933960630081805351">&amp;Visa i Finder</translation>
 <translation id="8934732568177537184">Fortsätt</translation>
@@ -5961,6 +5996,7 @@
 <translation id="9148126808321036104">Logga in igen</translation>
 <translation id="9149866541089851383">Redigera...</translation>
 <translation id="9150045010208374699">Använd kameran</translation>
+<translation id="9150429437595727962">Wi-Fi-inställningar</translation>
 <translation id="9153934054460603056">Spara identitet och lösenord</translation>
 <translation id="9154194610265714752">Uppdaterat</translation>
 <translation id="91568222606626347">Skapa genväg ...</translation>
@@ -6022,6 +6058,7 @@
 <translation id="945522503751344254">Skicka synpunkter</translation>
 <translation id="947329552760389097">&amp;Inspektera element</translation>
 <translation id="952992212772159698">Inte aktiverat</translation>
+<translation id="956500788634395331">Du är skyddad från tillägg som kan vara skadliga</translation>
 <translation id="957960681186851048">Den här webbplatsen försökte ladda ned flera filer automatiskt</translation>
 <translation id="9580706199804957">Det gick inte att ansluta till Googles tjänster</translation>
 <translation id="960719561871045870">Operatörskod</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 9b0332c..5d144b47 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Mipangilio ya Hifadhi ya Adobe Flash Player</translation>
 <translation id="1274997165432133392">Vidakuzi na data ya tovuti nyingine</translation>
 <translation id="1280820357415527819">Inatafuta mitandao ya simu</translation>
+<translation id="1280965841156951489">Badilisha faili</translation>
 <translation id="1282420830958964167">Muda wa kutumia "<ph name="APP_NAME" />" ambao mzazi wako aliweka umeisha. Utaweza kuitumia kwa <ph name="TIME_LIMIT" /> kesho.</translation>
 <translation id="1285320974508926690">Kamwe usitafsiri tovuti hii</translation>
 <translation id="1285484354230578868">Hifadhi data katika akaunti yako ya Hifadhi ya Google</translation>
@@ -510,6 +511,7 @@
 <translation id="1692210323591458290">Zambarau iliyokolea</translation>
 <translation id="1692799361700686467">Vidakuzi kutoka tovuti anuwai vinaruhusiwa.</translation>
 <translation id="1697150536837697295">Sanaa</translation>
+<translation id="1697686431566694143">Badilisha faili</translation>
 <translation id="1698122934742150150">Kipindi cha sasa cha hali fiche pekee</translation>
 <translation id="1698650002254827833">Imeshindwa kupakia orodha ya programu. Tafadhali jaribu tena.</translation>
 <translation id="1701062906490865540">Ondoa mtumiaji huyu</translation>
@@ -695,6 +697,7 @@
 <translation id="1931152874660185993">Hakuna vipengele vilivyosakinishwa.</translation>
 <translation id="1932098463447129402">Sio Kabla</translation>
 <translation id="1933809209549026293">Tafadhali unganisha kipanya au kibodi. Ikiwa unatumia kifaa cha Bluetooth, hakikisha kuwa kiko tayari kuoanisha.</translation>
+<translation id="1936931585862840749">Tumia nambari kuonyesha idadi ya nakala za kuchapisha (moja hadi <ph name="MAX_COPIES" />).</translation>
 <translation id="1937774647013465102">Haiwezi kupakia metadata ya aina ya usanifu wa<ph name="ARCHITECTURE_CONTAINER" /> kwa kutumia kifaa hiki ambacho ni <ph name="ARCHITECTURE_DEVICE" />. Unaweza kujaribu kurejesha metadata hii kwenye kifaa tofauti, au unaweza kufikia faili zilizo ndani ya picha ya metadata hii kwa kuzifungua katika programu ya Faili.</translation>
 <translation id="1938351510777341717">Amri ya Nje</translation>
 <translation id="1940546824932169984">Vifaa vilivyounganishwa</translation>
@@ -990,6 +993,7 @@
 <translation id="2343747224442182863">Lenga Kichupo Hiki</translation>
 <translation id="2344028582131185878">Upakuaji wa Kiotomatiki</translation>
 <translation id="2345723121311404059">Ukurasa 1 kwa <ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Huduma ya SODA</translation>
 <translation id="2347644257713614136">Matumizi ya Hangouts na Cast for Education yanasimamiwa na Sera ya Faragha ya Google.</translation>
 <translation id="2348176352564285430">Programu: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Kimepakiwa upya</translation>
@@ -1043,6 +1047,7 @@
 <translation id="2422125132043002186">Imeghairi upakiaji Linux</translation>
 <translation id="2423578206845792524">Hifadhi picha kama...</translation>
 <translation id="2428510569851653187">Eleza shughuli ulizokuwa ukifanya kichupo kilipoacha kufanya kazi</translation>
+<translation id="2428939361789119025">Zima Wi-Fi</translation>
 <translation id="2431027948063157455">Programu ya Mratibu wa Google haijapakiwa, tafadhali angalia muunganisho wako wa mtandao na ujaribu tena.</translation>
 <translation id="2432753757290432042">Sasisho la Linux (Beta) linahitajika</translation>
 <translation id="2433452467737464329">Ongeza hoja ya param katika URL ili uonyeshe ukurasa upya kiotomatiki: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1460,6 +1465,7 @@
 <translation id="2944060181911631861">Tuma data ya matumizi na uchunguzi. Tusaidie kuboresha jinsi unavyotumia Android kwa kutuma kiotomatiki data ya uchunguzi na matumizi ya kifaa na programu kwa Google. Maelezo haya yatatusaidia kuboresha uthabiti wa programu na mfumo na maboresho mengine. Baadhi ya maelezo yaliyojumlishwa pia yatasaidia programu za Google na washirika kama vile wasanidi programu za Android. Ikiwa umewasha mipangilio ya historia ya Shughuli za ziada kwenye Wavuti na Programu, huenda data hii itahifadhiwa kwenye akaunti yako ya Google. <ph name="BEGIN_LINK1" />Pata maelezo zaidi<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Ongeza muunganisho</translation>
 <translation id="2947605845283690091">Shughuli ya kuvinjari kwenye wavuti itafanyika haraka. Chukua muda mfupi <ph name="BEGIN_LINK" />uangalie viendelezi vyako<ph name="END_LINK" /> hivi sasa.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{Kiendelezi kimoja ambacho huenda ni hatari kimezimwa. Unaweza pia kukiondoa.}other{Viendelezi # ambavyo huenda ni hatari vimezimwa. Unaweza pia kuviondoa.}}</translation>
 <translation id="2948300991547862301">Nenda kwenye <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Kivinjari kilicho na kasi, rahisi kutumia, na salama, kilichoundwa kwa ajili ya wavuti wa kisasa.</translation>
 <translation id="2949289451367477459">Tumia huduma za mahali. Ruhusu programu na huduma zenye ruhusa ya mahali zitumie data ya mahali kilipo kifaa hiki. Google inaweza kukusanya data ya mahali mara moja moja na kutumia data hii kwa njia ambayo haikutambulishi ili kuboresha usahihi wa mahali na huduma zinazohusiana na mahali. <ph name="BEGIN_LINK1" />Pata maelezo zaidi<ph name="END_LINK1" /></translation>
@@ -1540,6 +1546,7 @@
 <translation id="3067198179881736288">Ungependa kusakinisha programu?</translation>
 <translation id="3067198360141518313">Tekeleza programu jalizi hii</translation>
 <translation id="3071624960923923138">Unaweza kubofya hapa ili ufungue kichupo kipya</translation>
+<translation id="3072775339180057696">Ungependa kuruhusu tovuti ione <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Inahitaji kuanzishwa upya ili mchakato wa Powerwash uanze. Baada ya kuanzisha upya utaombwa uthibitishe kwamba unataka kuendelea.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Imefuta data yako ya kuingia katika akaunti</translation>
@@ -1552,6 +1559,7 @@
 <translation id="3085412380278336437">Tovuti inaweza kutumia kamera yako</translation>
 <translation id="3085752524577180175">Seva Mbadala ya Seva Pangishi ya SOCKS</translation>
 <translation id="3088052000289932193">Tovuti inatumia MIDI</translation>
+<translation id="3088128611727407543">Inatayarisha maelezo ya programu...</translation>
 <translation id="3088325635286126843">&amp;Badilisha jina...</translation>
 <translation id="3089137131053189723">Utafutaji umefutwa</translation>
 <translation id="3090193911106258841">Inafikia vifaa vya kuingiza sauti na video</translation>
@@ -1593,6 +1601,7 @@
     Ufafanuzi:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Programu za Chrome</translation>
+<translation id="3150693969729403281">Tekeleza angalizo la usalama sasa</translation>
 <translation id="3150927491400159470">Upakiaji upya Thabiti</translation>
 <translation id="315116470104423982">Data ya mtandao wa simu</translation>
 <translation id="3151539355209957474">Wakati wa Kuanza</translation>
@@ -1685,6 +1694,7 @@
 <translation id="3282568296779691940">Ingia katika Chrome</translation>
 <translation id="3285322247471302225">Kichupo &amp;Kipya</translation>
 <translation id="328571385944182268">Ungependa kuhifadhi manenosiri yako?</translation>
+<translation id="328785681103589998"><ph name="ORIGIN" /> itaweza kuona <ph name="FILENAME" /> hadi ufunge vichupo vyote vya <ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Viendelezi vinavyoendeshwa katika hali ya msanidi programu vinaweza vikadhuru kompyuta yako. Kama wewe si msanidi programu, unapaswa kuzima viendelezi hivi vinavyoendeshwa katika hali ya msanidi programu ili ukae salama.</translation>
 <translation id="3289856944988573801">Ili kuangalia sasisho, tafadhali tumia Ethernet au Wi-Fi.</translation>
 <translation id="3290356915286466215">Haulindwi</translation>
@@ -1793,6 +1803,7 @@
 <translation id="344630545793878684">Soma data yako kwenye tovuti kadhaa</translation>
 <translation id="3448086340637592206">Sheria na Masharti ya Ziada ya Google Chrome na Mfumo wa Uendeshaji wa Chrome</translation>
 <translation id="3448492834076427715">Sasisha akaunti</translation>
+<translation id="3449393517661170867">Dirisha jipya katika kichupo</translation>
 <translation id="3449839693241009168">Bonyeza <ph name="SEARCH_KEY" /> ili kutuma amri kwenye <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Asilimia ya Ukaaji wa Hali ya Kutofanya Kitu</translation>
 <translation id="3451332697983754369">Sawazisha <ph name="DEVICE_TYPE" /> yangu</translation>
@@ -1973,6 +1984,7 @@
 <translation id="3681311097828166361">Asante sana kwa maoni yako. Sasa uko nje ya mtandao, na ripoti yako itatumwa baadaye.</translation>
 <translation id="3682824389861648626">Kiasi cha usogezaji</translation>
 <translation id="3683524264665795342">Ombi la <ph name="APP_NAME" /> la Kushiriki Skirini</translation>
+<translation id="3686074530047028092">Akaunti ya elimu</translation>
 <translation id="368789413795732264">Kulikuwa na hitilafu wakati wa kujaribu kuandika faili: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Andika kwenye faili na folda unazofungua katika programu hii.</translation>
 <translation id="3688526734140524629">Badili kituo</translation>
@@ -2041,6 +2053,7 @@
 <translation id="3759933321830434300">Zuia sehemu za kurasa za mtandao</translation>
 <translation id="3760460896538743390">Kagua Ukurasa wa Mandharinyuma</translation>
 <translation id="37613671848467444">Fungua katika &amp;Dirisha Chini kwa chini</translation>
+<translation id="3761556954875533505">Ungependa kuruhusu tovuti ibadilishe faili?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Wasiliana na kifaa cha USB}other{Wasiliana na vifaa # vya USB}}</translation>
 <translation id="3765246971671567135">Imeshindwa kusoma sera ya hali ya onyesho la nje ya mtandao.</translation>
 <translation id="3768037234834996183">Inasawazisha mapendeleo yako...</translation>
@@ -2176,6 +2189,7 @@
 <translation id="3927932062596804919">Kataza</translation>
 <translation id="3928570707778085600">Ungependa kuhifadhi mabadiliko kwenye <ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Viendelezi hivi vinaweza kuona na kubadilisha maelezo kwenye tovutii hii.</translation>
+<translation id="3930155420525972941">Hamishia Kikundi kwenye Dirisha Jipya</translation>
 <translation id="3930737994424905957">Inatafuta vifaa</translation>
 <translation id="3930968231047618417">Rangi ya mandharinyuma</translation>
 <translation id="3933283459331715412">Rejesha manenosiri yaliyofutwa ya <ph name="USERNAME" /></translation>
@@ -2332,6 +2346,7 @@
 <translation id="4130750466177569591">Ninakubali</translation>
 <translation id="413121957363593859">Vipengele</translation>
 <translation id="4131410914670010031">Nyeusi na nyeupe</translation>
+<translation id="4133076602192971179">Fungua programu ili ubadilishe nenosiri lako</translation>
 <translation id="4136203100490971508">Kipengele cha Mwanga wa Usiku kitazimwa kiotomatiki wakati wa macheo</translation>
 <translation id="41365691917097717">Hatua ya kuendelea itawasha utatuzi wa ADB wa kusanidi na kujaribu programu za Android. Kumbuka kwamba hatua hii inaruhusu usakinishaji wa programu za Android ambazo hazijathibitishwa na Google na zinahitaji urejeshe mipangilio ambayo kifaa ilitoka nayo kiwandani ili kuzima.</translation>
 <translation id="4138267921960073861">Onyesha majina ya watumiaji na picha kwenye skrini ya kuingia</translation>
@@ -2443,6 +2458,7 @@
 <translation id="4330387663455830245">Usitafsiri <ph name="LANGUAGE" /> Kamwe</translation>
 <translation id="4332976768901252016">Weka mipangilio ya Vidhibiti vya Wazazi</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 Na Usimbaji wa RSA</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Msimamizi wako amewasha tena kiendelezi kimoja ambacho huenda ni hatari}other{Msimamizi wako amewasha tena viendelezi # ambavyo huenda ni hatari}}</translation>
 <translation id="4336434711095810371">Futa data yote</translation>
 <translation id="4336979451636460645">Kwa kumbukumbu za mtandao, angalia: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> inataka kuwasiliana na programu "<ph name="EXTENSION_NAME" />"</translation>
@@ -2749,6 +2765,7 @@
 <translation id="4785719467058219317">Unatumia ufunguo wa usalama ambao haujasajiliwa kwenye tovuti hii</translation>
 <translation id="4788092183367008521">Tafadhali kagua muunganisho wako wa mtandao na ujaribu tena.</translation>
 <translation id="4792711294155034829">&amp;Ripoti Tatizo...</translation>
+<translation id="4794810983896241342">Masasisho yanadhibitiwa na <ph name="BEGIN_LINK" />msimamizi wako<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Ukurasa wavuti, HTML Pekee</translation>
 <translation id="4798236378408895261">Ambatisha <ph name="BEGIN_LINK" />Kumbukumbu za Bluetooth<ph name="END_LINK" /> (Isitoke nje ya Google)</translation>
 <translation id="4801448226354548035">Ficha akaunti</translation>
@@ -2844,6 +2861,7 @@
 <translation id="4908811072292128752">Fungua kichupo kipya ili uvinjari tovuti mbili kwa wakati mmoja</translation>
 <translation id="4909038193460299775">Kwa sababu akaunti hii inadhibitiwa na <ph name="DOMAIN" />, alamisho, historia, manenosiri, na mipangilio yako mingine itafutwa kwenye kifaa hiki. Hata hivyo, data yako itaendelea kuhifadhiwa katika Akaunti yako ya Google na inaweza kudhibitiwa kwenye <ph name="BEGIN_LINK" />Dashibodi ya Google<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Miamsho Isiyofanya kazi</translation>
+<translation id="4916542008280060967">Ungependa kuruhusu tovuti ibadilishe <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Badilisha ili utumie kivinjari salama</translation>
 <translation id="4917385247580444890">Thabiti</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> inataka kuwasiliana na kiendelezi "<ph name="EXTENSION_NAME" />"</translation>
@@ -2915,6 +2933,7 @@
 <translation id="5017633213534173756">Kumbuka</translation>
 <translation id="5018207570537526145">Fungua tovuti ya kiendelezi</translation>
 <translation id="5021750053540820849">Bado haijasasishwa</translation>
+<translation id="5026806129670917316">Washa Wi-Fi</translation>
 <translation id="5026874946691314267">Usionyeshe hii tena</translation>
 <translation id="5027550639139316293">Cheti cha Barua Pepe</translation>
 <translation id="5027562294707732951">Ongeza kiendelezi</translation>
@@ -3027,6 +3046,7 @@
 <translation id="5184063094292164363">Kidhibiti Kazi cha &amp;JavaScript</translation>
 <translation id="5184209580557088469">Tiketi iliyo na jina hili la mtumiaji tayari ipo</translation>
 <translation id="5184662919967270437">Inasasisha kifaa chako</translation>
+<translation id="5185359571430619712">Kagua viendelezi</translation>
 <translation id="5185386675596372454">Toleo jipya zaidi la "<ph name="EXTENSION_NAME" />" limezimwa kwa sababu linahitaji idhini zaidi.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> inataka kupakua faili kadhaa</translation>
@@ -3077,6 +3097,7 @@
 <translation id="5260334392110301220">Manukuu Mahiri</translation>
 <translation id="5260508466980570042">Samahani, barua pepe au nenosiri lako havikuthibitishwa. Tafadhali jaribu tena.</translation>
 <translation id="5261683757250193089">Fungua katika Duka la Chrome kwenye Wavuti</translation>
+<translation id="5262178194499261222">Ondoa nenosiri</translation>
 <translation id="5264148714798105376">Huenda shughuli hii ikachukua dakika kadhaa.</translation>
 <translation id="5264252276333215551">Tafadhali unganisha kwenye mtandao ili uzindue programu yako katika skrini nzima.</translation>
 <translation id="5265562206369321422">Nje ya mtandao kwa zaidi ya wiki moja</translation>
@@ -3502,6 +3523,7 @@
 <translation id="5833726373896279253">Mipangilio hii inaweza tu kurekebishwa na mmiliki.</translation>
 <translation id="5834581999798853053">Zimesalia karibu dakika <ph name="TIME" /></translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Kurekodi kwa kamera au maikrofoni</translation>
+<translation id="5841270259333717135">Weka mipangilio ya Ethaneti</translation>
 <translation id="5842497610951477805">Washa Bluetooth</translation>
 <translation id="5846200638699387931">Hitilafu ya sintaksia ya uhusiano: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Tayari limeongezwa</translation>
@@ -3547,6 +3569,7 @@
 <translation id="5900358982890952556">Pata Toleo Jipya la Linux (Beta)</translation>
 <translation id="5901494423252125310">Mlango wa printa umefunguka</translation>
 <translation id="5901630391730855834">Manjano</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Umewasha tena kiendelezi kimoja ambacho huenda ni hatari}other{Umewasha tena viendelezi # ambavyo huenda ni hatari}}</translation>
 <translation id="5906655207909574370">Inakaribia kukamilisha kusasishwa! Zima na uwashe kifaa chako ili ukamilishe kusasisha.</translation>
 <translation id="5906732635754427568">Data inayohusishwa na programu hii itaondolewa kwenye kifaa hiki.</translation>
 <translation id="5908769186679515905">Zuia tovuti kutumia Flash</translation>
@@ -3576,6 +3599,7 @@
 <translation id="59324397759951282">Kifaa cha USB kutoka <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Nambari Tambulishi</translation>
 <translation id="5933376509899483611">Saa za eneo:</translation>
+<translation id="5935656526031444304">Dhibiti Mipangilio ya Kuvinjari Salama</translation>
 <translation id="5938002010494270685">Sasisho la usalama linapatikana</translation>
 <translation id="5939518447894949180">Weka upya</translation>
 <translation id="5941153596444580863">Ongeza mwingine...</translation>
@@ -3619,6 +3643,7 @@
 <translation id="5993807461461235661">Faili hii imesimbwa kwa njia fiche na inakiuka sera za usalama za shirika lako.</translation>
 <translation id="5997337190805127100">Pata Maelezo Zaidi kuhusu Ufikiaji wa Tovuti</translation>
 <translation id="6000758707621254961">Matokeo <ph name="RESULT_COUNT" /> ya '<ph name="SEARCH_TEXT" />'</translation>
+<translation id="6002210667729577411">Hamishia kikundi kwenye dirisha jipya</translation>
 <translation id="6002458620803359783">Sauti Zinazopendelewa</translation>
 <translation id="6006484371116297560">Kawaida</translation>
 <translation id="6007240208646052708">Huduma ya kutafuta kwa kutamka haitumiki katika lugha yako.</translation>
@@ -4157,6 +4182,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Onyesha mkato wa eneo-kazi</translation>
 <translation id="6740234557573873150">Imesitisha <ph name="FILE_NAME" /></translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Msimamizi wako<ph name="END_LINK" /> amezima mipangilio ya Kuvinjari Salama</translation>
 <translation id="6742339027238151589">Kinaweza kufikiwa na hati</translation>
 <translation id="6745592621698551453">Sasisha sasa</translation>
 <translation id="6746124502594467657">Songa chini</translation>
@@ -4415,6 +4441,7 @@
     <ph name="BEGIN_BOLD" />Kumbuka:<ph name="END_BOLD" /> Sauti au rekodi sawa inaweza pia kufikia programu yako ya Mratibu. Unaweza kuondoa ruhusa ya Voice Match baadaye kwa kuizima katika Mipangilio ya Mratibu.</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">Badilisha data kwa vifaa viitwavyo: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Kifaa kitazima na kuwaka wakati mchakato wa kusasisha utakamilika.</translation>
 <translation id="7098389117866926363">Kifaa cha USB-C (mlango wa kushoto nyuma)</translation>
 <translation id="7098447629416471489">Mitambo mingine ya kutafuta iliyohifadhiwa itaonekana hapa</translation>
 <translation id="7099337801055912064">Imeshindwa kupakia PPD kubwa. Kima cha juu kinachoruhusiwa ni KB 250.</translation>
@@ -4887,6 +4914,7 @@
 <translation id="7766807826975222231">Kagua</translation>
 <translation id="7766838926148951335">Kubali ruhusa</translation>
 <translation id="7769672763586021400">Aina ya Kitambulisho</translation>
+<translation id="7770651108375708429">Zima Wi-Fi</translation>
 <translation id="7771452384635174008">Mpangilio</translation>
 <translation id="7772032839648071052">Thibitisha kaulisiri</translation>
 <translation id="7772127298218883077">Kuhusu <ph name="PRODUCT_NAME" /></translation>
@@ -5047,6 +5075,7 @@
 <translation id="7939412583708276221">Hata hivyo weka</translation>
 <translation id="7942349550061667556">Nyekundu</translation>
 <translation id="7943837619101191061">Ongeza Eneo...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{Nenosiri moja limeathiriwa}other{Manenosiri # yameathiriwa}}</translation>
 <translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" inataka kuunganisha</translation>
 <translation id="7946586320617670168">Lazima chanzo kiwe salama</translation>
 <translation id="794676567536738329">Thibitisha Vibali</translation>
@@ -5146,6 +5175,7 @@
 <translation id="8059417245945632445">Kagua vifaa</translation>
 <translation id="8059456211585183827">Hakuna printa unazoweza kuhifadhi.</translation>
 <translation id="8063235345342641131">Ishara chaguomsingi ya kijani</translation>
+<translation id="8063535366119089408">Angalia faili</translation>
 <translation id="8064671687106936412">Ufunguo:</translation>
 <translation id="8068253693380742035">Gusa ili uingie katika akaunti</translation>
 <translation id="8068809649322155577">Hatua hii itafuta data na vidakuzi vyote vilivyohifadhiwa na <ph name="SITE_GROUP_NAME" />, tovuti zozote zilizo chini yake na programu zake zilizosakinishwa.</translation>
@@ -5211,6 +5241,7 @@
 <translation id="8152091997436726702">Muda wa kusajili printa umeisha. Ili kusajili printa, lazima uthibitishe usajili kwenye printa.</translation>
 <translation id="8154790740888707867">Hakuna Faili</translation>
 <translation id="815491593104042026">Lo! Uthibitishaji haukufaulu kwa sababu ulisanidiwa ili kutumia URL isiyo salama (<ph name="BLOCKED_URL" />).  Tafadhali wasiliana na msimamizi wako.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Hatukupata manenosiri yaliyoathiriwa}=1{Nenosiri {COUNT} limeathiriwa}other{Manenosiri {COUNT} yameathiriwa}}</translation>
 <translation id="8157704005178149728">Inaweka mipangilio ya usimamizi</translation>
 <translation id="8158117992543756526">Kifaa hiki kiliacha kupokea masasisho ya programu na usalama mnamo <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Pata maelezo zaidi<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Hitilafu katika Kuweka Uaminifu wa Cheti</translation>
@@ -5264,6 +5295,7 @@
 <translation id="8226742006292257240">Hapa chini kuna nenosiri la TPM lililoundwa kinasibu ambalo limetolewa kwa kompyuta yako:</translation>
 <translation id="8227119283605456246">Ambatisha faili</translation>
 <translation id="8230134520748321204">Ungependa kuhifadhi nenosiri la <ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Mipangilio ya intaneti</translation>
 <translation id="8234795456569844941">Tafadhali wasaidie wahandisi wetu kutatua tatizo hili. Tueleze hasa kilichotendeka kabla ya kupokea ujumbe wa hitilafu:</translation>
 <translation id="8236123533334037984">Shirika lako linachanganua upakuaji huu kwa ajili ya uidhinishaji wa usalama.</translation>
 <translation id="8236917170563564587">Shiriki kichupo hiki badala yake</translation>
@@ -5601,6 +5633,7 @@
 <translation id="8688579245973331962">Je, huoni jina lako?</translation>
 <translation id="8688591111840995413">Nenosiri lisilo sahihi</translation>
 <translation id="8688672835843460752">Inapatikana</translation>
+<translation id="8691418731028620688">Unganisha Wi-Fi</translation>
 <translation id="8695825812785969222">Fungua Eneo...</translation>
 <translation id="869884720829132584">Menyu ya programu</translation>
 <translation id="869891660844655955">Muda wake unakwisha tarehe</translation>
@@ -5760,6 +5793,7 @@
 <translation id="8872187374998143710">Tafadhali zima na uwashe kifaa chako ili utumie Plugin VM.</translation>
 <translation id="8872777911145321141">Uliza wakati tovuti inataka kutumia data na vifaa vyako vya uhalisia pepe (inapendekezwa)</translation>
 <translation id="8874184842967597500">Haijaunganishwa</translation>
+<translation id="8875775314572167244">Mipangilio ya Ethaneti</translation>
 <translation id="8876307312329369159">Mipangilio hii haiwezi kubadilishwa katika hali ya onyesho</translation>
 <translation id="8877448029301136595">[saraka kuu]</translation>
 <translation id="8878384954777710821">Inaondoa Plugin VM...</translation>
@@ -5801,6 +5835,7 @@
 <translation id="892706138619340876">Baadhi ya mipangilio imewekwa upya.</translation>
 <translation id="8930351635855238750">Mipangilio mipya ya vidakuzi itaanza kutumika baada ya kupakia upya ukurasa</translation>
 <translation id="8931394284949551895">Vifaa vipya</translation>
+<translation id="8931475688782629595">Dhibiti data unayosawazisha</translation>
 <translation id="8932894639908691771">Chaguo za Kufikia kupitia Swichi</translation>
 <translation id="8933960630081805351">Onye&amp;sha katika Kipataji</translation>
 <translation id="8934732568177537184">Endelea</translation>
@@ -5958,6 +5993,7 @@
 <translation id="9148126808321036104">Ingia tena</translation>
 <translation id="9149866541089851383">Badilisha...</translation>
 <translation id="9150045010208374699">Tumia kamera yako</translation>
+<translation id="9150429437595727962">Mipangilio ya Wi-Fi</translation>
 <translation id="9153934054460603056">Hifadhi kitambulisho na nenosiri</translation>
 <translation id="9154194610265714752">Imesasishwa</translation>
 <translation id="91568222606626347">Unda Njia ya Mkato</translation>
@@ -6019,6 +6055,7 @@
 <translation id="945522503751344254">Tuma maoni</translation>
 <translation id="947329552760389097">&amp;Kagua Vipengee</translation>
 <translation id="952992212772159698">Haijaamilishwa</translation>
+<translation id="956500788634395331">Umelindwa dhidi ya viendelezi ambavyo huenda ni hatari</translation>
 <translation id="957960681186851048">Tovuti hii imejaribu kupakua faili nyingi kiotomatiki</translation>
 <translation id="9580706199804957">Imeshindwa kuunganisha kwenye huduma za Google</translation>
 <translation id="960719561871045870">Msimbo wa mtoa huduma</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 1b05c25f..3575173 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -20,7 +20,7 @@
 <translation id="1017280919048282932">&amp;அகராதியுடன் சேர்</translation>
 <translation id="1018656279737460067">ரத்து செய்யப்பட்டது</translation>
 <translation id="1023873740278604399">உங்கள் கைரேகையின் வெவ்வேறு பகுதிகளைச் சேர்க்க, உங்கள் விரலைச் சற்று நகர்த்தவும்.</translation>
-<translation id="1026655690966755180">போர்ட்டை இணை</translation>
+<translation id="1026655690966755180">போர்ட்டை சேர்</translation>
 <translation id="1026822031284433028">படத்தை ஏற்று</translation>
 <translation id="1029317248976101138">பெரிதாக்கு</translation>
 <translation id="1030706264415084469">உங்கள் சாதனத்தில், அதிக அளவு தரவை நிரந்தரமாகச் சேமிக்க <ph name="URL" /> விரும்புகிறது</translation>
@@ -245,6 +245,7 @@
 <translation id="1333489022424033687">உங்கள் சாதனத்தில் பிற தளங்கள் சேமித்த தரவை நீங்கள் அழிக்காத வரை <ph name="ORIGIN" /> இல் சில அம்சங்கள் சரியாக செயல்படாமல் போகக்கூடும்</translation>
 <translation id="133535873114485416">விருப்பமான உள்ளீட்டு முறை</translation>
 <translation id="1335929031622236846">உங்கள் சாதனத்தைப் பதிவுசெய்யவும்</translation>
+<translation id="1336902454946927954">உங்களின் கைரேகையை அடையாளங்காண முடியவில்லை என்பதால் பாதுகாப்பு விசை பூட்டப்பட்டுள்ளது. பூட்டைத் திறக்க, உங்கள் பின்னை உள்ளிடவும்.</translation>
 <translation id="1338802252451106843">இந்த ஆப்ஸை <ph name="ORIGIN" /> திறக்க விரும்புகிறது.</translation>
 <translation id="1338950911836659113">நீக்குகிறது...</translation>
 <translation id="1340527397989195812">Files ஆப்ஸைப் பயன்படுத்தி சாதனத்திலிருந்து மீடியாவைக் காப்புப்பிரதி எடுக்கவும்.</translation>
@@ -565,6 +566,7 @@
 <translation id="1766575458646819543">முழுத்திரையிலிருந்து வெளியேறியது</translation>
 <translation id="1766957085594317166">கடவுச்சொற்களை உங்களின் Google கணக்கில் பாதுகாப்பாகச் சேமியுங்கள். பிறகு அவற்றை ஒவ்வொரு முறையும் உள்ளிட வேண்டிய தேவை இருக்காது</translation>
 <translation id="1768278914020124551">அச்சச்சோ!  உள்நுழைவுச் சேவையகத்தைத் தொடர்புகொள்வதில் பிழை ஏற்பட்டது. நெட்வொர்க் இணைப்பையும் டொமைன் பெயரையும் சரிபார்த்து, மீண்டும் முயலவும்.</translation>
+<translation id="1768412900610104587">இந்தச் சாதனத்தைப் புதுப்பிக்குமாறு <ph name="ORGANIZATION_NAME" /> வலியுறுத்துகிறது</translation>
 <translation id="1769104665586091481">இணைப்பை புதிய &amp;சாளரத்தில் திற</translation>
 <translation id="1773212559869067373">அடையாளச் சான்றிதழ் பயனரின் கம்ப்யூட்டரில் நிராகரிக்கப்பட்டது</translation>
 <translation id="177336675152937177">ஹோஸ்ட் செய்யப்பட்ட ஆப்ஸின் தரவு</translation>
@@ -789,6 +791,7 @@
 <translation id="2099686503067610784">சேவையக சான்றிதழ் "<ph name="CERTIFICATE_NAME" />" ஐ நீக்கவா?</translation>
 <translation id="2100273922101894616">தானாக உள்நுழையவும்</translation>
 <translation id="2101225219012730419">பதிப்பு:</translation>
+<translation id="211144231511833662">வகைகளை அழி</translation>
 <translation id="2111670510994270194">வலதுபக்கத்தில் புதிய தாவல்</translation>
 <translation id="2112004299911874330">தளங்கள் சேமித்த <ph name="TOTAL_USAGE" /> தரவை இது அழிக்கும்.</translation>
 <translation id="21133533946938348">தாவலைப் பொருத்து</translation>
@@ -1219,6 +1222,7 @@
 <translation id="2670429602441959756">VR இல் இன்னும் ஆதரிக்கப்படாத அம்சங்கள், இந்தப் பக்கத்தில் உள்ளன. வெளியேறுகிறது...</translation>
 <translation id="2671451824761031126">உங்கள் புத்தகக்குறிகளும் அமைப்புகளும் தயாராக உள்ளன</translation>
 <translation id="2672142220933875349">தவறான crx கோப்பு, அசல் நிலைக்கு மாற்றுவது தோல்வி.</translation>
+<translation id="267286461080753274">இந்தச் சாதனத்தைப் புதுப்பிக்குமாறு <ph name="ORGANIZATION_NAME" /> உங்களிடம் கேட்கும்</translation>
 <translation id="2673135533890720193">உங்கள் உலாவல் வரலாற்றைப் படித்தல்</translation>
 <translation id="2673589024369449924">இந்தப் பயனருக்கு ஒரு டெஸ்க்டாப் ஷார்ட்கட்டை உருவாக்கு</translation>
 <translation id="2674764818721168631">ஆஃப்</translation>
@@ -1454,6 +1458,7 @@
 <translation id="2979639724566107830">புதிய சாளரத்தில் திற</translation>
 <translation id="2981113813906970160">பெரிய மவுஸ் இடஞ்சுட்டியைக் காட்டு</translation>
 <translation id="2982970937345031">பெயரில்லாமல் புகாரளி</translation>
+<translation id="2985348301114641460">"<ph name="EXTENSION_NAME" />" ஐ நிறுவ உங்கள் நிர்வாகிக்கு கோரிக்கையை அனுப்ப வேண்டுமா?</translation>
 <translation id="2986010903908656993">MIDI சாதனங்களின் முழுக் கட்டுப்பாட்டைப் பெறுவதிலிருந்து இந்தப் பக்கம் தடுக்கப்பட்டுள்ளது.</translation>
 <translation id="2987620471460279764">பிற சாதனத்திலிருந்து உரை பகிரப்பட்டது</translation>
 <translation id="2989474696604907455">இணைக்கப்படவில்லை</translation>
@@ -1735,6 +1740,7 @@
 <translation id="3423858849633684918">தயவுசெய்து <ph name="PRODUCT_NAME" /> ஐ மீண்டும் தொடங்கவும்</translation>
 <translation id="3424969259347320884">தாவல் சிதைந்த போது, நீங்கள் என்ன செய்து கொண்டிருந்தீர்கள் என்பதை விளக்கவும்</translation>
 <translation id="3427092606871434483">அனுமதி (இயல்பு)</translation>
+<translation id="342811387499911452">வேறொரு ஆப்ஸிற்கு மாறு</translation>
 <translation id="3428419049384081277">உள்நுழைந்துவிட்டீர்கள்!</translation>
 <translation id="3429275422858276529">இந்தப் பக்கத்தைப் பிறகு எளிதாகக் கண்டறிய, புத்தகக்குறியிடவும்</translation>
 <translation id="3432227430032737297">காட்டப்படும் அனைத்தையும் அகற்று</translation>
@@ -1980,6 +1986,7 @@
 <translation id="3732530910372558017">பின்னில் அதிகப்பட்சம் 63 எழுத்துகள் வரை இருக்க வேண்டும்</translation>
 <translation id="3733127536501031542">அதிகமாக்குதலுடனான SSL சேவையகம்</translation>
 <translation id="3735740477244556633">இதன்படி வரிசைப்படுத்து</translation>
+<translation id="3736852366551061788"><ph name="FILE_NAME" /> என்ற கோப்பை Googleளுக்கு அனுப்பி அது மால்வேரா என்று சரிபார்க்குமாறு 'மேம்பட்ட பாதுகாப்பு' பரிந்துரைக்கிறது. பதிவிறக்கங்கள் பட்டிப் பகுதிக்குச் செல்ல, Shift+F6 விசைகளை அழுத்தவும்.</translation>
 <translation id="3737536731758327622">உங்கள் பதிவிறக்கங்கள் இங்கே தோன்றும்</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" />ஐத் திறக்கவா?</translation>
@@ -2014,6 +2021,7 @@
 <translation id="3778208826288864398">தவறான பின் பல முறை உள்ளிடப்பட்டதால் பாதுகாப்பு விசை பூட்டப்பட்டது. பாதுகாப்பு விசையை மீட்டமைக்க வேண்டியிருக்கும்.</translation>
 <translation id="3778740492972734840">&amp;டெவெலப்பர் கருவிகள்</translation>
 <translation id="3778868487658107119">அதனிடம் கேள்விகளைக் கேட்கலாம். பணிகளைச் செய்யும்படி சொல்லலாம். இது உங்கள் தனிப்பட்ட Google, உங்களுக்கு உதவுவதற்காக எப்போதும் தயாராக இருக்கும்.</translation>
+<translation id="3779154269823594982">கடவுச்சொற்களை மாற்று</translation>
 <translation id="3780211714699334884">இந்தத் தாவலை மூடும் வரையில் <ph name="FOLDERNAME" /> கோப்புறையில் உள்ள கோப்புகளை <ph name="ORIGIN" /> தளத்தால் திருத்த முடியும்</translation>
 <translation id="3780827508782506612">இந்தப் பக்கம் மொழிபெயர்க்கப்பட்டது</translation>
 <translation id="378312418865624974">இந்தக் கம்ப்யூட்டருக்கான தனிப்பட்ட அடையாளங்காட்டியைப் படிக்கலாம்</translation>
@@ -2164,6 +2172,7 @@
 <translation id="3957844511978444971">இந்த Google சேவைகள் அமைப்புகளைத் தேர்வுசெய்துள்ளதை உறுதிப்படுத்த, “ஏற்கிறேன்” என்பதைத் தட்டவும்.</translation>
 <translation id="3958088479270651626">புக்மார்க்குகளையும் அமைப்புகளையும் இறக்குமதி செய்</translation>
 <translation id="3960566196862329469">ONC</translation>
+<translation id="3965811923470826124">இதனுடன்</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" />ஐ மூடு</translation>
 <translation id="3966072572894326936">வேறு கோப்புறையைத் தேர்வு செய்க...</translation>
 <translation id="3967822245660637423">பதிவிறக்கம் முடிந்தது</translation>
@@ -2220,6 +2229,7 @@
 <translation id="404493185430269859">இயல்பு தேடல் இன்ஜின்</translation>
 <translation id="4046013316139505482">இந்தத் தளத்திலுள்ள தகவல்களை இந்த நீட்டிப்புகள் பார்க்கவும் மாற்றவும் தேவையில்லை.</translation>
 <translation id="4046123991198612571">அடுத்த டிராக்</translation>
+<translation id="4047726037116394521">முகப்புக்குச் செல்</translation>
 <translation id="4050225813016893843">அங்கீகார முறை</translation>
 <translation id="4052120076834320548">சிறிய</translation>
 <translation id="4057041477816018958"><ph name="SPEED" /> - <ph name="RECEIVED_AMOUNT" /></translation>
@@ -2259,6 +2269,7 @@
 <translation id="409579654357498729">கிளவுடு அச்சில் சேர்</translation>
 <translation id="4096508467498758490">டெவெலப்பர் பயன்முறை நீட்டிப்புகளை முடக்கவும்</translation>
 <translation id="4096824249111507322">பாதுகாப்பு மாட்யூல் தயாராகிறது. காத்திருக்கவும் (இதற்குச் சில நிமிடங்கள் ஆகலாம்)...</translation>
+<translation id="4097406557126260163">ஆப்ஸும் நீட்டிப்புகளும்</translation>
 <translation id="4097560579602855702">Googleளில் தேடுக</translation>
 <translation id="4099060993766194518">இயல்பு தேடல் இன்ஜினை மீட்டமைக்கவா?</translation>
 <translation id="4099874310852108874">நெட்வொர்க் பிழை ஏற்பட்டது.</translation>
@@ -2349,6 +2360,7 @@
 <translation id="424963718355121712">ஆப்ஸ் எந்த ஹோஸ்ட்டை பாதிக்கின்றனவோ, அதிலிருந்தே வழங்கப்பட வேண்டும்</translation>
 <translation id="4250229828105606438">ஸ்கிரீன்ஷாட்</translation>
 <translation id="4250680216510889253">இல்லை</translation>
+<translation id="4251288318602771141">உங்களின் தற்போதைய சேவை வழங்குநருடன். பாதுகாப்பான DNS எப்போதும் கிடைக்காது.</translation>
 <translation id="4252852543720145436">பாதுகாக்கப்படும் உள்ளடக்க அடையாளங்காட்டிகள்</translation>
 <translation id="4252899949534773101">புளூடூத் முடக்கப்பட்டுள்ளது</translation>
 <translation id="4252996741873942488"><ph name="WINDOW_TITLE" /> - தாவல் உள்ளடக்கம் பகிரப்பட்டது</translation>
@@ -3621,6 +3633,7 @@
 <translation id="6095984072944024315">−</translation>
 <translation id="6096047740730590436">பெரிதாக்கப்பட்டதை திற</translation>
 <translation id="6096326118418049043">X.500 பெயர்</translation>
+<translation id="609662062217584106">UPI ஐடி</translation>
 <translation id="6097480669505687979">போதுமான இடத்தைக் காலியாக்கவில்லை எனில், பயனர்களும் தரவும் தானாகவே அகற்றப்படலாம்.</translation>
 <translation id="6097600385983390082">குரல் தேடல் மூடப்பட்டது</translation>
 <translation id="6098793583803863900">அறியப்படாத கோப்பு ஒன்று, மோசமான உள்ளடக்கம் இருக்கிறதா என்பதைப் பார்க்க ஸ்கேன் செய்யப்படுகிறது.</translation>
@@ -3630,6 +3643,7 @@
 <translation id="6103681770816982672">எச்சரிக்கை: டெவெலப்பர் சேனலுக்கு மாறுகிறீர்கள்</translation>
 <translation id="6104068876731806426">Google கணக்குகள்</translation>
 <translation id="6104311680260824317">சாதனத்தை டொமைனில் சேர்க்க முடியவில்லை. குறிப்பிடப்பட்டுள்ள Kerberos என்க்ரிப்ஷன் வகைகளைச் சேவையகம் ஆதரிக்கவில்லை. என்க்ரிப்ஷன் அமைப்புகளுக்கு, “மேலும் விருப்பங்கள்” என்பதைப் பார்க்கவும்.</translation>
+<translation id="6104641575223043670">உடனடியாக இந்தச் சாதனத்தைப் புதுப்பிக்குமாறு <ph name="ORGANIZATION_NAME" /> வலியுறுத்துகிறது</translation>
 <translation id="6106186653986077033">Plugin VMமைத் தொடங்க உரிமம் தேவை</translation>
 <translation id="6112294629795967147">அளவை மாற்ற, தொடவும்</translation>
 <translation id="6112727384379533756">டிக்கெட்டைச் சேர்</translation>
@@ -3684,6 +3698,7 @@
 <translation id="6178664161104547336">ஒரு சான்றிதழைத் தேர்ந்தெடு</translation>
 <translation id="6181431612547969857">பதிவிறக்கம் தடுக்கப்பட்டுள்ளது</translation>
 <translation id="6185132558746749656">சாதன இருப்பிடம்</translation>
+<translation id="6186394685773237175">களவாடப்பட்ட கடவுச்சொற்கள் எதுவும் இல்லை</translation>
 <translation id="6195693561221576702">இந்தச் சாதனத்தை ஆஃப்லைன் டெமோ பயன்முறையில் அமைக்க முடியாது.</translation>
 <translation id="6196640612572343990">மூன்றாம் தரப்புக் குக்கீகளைத் தடு</translation>
 <translation id="6196854373336333322">"<ph name="EXTENSION_NAME" />" நீட்டிப்பு உங்கள் ப்ராக்ஸி அமைப்புகளைக் கட்டுப்படுத்துகிறது, அதாவது நீங்கள் ஆன்லைனில் செய்யும் எல்லாவற்றையும் அதனால் மாற்ற முடியும், தடுக்க முடியும் அல்லது அறிந்து கொள்ள முடியும். இது ஏன் நடந்தது எனத் தெரியவில்லை எனில், உங்களுக்கு இந்த தேவைப்படாதது என்று அர்த்தம்.</translation>
@@ -4607,6 +4622,7 @@
 <translation id="7503985202154027481">நீங்கள் இந்த வலைதளத்தைப் பார்வையிட்டது தொடர்பான விவரங்கள் உங்கள் பாதுகாப்பு விசையில் பதிவுசெய்யப்படும்.</translation>
 <translation id="750509436279396091">பதிவிறக்கங்கள் கோப்புறையைத் திற</translation>
 <translation id="7506541170099744506">உங்கள் <ph name="DEVICE_TYPE" /> சாதனம், நிறுவன மேலாண்மைக்குப் பதிவுசெய்யப்பட்டது.</translation>
+<translation id="7507207699631365376">இந்த வழங்குநரின் <ph name="BEGIN_LINK" />தனியுரிமைக் கொள்கையைக்<ph name="END_LINK" /> காட்டு</translation>
 <translation id="7507930499305566459">நிலை பதிலளிப்பாளர் சான்றிதழ்</translation>
 <translation id="7508054832109420082">பிரிண்டர்களுக்கான அணுகலை வழங்கு</translation>
 <translation id="7513029293694390567">சேமித்த அனுமதிச் சான்றுகளைப் பயன்படுத்தி இணையதளங்களில் தானாகவே உள்நுழையும். இதை முடக்கினால், இணையதளத்தில் உள்நுழையும் ஒவ்வொரு முறையும் உறுதிப்படுத்த வேண்டும்.</translation>
@@ -5263,6 +5279,7 @@
 <translation id="8391712576156218334">படம் இல்லை. பின்னர் மீண்டும் முயலவும்.</translation>
 <translation id="8392364544846746346">எனது சாதனத்திலுள்ள கோப்புகளையோ கோப்புறைகளோ ஒரு தளம் மாற்ற விரும்பும்போது அனுமதி கேள்</translation>
 <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> க்கான விருப்பத்தேர்வுகள் மெனு</translation>
+<translation id="8392630288038565643">நிர்வகிக்கப்பட்ட உலாவிகளில் இந்த அமைப்பு முடக்கப்பட்டுள்ளது.</translation>
 <translation id="8393511274964623038">செருகுநிரலை நிறுத்து</translation>
 <translation id="8393700583063109961">செய்தி அனுப்பு</translation>
 <translation id="839736845446313156">பதிவு</translation>
@@ -5270,6 +5287,7 @@
 <translation id="8400146488506985033">நபர்களை நிர்வகி</translation>
 <translation id="8401432541486058167">உங்கள் ஸ்மார்ட் கார்டுடன் தொடர்புடைய பின்னை இங்கே உள்ளிடவும்.</translation>
 <translation id="8405046151008197676">சமீபத்திய புதுப்பிப்பில் இருந்து முக்கியத் தகவல்களைப் பெறுங்கள்</translation>
+<translation id="8407199357649073301">பதிவு நிலை:</translation>
 <translation id="8408068190360279472"><ph name="NETWORK_TYPE" /> நெட்வொர்க், இணைக்கிறது</translation>
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8413385045638830869">முதலில் கேள் (பரிந்துரைத்தது)</translation>
@@ -5502,6 +5520,7 @@
 <translation id="8727154974495727220"><ph name="DEVICE_TYPE" /> அமைக்கப்பட்டவுடன், எந்நேரத்திலும் உதவி பெற ’அசிஸ்டண்ட்’ பட்டனை அழுத்தவும் அல்லது "Ok Google" என்று சொல்லவும். மாற்றங்களைச் செய்ய ‘அசிஸ்டண்ட்’ அமைப்புகளுக்குச் செல்லவும்.</translation>
 <translation id="8730621377337864115">முடிந்தது</translation>
 <translation id="8731787661154643562">போர்ட் எண்</translation>
+<translation id="8731851055419582926">சரிபார்க்கப்பட்ட கடவுச்சொற்கள்</translation>
 <translation id="8732030010853991079">இந்த ஐகானில் கிளிக் செய்து இந்த நீட்டிப்பைப் பயன்படுத்துக.</translation>
 <translation id="8732212173949624846">நீங்கள் உள்நுழைந்துள்ள எல்லா சாதனங்களிலிருக்கும் உலாவல் வரலாற்றைப் படிக்கலாம் மற்றும் மாற்றலாம்</translation>
 <translation id="8732844209475700754">தனியுரிமை, பாதுகாப்பு, தரவுச் சேகரிப்பு ஆகியவை தொடர்பான மேலும் அமைப்புகள்</translation>
@@ -5515,6 +5534,7 @@
 <translation id="8742371904523228557"><ph name="ORIGIN" />க்கான உங்கள் குறியீடு: <ph name="ONE_TIME_CODE" /></translation>
 <translation id="8743390665131937741">முழுத்திரைப் பெரிதாக்கியின் அளவை மாற்றுவதற்கான நிலை:</translation>
 <translation id="8743864605301774756">புதுப்பித்தது: 1ம முன்பு</translation>
+<translation id="8746654918629346731">ஏற்கனவே "<ph name="EXTENSION_NAME" />" ஐக் கோரியுள்ளீர்கள்</translation>
 <translation id="874689135111202667">{0,plural, =1{இந்தத் தளத்தில் ஒரு கோப்பைப் பதிவேற்றவா?}other{இந்தத் தளத்தில் # கோப்புகளைப் பதிவேற்றவா?}}</translation>
 <translation id="8748384418490037181">Smart Lock விருப்பங்கள்</translation>
 <translation id="8749863574775030885">அறியப்படாத விற்பனையாளரிடமிருந்து USB சாதனங்களை அணுகு</translation>
@@ -5697,6 +5717,7 @@
 <translation id="8978154919215542464">இயக்கத்திலுள்ளது - அனைத்தையும் ஒத்திசை</translation>
 <translation id="897939795688207351"><ph name="ORIGIN" /> இல்</translation>
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - சிதைந்துவிட்டது</translation>
+<translation id="8983405057223076408">பெற்றோர் கட்டுப்பாடுகள் இயக்கப்பட்டு உள்ளதால் இந்த அமைப்பு முடக்கப்பட்டுள்ளது.</translation>
 <translation id="8983632908660087688"><ph name="FILENAME" /> கோப்பை <ph name="ORIGIN" /> தளத்தால் திருத்த முடியும்</translation>
 <translation id="8985264973231822211">கடைசியாக <ph name="DEVICE_LAST_ACTIVATED_TIME" /> நாளுக்கு முன் பயன்படுத்தியுள்ளார்</translation>
 <translation id="8986362086234534611">மற</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 5daa4dc..a0aac447 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">ล้างข้อมูลในแอปเหล่านี้ด้วยไหม</translation>
 <translation id="1045692658517323508">{0,plural, =1{อัปเดตภายใน 1 นาที}other{อัปเดตภายใน # นาที}}</translation>
 <translation id="1046635659603195359">ดูเหมือนคุณได้ตั้งค่า Voice Match กับ Google Assistant ในอุปกรณ์อื่นแล้ว สิ่งที่บันทึกไว้ก่อนหน้านี้จะนำมาใช้สร้างรูปแบบเสียงในอุปกรณ์นี้ได้ ซึ่งจะใช้เวลาไม่ถึงนาที</translation>
+<translation id="104710386808485638">รีสตาร์ท Linux ไหม</translation>
 <translation id="1047431265488717055">คัดลอก&amp;ข้อความของลิงก์</translation>
 <translation id="1048286738600630630">การแสดงผล</translation>
 <translation id="1049743911850919806">โหมดไม่ระบุตัวตน</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">โปรดลงชื่อเข้าใช้ <ph name="TOKEN_NAME" /> เพื่อส่งออกใบรับรองไคลเอ็นต์</translation>
 <translation id="1163931534039071049">&amp;ดูรหัสต้นฉบับของเฟรม</translation>
 <translation id="1164674268730883318">ปิด Smart Lock สำหรับ <ph name="DEVICE_TYPE" /> ไหม</translation>
+<translation id="1164891049599601209">มีการป้อนในเว็บไซต์ที่มีการหลอกลวง</translation>
 <translation id="1164899421101904659">ป้อนคีย์ปลดล็อก PIN</translation>
 <translation id="1165039591588034296">ข้อผิดพลาด</translation>
 <translation id="1166212789817575481">ปิดแท็บทางด้านขวา</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">โหมดคีออสก์อัตโนมัติ</translation>
 <translation id="1545775234664667895">ติดตั้งธีม "<ph name="THEME_NAME" />" แล้ว</translation>
 <translation id="1546280085599573572">ส่วนขยายนี้ได้เปลี่ยนหน้าที่จะแสดงเมื่อคุณคลิกปุ่มหน้าแรก</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> ต้องการติดตั้ง <ph name="EXTENSION_TYPE" /> ที่ดำเนินการต่อไปนี้ได้</translation>
 <translation id="1549275686094429035">ARC เปิดใช้งานอยู่</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> ต้องการเข้าถึง <ph name="VOLUME_NAME" /> แอปอาจแก้ไขหรือลบไฟล์ของคุณได้</translation>
 <translation id="1553538517812678578">ไม่จำกัด</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">VM ปลั๊กอิน</translation>
 <translation id="1679810534535368772">คุณแน่ใจไหมว่าต้องการออก</translation>
 <translation id="167983332380191032">บริการการจัดการแสดงข้อผิดพลาด HTTP</translation>
+<translation id="1680841347983561661">โปรดรอสักครู่แล้วลองเริ่มต้น Google Play อีกครั้ง</translation>
 <translation id="1680849702532889074">เกิดข้อผิดพลาดระหว่างการติดตั้งแอปพลิเคชัน Linux</translation>
 <translation id="16815041330799488">ไม่อนุญาตให้เว็บไซต์ดูข้อความและรูปภาพที่คัดลอกไปยังคลิปบอร์ด</translation>
 <translation id="1682548588986054654">หน้าต่างใหม่ที่ไม่ระบุตัวตน</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> ขัดข้อง คลิกที่บอลลูนเพื่อโหลดส่วนขยายอีกครั้ง</translation>
 <translation id="2025891858974379949">เนื้อหาที่ไม่ปลอดภัย</translation>
 <translation id="202918510990975568">ป้อนรหัสผ่านเพื่อกำหนดค่าความปลอดภัยและการลงชื่อเข้าใช้</translation>
+<translation id="2030672406208960151">เปิดเทอร์มินัลการกู้คืน</translation>
 <translation id="2034346955588403444">เพิ่มเครือข่าย Wi-Fi อื่นๆ</translation>
 <translation id="203574396658008164">เปิดใช้การจดบันทึกจากหน้าจอล็อก</translation>
 <translation id="2037445849770872822">มีการตั้งค่าการควบคุมดูแลสำหรับบัญชี Google นี้ หากต้องการตั้งค่าการควบคุมโดยผู้ปกครองเพิ่มเติม ให้เลือก "ต่อไป"
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">PIN หรือรหัสผ่าน</translation>
 <translation id="2224444042887712269">การตั้งค่านี้เป็นของ <ph name="OWNER_EMAIL" /></translation>
 <translation id="2224551243087462610">แก้ไขชื่อโฟลเดอร์</translation>
+<translation id="2225864335125757863">เปลี่ยนรหัสผ่านเหล่านี้ทันทีเพื่อรักษาความปลอดภัยของบัญชี</translation>
 <translation id="2226449515541314767">ไซต์นี้ถูกบล็อกจากการมีสิทธิ์ควบคุมอุปกรณ์ MIDI เต็มรูปแบบ</translation>
 <translation id="222704500187107962">ระบบจะนำข้อยกเว้นนี้ออกโดยอัตโนมัติหลังคุณออกจากเซสชันที่ไม่ระบุตัวตนในปัจจุบัน</translation>
 <translation id="2227179592712503583">นำคำแนะนำออก</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">ไปที่หน้าจอหลัก</translation>
 <translation id="2387458720915042159">ประเภทการเชื่อมต่อพร็อกซี</translation>
 <translation id="2391419135980381625">แบบอักษรมาตรฐาน</translation>
+<translation id="2392163307141705938">คุณใช้งาน <ph name="IDS_SHORT_PRODUCT_NAME" /> ถึงขีดจำกัดเวลาที่ผู้ปกครองตั้งไว้แล้ว</translation>
 <translation id="2392369802118427583">เปิดใช้งาน</translation>
 <translation id="2394566832561516196">การตั้งค่าจะถูกล้างในการโหลดซ้ำครั้งถัดไป</translation>
 <translation id="2395616325548404795">ลงทะเบียน <ph name="DEVICE_TYPE" /> ของคุณสำหรับการจัดการองค์กรเรียบร้อยแล้ว แต่ไม่สามารถส่งเนื้อหาและข้อมูลตำแหน่งของอุปกรณ์ โปรดป้อนข้อมูลนี้ด้วยตนเองจากคอนโซลผู้ดูแลระบบสำหรับอุปกรณ์นี้</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">แชร์เสียง</translation>
 <translation id="2480868415629598489">แก้ไขข้อมูลที่คุณคัดลอกและวาง</translation>
 <translation id="2482878487686419369">การแจ้งเตือน</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> จะยังแก้ไข <ph name="FILENAME" /> ได้อยู่จนกว่าคุณจะปิดแท็บ <ph name="ORIGIN" /> ทั้งหมด</translation>
 <translation id="2484959914739448251"><ph name="BEGIN_LINK" />ป้อนรหัสผ่าน<ph name="END_LINK" />เพื่อล้างข้อมูลการท่องเว็บในอุปกรณ์ทุกเครื่องที่ซิงค์และบัญชี Google</translation>
 <translation id="2485005079599453134">รหัสผ่านที่บันทึกในอุปกรณ์นี้</translation>
 <translation id="2485422356828889247">ถอนการติดตั้ง</translation>
@@ -1299,6 +1307,7 @@
 <translation id="274290345632688601">กำลังคืนค่าแอปและไฟล์ Linux</translation>
 <translation id="2743387203779672305">คัดลอกไว้ที่คลิปบอร์ด</translation>
 <translation id="2745080116229976798">ตัวย่อยที่เหมาะสมของ Microsoft</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> หยุดชั่วคราว</translation>
 <translation id="2749756011735116528">ลงชื่อเข้าใช้ <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">ตรวจสอบไวยากรณ์และตัวสะกด</translation>
 <translation id="2751739896257479635">การตรวจสอบสิทธิ์ขั้นที่ 2 ของ EAP</translation>
@@ -1307,6 +1316,7 @@
 <translation id="275662540872599901">ปิดหน้าจอ</translation>
 <translation id="2762441749940182211">บล็อกกล้องถ่ายรูป</translation>
 <translation id="2765217105034171413">ขนาดเล็ก</translation>
+<translation id="2766161002040448006">ถามผู้ปกครอง</translation>
 <translation id="276969039800130567">ลงชื่อเข้าใช้โดยใช้ <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="2770465223704140727">ลบจากรายการ</translation>
 <translation id="2770690685823456775">ส่งออกรหัสผ่านไปยังโฟลเดอร์อื่น</translation>
@@ -1558,6 +1568,7 @@
 <translation id="3115580024857770654">ยุบทั้งหมด</translation>
 <translation id="3117362587799608430">แท่นชาร์จไม่ค่อยเข้ากัน</translation>
 <translation id="3118319026408854581">ความช่วยเหลือของ <ph name="PRODUCT_NAME" /></translation>
+<translation id="3118654181216384296">โปรดรอสักครู่แล้วลองเริ่มต้น Linux อีกครั้ง</translation>
 <translation id="3120430004221004537">การเข้ารหัสสำหรับการดำเนินการที่ระบุไม่เพียงพอใน "<ph name="DEVICE_NAME" />"</translation>
 <translation id="3121793941267913344">รีเซ็ตอุปกรณ์ <ph name="IDS_SHORT_PRODUCT_NAME" /></translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1567,6 +1578,7 @@
 <translation id="3127156390846601284">การดำเนินการนี้จะลบข้อมูลของเว็บไซต์ทั้งหมดที่แสดงซึ่งเก็บไว้ในอุปกรณ์ คุณต้องการดำเนินการต่อไหม</translation>
 <translation id="3127860049873093642">โปรดใช้อะแดปเตอร์ Dell หรือ USB Type-C เพื่อหลีกเลี่ยงปัญหาด้านการชาร์จและประสิทธิภาพ</translation>
 <translation id="3129173833825111527">ขอบซ้าย</translation>
+<translation id="3129215702932019810">เกิดข้อผิดพลาดในการเปิดแอปพลิเคชัน</translation>
 <translation id="3130528281680948470">ระบบจะรีเซ็ตอุปกรณ์ของคุณ บัญชีผู้ใช้ทั้งหมดและข้อมูลในเครื่องจะถูกนำออก ซึ่งขั้นตอนนี้ไม่สามารถยกเลิกได้</translation>
 <translation id="313205617302240621">ลืมรหัสผ่าน</translation>
 <translation id="3132996321662585180">รีเฟรชทุกวัน</translation>
@@ -1782,6 +1794,7 @@
 <translation id="3441653493275994384">หน้าจอ</translation>
 <translation id="3445925074670675829">อุปกรณ์ USB-C</translation>
 <translation id="344630545793878684">อ่านข้อมูลบนเว็บไซต์จำนวนมาก</translation>
+<translation id="3448086340637592206">ข้อกำหนดเพิ่มเติมของ Google Chrome และ Chrome OS</translation>
 <translation id="3448492834076427715">อัปเดตบัญชี</translation>
 <translation id="3449839693241009168">กด <ph name="SEARCH_KEY" /> เพื่อส่งคำสั่งไปที่ <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">เปอร์เซ็นต์การเกิดขึ้นของสถานะไม่มีการใช้งาน</translation>
@@ -2129,6 +2142,7 @@
 <translation id="3873423927483480833">แสดง PIN</translation>
 <translation id="3873915545594852654">เกิดปัญหาเกี่ยวกับ ARC++</translation>
 <translation id="3879748587602334249">Download Manager</translation>
+<translation id="3881321138433527084">Google Safe Browsing ปิดอยู่ โปรดเปิดใช้เพื่อให้ใช้อินเทอร์เน็ตได้อย่างปลอดภัย</translation>
 <translation id="3882165008614329320">วิดีโอที่มีอยู่จากกล้องหรือไฟล์</translation>
 <translation id="3886446263141354045">ระบบส่งคำขอเข้าถึงเว็บไซต์นี้ของคุณให้ <ph name="NAME" /> แล้ว</translation>
 <translation id="3888550877729210209">จดโน้ตด้วย <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2470,6 +2484,7 @@
 <translation id="4384652540891215547">เปิดใช้งานส่วนขยาย</translation>
 <translation id="438503109373656455">ซาราโทกะ</translation>
 <translation id="4387004326333427325">ใบรับรองการตรวจสอบสิทธิ์ได้รับการปฏิเสธจากระยะไกล</translation>
+<translation id="4387890294700445764">รหัสผ่านที่ไม่รัดกุม</translation>
 <translation id="4389091756366370506">ผู้ใช้ <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{ไม่ระบุตัวตน}other{หน้าต่างที่ไม่ระบุตัวตนเปิดอยู่ # หน้า}}</translation>
 <translation id="439266289085815679">การกำหนดค่าบลูทูธควบคุมโดย <ph name="USER_EMAIL" /></translation>
@@ -2501,6 +2516,7 @@
 <translation id="4429030830601238961">ข้อมูลนี้ละเมิดนโยบายความปลอดภัยขององค์กรและจะวางไม่ได้</translation>
 <translation id="4430019312045809116">ระดับเสียง</translation>
 <translation id="4430369329743628066">เพิ่มบุ๊กมาร์กแล้ว</translation>
+<translation id="4432621511648257259">รหัสผ่านไม่ถูกต้อง</translation>
 <translation id="4434045419905280838">ป๊อปอัปและการเปลี่ยนเส้นทาง</translation>
 <translation id="443454694385851356">แบบเดิม (ไม่ปลอดภัย)</translation>
 <translation id="443475966875174318">อัปเดตหรือนำแอปพลิเคชันที่ใช้ร่วมกันไม่ได้ออก</translation>
@@ -2750,6 +2766,7 @@
 <translation id="4808667324955055115">บล็อกป๊อปอัปอยู่:</translation>
 <translation id="480990236307250886">เปิดหน้าแรก</translation>
 <translation id="4811503964269049987">จัดกลุ่มแท็บที่เลือก</translation>
+<translation id="4811818760963189951">ปิดเพราะคุณปิดการซิงค์ประวัติการเข้าชมไว้</translation>
 <translation id="4813136279048157860">รูปภาพของฉัน</translation>
 <translation id="4813512666221746211">ข้อผิดพลาดของเครือข่าย</translation>
 <translation id="4814378367953456825">ป้อนชื่อให้ลายนิ้วมือนี้</translation>
@@ -2779,6 +2796,7 @@
 <translation id="4850669014075537160">การเลื่อน</translation>
 <translation id="4850886885716139402">มุมมอง</translation>
 <translation id="4853020600495124913">เปิดใน&amp;หน้าต่างใหม่</translation>
+<translation id="4854317507773910281">เลือกบัญชีผู้ปกครองที่จะเป็นผู้อนุมัติ</translation>
 <translation id="485480310608090163">การตั้งค่าและสิทธิ์อื่นๆ</translation>
 <translation id="4856478137399998590">บริการดาต้าบนมือถือของคุณเปิดใช้งานและพร้อมทำงานแล้ว</translation>
 <translation id="4856855265648545577">แสดง Launcher, ปุ่มย้อนกลับ และปุ่มภาพรวมในชั้นวางในโหมดแท็บเล็ต เปิดเมื่อมีการเปิดใช้ ChromeVox (อธิบายและอ่านออกเสียง) หรือการเข้าถึงด้วยสวิตช์</translation>
@@ -2915,10 +2933,12 @@
 <translation id="5040823038948176460">การตั้งค่าเนื้อหาเพิ่มเติม</translation>
 <translation id="5042282098504489593">เปิดการตั้งค่าเพื่อเชื่อมต่อ <ph name="USB_DEVICE_NAME" /> กับ Linux</translation>
 <translation id="5043913660911154449">หรือระบุ PPD ของเครื่องพิมพ์ <ph name="LINK_BEGIN" />ดูข้อมูลเพิ่มเติม<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">ปิดเพราะคุณเข้ารหัสข้อมูลที่ซิงค์ด้วยรหัสผ่าน</translation>
 <translation id="5045550434625856497">รหัสผ่านไม่ถูกต้อง</translation>
 <translation id="504561833207953641">กำลังเปิดในเซสชันเบราว์เซอร์ที่มีอยู่</translation>
 <translation id="5047421709274785093">บล็อกเว็บไซต์ไม่ให้ใช้เซ็นเซอร์จับความเคลื่อนไหวและเซ็นเซอร์แสง</translation>
 <translation id="5050042263972837708">ชื่อกลุ่ม</translation>
+<translation id="5051073330196664891">ข้อกำหนดในการให้บริการสากล (uToS) ของ Google</translation>
 <translation id="5051836348807686060">การตรวจตัวสะกดไม่รองรับภาษาที่คุณเลือก</translation>
 <translation id="5052499409147950210">แก้ไขเว็บไซต์</translation>
 <translation id="5053604404986157245">รหัสผ่าน TPM ที่สร้างแบบสุ่มไม่พร้อมใช้งาน เหตุการณ์นี้เป็นเรื่องปกติหลังจากการ Powerwash</translation>
@@ -2956,6 +2976,7 @@
 <translation id="5097002363526479830">ไม่สามารถเชื่อมต่อเครือข่าย "<ph name="NAME" />": <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">เปิดบุ๊กมาร์กทั้งหมด</translation>
 <translation id="5101839224773798795">คลิกอัตโนมัติเมื่อเคอร์เซอร์หยุด</translation>
+<translation id="5107443654503185812">ส่วนขยายหนึ่งได้ปิด Google Safe Browsing ไป</translation>
 <translation id="5108967062857032718">การตั้งค่า - นำแอป Android ออก</translation>
 <translation id="5109044022078737958">มีอา</translation>
 <translation id="5111646998522066203">ออกจากโหมดไม่ระบุตัวตน</translation>
@@ -3042,6 +3063,7 @@
 <translation id="523505283826916779">การตั้งค่าสำหรับการเข้าถึง</translation>
 <translation id="5235750401727657667">แทนที่หน้าที่คุณจะเห็นเมื่อเปิดแท็บใหม่</translation>
 <translation id="5238278114306905396">แอปพลิเคชัน "<ph name="EXTENSION_NAME" />" ถูกลบโดยอัตโนมัติ</translation>
+<translation id="5239730228370806996">ข้อมูลที่ลากมาวางนี้ละเมิดนโยบายความปลอดภัยขององค์กร คุณแน่ใจไหมว่าต้องการดำเนินการต่อ</translation>
 <translation id="5241128660650683457">อ่านข้อมูลทั้งหมดของคุณบนเว็บไซต์ที่คุณเข้าชม</translation>
 <translation id="5242724311594467048">เปิดใช้งาน "<ph name="EXTENSION_NAME" />" ไหม</translation>
 <translation id="5243522832766285132">โปรดลองอีกครั้งในอีกสักครู่</translation>
@@ -3329,6 +3351,7 @@
 <translation id="5618075537869101857">แย่จริง ไม่สามารถเรียกใช้แอปพลิเคชันคีออสก์ได้</translation>
 <translation id="5618333180342767515">(การดำเนินการนี้อาจใช้เวลาสองถึงสามนาที)</translation>
 <translation id="56197088284879152">การเชื่อมต่อไปยังอุปกรณ์ระยะไกลนี้มีความคับคั่ง: "<ph name="DEVICE_NAME" />"</translation>
+<translation id="5620163320393916465">ไม่มีรหัสผ่านที่บันทึกไว้</translation>
 <translation id="5620549857835247159">แสดง Launcher, ปุ่มย้อนกลับ และปุ่มภาพรวมในชั้นวางในโหมดแท็บเล็ต</translation>
 <translation id="5620568081365989559">DevTools ขอเข้าถึง <ph name="FOLDER_PATH" /> แบบเต็มรูปแบบ โปรดตรวจสอบว่าคุณไม่ได้เปิดเผยข้อมูลที่ละเอียดอ่อนใดๆ</translation>
 <translation id="5620612546311710611">สถิติการใช้งาน</translation>
@@ -3422,6 +3445,7 @@
 <translation id="5747785204778348146">นักพัฒนาซอฟต์แวร์ - ไม่เสถียร</translation>
 <translation id="5747809636523347288">ว&amp;างและไปที่ <ph name="URL" /></translation>
 <translation id="5750324801516359607">ไกล</translation>
+<translation id="5751887393582880060">การอัปโหลดนี้ละเมิดนโยบายความปลอดภัยขององค์กร คุณแน่ใจไหมว่าต้องการดำเนินการต่อ</translation>
 <translation id="5756163054456765343">ศู&amp;นย์ช่วยเหลือ</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> สามารถอ่านเอกสารที่คุณส่งไปพิมพ์ผ่าน <ph name="APP_NAME" /> ได้</translation>
 <translation id="5763751966069581670">ไม่พบอุปกรณ์ USB</translation>
@@ -3631,6 +3655,7 @@
 <translation id="6040852767465482106">ข้อมูลประจำตัวที่ไม่ระบุตัวตน</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />บริการตำแหน่งของ Google ใช้แหล่งที่มาต่างๆ เช่น Wi‑Fi, เครือข่ายมือถือ และเซ็นเซอร์เพื่อช่วยคาดคะเนตำแหน่งอุปกรณ์ของคุณ<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />คุณปิดตำแหน่งได้ด้วยการปิดการตั้งค่าตำแหน่งหลักในอุปกรณ์ และปิดการใช้ Wi‑Fi, เครือข่ายมือถือ และเซ็นเซอร์สำหรับการบอกตำแหน่งในการตั้งค่าตำแหน่งได้ด้วย<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> จะยังดูไฟล์ใน <ph name="FOLDERNAME" /> ได้อยู่จนกว่าคุณจะปิดแท็บ <ph name="ORIGIN" /> ทั้งหมด</translation>
 <translation id="6041155700700864984">ออกจากโหมดเต็มหน้าจอ</translation>
 <translation id="604124094241169006">อัตโนมัติ</translation>
 <translation id="6042308850641462728">เพิ่มเติม</translation>
@@ -3692,6 +3717,7 @@
 <translation id="6104311680260824317">นำอุปกรณ์เข้าร่วมโดเมนไม่ได้ เซิร์ฟเวอร์ไม่รองรับประเภทการเข้ารหัส Kerberos ที่ระบุ ดูการตั้งค่าการเข้ารหัสได้จาก "ตัวเลือกเพิ่มเติม"</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> กำหนดให้อัปเดตอุปกรณ์นี้ทันที</translation>
 <translation id="6106186653986077033">Plugin VM ต้องมีใบอนุญาต</translation>
+<translation id="6107047744202598802">อนุญาตให้เว็บไซต์จดจำการเข้าชมและติดตามคุณในอินเทอร์เน็ต</translation>
 <translation id="6112294629795967147">แตะเพื่อปรับขนาด</translation>
 <translation id="6112727384379533756">เพิ่มตั๋ว</translation>
 <translation id="6112931163620622315">ตรวจสอบโทรศัพท์</translation>
@@ -3770,6 +3796,7 @@
 <translation id="622537739776246443">ระบบจะลบโปรไฟล์ออก</translation>
 <translation id="6225475702458870625">มีการเชื่อมต่อข้อมูลพร้อมใช้งานจาก <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">ไฟล์คีย์ส่วนตัว (ไม่บังคับ)</translation>
+<translation id="6227280783235722609">ส่วนขยาย</translation>
 <translation id="6228691855869374890">ไซต์นี้มีการควบคุมอุปกรณ์ MIDI เต็มรูปแบบ</translation>
 <translation id="6228720835160974792">สร้างคิวอาร์โค้ดสำหรับรูปภาพนี้</translation>
 <translation id="6229890768313448549">ไม่สามารถโหลดข้อกำหนดในการให้บริการของ Google Play โปรดลองอีกครั้ง</translation>
@@ -3821,6 +3848,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> ไม่ได้ถูกดาวน์โหลดตามปกติและอาจเป็นอันตราย</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{เครื่องพิมพ์ใหม่บนเครือข่ายของคุณ}other{เครื่องพิมพ์ใหม่บนเครือข่ายของคุณ}}</translation>
 <translation id="6286708577777130801">รายละเอียดรหัสผ่านที่บันทึกไว้</translation>
+<translation id="6291163159361301370">ในการเริ่มต้น Linux <ph name="ORGANIZATION_NAME" /> จะขอให้คุณสำรองข้อมูลและรีเซ็ต Chromebook เป็นการตั้งค่าเริ่มต้น</translation>
 <translation id="6291949900244949761">ถามเมื่อเว็บไซต์ต้องการเข้าถึงอุปกรณ์ USB (แนะนำ)</translation>
 <translation id="6291953229176937411">&amp;แสดงใน Finder</translation>
 <translation id="6295158916970320988">เว็บไซต์ทั้งหมด</translation>
@@ -4017,6 +4045,7 @@
 <translation id="6561726789132298588">ป้อน</translation>
 <translation id="656293578423618167">เส้นทางหรือชื่อของไฟล์ยาวเกินไป โปรดบันทึกด้วยชื่อที่สั้นกว่านี้หรือบันทึกลงในตำแหน่งอื่น</translation>
 <translation id="6563469144985748109">ผู้จัดการยังไม่ได้อนุมัติเว็บไซต์นี้</translation>
+<translation id="6565955132287672866">อุปกรณ์ของคุณไม่ได้ปิดอย่างถูกต้อง หากต้องการใช้ Linux (เบต้า) จะต้องรีสตาร์ทก่อน</translation>
 <translation id="6567688344210276845">ไม่สามารถโหลดไอคอน "<ph name="ICON" />" เพื่อให้เกิดการทำงานบนหน้าเว็บ</translation>
 <translation id="6569934958368283244">บุคคลอื่น</translation>
 <translation id="657402800789773160">&amp;โหลดหน้านี้ใหม่</translation>
@@ -4514,6 +4543,7 @@
 <translation id="7258225044283673131">แอปพลิเคชันไม่ตอบสนอง เลือก "บังคับปิด" เพื่อปิดแอป</translation>
 <translation id="7258697411818564379">เพิ่ม PIN ของคุณแล้ว</translation>
 <translation id="7262004276116528033">บริการลงชื่อเข้าใช้นี้โฮสต์โดย <ph name="SAML_DOMAIN" /></translation>
+<translation id="7266898409676782635">รับเคล็ดลับการใช้งาน ข้อเสนอ และข้อมูลอัปเดต รวมถึงแชร์ความคิดเห็นสำหรับ <ph name="DEVICE_TYPE" /> ยกเลิกการรับข่าวสารได้ทุกเมื่อ</translation>
 <translation id="7268127947535186412">เจ้าของอุปกรณ์เป็นผู้จัดการการตั้งค่านี้</translation>
 <translation id="7270858098575133036">ถามเมื่อเว็บไซต์ต้องการใช้ข้อความเฉพาะของระบบในการเข้าถึงอุปกรณ์ MIDI</translation>
 <translation id="7272674038937250585">ไม่มีคำอธิบาย</translation>
@@ -4587,6 +4617,7 @@
 <translation id="7364796246159120393">เลือกไฟล์</translation>
 <translation id="7366415735885268578">เพิ่มเว็บไซต์</translation>
 <translation id="7366909168761621528">ข้อมูลการท่องเว็บ</translation>
+<translation id="7367714965999718019">เครื่องมือสร้างคิวอาร์โค้ด</translation>
 <translation id="736877393389250337">เปิด <ph name="URL" /> ใน <ph name="ALTERNATIVE_BROWSER_NAME" /> ไม่ได้ โปรดติดต่อผู้ดูแลระบบ</translation>
 <translation id="7370592524170198497">อีเทอร์เน็ต EAP:</translation>
 <translation id="7371006317849674875">เวลาเริ่มต้น</translation>
@@ -4844,8 +4875,10 @@
 <translation id="7737238973539693982">ลบ Linux (เบต้า)</translation>
 <translation id="7740996059027112821">มาตรฐาน</translation>
 <translation id="7744047395460924128">ดูประวัติการพิมพ์</translation>
+<translation id="7744192722284567281">พบในการละเมิดข้อมูล</translation>
 <translation id="7746457520633464754">ในการตรวจหาแอปและเว็บไซต์ที่เป็นอันตราย Chrome จะส่ง URL ของหน้าบางหน้าที่คุณเข้าชม ข้อมูลระบบที่จำกัด และเนื้อหาบางส่วนของหน้าไปให้ Google</translation>
 <translation id="7750228210027921155">การแสดงภาพซ้อนภาพ</translation>
+<translation id="7751229152614300329">Google Safe Browsing เป็นเวอร์ชันล่าสุดและกำลังปกป้องคุณจากเว็บไซต์และการดาวน์โหลดที่เป็นอันตราย</translation>
 <translation id="7751260505918304024">แสดงทั้งหมด</translation>
 <translation id="7754704193130578113">สอบถามที่เก็บไฟล์ก่อนดาวน์โหลด</translation>
 <translation id="7755287808199759310">ผู้ปกครองสามารถเลิกบล็อกเว็บไซต์ให้คุณ</translation>
@@ -4993,6 +5026,7 @@
 <translation id="7910768399700579500">โ&amp;ฟลเดอร์ใหม่</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">มีการเปลี่ยนรหัสผ่านของคุณในเซิร์ฟเวอร์ โปรดออกจากระบบแล้วลงชื่อเข้าใช้อีกครั้ง</translation>
+<translation id="7914583336730284547">ไฟล์ที่ลากมาวางเหล่านี้ละเมิดนโยบายความปลอดภัยขององค์กร คุณแน่ใจไหมว่าต้องการดำเนินการต่อ</translation>
 <translation id="7915457674565721553">เชื่อมต่ออินเทอร์เน็ตเพื่อตั้งค่าการควบคุมโดยผู้ปกครอง</translation>
 <translation id="7915471803647590281">โปรดแจ้งให้เราทราบถึงสิ่งที่เกิดขึ้นก่อนส่งความคิดเห็น</translation>
 <translation id="7918257978052780342">ลงทะเบียน</translation>
@@ -5090,6 +5124,7 @@
 <translation id="8028803902702117856">กำลังดาวน์โหลด <ph name="SIZE" /> <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">ขนาด</translation>
 <translation id="8030656706657716245">เพิ่มเครื่องพิมพ์</translation>
+<translation id="8030852056903932865">อนุญาต</translation>
 <translation id="8032244173881942855">ไม่สามารถแคสต์แท็บ</translation>
 <translation id="8033827949643255796">เลือกแล้ว</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{เปิดทั้งหมดใน&amp;หน้าต่างที่ไม่ระบุตัวตน}=1{เปิดใน&amp;หน้าต่างที่ไม่ระบุตัวตน}other{เปิดทั้งหมด (#) ใน&amp;หน้าต่างที่ไม่ระบุตัวตน}}</translation>
@@ -5410,6 +5445,7 @@
 <translation id="8472623782143987204">การสนับสนุนฮาร์ดแวร์</translation>
 <translation id="8473863474539038330">ที่อยู่และอื่นๆ</translation>
 <translation id="8475313423285172237">โปรแกรมอื่นในคอมพิวเตอร์ของคุณเพิ่มส่วนขยายที่อาจเปลี่ยนวิธีการทำงานของ Chrome</translation>
+<translation id="8476659515398963495">ข้อมูลที่คัดลอกมาวางนี้ละเมิดนโยบายความปลอดภัยขององค์กร คุณแน่ใจไหมว่าต้องการดำเนินการต่อ</translation>
 <translation id="8477241577829954800">ถูกแทนที่</translation>
 <translation id="8477384620836102176">&amp;ทั่วไป</translation>
 <translation id="8480082892550707549">แม้ว่าคุณจะเคยดาวน์โหลดไฟล์จากเว็บไซต์นี้มาก่อน เว็บไซต์อาจไม่ปลอดภัยชั่วคราว (ถูกแฮ็ก) ลองดาวน์โหลดไฟล์นี้ในภายหลัง</translation>
@@ -5463,6 +5499,7 @@
 <translation id="8547013269961688403">เปิดใช้แว่นขยายทั้งหน้าจอ</translation>
 <translation id="85486688517848470">กดแป้น "ค้นหา" ค้างไว้เพื่อเปลี่ยนการทำงานของแป้นแถวบนสุด</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 รายการ}other{# รายการ}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> จะยังแก้ไขไฟล์ใน <ph name="FOLDERNAME" /> ได้อยู่จนกว่าคุณจะปิดแท็บ <ph name="ORIGIN" /> ทั้งหมด</translation>
 <translation id="8551388862522347954">ใบอนุญาต</translation>
 <translation id="8553342806078037065">จัดการบุคคลอื่นๆ</translation>
 <translation id="8554899698005018844">ไม่มีภาษา</translation>
@@ -5521,6 +5558,7 @@
 <translation id="8637688295594795546">มีอัปเดตระบบพร้อมใช้งาน กำลังเตรียมการดาวน์โหลด…</translation>
 <translation id="8639047128869322042">กำลังตรวจหาซอฟต์แวร์ที่เป็นอันตราย...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - พอร์ต</translation>
+<translation id="8641606876632989680">Chrome จะแจ้งให้คุณทราบเมื่อคุณลงชื่อเข้าใช้ด้วยรหัสผ่านที่ไม่รัดกุม</translation>
 <translation id="8642900771896232685">2 วินาที</translation>
 <translation id="8642947597466641025">ทำให้ข้อความใหญ่ขึ้น</translation>
 <translation id="8644655801811752511">รีเซ็ตคีย์ความปลอดภัยนี้ไม่ได้ ลองรีเซ็ตคีย์ทันทีหลังจากเสียบคีย์แล้ว</translation>
@@ -5570,6 +5608,7 @@
 <translation id="869884720829132584">เมนูของแอปพลิเคชัน</translation>
 <translation id="869891660844655955">วันหมดอายุ</translation>
 <translation id="8703346390800944767">ข้ามโฆษณา</translation>
+<translation id="870341961648617780">การตั้งค่า Google Safe Browsing และความปลอดภัยขั้นสูง</translation>
 <translation id="8705331520020532516">หมายเลขซีเรียล</translation>
 <translation id="8705580154597116082">มี Wi-Fi พร้อมให้บริการผ่านโทรศัพท์</translation>
 <translation id="8705629851992224300">อ่านคีย์ความปลอดภัยของคุณไม่ได้</translation>
@@ -5615,6 +5654,7 @@
 <translation id="874689135111202667">{0,plural, =1{อัปโหลด 1 ไฟล์ไปยังเว็บไซต์นี้ใช่ไหม}other{อัปโหลด # ไฟล์ไปยังเว็บไซต์นี้ใช่ไหม}}</translation>
 <translation id="8748384418490037181">ตัวเลือก Smart Lock</translation>
 <translation id="8749863574775030885">เข้าถึงอุปกรณ์ USB จากผู้ขายที่ไม่รู้จัก</translation>
+<translation id="8750133148106010815">ในการเริ่มต้น Google Play <ph name="ORGANIZATION_NAME" /> จะขอให้คุณสำรองข้อมูลและรีเซ็ต Chromebook เป็นการตั้งค่าเริ่มต้น</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ต้องการเชื่อมต่อกับพอร์ตอนุกรม</translation>
 <translation id="8754200782896249056">&lt;p&gt;เมื่อเรียกใช้ <ph name="PRODUCT_NAME" /> ภายใต้สภาพแวดล้อมของเดสก์ท็อปที่สนับสนุน จะมีการใช้การตั้งค่าพร็อกซีของระบบ  อย่างไรก็ตาม ระบบของคุณอาจไม่ได้รับการสนับสนุนหรือมีปัญหาในการเปิดการกำหนดค่าระบบ&lt;/p&gt;
 
@@ -5669,6 +5709,7 @@
 <translation id="8809147117840417135">สีน้ำเงินอมเขียวอ่อน</translation>
 <translation id="8813698869395535039">ไม่สามารถลงชื่อเข้าใช้ <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">หน้ากระดาษ</translation>
+<translation id="8813872945700551674">ต้องขอให้ผู้ปกครองอนุมัติ "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="8813969267212093033">ข้อความของระบบแสดงเป็นภาษานี้</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">โปรดรอสักครู่ ระบบกำลังสแกนที่เก็บถาวร...</translation>
@@ -5949,6 +5990,7 @@
 <translation id="9203398526606335860">&amp;เปิดใช้งานการทำแฟ้มประวัติ</translation>
 <translation id="9203904171912129171">เลือกอุปกรณ์</translation>
 <translation id="9203962528777363226">ผู้ดูแลระบบของอุปกรณ์นี้ปิดการใช้งานไม่ให้เพิ่มผู้ใช้ใหม่เข้าไป</translation>
+<translation id="9211177926627870898">ต้องอัปเดต</translation>
 <translation id="9214520840402538427">อ๊ะ! การเริ่มแอตทริบิวต์เวลาการติดตั้งได้หมดเวลาแล้ว โปรดติดต่อตัวแทนการสนับสนุึนของคุณ</translation>
 <translation id="9214695392875603905">คัปเค้ก</translation>
 <translation id="9215293857209265904">เพิ่ม "<ph name="EXTENSION_NAME" />" แล้ว</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 7b02eb9..309fbc7 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Ayrıca veriler bu uygulamalardan da temizlensin mi?</translation>
 <translation id="1045692658517323508">{0,plural, =1{1 dakika içinde güncelleyin}other{# dakika içinde güncelleyin}}</translation>
 <translation id="1046635659603195359">Google Asistan'la Voice Match'i başka bir cihazda zaten kurmuş olduğunuz anlaşılıyor. Önceki bu kayıtlar, bu cihazda bir ses modeli oluşturmak için kullanılabilir. Bu işlem, bir dakikadan az sürecektir.</translation>
+<translation id="104710386808485638">Linux yeniden başlatılsın mı?</translation>
 <translation id="1047431265488717055">&amp;Bağlantı Metnini Kopyala</translation>
 <translation id="1048286738600630630">Ekranlar</translation>
 <translation id="1049743911850919806">Gizli mod</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Lütfen istemci sertifikasını dışa aktarmak için <ph name="TOKEN_NAME" /> cihazında oturum açın.</translation>
 <translation id="1163931534039071049">&amp;Çerçeve kaynağını görüntüle</translation>
 <translation id="1164674268730883318"><ph name="DEVICE_TYPE" /> için Smart Lock kapatılsın mı?</translation>
+<translation id="1164891049599601209">Yanıltıcı bir sitede girildi</translation>
 <translation id="1164899421101904659">PIN Kilit Açma Anahtarını Girin</translation>
 <translation id="1165039591588034296">Hata</translation>
 <translation id="1166212789817575481">Sağdaki Sekmeleri Kapat</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">Otomatik Kiosk Modu</translation>
 <translation id="1545775234664667895">"<ph name="THEME_NAME" />" teması yüklendi</translation>
 <translation id="1546280085599573572">Bu uzantı, Ana Sayfa düğmesini tıkladığınızda gösterilecek sayfayı değiştirdi.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" />, aşağıdakileri yapabilecek bir <ph name="EXTENSION_TYPE" /> yüklemek istiyor:</translation>
 <translation id="1549275686094429035">ARC Etkinleştirildi</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" />, <ph name="VOLUME_NAME" /> birimine erişmek istiyor. Uygulama, dosyalarınızı değiştirebilir veya silebilir.</translation>
 <translation id="1553538517812678578">sınırsız</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">PluginVm</translation>
 <translation id="1679810534535368772">Çıkmak istediğinizden emin misiniz?</translation>
 <translation id="167983332380191032">Yönetim hizmeti HTTP hatası gönderdi.</translation>
+<translation id="1680841347983561661">Lütfen Google Play'i başlatmayı kısa bir süre sonra tekrar deneyin.</translation>
 <translation id="1680849702532889074">Linux uygulamanızın yüklenmesi sırasında bir hata oluştu.</translation>
 <translation id="16815041330799488">Sitelerin panoya kopyalanan metin ve resimleri görmesine izin verme</translation>
 <translation id="1682548588986054654">Yeni Gizli Pencere</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> kilitlendi. Uzantıyı yeniden yüklemek için bu balonu tıklayın.</translation>
 <translation id="2025891858974379949">Güvenli olmayan içerik</translation>
 <translation id="202918510990975568">Güvenliği ve oturum açma bilgilerini yapılandırmak için şifrenizi girin</translation>
+<translation id="2030672406208960151">Kurtarma Terminal'ini aç</translation>
 <translation id="2034346955588403444">Başka kablosuz ağ ekle</translation>
 <translation id="203574396658008164">Kilit ekranından not almayı etkinleştir</translation>
 <translation id="2037445849770872822">Bu Google Hesabı için denetim kuruldu. Diğer ebeveyn denetimlerini kurmak için Devam'ı seçin.
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">PIN veya şifre</translation>
 <translation id="2224444042887712269">Bu ayar <ph name="OWNER_EMAIL" /> kullanıcısına aittir.</translation>
 <translation id="2224551243087462610">Klasör adını düzenle</translation>
+<translation id="2225864335125757863">Hesabınızı güvende tutmak için şu şifreleri hemen değiştirin:</translation>
 <translation id="2226449515541314767">Bu sitenin MIDI cihazları üzerinde tam denetime sahip olması engellendi.</translation>
 <translation id="222704500187107962">Bu istisna, mevcut Gizli oturumdan çıktığınızda otomatik olarak kaldırılacak</translation>
 <translation id="2227179592712503583">Öneriyi kaldır</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">Ana sayfaya git</translation>
 <translation id="2387458720915042159">Proxy bağlantısı türü</translation>
 <translation id="2391419135980381625">Standart yazı tipi</translation>
+<translation id="2392163307141705938">Ebeveyninizin <ph name="IDS_SHORT_PRODUCT_NAME" /> için belirlediği süre sınırına ulaştınız.</translation>
 <translation id="2392369802118427583">Etkinleştir</translation>
 <translation id="2394566832561516196">Ayarlar, sonraki yeniden yüklemede silinecektir.</translation>
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> cihazınız kurumsal yönetim için başarıyla kaydettirildi, ancak öğe ve konum bilgilerini gönderemedi. Lütfen bu cihaza ilişkin bu bilgileri Yönetici konsolunuzdan manuel olarak girin.</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">Sesi paylaş</translation>
 <translation id="2480868415629598489">Kopyaladığınız ve yapıştırdığınız verileri değiştirme</translation>
 <translation id="2482878487686419369">Bildirimler</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> sitesi, siz tüm <ph name="ORIGIN" /> sekmelerini kapatana kadar <ph name="FILENAME" /> dosyasını düzenleyebilecek</translation>
 <translation id="2484959914739448251">Tarama verilerini senkronize edilmiş tüm cihazlarınızdan ve Google Hesabınızdan temizlemek için <ph name="BEGIN_LINK" />parolanızı girin<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Şifre bu cihaza kaydedildi</translation>
 <translation id="2485422356828889247">Yüklemeyi Kaldır</translation>
@@ -1299,6 +1307,7 @@
 <translation id="274290345632688601">Linux uygulamaları ve dosyaları geri yükleniyor</translation>
 <translation id="2743387203779672305">Panoya kopyala</translation>
 <translation id="2745080116229976798">Microsoft Nitelikli Yardımlaşma</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> duraklatıldı</translation>
 <translation id="2749756011735116528"><ph name="PRODUCT_NAME" /> uygulamasında oturum aç...</translation>
 <translation id="2749881179542288782">Dilbilgisini Yazım ile Denetle</translation>
 <translation id="2751739896257479635">EAP Aşama 2 kimlik doğrulaması</translation>
@@ -1307,6 +1316,7 @@
 <translation id="275662540872599901">ekran kapalı</translation>
 <translation id="2762441749940182211">Kamera engellendi</translation>
 <translation id="2765217105034171413">Küçük</translation>
+<translation id="2766161002040448006">Ebeveyninize sorun</translation>
 <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" /> olarak oturum açıldı.</translation>
 <translation id="2770465223704140727">Listeden kaldır</translation>
 <translation id="2770690685823456775">Şifrelerinizi başka bir klasöre dışa aktarın</translation>
@@ -1558,6 +1568,7 @@
 <translation id="3115580024857770654">Tümünü daralt</translation>
 <translation id="3117362587799608430">Yuva tam uyumlu değil</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> Yardım</translation>
+<translation id="3118654181216384296">Lütfen Linux'u başlatmayı kısa bir süre sonra tekrar deneyin.</translation>
 <translation id="3120430004221004537">Şu cihazda belirli bir işlem için yetersiz şifreleme: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">Bu <ph name="IDS_SHORT_PRODUCT_NAME" /> cihazını sıfırla</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1567,6 +1578,7 @@
 <translation id="3127156390846601284">Bu işlem, gösterilen tüm sitelerin cihazınıza kaydettiği tüm verileri silecek. Devam etmek istiyor musunuz?</translation>
 <translation id="3127860049873093642">Şarj ve performans sorunlarını önlemek için uyumlu bir Dell veya USB Type-C güç adaptörü kullanın.</translation>
 <translation id="3129173833825111527">Sol kenar boşluğu</translation>
+<translation id="3129215702932019810">Uygulama başlatılırken hata oluştu</translation>
 <translation id="3130528281680948470">Cihazınız sıfırlanacak ve tüm kullanıcı hesapları ile yerel veriler silinecek. Bu işlem geri alınamaz.</translation>
 <translation id="313205617302240621">Şifrenizi mi unuttunuz?</translation>
 <translation id="3132996321662585180">Günlük olarak yenile</translation>
@@ -1782,6 +1794,7 @@
 <translation id="3441653493275994384">Ekran</translation>
 <translation id="3445925074670675829">USB-C cihaz</translation>
 <translation id="344630545793878684">Birden fazla web sitesindeki verilerinize erişme</translation>
+<translation id="3448086340637592206">Google Chrome ve Chrome OS Ek Şartları</translation>
 <translation id="3448492834076427715">Hesabı güncelle</translation>
 <translation id="3449839693241009168">Komutları <ph name="EXTENSION_NAME" /> uygulamasına göndermek için <ph name="SEARCH_KEY" /> tuşuna basın</translation>
 <translation id="3450157232394774192">Boşta Kalma Durumu Kullanma Yüzdesi</translation>
@@ -2129,6 +2142,7 @@
 <translation id="3873423927483480833">PIN numaralarını göster</translation>
 <translation id="3873915545594852654">ARC++ ile ilgili bir sorun oluştu.</translation>
 <translation id="3879748587602334249">İndirme yöneticisi</translation>
+<translation id="3881321138433527084">Güvenli Tarama kapalı. Web'de güvende olmak için açın.</translation>
 <translation id="3882165008614329320">Kameradan veya dosyadan mevcut video</translation>
 <translation id="3886446263141354045">Bu siteye erişim isteğiniz şu kişiye gönderildi: <ph name="NAME" /></translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ile not alınıyor</translation>
@@ -2470,6 +2484,7 @@
 <translation id="4384652540891215547">Uzantıyı etkinleştir</translation>
 <translation id="438503109373656455">Şimşek</translation>
 <translation id="4387004326333427325">Kimlik doğrulama sertifikası uzaktan reddedildi</translation>
+<translation id="4387890294700445764">Güvenliği ihlal edilmiş şifreler</translation>
 <translation id="4389091756366370506">Kullanıcı <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Gizli mod}other{Açık # gizli pencere}}</translation>
 <translation id="439266289085815679">Bluetooth yapılandırması <ph name="USER_EMAIL" /> tarafından kontrol ediliyor.</translation>
@@ -2501,6 +2516,7 @@
 <translation id="4429030830601238961">Bu veriler kuruluşunuzun güvenlik politikalarını ihlal ettiğinden yapıştırılamıyor.</translation>
 <translation id="4430019312045809116">Ses</translation>
 <translation id="4430369329743628066">Yer işareti eklendi</translation>
+<translation id="4432621511648257259">Şifre yanlış</translation>
 <translation id="4434045419905280838">Pop-up'lar ve yönlendirmeler</translation>
 <translation id="443454694385851356">Eski (güvenli değil)</translation>
 <translation id="443475966875174318">Uyumsuz uygulamaları güncelleyin veya kaldırın</translation>
@@ -2750,6 +2766,7 @@
 <translation id="4808667324955055115">Engellenen pop-up'lar:</translation>
 <translation id="480990236307250886">Ana sayfayı aç</translation>
 <translation id="4811503964269049987">Seçilen Sekmeleri Grupla</translation>
+<translation id="4811818760963189951">Geçmiş senkronizasyonunu devre dışı bıraktığınızdan kapatıldı</translation>
 <translation id="4813136279048157860">Görsellerim</translation>
 <translation id="4813512666221746211">Ağ hatası</translation>
 <translation id="4814378367953456825">Bu parmak izi için bir ad girin</translation>
@@ -2779,6 +2796,7 @@
 <translation id="4850669014075537160">Kaydırma</translation>
 <translation id="4850886885716139402">Görüntüle</translation>
 <translation id="4853020600495124913">&amp;Yeni pencerede aç</translation>
+<translation id="4854317507773910281">Onay için ebeveyn hesabı seçin</translation>
 <translation id="485480310608090163">Diğer ayarlar ve izinler</translation>
 <translation id="4856478137399998590">Mobil veri hizmetiniz etkinleştirildi ve kullanıma hazır</translation>
 <translation id="4856855265648545577">Raftaki Başlatıcı, Geri, Genel Bakış düğmelerini tablet modunda gösterir. ChromeVox (sözlü geri bildirim) veya Anahtar Erişimi etkinleştirildiğinde açılır.</translation>
@@ -2915,10 +2933,12 @@
 <translation id="5040823038948176460">Ek içerik ayarları</translation>
 <translation id="5042282098504489593"><ph name="USB_DEVICE_NAME" /> cihazını Linux'a bağlamak için Ayarlar'ı açın</translation>
 <translation id="5043913660911154449">İsterseniz yazıcınızın PPD'sini de belirtebilirsiniz <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Senkronizasyon verilerinizi bir parola ile şifrelediğinizden kapatıldı</translation>
 <translation id="5045550434625856497">Hatalı parola</translation>
 <translation id="504561833207953641">Mevcut tarayıcı oturumunda açılıyor.</translation>
 <translation id="5047421709274785093">Sitelerin hareket ve ışık sensörlerini kullanmasını engelle</translation>
 <translation id="5050042263972837708">Grup adı</translation>
+<translation id="5051073330196664891">Google evrensel Hizmet Şartları (uToS)</translation>
 <translation id="5051836348807686060">Yazım denetimi, seçtiğiniz diller için desteklenmiyor</translation>
 <translation id="5052499409147950210">Siteyi düzenle</translation>
 <translation id="5053604404986157245">Rastgele oluşturulmuş TPM şifresi kullanılamıyor. Powerwash sonrasında bu normaldir.</translation>
@@ -2956,6 +2976,7 @@
 <translation id="5097002363526479830">'<ph name="NAME" />' ağına bağlanamadı: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Tüm yer işaretlerini aç</translation>
 <translation id="5101839224773798795">İmleç durduğunda otomatik olarak tıkla</translation>
+<translation id="5107443654503185812">Bir uzantı Güvenli Tarama'yı kapattı</translation>
 <translation id="5108967062857032718">Ayarlar - Android uygulamalarını kaldır</translation>
 <translation id="5109044022078737958">Maya</translation>
 <translation id="5111646998522066203">Gizli moddan çık</translation>
@@ -3042,6 +3063,7 @@
 <translation id="523505283826916779">Erişilebilirlik ayarları</translation>
 <translation id="5235750401727657667">Yeni bir sekme açarken gördüğünüz sayfayı değiştirme</translation>
 <translation id="5238278114306905396">"<ph name="EXTENSION_NAME" />" uygulaması otomatik olarak kaldırıldı.</translation>
+<translation id="5239730228370806996">Sürükleyip bırakılan bu veriler kuruluşunuzun güvenlik politikalarını ihlal ediyor. Yine de devam etmek istiyor musunuz?</translation>
 <translation id="5241128660650683457">Ziyaret ettiğiniz web sitelerindeki tüm verilerinizi okuma</translation>
 <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" etkinleştirilsin mi?</translation>
 <translation id="5243522832766285132">Lütfen kısa bir süre sonra tekrar deneyin</translation>
@@ -3329,6 +3351,7 @@
 <translation id="5618075537869101857">Hata, kiosk uygulaması başlatılamadı.</translation>
 <translation id="5618333180342767515">(bu işlem birkaç dakika sürebilir)</translation>
 <translation id="56197088284879152">Şu uzak cihazın bağlantısı yavaşladı: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="5620163320393916465">Kaydedilen şifre yok</translation>
 <translation id="5620549857835247159">Tablet modunda Başlatıcı, Geri, Genel Bakış düğmelerini rafta gösterir.</translation>
 <translation id="5620568081365989559">DevTools <ph name="FOLDER_PATH" /> yoluna tam erişim ister.
 Hassas bilgileri vermediğinizden emin olun.</translation>
@@ -3423,6 +3446,7 @@
 <translation id="5747785204778348146">Geliştirici - kararsız</translation>
 <translation id="5747809636523347288">Ya&amp;pıştır ve <ph name="URL" /> adresine git</translation>
 <translation id="5750324801516359607">Uzak</translation>
+<translation id="5751887393582880060">Bu yükleme, kuruluşunuzun güvenlik politikalarını ihlal ediyor. Yine de devam etmek istiyor musunuz?</translation>
 <translation id="5756163054456765343">Y&amp;ardım merkezi</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> aracılığıyla yazdırılmaları için gönderdiğiniz dokümanlar <ph name="APP_NAME" /> tarafından okunabilir.</translation>
 <translation id="5763751966069581670">USB cihazı bulunamadı</translation>
@@ -3632,6 +3656,7 @@
 <translation id="6040852767465482106">Anonim Kimlik</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google’ın konum hizmetleri, cihazınızın konumunu tahmin etmesine yardımcı olması için kablosuz, mobil ağlar ve sensörler gibi kaynakları kullanır.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Konum özelliğini, cihazınızın ana Konum ayarını kapatarak devre dışı bırakabilirsiniz. Ayrıca konum ayarlarından kablosuz, mobil ağlar ve konum sensörlerinin kullanılmasını da devre dışı bırakabilirsiniz.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> sitesi, siz tüm <ph name="ORIGIN" /> sekmelerini kapatana kadar <ph name="FOLDERNAME" /> klasöründeki dosyaları görüntüleyebilecek</translation>
 <translation id="6041155700700864984">Tam Ekran modundan çık</translation>
 <translation id="604124094241169006">Otomatik</translation>
 <translation id="6042308850641462728">Daha fazla</translation>
@@ -3693,6 +3718,7 @@
 <translation id="6104311680260824317">Cihaz, alan adına katılamıyor. Sunucu, belirtilen Kerberos şifreleme türlerini desteklemiyor. Şifreleme ayarlarını görmek için "Diğer seçenekler"e göz atın.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> bu cihazı hemen güncellemenizi gerektiriyor</translation>
 <translation id="6106186653986077033">Plugin VM uygulaması lisans gerektiriyor.</translation>
+<translation id="6107047744202598802">Web sitelerinin ziyaretinizi hatırlamasına ve sizi web'de takip etmesine izin verir</translation>
 <translation id="6112294629795967147">Yeniden boyutlandırmak için dokunun</translation>
 <translation id="6112727384379533756">Bilet ekle</translation>
 <translation id="6112931163620622315">Telefonunuzu kontrol edin</translation>
@@ -3771,6 +3797,7 @@
 <translation id="622537739776246443">Profil silinecek</translation>
 <translation id="6225475702458870625"><ph name="PHONE_NAME" /> telefonunuzdan veri bağlantısı yapılabilir</translation>
 <translation id="6226777517901268232">Özel anahtar dosyası (isteğe bağlı)</translation>
+<translation id="6227280783235722609">uzantı</translation>
 <translation id="6228691855869374890">Bu site MIDI cihazları üzerinde tam denetime sahip.</translation>
 <translation id="6228720835160974792">Bu resim için QR kodu oluştur</translation>
 <translation id="6229890768313448549">Google Play Hizmet Şartları yüklenemiyor. Lütfen tekrar deneyin.</translation>
@@ -3822,6 +3849,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> yaygın indirilen bir öğe değil, tehlikeli olabilir.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Ağınızda yeni yazıcı}other{Ağınızda yeni yazıcılar}}</translation>
 <translation id="6286708577777130801">Kayıtlı şifre ayrıntıları</translation>
+<translation id="6291163159361301370"><ph name="ORGANIZATION_NAME" />, Linux'u başlatmak için verilerinizi yedekleyip bu Chromebook'u fabrika ayarlarına sıfırlamanızı zorunlu tutuyor.</translation>
 <translation id="6291949900244949761">Bir site USB cihazlarına erişmek istediğinde sor (önerilen)</translation>
 <translation id="6291953229176937411">Bulucu'da &amp;Göster</translation>
 <translation id="6295158916970320988">Tüm siteler</translation>
@@ -4018,6 +4046,7 @@
 <translation id="6561726789132298588">enter</translation>
 <translation id="656293578423618167">Dosya yolu veya adı çok uzun. Lütfen daha kısa bir adla veya başka bir konuma  kaydedin.</translation>
 <translation id="6563469144985748109">Yöneticiniz henüz onaylamadı</translation>
+<translation id="6565955132287672866">Cihazınız düzgün bir şekilde kapatılmadı. Linux'u (Beta) kullanmak için cihazın yeniden başlatılması gerekir.</translation>
 <translation id="6567688344210276845">Sayfa işlemine ilişkin '<ph name="ICON" />' simgesi yüklenemedi.</translation>
 <translation id="6569934958368283244">Diğer kişiler</translation>
 <translation id="657402800789773160">Bu &amp;Sayfayı Tekrar Yükle</translation>
@@ -4515,6 +4544,7 @@
 <translation id="7258225044283673131">Uygulama yanıt vermiyor. Uygulamayı kapatmak için "Uygulamayı kapat"ı seçin.</translation>
 <translation id="7258697411818564379">PIN'iniz eklendi</translation>
 <translation id="7262004276116528033">Bu oturum açma hizmeti, <ph name="SAML_DOMAIN" /> tarafından barındırılıyor.</translation>
+<translation id="7266898409676782635"><ph name="DEVICE_TYPE" /> ile ilgili ipuçları, fırsatlar ve güncellemeler alın, geri bildirimlerinizi paylaşın. İstediğiniz zaman aboneliğinizi iptal edebilirsiniz.</translation>
 <translation id="7268127947535186412">Bu ayar, cihazın sahibi tarafından yönetilir.</translation>
 <translation id="7270858098575133036">Bir site MIDI cihazlarına erişmek için sisteme özgü mesajları kullanmak istediğinde sor</translation>
 <translation id="7272674038937250585">Açıklama sağlanmadı</translation>
@@ -4588,6 +4618,7 @@
 <translation id="7364796246159120393">Dosya Seç</translation>
 <translation id="7366415735885268578">Site ekle</translation>
 <translation id="7366909168761621528">Göz atma verileri</translation>
+<translation id="7367714965999718019">QR Kodu Oluşturucu</translation>
 <translation id="736877393389250337"><ph name="URL" /> <ph name="ALTERNATIVE_BROWSER_NAME" /> tarayıcıda açılamadı. Lütfen sistem yöneticinizle iletişim kurun.</translation>
 <translation id="7370592524170198497">Ethernet EAP:</translation>
 <translation id="7371006317849674875">Başlangıç zamanı</translation>
@@ -4845,8 +4876,10 @@
 <translation id="7737238973539693982">Linux'u (Beta) silin</translation>
 <translation id="7740996059027112821">Standart</translation>
 <translation id="7744047395460924128">Yazdırma geçmişinizi görme</translation>
+<translation id="7744192722284567281">Veri ihlali kapsamında bulundu</translation>
 <translation id="7746457520633464754">Chrome, tehlikeli uygulamaları ve siteleri algılamak için Google'a ziyaret ettiğiniz bazı sitelerin URL'lerini, sınırlı sistem bilgisini ve bazı sayfa içeriklerini gönderir.</translation>
 <translation id="7750228210027921155">Pencere içinde pencere</translation>
+<translation id="7751229152614300329">Güvenli Tarama güncel olup sizi zararlı sitelere ve indirmelere karşı koruyor</translation>
 <translation id="7751260505918304024">Tümünü göster</translation>
 <translation id="7754704193130578113">İndirmeden önce her dosyanın nereye kaydedileceğini sor</translation>
 <translation id="7755287808199759310">Ebeveyniniz engellemeyi sizin için kaldırabilir</translation>
@@ -4993,6 +5026,7 @@
 <translation id="7910768399700579500">&amp;Yeni klasör</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Şifreniz sunucuda değiştirildi. Lütfen oturumu kapatıp tekrar açın.</translation>
+<translation id="7914583336730284547">Sürükleyip bırakılan bu dosyalar kuruluşunuzun güvenlik politikalarını ihlal ediyor. Yine de devam etmek istiyor musunuz?</translation>
 <translation id="7915457674565721553">Ebeveyn denetimlerini kurmak için internete bağlanın</translation>
 <translation id="7915471803647590281">Geri bildirimi göndermeden önce lütfen bize ne olduğunu söyleyin.</translation>
 <translation id="7918257978052780342">Kaydol</translation>
@@ -5090,6 +5124,7 @@
 <translation id="8028803902702117856">İndiriliyor <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">Boyut</translation>
 <translation id="8030656706657716245">Yazıcı Ekle</translation>
+<translation id="8030852056903932865">Onayla</translation>
 <translation id="8032244173881942855">Sekme yayınlanamıyor.</translation>
 <translation id="8033827949643255796">seçildi</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Tümünü &amp;gizli pencerede aç}=1{&amp;Gizli pencerede aç}other{Tümünü (#) &amp;gizli pencerede aç}}</translation>
@@ -5410,6 +5445,7 @@
 <translation id="8472623782143987204">donanım esaslı</translation>
 <translation id="8473863474539038330">Adresler ve daha fazlası</translation>
 <translation id="8475313423285172237">Bilgisayarınızdaki başka bir program, Chrome'un çalışma şeklini değiştirebilecek bir uzantı ekledi.</translation>
+<translation id="8476659515398963495">Yapıştırılan bu veriler kuruluşunuzun güvenlik politikalarını ihlal ediyor. Yine de devam etmek istiyor musunuz?</translation>
 <translation id="8477241577829954800">Geçersiz kılındı</translation>
 <translation id="8477384620836102176">&amp;Genel</translation>
 <translation id="8480082892550707549">Daha önce bu siteden dosya indirdiyseniz bile, site geçici olarak güvenli olmayabilir (saldırıya uğramış olabilir). Bu dosyayı indirmeyi daha sonra deneyin.</translation>
@@ -5463,6 +5499,7 @@
 <translation id="8547013269961688403">Tam ekran büyüteci etkinleştir</translation>
 <translation id="85486688517848470">Üst satırdaki tuşların davranışını değiştirmek için Arama tuşunu basılı tutun</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 öğe}other{# öğe}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> sitesi, siz tüm <ph name="ORIGIN" /> sekmelerini kapatana kadar <ph name="FOLDERNAME" /> klasöründeki dosyaları düzenleyebilecek</translation>
 <translation id="8551388862522347954">Lisanslar</translation>
 <translation id="8553342806078037065">Diğer kişileri yönet</translation>
 <translation id="8554899698005018844">Dil yok</translation>
@@ -5521,6 +5558,7 @@
 <translation id="8637688295594795546">Kullanılabilir sistem güncellemesi mevcut. İndirmeye hazırlanılıyor...</translation>
 <translation id="8639047128869322042">Zararlı yazılımlar denetleniyor...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Bağlantı noktası</translation>
+<translation id="8641606876632989680">Chrome, güvenliği ihlal edilmiş bir şifreyle oturum açtığınızda size haber verir</translation>
 <translation id="8642900771896232685">2 saniye</translation>
 <translation id="8642947597466641025">Metni Büyüt</translation>
 <translation id="8644655801811752511">Bu güvenlik anahtarı sıfırlanamıyor Anahtarı, takar takmaz hemen sıfırlamayı deneyin.</translation>
@@ -5570,6 +5608,7 @@
 <translation id="869884720829132584">Uygulamalar menüsü</translation>
 <translation id="869891660844655955">Son kullanma tarihi</translation>
 <translation id="8703346390800944767">Reklamı Atla</translation>
+<translation id="870341961648617780">Güvenli Tarama ve gelişmiş güvenlik ayarları</translation>
 <translation id="8705331520020532516">Seri Numarası</translation>
 <translation id="8705580154597116082">Kablosuz bağlantı telefon üzerinden kullanılabilir</translation>
 <translation id="8705629851992224300">Güvenlik anahtarınız okunamadı</translation>
@@ -5615,6 +5654,7 @@
 <translation id="874689135111202667">{0,plural, =1{Bu siteye bir dosya yüklensin mi?}other{Bu siteye # dosya yüklensin mi?}}</translation>
 <translation id="8748384418490037181">Smart Lock seçenekleri</translation>
 <translation id="8749863574775030885">Bilinmeyen bir tedarikçinin USB cihazlarına erişme</translation>
+<translation id="8750133148106010815"><ph name="ORGANIZATION_NAME" />, Google Play'i başlatmak için verilerinizi yedekleyip bu Chromebook'u fabrika ayarlarına sıfırlamanızı zorunlu tutuyor.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> bir seri bağlantı noktasına bağlanmak istiyor</translation>
 <translation id="8754200782896249056">&lt;p&gt;<ph name="PRODUCT_NAME" />, desteklenen bir masaüstü ortamında çalışırken sistem proxy ayarları kullanılır. Ancak, ya sisteminiz desteklenmiyor ya da sistem yapılandırmanız başlatılırken bir hata oluştu.&lt;/p&gt;
 
@@ -5669,6 +5709,7 @@
 <translation id="8809147117840417135">Açık turkuaz</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> hesabında oturum açılamıyor</translation>
 <translation id="8813811964357448561">kağıt</translation>
+<translation id="8813872945700551674">Ebeveyninizden "<ph name="EXTENSION_NAME" />" uzantısını onaylamasını isteyin</translation>
 <translation id="8813969267212093033">Sistem metni bu dilde gösterilir</translation>
 <translation id="8814190375133053267">Kablosuz</translation>
 <translation id="8814687660896548945">Arşiv taranırken lütfen bekleyin...</translation>
@@ -5949,6 +5990,7 @@
 <translation id="9203398526606335860">&amp;Profil oluşturma etkin</translation>
 <translation id="9203904171912129171">Cihaz seçin</translation>
 <translation id="9203962528777363226">Bu cihazın yöneticisi yeni kullanıcıların eklenmesini devre dışı bıraktı</translation>
+<translation id="9211177926627870898">Güncelleme gerekli</translation>
 <translation id="9214520840402538427">Hata! Yükleme zamanı özniteliklerini başlatma işlemi zaman aşımına uğradı. Lütfen destek temsilcinizle görüşün.</translation>
 <translation id="9214695392875603905">Küçük kek</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" eklendi</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 5434f95..34af585 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">Cũng xóa dữ liệu khỏi các ứng dụng này?</translation>
 <translation id="1045692658517323508">{0,plural, =1{Cập nhật trong vòng 1 phút}other{Cập nhật trong vòng # phút}}</translation>
 <translation id="1046635659603195359">Có vẻ như bạn đã thiết lập tính năng Voice Match với Trợ lý Google trên một thiết bị khác. Trợ lý có thể dùng những bản ghi âm đã có trước đây để tạo một mẫu giọng nói trên thiết bị này. Quá trình này sẽ mất chưa đến 1 phút.</translation>
+<translation id="104710386808485638">Khởi động lại Linux?</translation>
 <translation id="1047431265488717055">Sao chép &amp;văn bản liên kết</translation>
 <translation id="1048286738600630630">Hiển thị</translation>
 <translation id="1049743911850919806">Ẩn danh</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">Vui lòng đăng nhập vào <ph name="TOKEN_NAME" /> để xuất chứng chỉ ứng dụng khách.</translation>
 <translation id="1163931534039071049">&amp;Xem nguồn khung</translation>
 <translation id="1164674268730883318">Tắt Smart Lock cho <ph name="DEVICE_TYPE" />?</translation>
+<translation id="1164891049599601209">Đã được nhập trên trang web lừa đảo</translation>
 <translation id="1164899421101904659">Nhập khóa mở khóa mã PIN</translation>
 <translation id="1165039591588034296">Lỗi</translation>
 <translation id="1166212789817575481">Đóng Tab Bên phải</translation>
@@ -398,6 +400,7 @@
 <translation id="1545177026077493356">Chế độ kiosk tự động</translation>
 <translation id="1545775234664667895">Đã cài đặt chủ đề "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">Tiện ích này đã thay đổi trang nào sẽ hiển thị khi bạn nhấp vào nút Trang chủ.</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> muốn cài đặt một <ph name="EXTENSION_TYPE" /> có thể:</translation>
 <translation id="1549275686094429035">Đã bật ARC</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> muốn truy cập <ph name="VOLUME_NAME" />. Ứng dụng này có thể sửa đổi hoặc xóa các tệp của bạn.</translation>
 <translation id="1553538517812678578">không giới hạn</translation>
@@ -496,6 +499,7 @@
 <translation id="1679806121152819234">Máy chủ ảo plugin</translation>
 <translation id="1679810534535368772">Bạn có chắc chắn muốn thoát không?</translation>
 <translation id="167983332380191032">Lỗi HTTP do dịch vụ quản lý gửi</translation>
+<translation id="1680841347983561661">Vui lòng thử khởi động lại Google Play sau giây lát.</translation>
 <translation id="1680849702532889074">Đã xảy ra lỗi trong quá trình cài đặt ứng dụng Linux.</translation>
 <translation id="16815041330799488">Không cho phép các trang web xem văn bản và hình ảnh đã sao chép sang khay nhớ tạm</translation>
 <translation id="1682548588986054654">Cửa sổ ẩn danh mới</translation>
@@ -749,6 +753,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> đã xảy ra lỗi. Nhấp vào bong bóng này để tải lại tiện ích.</translation>
 <translation id="2025891858974379949">Nội dung không an toàn</translation>
 <translation id="202918510990975568">Nhập mật khẩu để định cấu hình tùy chọn cài đặt bảo mật và đăng nhập</translation>
+<translation id="2030672406208960151">Mở Cửa sổ lệnh khôi phục</translation>
 <translation id="2034346955588403444">Thêm mạng Wi-Fi khác</translation>
 <translation id="203574396658008164">Bật tính năng ghi chú từ màn hình khóa</translation>
 <translation id="2037445849770872822">Tính năng giám sát đã được thiết lập cho Tài khoản Google này. Để thiết lập thêm quyền kiểm soát của cha mẹ, hãy chọn Tiếp tục.
@@ -901,6 +906,7 @@
 <translation id="2220572644011485463">Mã PIN hoặc mật khẩu</translation>
 <translation id="2224444042887712269">Cài đặt này thuộc về <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">Chỉnh sửa tên thư mục</translation>
+<translation id="2225864335125757863">Thay đổi ngay các mật khẩu sau để bảo vệ tài khoản của bạn:</translation>
 <translation id="2226449515541314767">Trang web này đã bị chặn quyền kiểm soát hoàn toàn thiết bị MIDI.</translation>
 <translation id="222704500187107962">Hệ thống sẽ tự động xóa ngoại lệ này sau khi bạn thoát khỏi phiên Ẩn danh hiện tại</translation>
 <translation id="2227179592712503583">Xóa đề xuất</translation>
@@ -1021,6 +1027,7 @@
 <translation id="2387052489799050037">Chuyển đến Màn hình chính</translation>
 <translation id="2387458720915042159">Loại kết nối proxy</translation>
 <translation id="2391419135980381625">Phông chữ tiêu chuẩn</translation>
+<translation id="2392163307141705938">Thời gian sử dụng <ph name="IDS_SHORT_PRODUCT_NAME" /> do cha mẹ đặt ra cho bạn đã hết.</translation>
 <translation id="2392369802118427583">Kích hoạt</translation>
 <translation id="2394566832561516196">Cài đặt sẽ được xóa trong lần tải lại tiếp theo.</translation>
 <translation id="2395616325548404795">Thiết bị <ph name="DEVICE_TYPE" /> của bạn đã được đăng ký thành công cho quản lý doanh nghiệp, nhưng không gửi được thông tin phần tử và vị trí. Vui lòng nhập thủ công thông tin này từ Bảng điều khiển dành cho quản trị viên của thiết bị này.</translation>
@@ -1086,6 +1093,7 @@
 <translation id="247949520305900375">Chia sẻ âm thanh</translation>
 <translation id="2480868415629598489">Sửa đổi dữ liệu bạn sao chép và dán</translation>
 <translation id="2482878487686419369">Thông báo</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> vẫn có thể chỉnh sửa <ph name="FILENAME" /> cho đến khi bạn đóng hết tất cả các thẻ <ph name="ORIGIN" /></translation>
 <translation id="2484959914739448251">Để xóa dữ liệu duyệt web khỏi tất cả các thiết bị đã đồng bộ hóa và Tài khoản Google của bạn, hãy <ph name="BEGIN_LINK" />nhập cụm mật khẩu<ph name="END_LINK" />.</translation>
 <translation id="2485005079599453134">Đã lưu mật khẩu trên thiết bị này</translation>
 <translation id="2485422356828889247">Gỡ cài đặt</translation>
@@ -1299,6 +1307,7 @@
 <translation id="274290345632688601">Đang khôi phục các ứng dụng và tệp Linux</translation>
 <translation id="2743387203779672305">Sao chép vào khay nhớ tạm</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> đã bị tạm dừng</translation>
 <translation id="2749756011735116528">Đăng nhập vào <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">Kiểm tra Ngữ pháp và Chính tả</translation>
 <translation id="2751739896257479635">Xác thực EAP giai đoạn 2</translation>
@@ -1307,6 +1316,7 @@
 <translation id="275662540872599901">màn hình tắt</translation>
 <translation id="2762441749940182211">Máy ảnh bị chặn</translation>
 <translation id="2765217105034171413">Nhỏ</translation>
+<translation id="2766161002040448006">Xin phép cha mẹ</translation>
 <translation id="276969039800130567">Đăng nhập bằng địa chỉ <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="2770465223704140727">Xóa khỏi danh sách</translation>
 <translation id="2770690685823456775">Xuất mật khẩu của bạn sang thư mục khác</translation>
@@ -1558,6 +1568,7 @@
 <translation id="3115580024857770654">Thu gọn tất cả</translation>
 <translation id="3117362587799608430">Đế sạc không hoàn toàn tương thích</translation>
 <translation id="3118319026408854581">Trợ giúp <ph name="PRODUCT_NAME" /></translation>
+<translation id="3118654181216384296">Vui lòng thử khởi động lại Linux sau giây lát.</translation>
 <translation id="3120430004221004537">Mã hóa không đầy đủ đối với một tác vụ cụ thể trên: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3121793941267913344">Đặt lại thiết bị <ph name="IDS_SHORT_PRODUCT_NAME" /> này</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1567,6 +1578,7 @@
 <translation id="3127156390846601284">Thao tác này sẽ xóa mọi dữ liệu được lưu trữ trên thiết bị của bạn cho tất cả trang web hiển thị. Bạn có muốn tiếp tục không?</translation>
 <translation id="3127860049873093642">Để tránh gặp phải các vấn đề về hiệu suất và sạc pin, hãy dùng bộ chuyển đổi điện USB Type-C hoặc bộ chuyển đổi điện Dell tương thích.</translation>
 <translation id="3129173833825111527">Lề trái</translation>
+<translation id="3129215702932019810">Lỗi khi chạy ứng dụng</translation>
 <translation id="3130528281680948470">Thiết bị của bạn sẽ được đặt lại và tất cả các tài khoản người dùng và dữ liệu cục bộ sẽ bị xóa. Không thể hoàn tác thao tác này.</translation>
 <translation id="313205617302240621">Quên mật khẩu?</translation>
 <translation id="3132996321662585180">Làm mới hàng ngày</translation>
@@ -1782,6 +1794,7 @@
 <translation id="3441653493275994384">Màn hình</translation>
 <translation id="3445925074670675829">Thiết bị USB-C</translation>
 <translation id="344630545793878684">Đọc dữ liệu của bạn trên một số trang web</translation>
+<translation id="3448086340637592206">Các điều khoản bổ sung của Google Chrome và Chrome OS</translation>
 <translation id="3448492834076427715">Cập nhật tài khoản</translation>
 <translation id="3449839693241009168">Bấm <ph name="SEARCH_KEY" /> để gửi lệnh đến <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Phần trăm sử dụng ở trạng thái không hoạt động</translation>
@@ -2129,6 +2142,7 @@
 <translation id="3873423927483480833">Hiển thị mã PIN</translation>
 <translation id="3873915545594852654">Đã xảy ra lỗi với ARC++.</translation>
 <translation id="3879748587602334249">Trình quản lý tải xuống</translation>
+<translation id="3881321138433527084">Tính năng duyệt web an toàn đang tắt. Để luôn được an toàn trên web, hãy bật tính năng này.</translation>
 <translation id="3882165008614329320">Video hiện có từ camera hoặc tệp</translation>
 <translation id="3886446263141354045">Yêu cầu truy cập trang web này của bạn đã được gửi tới <ph name="NAME" /></translation>
 <translation id="3888550877729210209">Ghi chú bằng <ph name="LOCK_SCREEN_APP_NAME" /></translation>
@@ -2470,6 +2484,7 @@
 <translation id="4384652540891215547">Kích hoạt tiện ích</translation>
 <translation id="438503109373656455">Ngựa đua Saratoga</translation>
 <translation id="4387004326333427325">Chứng chỉ xác thực bị từ chối từ xa</translation>
+<translation id="4387890294700445764">Mật khẩu bị lộ</translation>
 <translation id="4389091756366370506">Người dùng <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{Ẩn danh}other{# cửa sổ ẩn danh đang mở}}</translation>
 <translation id="439266289085815679">Cấu hình Bluetooth do <ph name="USER_EMAIL" /> kiểm soát.</translation>
@@ -2501,6 +2516,7 @@
 <translation id="4429030830601238961">Dữ liệu này vi phạm chính sách bảo mật của tổ chức bạn nên không thể dán được.</translation>
 <translation id="4430019312045809116">Âm lượng</translation>
 <translation id="4430369329743628066">Đã thêm dấu trang</translation>
+<translation id="4432621511648257259">Mật khẩu không chính xác</translation>
 <translation id="4434045419905280838">Cửa sổ bật lên và liên kết chuyển hướng</translation>
 <translation id="443454694385851356">Cũ (không an toàn)</translation>
 <translation id="443475966875174318">Cập nhật hoặc xóa các ứng dụng không tương thích</translation>
@@ -2750,6 +2766,7 @@
 <translation id="4808667324955055115">Đã chặn cửa sổ bật lên:</translation>
 <translation id="480990236307250886">Mở trang chủ</translation>
 <translation id="4811503964269049987">Nhóm thẻ đã chọn</translation>
+<translation id="4811818760963189951">Đang bị tắt vì bạn đã vô hiệu hóa tính năng đồng bộ hóa lịch sử</translation>
 <translation id="4813136279048157860">Hình ảnh của tôi</translation>
 <translation id="4813512666221746211">Lỗi mạng</translation>
 <translation id="4814378367953456825">Nhập tên cho vân tay này</translation>
@@ -2779,6 +2796,7 @@
 <translation id="4850669014075537160">Cuộn</translation>
 <translation id="4850886885716139402">Xem</translation>
 <translation id="4853020600495124913">Mở trong &amp;cửa sổ mới</translation>
+<translation id="4854317507773910281">Chọn tài khoản của cha mẹ sẽ dùng để phê duyệt</translation>
 <translation id="485480310608090163">Các quyền và tùy chọn cài đặt khác</translation>
 <translation id="4856478137399998590">Dịch vụ dữ liệu di động của bạn đã được kích hoạt và sẵn sàng để sử dụng</translation>
 <translation id="4856855265648545577">Hiển thị Trình chạy, các nút Quay lại và Tổng quan trên giá ở chế độ máy tính bảng. Các nút này ở trạng thái bật khi ChromeVox (phản hồi bằng giọng nói) hoặc tính năng Tiếp cận bằng công tắc đang bật.</translation>
@@ -2915,10 +2933,12 @@
 <translation id="5040823038948176460">Các tùy chọn cài đặt nội dung khác</translation>
 <translation id="5042282098504489593">Mở phần Cài đặt để kết nối <ph name="USB_DEVICE_NAME" /> với Linux</translation>
 <translation id="5043913660911154449">Hoặc chỉ định tệp PPD cho máy in của bạn <ph name="LINK_BEGIN" />Tìm hiểu thêm<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">Đang bị tắt do bạn đã mã hóa dữ liệu đồng bộ hóa bằng cụm mật khẩu</translation>
 <translation id="5045550434625856497">Mật khẩu sai</translation>
 <translation id="504561833207953641">Mở trong phiên trình duyệt hiện tại.</translation>
 <translation id="5047421709274785093">Chặn các trang web sử dụng cảm biến chuyển động và ánh sáng</translation>
 <translation id="5050042263972837708">Tên nhóm</translation>
+<translation id="5051073330196664891">Điều khoản dịch vụ chung của Google (uToS)</translation>
 <translation id="5051836348807686060">Các ngôn ngữ bạn đã chọn không hỗ trợ tính năng kiểm tra chính tả</translation>
 <translation id="5052499409147950210">Chỉnh sửa trang web</translation>
 <translation id="5053604404986157245">Mật khẩu TPM được tạo ngẫu nhiên hiện không khả dụng. Đây là hiện tượng bình thường sau khi tiến hành Powerwash.</translation>
@@ -2956,6 +2976,7 @@
 <translation id="5097002363526479830">Không thể kết nối với mạng '<ph name="NAME" />': <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Mở tất cả dấu trang</translation>
 <translation id="5101839224773798795">Tự động nhấp chuột khi con trỏ dừng lại</translation>
+<translation id="5107443654503185812">Một tiện ích đã tắt tính năng Duyệt web an toàn</translation>
 <translation id="5108967062857032718">Cài đặt - Xóa ứng dụng Android</translation>
 <translation id="5109044022078737958">Nữ cầu thủ Mia</translation>
 <translation id="5111646998522066203">Thoát khỏi chế độ ẩn danh</translation>
@@ -3042,6 +3063,7 @@
 <translation id="523505283826916779">Hỗ trợ tiếp cận</translation>
 <translation id="5235750401727657667">Thay thế trang bạn sẽ nhìn thấy khi mở tab mới</translation>
 <translation id="5238278114306905396">Ứng dụng "<ph name="EXTENSION_NAME" />" đã được tự động xóa.</translation>
+<translation id="5239730228370806996">Dữ liệu đã thả này vi phạm chính sách bảo mật của tổ chức bạn. Bạn vẫn muốn tiếp tục thực hiện?</translation>
 <translation id="5241128660650683457">Đọc tất cả dữ liệu của bạn trên các trang web bạn truy cập</translation>
 <translation id="5242724311594467048">Cho phép "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="5243522832766285132">Vui lòng thử lại sau giây lát</translation>
@@ -3329,6 +3351,7 @@
 <translation id="5618075537869101857">Rất tiếc, không thể chạy ứng dụng kiosk.</translation>
 <translation id="5618333180342767515">(việc này có thể mất vài phút)</translation>
 <translation id="56197088284879152">Kết nối tới thiết bị từ xa: "<ph name="DEVICE_NAME" />" bị nghẽn.</translation>
+<translation id="5620163320393916465">Bạn chưa lưu mật khẩu nào</translation>
 <translation id="5620549857835247159">Hiển thị các nút Trình chạy, Quay lại, Tổng quan trên giá ở chế độ máy tính bảng.</translation>
 <translation id="5620568081365989559">DevTools yêu cầu toàn quyền truy cập vào <ph name="FOLDER_PATH" />. Hãy đảm bảo bạn không hiển thị bất kỳ thông tin nhạy cảm nào.</translation>
 <translation id="5620612546311710611">thống kê sử dụng</translation>
@@ -3422,6 +3445,7 @@
 <translation id="5747785204778348146">Nhà phát triển - không chính thức</translation>
 <translation id="5747809636523347288">Dá&amp;n và truy cập <ph name="URL" /></translation>
 <translation id="5750324801516359607">Xa</translation>
+<translation id="5751887393582880060">Tệp đã tải lên này vi phạm chính sách bảo mật của tổ chức bạn. Bạn vẫn muốn tiếp tục thực hiện?</translation>
 <translation id="5756163054456765343">Trung tâm trợ g&amp;iúp</translation>
 <translation id="5759728514498647443">Tài liệu bạn gửi để in qua <ph name="APP_NAME" /> có thể đọc được bằng <ph name="APP_NAME" />.</translation>
 <translation id="5763751966069581670">Không tìm thấy thiết bị USB nào</translation>
@@ -3631,6 +3655,7 @@
 <translation id="6040852767465482106">Danh tính ẩn danh</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Dịch vụ vị trí của Google sử dụng các nguồn như mạng Wi-Fi, mạng di động và cảm biến để giúp ước đoán vị trí thiết bị của bạn.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Bạn có thể tắt Vị trí bằng cách tắt tùy chọn cài đặt Vị trí chính trên thiết bị. Ngoài ra, bạn có thể tắt tùy chọn sử dụng mạng Wi-Fi, mạng di động và cảm biến cho vị trí trong mục cài đặt vị trí.<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> vẫn có thể xem các tệp trong <ph name="FOLDERNAME" /> cho đến khi bạn đóng hết tất cả các thẻ <ph name="ORIGIN" /></translation>
 <translation id="6041155700700864984">Thoát chế độ toàn màn hình</translation>
 <translation id="604124094241169006">Tự động</translation>
 <translation id="6042308850641462728">Xem thêm</translation>
@@ -3692,6 +3717,7 @@
 <translation id="6104311680260824317">Không thể kết hợp thiết bị với miền. Máy chủ không hỗ trợ các loại mã hóa Kerbero được chỉ định. Hãy xem phần "Tùy chọn khác" để biết các tùy chọn cài đặt mã hóa.</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" /> yêu cầu bạn cập nhật thiết bị này ngay lập tức</translation>
 <translation id="6106186653986077033">Máy chủ ảo plugin cần có giấy phép</translation>
+<translation id="6107047744202598802">Cho phép các trang web ghi nhớ lượt truy cập của bạn và theo dõi bạn trên web</translation>
 <translation id="6112294629795967147">Chạm để đổi kích thước</translation>
 <translation id="6112727384379533756">Thêm phiếu</translation>
 <translation id="6112931163620622315">Kiểm tra điện thoại của bạn</translation>
@@ -3770,6 +3796,7 @@
 <translation id="622537739776246443">Hồ sơ này sẽ bị xóa</translation>
 <translation id="6225475702458870625">Kết nối dữ liệu có sẵn từ <ph name="PHONE_NAME" /> của bạn</translation>
 <translation id="6226777517901268232">Tệp khóa cá nhân (tùy chọn)</translation>
+<translation id="6227280783235722609">tiện ích</translation>
 <translation id="6228691855869374890">Trang web này có quyền kiểm soát toàn bộ thiết bị MIDI.</translation>
 <translation id="6228720835160974792">Tạo mã QR cho hình ảnh này</translation>
 <translation id="6229890768313448549">Không thể tải Điều khoản dịch vụ của Google. Vui lòng thử lại.</translation>
@@ -3821,6 +3848,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> thường không được tải xuống và có thể nguy hiểm.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Máy in mới trên mạng của bạn}other{Máy in mới trên mạng của bạn}}</translation>
 <translation id="6286708577777130801">Chi tiết mật khẩu đã lưu</translation>
+<translation id="6291163159361301370">Để khởi động Linux, <ph name="ORGANIZATION_NAME" /> yêu cầu bạn sao lưu dữ liệu của mình và đặt lại thiết bị Chromebook này về trạng thái cài đặt ban đầu.</translation>
 <translation id="6291949900244949761">Hỏi khi một trang web muốn truy cập vào các thiết bị USB (khuyên dùng)</translation>
 <translation id="6291953229176937411">&amp;Hiển thị trong Trình tìm kiếm</translation>
 <translation id="6295158916970320988">Tất cả các trang web</translation>
@@ -4017,6 +4045,7 @@
 <translation id="6561726789132298588">enter</translation>
 <translation id="656293578423618167">Tên hoặc đường dẫn của tệp quá dài.  Hãy lưu với tên ngắn hơn hoặc lưu vào một vị trí khác.</translation>
 <translation id="6563469144985748109">Người quản lý của bạn chưa phê duyệt trang web</translation>
+<translation id="6565955132287672866">Thiết bị của bạn không tắt đúng cách. Để sử dụng Linux (Bản thử nghiệm), bạn phải khởi động lại thiết bị.</translation>
 <translation id="6567688344210276845">Không thể tải biểu tượng '<ph name="ICON" />' cho tác vụ trang.</translation>
 <translation id="6569934958368283244">Người khác</translation>
 <translation id="657402800789773160">&amp;Tải lại trang này</translation>
@@ -4514,6 +4543,7 @@
 <translation id="7258225044283673131">Ứng dụng không phản hồi. Hãy chọn "Buộc đóng" để đóng ứng dụng.</translation>
 <translation id="7258697411818564379">Bạn đã thêm mã PIN</translation>
 <translation id="7262004276116528033">Dịch vụ đăng nhập này do <ph name="SAML_DOMAIN" /> lưu trữ</translation>
+<translation id="7266898409676782635">Nhận các mẹo, ưu đãi và thông tin cập nhật về <ph name="DEVICE_TYPE" />, cũng như chia sẻ ý kiến phản hồi. Bạn có thể hủy đăng ký bất kỳ lúc nào.</translation>
 <translation id="7268127947535186412">Tùy chọn cài đặt này do chủ sở hữu thiết bị quản lý.</translation>
 <translation id="7270858098575133036">Hỏi tôi khi có trang web muốn sử dụng thông báo dành riêng cho hệ thống để truy cập thiết bị MIDI</translation>
 <translation id="7272674038937250585">Chưa có mô tả</translation>
@@ -4587,6 +4617,7 @@
 <translation id="7364796246159120393">Chọn tệp</translation>
 <translation id="7366415735885268578">Thêm trang web</translation>
 <translation id="7366909168761621528">Dữ liệu duyệt web</translation>
+<translation id="7367714965999718019">Trình tạo mã QR</translation>
 <translation id="736877393389250337">Không mở được <ph name="URL" /> trong <ph name="ALTERNATIVE_BROWSER_NAME" />. Vui lòng liên hệ với quản trị viên hệ thống.</translation>
 <translation id="7370592524170198497">Giao thức xác thực mở rộng (EAP) Ethernet:</translation>
 <translation id="7371006317849674875">Thời gian bắt đầu</translation>
@@ -4844,8 +4875,10 @@
 <translation id="7737238973539693982">Xóa Linux (Beta)</translation>
 <translation id="7740996059027112821">Chuẩn</translation>
 <translation id="7744047395460924128">Xem lịch sử in của bạn</translation>
+<translation id="7744192722284567281">Phát hiện mật khẩu bị rò rỉ</translation>
 <translation id="7746457520633464754">Để phát hiện các ứng dụng và trang web nguy hiểm, Chrome sẽ gửi URL của một số trang mà bạn truy cập, thông tin hệ thống giới hạn và một số nội dung trang cho Google</translation>
 <translation id="7750228210027921155">Hình trong hình</translation>
+<translation id="7751229152614300329">Tính năng Duyệt web an toàn đã được cập nhật. Tính năng này sẽ giúp bảo vệ bạn khỏi các tệp đã tải xuống và trang web gây hại</translation>
 <translation id="7751260505918304024">Hiển thị tất cả</translation>
 <translation id="7754704193130578113">Hỏi vị trí lưu từng tệp trước khi tải xuống</translation>
 <translation id="7755287808199759310">Cha mẹ của bạn có thể bỏ chặn trang web cho bạn</translation>
@@ -4993,6 +5026,7 @@
 <translation id="7910768399700579500">&amp;Thư mục mới</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Đã thay đổi mật khẩu của bạn trên máy chủ. Vui lòng đăng xuất rồi đăng nhập lại.</translation>
+<translation id="7914583336730284547">Các tệp đã thả này vi phạm chính sách bảo mật của tổ chức bạn. Bạn vẫn muốn tiếp tục thực hiện?</translation>
 <translation id="7915457674565721553">Hãy kết nối Internet để thiết lập quyền kiểm soát của cha mẹ</translation>
 <translation id="7915471803647590281">Vui lòng cho chúng tôi biết điều đang xảy ra trước khi gửi phản hồi.</translation>
 <translation id="7918257978052780342">Đăng ký</translation>
@@ -5090,6 +5124,7 @@
 <translation id="8028803902702117856">Đang tải xuống <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
 <translation id="8028993641010258682">Kích thước</translation>
 <translation id="8030656706657716245">Thêm máy in</translation>
+<translation id="8030852056903932865">Phê duyệt</translation>
 <translation id="8032244173881942855">Không thể truyền tab.</translation>
 <translation id="8033827949643255796">đã chọn</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Mở tất cả trong &amp;cửa sổ ẩn danh}=1{Mở trong &amp;cửa sổ ẩn danh}other{Mở tất cả (#) trong &amp;cửa sổ ẩn danh}}</translation>
@@ -5410,6 +5445,7 @@
 <translation id="8472623782143987204">được hỗ trợ bằng phần cứng</translation>
 <translation id="8473863474539038330">Địa chỉ và các tùy chọn khác</translation>
 <translation id="8475313423285172237">Một chương trình khác trên máy tính của bạn đã thêm một tiện ích có thể thay đổi cách Chrome hoạt động.</translation>
+<translation id="8476659515398963495">Dữ liệu đã dán này vi phạm chính sách bảo mật của tổ chức bạn. Bạn vẫn muốn tiếp tục thực hiện?</translation>
 <translation id="8477241577829954800">Đã thay thế</translation>
 <translation id="8477384620836102176">&amp;Chung</translation>
 <translation id="8480082892550707549">Ngay cả khi bạn đã tải xuống các tệp từ trang web này trước đó, trang web này có thể tạm thời không an toàn (bị tấn công). Hãy thử tải xuống tệp này sau.</translation>
@@ -5463,6 +5499,7 @@
 <translation id="8547013269961688403">Bật tính năng phóng to toàn bộ màn hình</translation>
 <translation id="85486688517848470">Giữ phím Tìm kiếm để chuyển đổi chức năng của các phím hàng trên cùng</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 mục}other{# mục}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> vẫn có thể chỉnh sửa các tệp trong <ph name="FOLDERNAME" /> cho đến khi bạn đóng hết tất cả các thẻ <ph name="ORIGIN" /></translation>
 <translation id="8551388862522347954">Giấy phép</translation>
 <translation id="8553342806078037065">Quản lý những người khác</translation>
 <translation id="8554899698005018844">Không có ngôn ngữ nào</translation>
@@ -5521,6 +5558,7 @@
 <translation id="8637688295594795546">Có sẵn bản cập nhật hệ thống. Đang chuẩn bị tải xuống…</translation>
 <translation id="8639047128869322042">Đang kiểm tra để tìm phần mềm độc hại...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – Cổng</translation>
+<translation id="8641606876632989680">Chrome sẽ thông báo khi mật khẩu bạn dùng để đăng nhập đã bị lộ</translation>
 <translation id="8642900771896232685">2 giây</translation>
 <translation id="8642947597466641025">Phóng to Văn bản</translation>
 <translation id="8644655801811752511">Không thể đặt lại khóa bảo mật này. Thử đặt lại khóa này ngay sau khi cắm.</translation>
@@ -5570,6 +5608,7 @@
 <translation id="869884720829132584">Menu ứng dụng</translation>
 <translation id="869891660844655955">Ngày hết hạn</translation>
 <translation id="8703346390800944767">Bỏ qua quảng cáo</translation>
+<translation id="870341961648617780">Các tùy chọn cài đặt bảo mật nâng cao và duyệt web an toàn</translation>
 <translation id="8705331520020532516">Số Sê-ri</translation>
 <translation id="8705580154597116082">Wi-Fi khả dụng qua điện thoại</translation>
 <translation id="8705629851992224300">Không thể đọc khóa bảo mật của bạn</translation>
@@ -5615,6 +5654,7 @@
 <translation id="874689135111202667">{0,plural, =1{Bạn muốn tải một tệp lên trang web này?}other{Bạn muốn tải # tệp lên trang web này?}}</translation>
 <translation id="8748384418490037181">Tùy chọn Smart Lock</translation>
 <translation id="8749863574775030885">Truy cập thiết bị USB từ nhà cung cấp không xác định</translation>
+<translation id="8750133148106010815">Để khởi động Google Play, <ph name="ORGANIZATION_NAME" /> yêu cầu bạn phải sao lưu dữ liệu và đặt lại thiết bị Chromebook này về trạng thái cài đặt ban đầu.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> muốn kết nối với một cổng nối tiếp</translation>
 <translation id="8754200782896249056">&lt;p&gt;Khi chạy <ph name="PRODUCT_NAME" /> trong môi trường màn hình được hỗ trợ, cài đặt proxy hệ thống sẽ được sử dụng.  Tuy nhiên, hệ thống của bạn không được hỗ trợ hoặc đã xảy ra sự cố khi khởi chạy cấu hình hệ thống của bạn.&lt;/p&gt;
 
@@ -5669,6 +5709,7 @@
 <translation id="8809147117840417135">Xanh két nhạt</translation>
 <translation id="8813698869395535039">Không thể đăng nhập vào <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">trang giấy</translation>
+<translation id="8813872945700551674">Yêu cầu cha mẹ phê duyệt "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="8813969267212093033">Văn bản trên hệ thống sẽ hiển thị bằng ngôn ngữ này</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">Vui lòng đợi, tệp lưu trữ đang được quét...</translation>
@@ -5949,6 +5990,7 @@
 <translation id="9203398526606335860">&amp;Bật cấu hình</translation>
 <translation id="9203904171912129171">Chọn thiết bị</translation>
 <translation id="9203962528777363226">Quản trị viên của thiết bị này đã vô hiệu hóa thêm người dùng mới</translation>
+<translation id="9211177926627870898">Yêu cầu cập nhật</translation>
 <translation id="9214520840402538427">Rất tiếc! Việc chạy thuộc tính thời gian cài đặt đã hết thời gian. Vui lòng liên hệ với người đại diện hỗ trợ của bạn.</translation>
 <translation id="9214695392875603905">Cupcake</translation>
 <translation id="9215293857209265904">Đã thêm "<ph name="EXTENSION_NAME" />"</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 9b26e9a1b..a3e721e7 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">要一并清除以下应用内的数据吗?</translation>
 <translation id="1045692658517323508">{0,plural, =1{请在 1 分钟内更新}other{请在 # 分钟内更新}}</translation>
 <translation id="1046635659603195359">您似乎已在另一部设备上为 Google 助理设置了 Voice Match 功能。这些先前的录音可用于在此设备上创建语音模型,创建过程通常会在 1 分钟内完成。</translation>
+<translation id="104710386808485638">重启 Linux?</translation>
 <translation id="1047431265488717055">复制链接文字(&amp;X)</translation>
 <translation id="1048286738600630630">显示</translation>
 <translation id="1049743911850919806">无痕</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">请登录“<ph name="TOKEN_NAME" />”,导出客户端证书。</translation>
 <translation id="1163931534039071049">查看框架的源代码(&amp;V)</translation>
 <translation id="1164674268730883318">要关闭 Smart Lock(<ph name="DEVICE_TYPE" /> 版)吗?</translation>
+<translation id="1164891049599601209">被在诈骗网站上使用了</translation>
 <translation id="1164899421101904659">输入 PIN 码解锁密钥</translation>
 <translation id="1165039591588034296">错误</translation>
 <translation id="1166212789817575481">关闭右侧标签页</translation>
@@ -395,6 +397,7 @@
 <translation id="1545177026077493356">自动自助服务终端模式</translation>
 <translation id="1545775234664667895">已安装主题背景“<ph name="THEME_NAME" />”</translation>
 <translation id="1546280085599573572">此扩展程序更改了您点击“主页”按钮后系统显示的页面。</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" />想安装一款能够执行以下操作的<ph name="EXTENSION_TYPE" />:</translation>
 <translation id="1549275686094429035">已启用 ARC</translation>
 <translation id="1549788673239553762">“<ph name="APP_NAME" />”想访问 <ph name="VOLUME_NAME" />。它可能会修改或删除您的文件。</translation>
 <translation id="1553538517812678578">无限制</translation>
@@ -493,6 +496,7 @@
 <translation id="1679806121152819234">插件虚拟机</translation>
 <translation id="1679810534535368772">确定要退出吗?</translation>
 <translation id="167983332380191032">管理服务向您发送了一项 HTTP 错误。</translation>
+<translation id="1680841347983561661">请稍等片刻,然后再次尝试启动 Google Play。</translation>
 <translation id="1680849702532889074">安装 Linux 应用时出错。</translation>
 <translation id="16815041330799488">不允许网站查看复制到剪贴板的文字和图片</translation>
 <translation id="1682548588986054654">打开新的无痕式窗口</translation>
@@ -746,6 +750,7 @@
 <translation id="2025632980034333559">“<ph name="APP_NAME" />”崩溃了。点击此信息框,以重新加载该扩展程序。</translation>
 <translation id="2025891858974379949">不安全内容</translation>
 <translation id="202918510990975568">您必须输入密码,才能配置安全性和登录</translation>
+<translation id="2030672406208960151">打开恢复终端</translation>
 <translation id="2034346955588403444">添加其他 Wi-Fi 网络</translation>
 <translation id="203574396658008164">从锁定屏幕启用备注功能</translation>
 <translation id="2037445849770872822">此 Google 帐号的监管功能已设置完毕。要设置更多家长控制,请选择“继续”。
@@ -898,6 +903,7 @@
 <translation id="2220572644011485463">PIN 码或密码</translation>
 <translation id="2224444042887712269">此设置属于<ph name="OWNER_EMAIL" />。</translation>
 <translation id="2224551243087462610">修改文件夹名</translation>
+<translation id="2225864335125757863">为确保您的帐号安全无虞,请立即更改这些密码:</translation>
 <translation id="2226449515541314767">已禁止该网站完全控制 MIDI 设备。</translation>
 <translation id="222704500187107962">待您退出当前的无痕式会话后,此例外情况将被自动移除</translation>
 <translation id="2227179592712503583">移除推荐内容</translation>
@@ -1018,6 +1024,7 @@
 <translation id="2387052489799050037">转到主屏幕</translation>
 <translation id="2387458720915042159">代理连接类型</translation>
 <translation id="2391419135980381625">标准字体</translation>
+<translation id="2392163307141705938">您已达到您家长为 <ph name="IDS_SHORT_PRODUCT_NAME" /> 设定的使用时限。</translation>
 <translation id="2392369802118427583">激活</translation>
 <translation id="2394566832561516196">系统将在您下次重新加载网页后清除设置。</translation>
 <translation id="2395616325548404795">您的 <ph name="DEVICE_TYPE" /> 已成功注册企业管理服务,但未能发送其资产和位置信息。请通过管理控制台为此设备手动输入这些信息。</translation>
@@ -1082,6 +1089,7 @@
 <translation id="247949520305900375">分享音频</translation>
 <translation id="2480868415629598489">修改您复制和粘贴的数据</translation>
 <translation id="2482878487686419369">通知</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> 将能够修改“<ph name="FILENAME" />”中的内容,除非您关闭所有 <ph name="ORIGIN" /> 标签页</translation>
 <translation id="2484959914739448251">要想清除您的所有已同步设备中的浏览数据以及您的 Google 帐号中的浏览数据,请<ph name="BEGIN_LINK" />输入您的密码<ph name="END_LINK" />。</translation>
 <translation id="2485005079599453134">密码已保存在此设备上</translation>
 <translation id="2485422356828889247">卸载</translation>
@@ -1295,6 +1303,7 @@
 <translation id="274290345632688601">正在恢复 Linux 应用和文件</translation>
 <translation id="2743387203779672305">复制到剪贴板</translation>
 <translation id="2745080116229976798">Microsoft 合格的部署</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> 已被暂停</translation>
 <translation id="2749756011735116528">登录<ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">检查拼写和语法</translation>
 <translation id="2751739896257479635">EAP 阶段 2 身份验证</translation>
@@ -1303,6 +1312,7 @@
 <translation id="275662540872599901">已关闭屏幕</translation>
 <translation id="2762441749940182211">已禁止使用摄像头</translation>
 <translation id="2765217105034171413">小</translation>
+<translation id="2766161002040448006">询问家长的意见</translation>
 <translation id="276969039800130567">您已用 <ph name="USER_EMAIL_ADDRESS" /> 的身份登录。</translation>
 <translation id="2770465223704140727">从列表中移除</translation>
 <translation id="2770690685823456775">将您的密码导出到其他文件夹</translation>
@@ -1554,6 +1564,7 @@
 <translation id="3115580024857770654">全部收起</translation>
 <translation id="3117362587799608430">基座不完全兼容</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" />帮助</translation>
+<translation id="3118654181216384296">请稍等片刻,然后再次尝试启动 Linux。</translation>
 <translation id="3120430004221004537">“<ph name="DEVICE_NAME" />”上某项指定操作的加密强度不足。</translation>
 <translation id="3121793941267913344">重置这台<ph name="IDS_SHORT_PRODUCT_NAME" />设备</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1563,6 +1574,7 @@
 <translation id="3127156390846601284">此操作会删除所显示的全部网站在您设备上存储的所有数据。要继续吗?</translation>
 <translation id="3127860049873093642">为避免遇到充电/性能方面的问题,请使用兼容的戴尔或 USB C 型电源适配器。</translation>
 <translation id="3129173833825111527">左侧页边距</translation>
+<translation id="3129215702932019810">启动此应用时出错</translation>
 <translation id="3130528281680948470">您的设备将被重置,且所有用户帐号和本地数据都将移除。此操作无法撤消。</translation>
 <translation id="313205617302240621">忘记了密码?</translation>
 <translation id="3132996321662585180">每日刷新</translation>
@@ -1778,6 +1790,7 @@
 <translation id="3441653493275994384">屏幕</translation>
 <translation id="3445925074670675829">USB-C 设备</translation>
 <translation id="344630545793878684">读取您在一些网站上的数据</translation>
+<translation id="3448086340637592206">Google Chrome 和 Chrome 操作系统附加条款</translation>
 <translation id="3448492834076427715">更新帐号</translation>
 <translation id="3449839693241009168">按 <ph name="SEARCH_KEY" /> 可向<ph name="EXTENSION_NAME" />发送命令</translation>
 <translation id="3450157232394774192">闲置状态占用率</translation>
@@ -2125,6 +2138,7 @@
 <translation id="3873423927483480833">显示 PIN 码</translation>
 <translation id="3873915545594852654">ARC++ 出问题了。</translation>
 <translation id="3879748587602334249">下载管理器</translation>
+<translation id="3881321138433527084">“安全浏览”功能已关闭。要确保在线安全,请开启它。</translation>
 <translation id="3882165008614329320">来自摄像头或文件的现有视频</translation>
 <translation id="3886446263141354045">系统已将您想访问此网站的请求发送给<ph name="NAME" /></translation>
 <translation id="3888550877729210209">使用“<ph name="LOCK_SCREEN_APP_NAME" />”创建记事</translation>
@@ -2465,6 +2479,7 @@
 <translation id="4384652540891215547">激活该扩展程序</translation>
 <translation id="438503109373656455">小马</translation>
 <translation id="4387004326333427325">身份验证证书遭到远程拒绝</translation>
+<translation id="4387890294700445764">已泄露的密码</translation>
 <translation id="4389091756366370506">用户 <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{无痕模式}other{# 个已打开的无痕式窗口}}</translation>
 <translation id="439266289085815679">蓝牙配置由 <ph name="USER_EMAIL" /> 控制。</translation>
@@ -2496,6 +2511,7 @@
 <translation id="4429030830601238961">此数据违反了贵组织的安全政策,因此无法粘贴。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4430369329743628066">已添加书签</translation>
+<translation id="4432621511648257259">密码不正确</translation>
 <translation id="4434045419905280838">弹出式窗口和重定向</translation>
 <translation id="443454694385851356">旧版(不安全)</translation>
 <translation id="443475966875174318">更新或卸载不兼容的应用</translation>
@@ -2745,6 +2761,7 @@
 <translation id="4808667324955055115">已拦截弹出式窗口:</translation>
 <translation id="480990236307250886">打开主页</translation>
 <translation id="4811503964269049987">为所选标签页建组</translation>
+<translation id="4811818760963189951">已被关闭,因为您停用了历史记录同步功能</translation>
 <translation id="4813136279048157860">我的图片</translation>
 <translation id="4813512666221746211">网络错误</translation>
 <translation id="4814378367953456825">请为此指纹输入一个名称</translation>
@@ -2774,6 +2791,7 @@
 <translation id="4850669014075537160">滚动</translation>
 <translation id="4850886885716139402">视图</translation>
 <translation id="4853020600495124913">在新窗口中打开(&amp;O)</translation>
+<translation id="4854317507773910281">请选择家长帐号以寻求批准</translation>
 <translation id="485480310608090163">更多设置和权限</translation>
 <translation id="4856478137399998590">您的移动数据服务已激活,可以立即使用</translation>
 <translation id="4856855265648545577">当设备处于平板电脑模式时,在工具栏中显示“启动器”、“返回”和“概览”按钮。如果启用了 ChromeVox(语音反馈)或开关控制,系统即会开启此设置。</translation>
@@ -2910,10 +2928,12 @@
 <translation id="5040823038948176460">更多内容设置</translation>
 <translation id="5042282098504489593">打开“设置”以将<ph name="USB_DEVICE_NAME" />连接到 Linux</translation>
 <translation id="5043913660911154449">或指定您的打印机 PPD <ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">已被关闭,因为您使用密码加密了同步数据</translation>
 <translation id="5045550434625856497">密码不正确</translation>
 <translation id="504561833207953641">正在现有的浏览器会话中打开。</translation>
 <translation id="5047421709274785093">禁止网站使用动作传感器和光传感器</translation>
 <translation id="5050042263972837708">群组名称</translation>
+<translation id="5051073330196664891">Google 通用服务条款 (uToS)</translation>
 <translation id="5051836348807686060">所选语言不支持拼写检查</translation>
 <translation id="5052499409147950210">修改网站</translation>
 <translation id="5053604404986157245">随机生成的 TPM 密码不可用。这是执行 Powerwash 之后的正常现象。</translation>
@@ -2951,6 +2971,7 @@
 <translation id="5097002363526479830">无法连接到网络“<ph name="NAME" />”:<ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">打开所有书签</translation>
 <translation id="5101839224773798795">光标停止时自动点击</translation>
+<translation id="5107443654503185812">某个扩展程序关闭了“安全浏览”功能</translation>
 <translation id="5108967062857032718">设置 - 移除 Android 应用</translation>
 <translation id="5109044022078737958">女运动员</translation>
 <translation id="5111646998522066203">退出无痕模式</translation>
@@ -3037,6 +3058,7 @@
 <translation id="523505283826916779">无障碍设置</translation>
 <translation id="5235750401727657667">替换您在打开新标签页时看到的页面</translation>
 <translation id="5238278114306905396">已自动删除应用“<ph name="EXTENSION_NAME" />”。</translation>
+<translation id="5239730228370806996">您拖放的数据违反了贵组织的安全政策。仍想继续?</translation>
 <translation id="5241128660650683457">读取您在访问的网站上的所有数据</translation>
 <translation id="5242724311594467048">要启用“<ph name="EXTENSION_NAME" />”吗?</translation>
 <translation id="5243522832766285132">请稍后重试</translation>
@@ -3324,6 +3346,7 @@
 <translation id="5618075537869101857">糟糕!无法启动该自助服务终端应用。</translation>
 <translation id="5618333180342767515">(这可能需要几分钟时间)</translation>
 <translation id="56197088284879152">远程设备“<ph name="DEVICE_NAME" />”的网络连接出现拥塞。</translation>
+<translation id="5620163320393916465">尚未保存任何密码</translation>
 <translation id="5620549857835247159">当设备处于平板电脑模式时,在工具栏中显示“启动器”、“返回”和“概览”按钮。</translation>
 <translation id="5620568081365989559">DevTools 请求获得对 <ph name="FOLDER_PATH" /> 的完整访问权限。请确保您不会泄露任何敏感信息。</translation>
 <translation id="5620612546311710611">使用情况统计信息</translation>
@@ -3417,6 +3440,7 @@
 <translation id="5747785204778348146">开发者版本 - 不稳定</translation>
 <translation id="5747809636523347288">粘贴并转到 <ph name="URL" /></translation>
 <translation id="5750324801516359607">远</translation>
+<translation id="5751887393582880060">您上传的数据违反了贵组织的安全政策。仍想继续?</translation>
 <translation id="5756163054456765343">帮助中心(&amp;E)</translation>
 <translation id="5759728514498647443">您通过“<ph name="APP_NAME" />”发送以进行打印的文档可由“<ph name="APP_NAME" />”读取。</translation>
 <translation id="5763751966069581670">未找到任何 USB 设备</translation>
@@ -3626,6 +3650,7 @@
 <translation id="6040852767465482106">匿名身份</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google 的位置信息服务会使用 WLAN、移动网络和传感器等来源协助估测您设备所在的位置。<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />您可以通过关闭相应设备上的主要“位置信息”设置来关闭位置信息服务。此外,您还可以在“位置信息”设置中关闭那些使用 WLAN、移动网络和传感器来获取位置信息的功能。<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> 将能够查看“<ph name="FOLDERNAME" />”内的文件,除非您关闭所有 <ph name="ORIGIN" /> 标签页</translation>
 <translation id="6041155700700864984">退出全屏</translation>
 <translation id="604124094241169006">自动</translation>
 <translation id="6042308850641462728">更多</translation>
@@ -3687,6 +3712,7 @@
 <translation id="6104311680260824317">无法将此设备加入到该网域中。相应服务器不支持所指定的 Kerberos 加密类型。请前往“更多选项”以检查加密设置。</translation>
 <translation id="6104641575223043670"><ph name="ORGANIZATION_NAME" />要求立即更新此设备</translation>
 <translation id="6106186653986077033">插件虚拟机必须获得许可</translation>
+<translation id="6107047744202598802">允许网站记住您的访问行为并跟踪您在网上的活动</translation>
 <translation id="6112294629795967147">触摸即可调整大小</translation>
 <translation id="6112727384379533756">添加票据</translation>
 <translation id="6112931163620622315">请查看您的手机</translation>
@@ -3765,6 +3791,7 @@
 <translation id="622537739776246443">个人资料将被删除</translation>
 <translation id="6225475702458870625">可通过您的<ph name="PHONE_NAME" />使用数据网络连接</translation>
 <translation id="6226777517901268232">私钥文件(选填)</translation>
+<translation id="6227280783235722609">扩展程序</translation>
 <translation id="6228691855869374890">此网站可完全控制 MIDI 设备。</translation>
 <translation id="6228720835160974792">为此图片生成二维码</translation>
 <translation id="6229890768313448549">无法加载《Google Play 服务条款》。请重试。</translation>
@@ -3816,6 +3843,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> 的下载方式实属异常,因此它可能存在危险。</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{您的网络中有 1 台新打印机}other{您的网络中有多台新打印机}}</translation>
 <translation id="6286708577777130801">保存的密码详细信息</translation>
+<translation id="6291163159361301370">根据 <ph name="ORGANIZATION_NAME" /> 的要求,您必须先备份自己的数据并将此 Chromebook 恢复出厂设置,然后才能启动 Linux。</translation>
 <translation id="6291949900244949761">当网站要访问 USB 设备时询问您(推荐)</translation>
 <translation id="6291953229176937411">在 Finder 中显示(&amp;S)</translation>
 <translation id="6295158916970320988">所有网站</translation>
@@ -4012,6 +4040,7 @@
 <translation id="6561726789132298588">Enter</translation>
 <translation id="656293578423618167">该文件的路径或名称过长。请以较短的名称保存或保存到其他位置。</translation>
 <translation id="6563469144985748109">您的管理员尚未批准此网站</translation>
+<translation id="6565955132287672866">您的设备未正确关闭。要使用 Linux(Beta 版),您必须重启它。</translation>
 <translation id="6567688344210276845">无法加载网页操作的“<ph name="ICON" />”图标。</translation>
 <translation id="6569934958368283244">其他人</translation>
 <translation id="657402800789773160">重新加载此页(&amp;R)</translation>
@@ -4509,6 +4538,7 @@
 <translation id="7258225044283673131">此应用无响应。请选择“强制关闭”以关闭此应用。</translation>
 <translation id="7258697411818564379">您的 PIN 码已添加</translation>
 <translation id="7262004276116528033">此登录服务由 <ph name="SAML_DOMAIN" /> 托管</translation>
+<translation id="7266898409676782635">接收 <ph name="DEVICE_TYPE" /> 相关提示、优惠和动态,并分享反馈。可随时退订。</translation>
 <translation id="7268127947535186412">此设置由设备所有者管理。</translation>
 <translation id="7270858098575133036">当网站想使用系统专有消息访问 MIDI 设备时询问您</translation>
 <translation id="7272674038937250585">未提供说明</translation>
@@ -4582,6 +4612,7 @@
 <translation id="7364796246159120393">选择文件</translation>
 <translation id="7366415735885268578">添加网站</translation>
 <translation id="7366909168761621528">浏览数据</translation>
+<translation id="7367714965999718019">二维码生成器</translation>
 <translation id="736877393389250337">无法在<ph name="ALTERNATIVE_BROWSER_NAME" />中打开 <ph name="URL" />。请与您的系统管理员联系。</translation>
 <translation id="7370592524170198497">以太网 EAP:</translation>
 <translation id="7371006317849674875">开始时间</translation>
@@ -4839,8 +4870,10 @@
 <translation id="7737238973539693982">删除 Linux(测试版)</translation>
 <translation id="7740996059027112821">标准</translation>
 <translation id="7744047395460924128">查看您的打印记录</translation>
+<translation id="7744192722284567281">遭遇了数据泄露</translation>
 <translation id="7746457520633464754">为了检测危险应用和网站,Chrome 会将您所访问的部分网页的网址、有限的系统信息以及部分网页内容发送给 Google</translation>
 <translation id="7750228210027921155">画中画</translation>
+<translation id="7751229152614300329">“安全浏览”功能已更新,正在保护您免受有害网站及下载内容的侵扰</translation>
 <translation id="7751260505918304024">全部显示</translation>
 <translation id="7754704193130578113">下载前询问每个文件的保存位置</translation>
 <translation id="7755287808199759310">您的父亲/母亲可为您取消屏蔽此网站</translation>
@@ -4988,6 +5021,7 @@
 <translation id="7910768399700579500">新建文件夹(&amp;N)</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">您已在服务器上更改密码。请先退出,然后重新登录。</translation>
+<translation id="7914583336730284547">您拖放的文件违反了贵组织的安全政策。仍想继续?</translation>
 <translation id="7915457674565721553">请连接到互联网以设置家长控制</translation>
 <translation id="7915471803647590281">请先告诉我们所发生的情况,然后再发送反馈。</translation>
 <translation id="7918257978052780342">注册</translation>
@@ -5085,6 +5119,7 @@
 <translation id="8028803902702117856">正在下载“<ph name="FILE_NAME" />”,大小为 <ph name="SIZE" /></translation>
 <translation id="8028993641010258682">大小</translation>
 <translation id="8030656706657716245">添加打印机</translation>
+<translation id="8030852056903932865">批准</translation>
 <translation id="8032244173881942855">无法投射标签页。</translation>
 <translation id="8033827949643255796">已选中</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{在隐身窗口中打开全部网址(&amp;I)}=1{在隐身窗口中打开 1 个网址(&amp;I)}other{在隐身窗口中打开全部(# 个)网址(&amp;I)}}</translation>
@@ -5404,6 +5439,7 @@
 <translation id="8472623782143987204">硬件支持</translation>
 <translation id="8473863474539038330">地址和其他信息</translation>
 <translation id="8475313423285172237">您计算机上的其他程序添加了一个扩展程序,该扩展程序可能会改变 Chrome 的工作方式。</translation>
+<translation id="8476659515398963495">您粘贴的数据违反了贵组织的安全政策。仍想继续?</translation>
 <translation id="8477241577829954800">被取代</translation>
 <translation id="8477384620836102176">基本信息(&amp;G)</translation>
 <translation id="8480082892550707549">即使您之前从该网站下载过文件,该网站也可能暂时存在安全隐患(遭到黑客入侵)。请稍后再尝试下载此文件。</translation>
@@ -5457,6 +5493,7 @@
 <translation id="8547013269961688403">启用全屏放大镜</translation>
 <translation id="85486688517848470">按住搜索键可切换顶行键的行为</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 项内容}other{# 项内容}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> 将能够修改“<ph name="FOLDERNAME" />”内的文件,除非您关闭所有 <ph name="ORIGIN" /> 标签页</translation>
 <translation id="8551388862522347954">许可</translation>
 <translation id="8553342806078037065">管理其他用户</translation>
 <translation id="8554899698005018844">无语言</translation>
@@ -5515,6 +5552,7 @@
 <translation id="8637688295594795546">有系统更新,开始下载...</translation>
 <translation id="8639047128869322042">正在查找有害软件…</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - 端口</translation>
+<translation id="8641606876632989680">当您使用已泄露的密码登录时,Chrome 会通知您</translation>
 <translation id="8642900771896232685">2 秒</translation>
 <translation id="8642947597466641025">放大文字</translation>
 <translation id="8644655801811752511">无法重置此安全密钥。请尝试在插入此密钥后立即重置它。</translation>
@@ -5564,6 +5602,7 @@
 <translation id="869884720829132584">应用菜单</translation>
 <translation id="869891660844655955">截止日期</translation>
 <translation id="8703346390800944767">跳过广告</translation>
+<translation id="870341961648617780">安全浏览和高级安全设置</translation>
 <translation id="8705331520020532516">序列号</translation>
 <translation id="8705580154597116082">可通过手机使用 Wi-Fi</translation>
 <translation id="8705629851992224300">无法读取您的安全密钥</translation>
@@ -5609,6 +5648,7 @@
 <translation id="874689135111202667">{0,plural, =1{将 1 个文件上传到此网站?}other{将 # 个文件上传到此网站?}}</translation>
 <translation id="8748384418490037181">Smart Lock 选项</translation>
 <translation id="8749863574775030885">访问来自未知供应商的 USB 设备</translation>
+<translation id="8750133148106010815">根据 <ph name="ORGANIZATION_NAME" /> 的要求,您必须先备份自己的数据并将此 Chromebook 恢复出厂设置,然后才能启动 Google Play。</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> 想连接到串行端口</translation>
 <translation id="8754200782896249056">&lt;p&gt;在受支持的桌面环境中运行<ph name="PRODUCT_NAME" />时,将使用系统代理设置。但您的系统不受支持,或启动系统配置时出现问题。&lt;/p&gt;
 
@@ -5663,6 +5703,7 @@
 <translation id="8809147117840417135">浅蓝绿色</translation>
 <translation id="8813698869395535039">无法登录 <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">张纸</translation>
+<translation id="8813872945700551674">请让家长批准安装“<ph name="EXTENSION_NAME" />”</translation>
 <translation id="8813969267212093033">系统文字是以这种语言显示的</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">请稍候,正在扫描该归档文件…</translation>
@@ -5943,6 +5984,7 @@
 <translation id="9203398526606335860">分析已启用(&amp;P)</translation>
 <translation id="9203904171912129171">选择设备</translation>
 <translation id="9203962528777363226">此设备的管理员已禁止添加新用户</translation>
+<translation id="9211177926627870898">需要更新</translation>
 <translation id="9214520840402538427">糟糕!安装时间属性的初始化已过期,请与您的支持代表联系。</translation>
 <translation id="9214695392875603905">纸杯蛋糕</translation>
 <translation id="9215293857209265904">已添加“<ph name="EXTENSION_NAME" />”</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 32180a9..566735c 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">要清除這些裝置的資料嗎?</translation>
 <translation id="1045692658517323508">{0,plural, =1{請在 1 分鐘內更新}other{請在 # 分鐘內更新}}</translation>
 <translation id="1046635659603195359">您似乎已在另一部裝置上透過「Google 助理」設定了 Voice Match 功能。先前的錄音可在此裝置上用於建立語音模型,過程需時少於一分鐘。</translation>
+<translation id="104710386808485638">要重新啟動 Linux 嗎?</translation>
 <translation id="1047431265488717055">複製連結文字(&amp;X)</translation>
 <translation id="1048286738600630630">顯示</translation>
 <translation id="1049743911850919806">無痕模式</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">登入 <ph name="TOKEN_NAME" /> 即可匯出用戶端憑證。</translation>
 <translation id="1163931534039071049">檢視頁框原始碼(&amp;V)</translation>
 <translation id="1164674268730883318">要關閉 Smart Lock (<ph name="DEVICE_TYPE" /> 版) 嗎?</translation>
+<translation id="1164891049599601209">已在欺詐網站上輸入</translation>
 <translation id="1164899421101904659">輸入 PIN 解鎖金鑰</translation>
 <translation id="1165039591588034296">錯誤</translation>
 <translation id="1166212789817575481">關閉右側分頁</translation>
@@ -205,6 +207,7 @@
 <translation id="1274977772557788323">Adobe Flash Player 儲存設定</translation>
 <translation id="1274997165432133392">Cookie 和其他網站數據</translation>
 <translation id="1280820357415527819">正在搜尋流動網絡</translation>
+<translation id="1280965841156951489">編輯檔案</translation>
 <translation id="1282420830958964167">您使用「<ph name="APP_NAME" />」的時間已達家長設定的限制,明天可以使用 <ph name="TIME_LIMIT" />。</translation>
 <translation id="1285320974508926690">永不翻譯此網站</translation>
 <translation id="1285484354230578868">將數據儲存在「Google 雲端硬碟」帳戶中</translation>
@@ -398,6 +401,7 @@
 <translation id="1545177026077493356">自動 Kiosk 模式</translation>
 <translation id="1545775234664667895">已安裝「<ph name="THEME_NAME" />」主題</translation>
 <translation id="1546280085599573572">擴充功能已變更您按下 [主頁] 按鈕時所顯示的網頁。</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" />要求安裝具有下列功能的<ph name="EXTENSION_TYPE" />:</translation>
 <translation id="1549275686094429035">已啟用 ARC</translation>
 <translation id="1549788673239553762">「<ph name="APP_NAME" />」想要存取「<ph name="VOLUME_NAME" />」。它可以修改或刪除您的檔案。</translation>
 <translation id="1553538517812678578">無限制</translation>
@@ -496,6 +500,7 @@
 <translation id="1679806121152819234">外掛程式 VM</translation>
 <translation id="1679810534535368772">確定要離開嗎?</translation>
 <translation id="167983332380191032">裝置管理服務已傳送 HTTP 錯誤。</translation>
+<translation id="1680841347983561661">請稍後再嘗試重新啟動 Google Play。</translation>
 <translation id="1680849702532889074">安裝 Linux 應用程式時發生錯誤。</translation>
 <translation id="16815041330799488">不允許網站查看複製到剪貼簿的文字和圖片</translation>
 <translation id="1682548588986054654">新增無痕式視窗</translation>
@@ -509,6 +514,7 @@
 <translation id="1692210323591458290">深紫色</translation>
 <translation id="1692799361700686467">系統允許使用多個網站的 Cookie。</translation>
 <translation id="1697150536837697295">藝術</translation>
+<translation id="1697686431566694143">編輯檔案</translation>
 <translation id="1698122934742150150">只限目前的無痕模式工作階段</translation>
 <translation id="1698650002254827833">無法載入應用程式清單,請重試。</translation>
 <translation id="1701062906490865540">移除這個使用者</translation>
@@ -694,6 +700,7 @@
 <translation id="1931152874660185993">未安裝任何組件。</translation>
 <translation id="1932098463447129402">此日期之後</translation>
 <translation id="1933809209549026293">請連接滑鼠或鍵盤。如果您使用藍牙裝置,請確保其已開啟配對功能。</translation>
+<translation id="1936931585862840749">使用數字指定列印份數 (1 至 <ph name="MAX_COPIES" />)。</translation>
 <translation id="1937774647013465102">此裝置使用 <ph name="ARCHITECTURE_DEVICE" />,因此無法匯入容器架構類型 <ph name="ARCHITECTURE_CONTAINER" />。您可嘗試將此容器還原至其他裝置,或透過 Files 應用程式存取此容器圖片內的檔案。</translation>
 <translation id="1938351510777341717">外置 Command 鍵</translation>
 <translation id="1940546824932169984">已連接的裝置</translation>
@@ -749,6 +756,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> 當機了,請按一下這個提示框來重新載入擴充功能。</translation>
 <translation id="2025891858974379949">不安全的內容</translation>
 <translation id="202918510990975568">請輸入您的密碼以進行安全性和登入設定</translation>
+<translation id="2030672406208960151">開啟復原終端機</translation>
 <translation id="2034346955588403444">新增其他 Wi-Fi 網絡</translation>
 <translation id="203574396658008164">從上鎖畫面啟用筆記功能</translation>
 <translation id="2037445849770872822">您已設定此 Google 帳戶的監控功能。如要設定更多家長監控設定,請選取 [繼續]。
@@ -901,6 +909,7 @@
 <translation id="2220572644011485463">PIN 或密碼</translation>
 <translation id="2224444042887712269">這項設定屬於 <ph name="OWNER_EMAIL" />。</translation>
 <translation id="2224551243087462610">編輯資料夾名稱</translation>
+<translation id="2225864335125757863">請立即變更這些密碼,確保帳戶安全:</translation>
 <translation id="2226449515541314767">這個網站已被封鎖,無法全權控制 MIDI 裝置。</translation>
 <translation id="222704500187107962">此例外情況會在您結束目前的無痕模式工作階段後自動移除</translation>
 <translation id="2227179592712503583">移除建議</translation>
@@ -987,6 +996,7 @@
 <translation id="2343747224442182863">將焦點移至此分頁</translation>
 <translation id="2344028582131185878">自動下載</translation>
 <translation id="2345723121311404059">將 1 頁傳送至「<ph name="PRINTER_NAME" />」列印</translation>
+<translation id="2346953515226895098">SODA Service</translation>
 <translation id="2347644257713614136">Hangouts 和 Cast for Education 的使用受《Google 私隱權政策》管限。</translation>
 <translation id="2348176352564285430">應用程式:<ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">已重新載入</translation>
@@ -1021,6 +1031,7 @@
 <translation id="2387052489799050037">前往主畫面</translation>
 <translation id="2387458720915042159">Proxy 連接類型</translation>
 <translation id="2391419135980381625">標準字型</translation>
+<translation id="2392163307141705938">您已達到家長為 <ph name="IDS_SHORT_PRODUCT_NAME" /> 設定的使用時間限制。</translation>
 <translation id="2392369802118427583">啟用</translation>
 <translation id="2394566832561516196">系統將在您重新載入網頁後清除設定</translation>
 <translation id="2395616325548404795">您的 <ph name="DEVICE_TYPE" /> 已成功註冊使用企業管理服務,但無法傳送資產和位置資料。請透過管理控制台為此裝置手動輸入這些資料。</translation>
@@ -1038,6 +1049,7 @@
 <translation id="2422125132043002186">已取消 Linux 還原</translation>
 <translation id="2423578206845792524">另存圖片為(&amp;V)…</translation>
 <translation id="2428510569851653187">請說明分頁當機時您正在執行的動作</translation>
+<translation id="2428939361789119025">關閉 Wi-Fi</translation>
 <translation id="2431027948063157455">無法載入「Google 助理」,請檢查您的網絡連線,然後再試一次。</translation>
 <translation id="2432753757290432042">必須更新 Linux (Beta 版本)</translation>
 <translation id="2433452467737464329">在網址中新增查詢參數即可自動重新整理網頁:chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1085,6 +1097,7 @@
 <translation id="247949520305900375">分享音效檔案</translation>
 <translation id="2480868415629598489">修改您複製並貼上的資料</translation>
 <translation id="2482878487686419369">通知</translation>
+<translation id="2483610039979585156"><ph name="ORIGIN" /> 在您關閉所有 <ph name="ORIGIN" /> 分頁前都能編輯「<ph name="FILENAME" />」</translation>
 <translation id="2484959914739448251">如要從所有已同步的裝置和 Google 帳戶中清除瀏覽資料,請<ph name="BEGIN_LINK" />輸入密碼短語<ph name="END_LINK" />。</translation>
 <translation id="2485005079599453134">已在此裝置上儲存密碼</translation>
 <translation id="2485422356828889247">解除安裝</translation>
@@ -1298,6 +1311,7 @@
 <translation id="274290345632688601">正在還原 Linux 應用程式和檔案</translation>
 <translation id="2743387203779672305">複製到剪貼簿</translation>
 <translation id="2745080116229976798">Microsoft 合格分類</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> 已暫停</translation>
 <translation id="2749756011735116528">登入 <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">檢查拼字及文法</translation>
 <translation id="2751739896257479635">EAP 第 2 階段驗證</translation>
@@ -1306,6 +1320,7 @@
 <translation id="275662540872599901">螢幕已關閉</translation>
 <translation id="2762441749940182211">已禁止使用相機</translation>
 <translation id="2765217105034171413">小</translation>
+<translation id="2766161002040448006">詢問家長</translation>
 <translation id="276969039800130567">以 <ph name="USER_EMAIL_ADDRESS" /> 的身分登入。</translation>
 <translation id="2770465223704140727">從清單中移除</translation>
 <translation id="2770690685823456775">將您的密碼匯出至其他資料夾</translation>
@@ -1452,6 +1467,7 @@
 <translation id="2944060181911631861">傳送使用情況和診斷資料。自動將診斷、裝置及應用程式的使用情況資料傳送至 Google,協助改善您的 Android 使用體驗。這些資料將有助改善系統和應用程式的穩定性和其他效能。部分彙整資料也會用於協助 Google 應用程式與合作夥伴 (例如 Android 開發人員)。如果已開啟其他「網絡及應用程式活動記錄」設定,系統可能會將此資料儲存至您的 Google 帳戶。<ph name="BEGIN_LINK1" />瞭解詳情<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">新增連線</translation>
 <translation id="2947605845283690091">網絡瀏覽速度應該快速流暢。請花一點時間立即<ph name="BEGIN_LINK" />檢查您的擴充功能<ph name="END_LINK" />。</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{已關閉 1 個可能有害的擴充功能,你也可以移除這項擴充功能。}other{已關閉 # 個可能有害的擴充功能,你也可以移除這些擴充功能。}}</translation>
 <translation id="2948300991547862301">前往<ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">一款快速、簡單又安全的新世代網絡瀏覽器。</translation>
 <translation id="2949289451367477459">使用定位服務。允許擁有位置資訊存取權的應用程式和服務使用此裝置的位置資訊。Google 可能會定期收集位置資訊資料,並以匿名方式使用這些資料,以提高定位的精確度及改善適地性服務。<ph name="BEGIN_LINK1" />瞭解詳情<ph name="END_LINK1" /></translation>
@@ -1532,6 +1548,7 @@
 <translation id="3067198179881736288">要安裝應用程式嗎?</translation>
 <translation id="3067198360141518313">執行這個外掛程式</translation>
 <translation id="3071624960923923138">按一下這裡即可開啟新分頁</translation>
+<translation id="3072775339180057696">要允許網站查看「<ph name="FILE_NAME" />」嗎?</translation>
 <translation id="3075874217500066906">Powerwash 程序必須重新啟動才能開始執行。重新啟動後,系統將向您確認是否繼續操作。</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">已刪除您的登入資料。</translation>
@@ -1544,6 +1561,7 @@
 <translation id="3085412380278336437">網站可以使用您的相機</translation>
 <translation id="3085752524577180175">SOCKS 主機</translation>
 <translation id="3088052000289932193">網站正在使用 MIDI 裝置</translation>
+<translation id="3088128611727407543">正在準備應用程式設定檔...</translation>
 <translation id="3088325635286126843">重新命名(&amp;R)…</translation>
 <translation id="3089137131053189723">已清除搜尋</translation>
 <translation id="3090193911106258841">正在存取音訊和視訊輸入</translation>
@@ -1557,6 +1575,7 @@
 <translation id="3115580024857770654">收合全部</translation>
 <translation id="3117362587799608430">插座不完全兼容</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> 說明</translation>
+<translation id="3118654181216384296">請稍後再嘗試重新啟動 Linux。</translation>
 <translation id="3120430004221004537">「<ph name="DEVICE_NAME" />」的指定操作加密不足。</translation>
 <translation id="3121793941267913344">重設這個 <ph name="IDS_SHORT_PRODUCT_NAME" /> 裝置</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1566,6 +1585,7 @@
 <translation id="3127156390846601284">此操作會刪除所有顯示網站在裝置上儲存的全部資料。要繼續嗎?</translation>
 <translation id="3127860049873093642">為避免發生充電和效能的問題,請使用兼容的 Dell 或 USB-C 電源適配器。</translation>
 <translation id="3129173833825111527">左邊界</translation>
+<translation id="3129215702932019810">啟動應用程式時發生錯誤</translation>
 <translation id="3130528281680948470">您的裝置將會重新設定,且所有使用者帳戶和本機資料都會被移除。這項操作無法復原。</translation>
 <translation id="313205617302240621">忘記密碼?</translation>
 <translation id="3132996321662585180">每日重新整理</translation>
@@ -1582,6 +1602,7 @@
     說明:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome 應用程式</translation>
+<translation id="3150693969729403281">立即執行安全檢查</translation>
 <translation id="3150927491400159470">強制重新載入</translation>
 <translation id="315116470104423982">流動數據</translation>
 <translation id="3151539355209957474">開始時間</translation>
@@ -1674,6 +1695,7 @@
 <translation id="3282568296779691940">登入 Chrome</translation>
 <translation id="3285322247471302225">新分頁(&amp;T)</translation>
 <translation id="328571385944182268">要儲存密碼嗎?</translation>
+<translation id="328785681103589998">在你關閉所有 <ph name="ORIGIN" /> 分頁前,<ph name="ORIGIN" /> 都可以查看「<ph name="FILENAME" />」</translation>
 <translation id="3288047731229977326">在開發人員模式中執行擴充功能可能會損害您的電腦。如果您不是開發人員,最好在開發人員模式中停用這些擴充功能,以策安全。</translation>
 <translation id="3289856944988573801">如要檢查更新,請使用以太網絡或 Wi-Fi。</translation>
 <translation id="3290356915286466215">不安全</translation>
@@ -1780,7 +1802,9 @@
 <translation id="3441653493275994384">螢幕</translation>
 <translation id="3445925074670675829">USB-C 裝置</translation>
 <translation id="344630545793878684">讀取您在部分網站上的資料</translation>
+<translation id="3448086340637592206">Google Chrome 和 Chrome 作業系統的《附加條款》</translation>
 <translation id="3448492834076427715">更新帳戶</translation>
+<translation id="3449393517661170867">新分頁視窗</translation>
 <translation id="3449839693241009168">按下「<ph name="SEARCH_KEY" />」即可將指令傳送給 <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">閒置狀態占用率</translation>
 <translation id="3451332697983754369">同步處理我的 <ph name="DEVICE_TYPE" /></translation>
@@ -1961,6 +1985,7 @@
 <translation id="3681311097828166361">多謝您提供的意見反映。您目前處於離線狀態,系統會稍後傳送您的報告。</translation>
 <translation id="3682824389861648626">移動限制</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> 要求共用螢幕</translation>
+<translation id="3686074530047028092">教育版帳戶</translation>
 <translation id="368789413795732264">嘗試寫入檔案時發生錯誤:<ph name="ERROR_TEXT" />。</translation>
 <translation id="3688507211863392146">寫入您在應用程式中開啟的檔案和資料夾</translation>
 <translation id="3688526734140524629">變更版本</translation>
@@ -2029,6 +2054,7 @@
 <translation id="3759933321830434300">封鎖網頁部分內容</translation>
 <translation id="3760460896538743390">檢查背景頁面(&amp;B)</translation>
 <translation id="37613671848467444">在無痕式視窗中開啟(&amp;I)</translation>
+<translation id="3761556954875533505">要允許網站編輯檔案嗎?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{與 1 個 USB 裝置通訊}other{與 # 個 USB 裝置通訊}}</translation>
 <translation id="3765246971671567135">無法讀取離線示範模式的政策。</translation>
 <translation id="3768037234834996183">正在同步您的偏好設定…</translation>
@@ -2127,6 +2153,7 @@
 <translation id="3873423927483480833">顯示 PIN</translation>
 <translation id="3873915545594852654">ARC++ 發生問題。</translation>
 <translation id="3879748587602334249">下載管理員</translation>
+<translation id="3881321138433527084">「安全瀏覽」功能已停用。請啟用此功能以確保網絡安全。</translation>
 <translation id="3882165008614329320">相機或檔案中的現有影片</translation>
 <translation id="3886446263141354045">您想存取此網站的要求已傳送至<ph name="NAME" /></translation>
 <translation id="3888550877729210209">正在使用「<ph name="LOCK_SCREEN_APP_NAME" />」寫筆記</translation>
@@ -2163,6 +2190,7 @@
 <translation id="3927932062596804919">拒絕</translation>
 <translation id="3928570707778085600">要儲存變更至「<ph name="FILE_OR_FOLDER_NAME" />」嗎?</translation>
 <translation id="3929426037718431833">這些擴充程式可查看並變更此網站的資料。</translation>
+<translation id="3930155420525972941">將群組移到新視窗</translation>
 <translation id="3930737994424905957">正在尋找裝置</translation>
 <translation id="3930968231047618417">背景顏色</translation>
 <translation id="3933283459331715412">還原 <ph name="USERNAME" /> 中已刪除的密碼</translation>
@@ -2321,6 +2349,7 @@
 <translation id="4130750466177569591">我同意</translation>
 <translation id="413121957363593859">組件</translation>
 <translation id="4131410914670010031">黑白</translation>
+<translation id="4133076602192971179">開啟應用程式以變更密碼</translation>
 <translation id="4136203100490971508">「夜燈模式」將會在日出時自動關閉</translation>
 <translation id="41365691917097717">如繼續操作,系統將允許 ADB 偵錯功能建立及測試 Android 應用程式。請注意,此操作允許安裝未經 Google 驗證的 Android 應用程式,並且需要恢復原廠設定才能停用。</translation>
 <translation id="4138267921960073861">在登入螢幕中顯示使用者名稱和相片</translation>
@@ -2432,6 +2461,7 @@
 <translation id="4330387663455830245">永不翻譯<ph name="LANGUAGE" />內容</translation>
 <translation id="4332976768901252016">設定家長監控設定</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 (使用 RSA 加密)</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{系統管理員已重新開啟 1 個可能有害的擴充功能}other{系統管理員已重新開啟 # 個可能有害的擴充功能}}</translation>
 <translation id="4336434711095810371">清除所有資料</translation>
 <translation id="4336979451636460645">如需查看網絡記錄,請前往:<ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> 想與「<ph name="EXTENSION_NAME" />」應用程式保持通訊</translation>
@@ -2468,6 +2498,7 @@
 <translation id="4384652540891215547">啟用擴充功能</translation>
 <translation id="438503109373656455">赤兔馬</translation>
 <translation id="4387004326333427325">遠端已拒絕驗證憑證</translation>
+<translation id="4387890294700445764">被盜用的密碼</translation>
 <translation id="4389091756366370506">使用者 <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{無痕模式}other{# 開啟無痕式視窗}}</translation>
 <translation id="439266289085815679">藍牙設定由 <ph name="USER_EMAIL" /> 控制。</translation>
@@ -2499,6 +2530,7 @@
 <translation id="4429030830601238961">此資料違反機構的安全性政策,因此無法貼上。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4430369329743628066">已新增書籤</translation>
+<translation id="4432621511648257259">密碼不正確</translation>
 <translation id="4434045419905280838">彈出式視窗和重新導向</translation>
 <translation id="443454694385851356">舊版 (不安全)</translation>
 <translation id="443475966875174318">更新或移除不兼容的應用程式</translation>
@@ -2736,6 +2768,7 @@
 <translation id="4785719467058219317">您目前使用的安全密鑰並未在此網站註冊</translation>
 <translation id="4788092183367008521">請檢查你的網絡連線,然後再試一次。</translation>
 <translation id="4792711294155034829">報告問題(&amp;R)…</translation>
+<translation id="4794810983896241342">更新項目是由<ph name="BEGIN_LINK" />系統管理員<ph name="END_LINK" />管理</translation>
 <translation id="479536056609751218">只限網頁的 HTML 部分</translation>
 <translation id="4798236378408895261">附加<ph name="BEGIN_LINK" />藍牙記錄<ph name="END_LINK" /> (Google 內部)</translation>
 <translation id="4801448226354548035">隱藏帳戶</translation>
@@ -2748,6 +2781,7 @@
 <translation id="4808667324955055115">已封鎖彈出式視窗:</translation>
 <translation id="480990236307250886">開啟首頁</translation>
 <translation id="4811503964269049987">將所選分頁分組</translation>
+<translation id="4811818760963189951">您已停用記錄同步處理功能,因此系統已關閉此功能</translation>
 <translation id="4813136279048157860">我的圖片</translation>
 <translation id="4813512666221746211">網絡錯誤</translation>
 <translation id="4814378367953456825">請輸入此指紋的名稱</translation>
@@ -2777,6 +2811,7 @@
 <translation id="4850669014075537160">捲動</translation>
 <translation id="4850886885716139402">檢視</translation>
 <translation id="4853020600495124913">在新視窗中開啟(&amp;N)</translation>
+<translation id="4854317507773910281">選擇進行審核的家長帳戶</translation>
 <translation id="485480310608090163">更多設定和權限</translation>
 <translation id="4856478137399998590">已啟用您的流動數據服務,您隨時可以使用</translation>
 <translation id="4856855265648545577">使用平板電腦模式時,在檔案櫃中顯示「啟動器」、「返回」和「概覽」按鈕。系統會在您啟用 ChromeVox (朗讀功能) 或「按鈕控制」時開啟此功能。</translation>
@@ -2829,6 +2864,7 @@
 <translation id="4908811072292128752">開啟新分頁,即可同時瀏覽兩個網站</translation>
 <translation id="4909038193460299775">由於此帳戶由 <ph name="DOMAIN" /> 管理,因此系統將會從此裝置中清除您的書籤、記錄、密碼和其他設定。不過,Google 帳戶內仍會儲存您的資料,而您亦可透過「<ph name="BEGIN_LINK" />Google 資訊主頁<ph name="END_LINK" />」管理這些資料。</translation>
 <translation id="4912643508233590958">閒置喚醒</translation>
+<translation id="4916542008280060967">要允許網站編輯「<ph name="FILE_NAME" />」嗎?</translation>
 <translation id="491691592645955587">切換至安全的瀏覽器</translation>
 <translation id="4917385247580444890">強</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> 想與「<ph name="EXTENSION_NAME" />」擴充功能保持通訊</translation>
@@ -2900,6 +2936,7 @@
 <translation id="5017633213534173756">記住</translation>
 <translation id="5018207570537526145">開啟擴充程式網站</translation>
 <translation id="5021750053540820849">尚未更新</translation>
+<translation id="5026806129670917316">開啟 Wi-Fi</translation>
 <translation id="5026874946691314267">不要再顯示這則通知</translation>
 <translation id="5027550639139316293">電郵憑證</translation>
 <translation id="5027562294707732951">新增擴充程式</translation>
@@ -2913,10 +2950,12 @@
 <translation id="5040823038948176460">其他內容設定</translation>
 <translation id="5042282098504489593">開啟「設定」以將 <ph name="USB_DEVICE_NAME" /> 連線至 Linux</translation>
 <translation id="5043913660911154449">或指定打印機的 PPD <ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">您已使用密碼短語加密同步資料,因此系統已停用此功能</translation>
 <translation id="5045550434625856497">密碼不正確</translation>
 <translation id="504561833207953641">正在現有的瀏覽器工作階段中開啟。</translation>
 <translation id="5047421709274785093">禁止網站使用動態和光線感應器</translation>
 <translation id="5050042263972837708">群組名稱</translation>
+<translation id="5051073330196664891">Google 通用服務條款 (uToS)</translation>
 <translation id="5051836348807686060">您所選取的語言不支援拼字檢查功能</translation>
 <translation id="5052499409147950210">編輯網站</translation>
 <translation id="5053604404986157245">無法使用隨機產生的 TPM 密碼。在執行 Powerwash 後,這是正常情況。</translation>
@@ -2954,6 +2993,7 @@
 <translation id="5097002363526479830">無法連線至「<ph name="NAME" />」:<ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">開啟所有書籤</translation>
 <translation id="5101839224773798795">遊標停止時自動點擊</translation>
+<translation id="5107443654503185812">有擴充程式已停用「安全瀏覽」功能</translation>
 <translation id="5108967062857032718">設定 - 移除 Android 應用程式</translation>
 <translation id="5109044022078737958">咪咪</translation>
 <translation id="5111646998522066203">結束無痕模式</translation>
@@ -3009,6 +3049,7 @@
 <translation id="5184063094292164363">JavaScript 控制器(&amp;J)</translation>
 <translation id="5184209580557088469">已有票證使用此使用者名稱</translation>
 <translation id="5184662919967270437">正在更新裝置</translation>
+<translation id="5185359571430619712">查看擴充功能</translation>
 <translation id="5185386675596372454">由於最新版本的「<ph name="EXTENSION_NAME" />」需要更多權限,因此已經停用。</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> 想下載多個檔案</translation>
@@ -3040,6 +3081,7 @@
 <translation id="523505283826916779">協助工具設定</translation>
 <translation id="5235750401727657667">取代新分頁開啟時顯示的網頁</translation>
 <translation id="5238278114306905396">「<ph name="EXTENSION_NAME" />」應用程式已自動移除。</translation>
+<translation id="5239730228370806996">這份拖放的資料違反機構的安全性政策。仍要繼續執行嗎?</translation>
 <translation id="5241128660650683457">讀取您瀏覽網站上的所有資料。</translation>
 <translation id="5242724311594467048">啟用「<ph name="EXTENSION_NAME" />」?</translation>
 <translation id="5243522832766285132">請稍後再試</translation>
@@ -3058,6 +3100,7 @@
 <translation id="5260334392110301220">智能引號</translation>
 <translation id="5260508466980570042">抱歉,系統無法驗證您的電郵地址或密碼,請再試一次。</translation>
 <translation id="5261683757250193089">在「Chrome 網上應用程式商店」中開啟</translation>
+<translation id="5262178194499261222">移除密碼</translation>
 <translation id="5264148714798105376">這可能需要幾分鐘時間。</translation>
 <translation id="5264252276333215551">如要以 Kiosk 模式啟動您的應用程式,請連線至互聯網。</translation>
 <translation id="5265562206369321422">離線超過一週</translation>
@@ -3327,6 +3370,7 @@
 <translation id="5618075537869101857">糟糕,無法啟動 Kiosk 應用程式。</translation>
 <translation id="5618333180342767515">(這可能需要幾分鐘的時間)</translation>
 <translation id="56197088284879152">以下遠端裝置的連線擠塞:「<ph name="DEVICE_NAME" />」。</translation>
+<translation id="5620163320393916465">沒有已儲存的密碼</translation>
 <translation id="5620549857835247159">使用平板電腦模式時,在檔案櫃中顯示「啟動器」、「返回」和「概覽」按鈕。</translation>
 <translation id="5620568081365989559">DevTools 要求全權存取 <ph name="FOLDER_PATH" />。請務必小心,不要透露任何敏感資料。</translation>
 <translation id="5620612546311710611">使用統計資料</translation>
@@ -3420,6 +3464,7 @@
 <translation id="5747785204778348146">開發人員版 - 不穩定</translation>
 <translation id="5747809636523347288">貼上並前往 <ph name="URL" /> (&amp;S)</translation>
 <translation id="5750324801516359607">遠</translation>
+<translation id="5751887393582880060">這個上傳內容違反機構的安全性政策。仍要繼續執行嗎?</translation>
 <translation id="5756163054456765343">說明中心(&amp;E)</translation>
 <translation id="5759728514498647443">您透過「<ph name="APP_NAME" />」傳送列印的文件可使用「<ph name="APP_NAME" />」讀取。</translation>
 <translation id="5763751966069581670">找不到 USB 裝置</translation>
@@ -3481,6 +3526,7 @@
 <translation id="5833726373896279253">只有擁有者才能修改這些設定:</translation>
 <translation id="5834581999798853053">還有大約 <ph name="TIME" /> 分鐘</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - 相機或麥克風錄製中</translation>
+<translation id="5841270259333717135">設定乙太網路</translation>
 <translation id="5842497610951477805">藍牙開關</translation>
 <translation id="5846200638699387931">關聯語法錯誤:<ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">已加入</translation>
@@ -3526,6 +3572,7 @@
 <translation id="5900358982890952556">升級 Linux (Beta 版本)</translation>
 <translation id="5901494423252125310">打印機的外蓋應關上</translation>
 <translation id="5901630391730855834">黃色</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{你已重新開啟 1 個可能有害的擴充功能}other{你已重新開啟 # 個可能有害的擴充功能}}</translation>
 <translation id="5906655207909574370">即將更新至最新版本!重新啟動您的裝置即可完成更新程序。</translation>
 <translation id="5906732635754427568">系統會從裝置中移除與此應用程式相關的資料。</translation>
 <translation id="5908769186679515905">禁止網站執行 Flash</translation>
@@ -3555,6 +3602,7 @@
 <translation id="59324397759951282"><ph name="MANUFACTURER_NAME" /> 的 USB 裝置</translation>
 <translation id="5932881020239635062">序號</translation>
 <translation id="5933376509899483611">時區</translation>
+<translation id="5935656526031444304">管理安全瀏覽功能</translation>
 <translation id="5938002010494270685">有可用的安全性升級</translation>
 <translation id="5939518447894949180">重設</translation>
 <translation id="5941153596444580863">新增使用者…</translation>
@@ -3598,6 +3646,7 @@
 <translation id="5993807461461235661">上載的檔案已加密,且違反機構的安全性政策。</translation>
 <translation id="5997337190805127100">瞭解詳情網站存取權</translation>
 <translation id="6000758707621254961">有 <ph name="RESULT_COUNT" /> 個同「<ph name="SEARCH_TEXT" />」相關嘅搜尋結果</translation>
+<translation id="6002210667729577411">將群組移到新視窗</translation>
 <translation id="6002458620803359783">偏好的聲音</translation>
 <translation id="6006484371116297560">經典主題</translation>
 <translation id="6007240208646052708">無法使用您的語言執行語音搜尋。</translation>
@@ -3629,6 +3678,7 @@
 <translation id="6040852767465482106">匿名身分</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google 的定位服務會使用 Wi-Fi、流動網絡和感應器等來源,以便估計您的裝置的所在位置。<ph name="END_PARAGRAPH1" />
 <ph name="BEGIN_PARAGRAPH2" />關閉裝置的主要位置資訊設定,即可關閉定位服務。您也可以在位置資訊設定中關閉使用 Wi‑Fi、流動網絡和感應器確定位置的功能。<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409"><ph name="ORIGIN" /> 在您關閉所有 <ph name="ORIGIN" /> 分頁前都能查看「<ph name="FOLDERNAME" />」中的檔案</translation>
 <translation id="6041155700700864984">關閉全螢幕模式</translation>
 <translation id="604124094241169006">自動</translation>
 <translation id="6042308850641462728">更多選項</translation>
@@ -3690,6 +3740,7 @@
 <translation id="6104311680260824317">無法將裝置加入網域。伺服器不支援特定的 Kerberos 加密類型。請前往「更多選項」檢查加密設定。</translation>
 <translation id="6104641575223043670">「<ph name="ORGANIZATION_NAME" />」要求立即更新此裝置</translation>
 <translation id="6106186653986077033">外掛程式 VM 必須取得授權</translation>
+<translation id="6107047744202598802">允許網站記住您曾瀏覽的網頁,並追蹤您的網絡活動</translation>
 <translation id="6112294629795967147">輕觸即可調整大小</translation>
 <translation id="6112727384379533756">新增票證</translation>
 <translation id="6112931163620622315">請檢查手機</translation>
@@ -3768,6 +3819,7 @@
 <translation id="622537739776246443">設定檔將被刪除</translation>
 <translation id="6225475702458870625">可透過 <ph name="PHONE_NAME" /> 使用數據網絡</translation>
 <translation id="6226777517901268232">私密金鑰檔案 (選用)</translation>
+<translation id="6227280783235722609">擴充程式</translation>
 <translation id="6228691855869374890">這個網站可全權控制 MIDI 裝置。</translation>
 <translation id="6228720835160974792">為此圖片產生二維條碼</translation>
 <translation id="6229890768313448549">無法載入 Google Play《服務條款》,請重試。</translation>
@@ -3819,6 +3871,7 @@
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> 不常下載,代表此檔案可能不安全。</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{您網絡上的新打印機}other{您網絡上的新打印機}}</translation>
 <translation id="6286708577777130801">已儲存密碼的詳細資訊</translation>
+<translation id="6291163159361301370">「<ph name="ORGANIZATION_NAME" />」要求您備份資料,並將此 Chromebook 回復原廠設定,才能啟動 Linux。</translation>
 <translation id="6291949900244949761">在網站要存取 USB 裝置時詢問您 (建議)</translation>
 <translation id="6291953229176937411">在 Finder 中顯示(&amp;S)</translation>
 <translation id="6295158916970320988">所有網站</translation>
@@ -4015,6 +4068,7 @@
 <translation id="6561726789132298588">Enter 鍵</translation>
 <translation id="656293578423618167">檔案路徑或名稱太長。請選用較短的名稱或將其儲存至其他位置。</translation>
 <translation id="6563469144985748109">您的管理員尚未批准瀏覽此網站</translation>
+<translation id="6565955132287672866">您的裝置先前未正確關閉。必須重新啟動裝置才能使用 Linux (Beta 版本)。</translation>
 <translation id="6567688344210276845">無法載入網頁動作的圖示「<ph name="ICON" />」。</translation>
 <translation id="6569934958368283244">其他人</translation>
 <translation id="657402800789773160">重新載入這個網頁(&amp;R)</translation>
@@ -4131,6 +4185,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">顯示桌面捷徑</translation>
 <translation id="6740234557573873150">已暫停下載「<ph name="FILE_NAME" />」</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />系統管理員<ph name="END_LINK" />已停用安全瀏覽功能</translation>
 <translation id="6742339027238151589">可否存取指令碼</translation>
 <translation id="6745592621698551453">立即更新</translation>
 <translation id="6746124502594467657">下移</translation>
@@ -4389,6 +4444,7 @@
     <ph name="BEGIN_BOLD" />注意事項:<ph name="END_BOLD" />如果有人與您的聲音相似或有您的錄音,便可使用您的「Google 助理」。日後如需移除 Voice Match 的權限,只需在「Google 助理」設定中關閉此功能即可。</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">與名稱為「<ph name="HOSTNAMES" />」的裝置交換數據</translation>
+<translation id="7094434674404953373">裝置會在更新完成時重新啟動。</translation>
 <translation id="7098389117866926363">USB-C 裝置 (後方左側連接埠)</translation>
 <translation id="7098447629416471489">已儲存的搜尋引擎將會在這裡顯示</translation>
 <translation id="7099337801055912064">無法載入大型 PPD。檔案上限為 250KB。</translation>
@@ -4512,6 +4568,7 @@
 <translation id="7258225044283673131">應用程式沒有回應。選取「強制關閉」即可關閉應用程式。</translation>
 <translation id="7258697411818564379">已新增您的 PIN</translation>
 <translation id="7262004276116528033">此登入服務是由 <ph name="SAML_DOMAIN" /> 代管</translation>
+<translation id="7266898409676782635">取得 <ph name="DEVICE_TYPE" /> 提示、優惠和最新資訊,並分享意見。您可隨時取消訂閱。</translation>
 <translation id="7268127947535186412">此設定由裝置擁有者管理。</translation>
 <translation id="7270858098575133036">在網站要使用系統專有訊息存取 MIDI 裝置時詢問您</translation>
 <translation id="7272674038937250585">未提供說明</translation>
@@ -4585,6 +4642,7 @@
 <translation id="7364796246159120393">選擇檔案</translation>
 <translation id="7366415735885268578">新增網站</translation>
 <translation id="7366909168761621528">瀏覽資料</translation>
+<translation id="7367714965999718019">二維條碼產生器</translation>
 <translation id="736877393389250337">無法在 <ph name="ALTERNATIVE_BROWSER_NAME" /> 中開啟 <ph name="URL" />。請聯絡您的系統管理員。</translation>
 <translation id="7370592524170198497">以太網 EAP:</translation>
 <translation id="7371006317849674875">開始時間</translation>
@@ -4842,8 +4900,10 @@
 <translation id="7737238973539693982">刪除 Linux (Beta 版本)</translation>
 <translation id="7740996059027112821">標準</translation>
 <translation id="7744047395460924128">查看您的列印記錄</translation>
+<translation id="7744192722284567281">發生資料外洩事件</translation>
 <translation id="7746457520633464754">為了偵測危險的應用程式和網站,Chrome 會將您瀏覽的部分網頁網址、有限的系統資料以及部分網頁內容傳送給 Google</translation>
 <translation id="7750228210027921155">畫中畫</translation>
+<translation id="7751229152614300329">「安全瀏覽」功能為最新版本,可保護免您受有害的網站和下載內容影響</translation>
 <translation id="7751260505918304024">全部顯示</translation>
 <translation id="7754704193130578113">下載每個檔案前先詢問儲存位置</translation>
 <translation id="7755287808199759310">您的家長可以為您解除封鎖此網站</translation>
@@ -4857,6 +4917,7 @@
 <translation id="7766807826975222231">觀看導覽介紹</translation>
 <translation id="7766838926148951335">接受權限</translation>
 <translation id="7769672763586021400">型號識別碼</translation>
+<translation id="7770651108375708429">中斷 Wi-Fi 連線</translation>
 <translation id="7771452384635174008">版面配置</translation>
 <translation id="7772032839648071052">確認複雜密碼</translation>
 <translation id="7772127298218883077">關於 <ph name="PRODUCT_NAME" /></translation>
@@ -4991,6 +5052,7 @@
 <translation id="7910768399700579500">新增資料夾(&amp;N)</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">您已在伺服器上變更密碼。請先登出,然後重新登入。</translation>
+<translation id="7914583336730284547">這些拖放的檔案違反機構的安全性政策。仍要繼續執行嗎?</translation>
 <translation id="7915457674565721553">連線至互聯網即可設定家長監控設定</translation>
 <translation id="7915471803647590281">請將發生的狀況告訴我們,然後再提供意見反映。</translation>
 <translation id="7918257978052780342">註冊</translation>
@@ -5014,6 +5076,7 @@
 <translation id="7939412583708276221">保留</translation>
 <translation id="7942349550061667556">紅色</translation>
 <translation id="7943837619101191061">新增位置…</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{有 1 個密碼遭外洩}other{有 # 個密碼遭外洩}}</translation>
 <translation id="7945031593909029181">「<ph name="CHROME_EXTENSION_NAME" />」要求與下列裝置連線</translation>
 <translation id="7946586320617670168">來源必須安全</translation>
 <translation id="794676567536738329">確認權限</translation>
@@ -5088,6 +5151,7 @@
 <translation id="8028803902702117856">下載緊 <ph name="FILE_NAME" />,檔案大小係 <ph name="SIZE" /></translation>
 <translation id="8028993641010258682">大小</translation>
 <translation id="8030656706657716245">新增打印機</translation>
+<translation id="8030852056903932865">核准</translation>
 <translation id="8032244173881942855">無法投放分頁。</translation>
 <translation id="8033827949643255796">已選取</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{在無痕式視窗中開啟所有書籤(&amp;I)}=1{在無痕式視窗中開啟(&amp;I)}other{在無痕式視窗中開啟全部 # 個書籤(&amp;I)}}</translation>
@@ -5112,6 +5176,7 @@
 <translation id="8059417245945632445">檢查裝置 (&amp;I)</translation>
 <translation id="8059456211585183827">冇可以儲存嘅打印機。</translation>
 <translation id="8063235345342641131">預設綠色圖片</translation>
+<translation id="8063535366119089408">查看檔案</translation>
 <translation id="8064671687106936412">金鑰:</translation>
 <translation id="8068253693380742035">輕觸即可登入</translation>
 <translation id="8068809649322155577">此操作會清除 <ph name="SITE_GROUP_NAME" /> 儲存的所有資料和 Cookie、包含的所有網站,以及該網站所安裝的應用程式。</translation>
@@ -5176,6 +5241,7 @@
 <translation id="8152091997436726702">打印機註冊程序逾時。如要註冊打印機,您必須完成打印機的註冊確認程序。</translation>
 <translation id="8154790740888707867">沒有檔案</translation>
 <translation id="815491593104042026">糟糕!由於設定使用的網址 (<ph name="BLOCKED_URL" />) 不安全,導致驗證失敗。請與您的管理員聯絡。</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{找不到遭外洩的密碼}=1{有 {COUNT} 個密碼遭外洩}other{有 {COUNT} 個密碼遭外洩}}</translation>
 <translation id="8157704005178149728">正在設定監控功能</translation>
 <translation id="8158117992543756526">此裝置已在 <ph name="MONTH_AND_YEAR" />停止自動更新軟件和安全性。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">憑證信任設定錯誤</translation>
@@ -5229,6 +5295,7 @@
 <translation id="8226742006292257240">以下是您的電腦專用的 TPM 密碼 (由系統隨機產生):</translation>
 <translation id="8227119283605456246">附加檔案</translation>
 <translation id="8230134520748321204">要儲存 <ph name="ORIGIN" /> 的密碼嗎?</translation>
+<translation id="8233762480744368479">網際網路設定</translation>
 <translation id="8234795456569844941">為協助我們的軟件工程師修正此問題,請說明您在收到設定檔錯誤訊息前發生的狀況:</translation>
 <translation id="8236123533334037984">機構正在掃瞄此上載項目,以取得安全性核准。</translation>
 <translation id="8236917170563564587">改為分享此分頁</translation>
@@ -5407,6 +5474,7 @@
 <translation id="8472623782143987204">硬件支援</translation>
 <translation id="8473863474539038330">地址及其他資料</translation>
 <translation id="8475313423285172237">電腦中其他程式所新增的擴充功能可能會變更 Chrome 的運作方式。</translation>
+<translation id="8476659515398963495">這份貼上的資料違反機構的安全性政策。仍要繼續執行嗎?</translation>
 <translation id="8477241577829954800">已取代</translation>
 <translation id="8477384620836102176">一般(&amp;G)</translation>
 <translation id="8480082892550707549">即使您曾經從這個網站下載檔案,但這個網站目前並不安全 (可能已被入侵)。請稍後嘗試重新下載這個檔案。</translation>
@@ -5460,6 +5528,7 @@
 <translation id="8547013269961688403">啟用全螢幕放大鏡</translation>
 <translation id="85486688517848470">按住搜尋鍵即可切換最上排按鍵的執行動作</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 個項目}other{# 個項目}}</translation>
+<translation id="8550165047974571882"><ph name="ORIGIN" /> 在您關閉所有 <ph name="ORIGIN" /> 分頁前都能編輯「<ph name="FOLDERNAME" />」中的檔案</translation>
 <translation id="8551388862522347954">授權</translation>
 <translation id="8553342806078037065">管理其他使用者</translation>
 <translation id="8554899698005018844">未選取語言</translation>
@@ -5518,6 +5587,7 @@
 <translation id="8637688295594795546">可安裝系統更新,正在準備下載…</translation>
 <translation id="8639047128869322042">正在檢查有害軟件…</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - 連接埠</translation>
+<translation id="8641606876632989680">如果您使用被盜用的密碼登入帳戶,Chrome 會通知您</translation>
 <translation id="8642900771896232685">2 秒</translation>
 <translation id="8642947597466641025">放大文字</translation>
 <translation id="8644655801811752511">無法重設此安全密鑰。請在插入密鑰後立即重設。</translation>
@@ -5563,10 +5633,12 @@
 <translation id="8688579245973331962">找不到您的名稱嗎?</translation>
 <translation id="8688591111840995413">密碼錯誤</translation>
 <translation id="8688672835843460752">可用</translation>
+<translation id="8691418731028620688">連線到 Wi-Fi</translation>
 <translation id="8695825812785969222">開啟位置(&amp;L)…</translation>
 <translation id="869884720829132584">應用程式選單</translation>
 <translation id="869891660844655955">到期日</translation>
 <translation id="8703346390800944767">略過廣告</translation>
+<translation id="870341961648617780">安全瀏覽和進階安全性設定</translation>
 <translation id="8705331520020532516">序號</translation>
 <translation id="8705580154597116082">可透過手機使用 Wi-Fi</translation>
 <translation id="8705629851992224300">無法讀取您的安全密鑰</translation>
@@ -5612,6 +5684,7 @@
 <translation id="874689135111202667">{0,plural, =1{要將一個檔案上載至此網站嗎?}other{要將 # 個檔案上載至此網站嗎?}}</translation>
 <translation id="8748384418490037181">Smart Lock 選項</translation>
 <translation id="8749863574775030885">存取來自未知供應商的 USB 裝置</translation>
+<translation id="8750133148106010815">「<ph name="ORGANIZATION_NAME" />」要求您備份資料,並將此 Chromebook 回復原廠設定,才能開啟 Google Play。</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> 要求與序列連接埠連線</translation>
 <translation id="8754200782896249056">&lt;p&gt;在受支援的桌面環境下執行 <ph name="PRODUCT_NAME" /> 時,瀏覽器會使用系統的 Proxy 設定。不過,您的系統可能不受支援,或在啟動系統設定時發生問題。&lt;/p&gt;
 
@@ -5666,6 +5739,7 @@
 <translation id="8809147117840417135">淺藍綠色</translation>
 <translation id="8813698869395535039">無法登入 <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">紙張數目</translation>
+<translation id="8813872945700551674">要求家長核准安裝「<ph name="EXTENSION_NAME" />」</translation>
 <translation id="8813969267212093033">系統文字會以此語言顯示</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">正在掃瞄封存檔案,請稍候…</translation>
@@ -5719,6 +5793,7 @@
 <translation id="8872187374998143710">請重新啟動裝置,以便使用 Plugin VM。</translation>
 <translation id="8872777911145321141">在網站要求使用您的虛擬實境裝置和資料時詢問您 (建議)</translation>
 <translation id="8874184842967597500">未連線</translation>
+<translation id="8875775314572167244">乙太網路設定</translation>
 <translation id="8876307312329369159">此設定無法在示範工作階段中變更。</translation>
 <translation id="8877448029301136595">[上層目錄]</translation>
 <translation id="8878384954777710821">正在解除安裝 Plugin VM…</translation>
@@ -5760,6 +5835,7 @@
 <translation id="892706138619340876">已重設部分設定</translation>
 <translation id="8930351635855238750">新的 Cookie 設定會在重新載入網頁後生效</translation>
 <translation id="8931394284949551895">新裝置</translation>
+<translation id="8931475688782629595">管理同步處理的項目</translation>
 <translation id="8932894639908691771">「按鈕控制」選項</translation>
 <translation id="8933960630081805351">在 Finder 中顯示(&amp;S)</translation>
 <translation id="8934732568177537184">繼續</translation>
@@ -5917,6 +5993,7 @@
 <translation id="9148126808321036104">重新登入</translation>
 <translation id="9149866541089851383">編輯…</translation>
 <translation id="9150045010208374699">使用您的相機。</translation>
+<translation id="9150429437595727962">Wi-Fi 設定</translation>
 <translation id="9153934054460603056">儲存身分與密碼</translation>
 <translation id="9154194610265714752">已更新</translation>
 <translation id="91568222606626347">建立捷徑…</translation>
@@ -5946,6 +6023,7 @@
 <translation id="9203398526606335860">分析已啟用(&amp;P)</translation>
 <translation id="9203904171912129171">選取裝置</translation>
 <translation id="9203962528777363226">裝置管理員已停用新增使用者功能</translation>
+<translation id="9211177926627870898">必須更新</translation>
 <translation id="9214520840402538427">糟糕!系統嘗試初始設定安裝時間 (installation-time) 屬性,但是動作已逾時。請與您的支援代表聯絡。</translation>
 <translation id="9214695392875603905">紙杯蛋糕</translation>
 <translation id="9215293857209265904">已新增「<ph name="EXTENSION_NAME" />」</translation>
@@ -5977,6 +6055,7 @@
 <translation id="945522503751344254">提供意見反映</translation>
 <translation id="947329552760389097">檢查元素 (&amp;I)</translation>
 <translation id="952992212772159698">未啟用</translation>
+<translation id="956500788634395331">系統已封鎖可能有害的擴充功能</translation>
 <translation id="957960681186851048">此網站曾嘗試自動下載多個檔案</translation>
 <translation id="9580706199804957">無法連線至 Google 服務</translation>
 <translation id="960719561871045870">流動網絡供應商代碼</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index de9654b2..4d6709f 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -40,6 +40,7 @@
 <translation id="1043818413152647937">要一併清除這些應用程式中的資料嗎?</translation>
 <translation id="1045692658517323508">{0,plural, =1{請在 1 分鐘內更新}other{請在 # 分鐘內更新}}</translation>
 <translation id="1046635659603195359">你似乎已在其他裝置上設定 Google 助理的 Voice Match 功能。你可以使用先前的錄音檔在這個裝置上建立語音模型,通常不到 1 分鐘即可完成。</translation>
+<translation id="104710386808485638">要重新啟動 Linux 嗎?</translation>
 <translation id="1047431265488717055">複製連結文字(&amp;X)</translation>
 <translation id="1048286738600630630">顯示</translation>
 <translation id="1049743911850919806">無痕模式</translation>
@@ -118,6 +119,7 @@
 <translation id="1161575384898972166">登入 <ph name="TOKEN_NAME" /> 即可匯出用戶端憑證。</translation>
 <translation id="1163931534039071049">檢視框架原始碼(&amp;V)</translation>
 <translation id="1164674268730883318">要關閉 <ph name="DEVICE_TYPE" /> 專用 Smart Lock 嗎?</translation>
+<translation id="1164891049599601209">已在詐騙網站上輸入</translation>
 <translation id="1164899421101904659">輸入 PIN 解鎖金鑰</translation>
 <translation id="1165039591588034296">錯誤</translation>
 <translation id="1166212789817575481">關閉右側分頁</translation>
@@ -205,6 +207,7 @@
 <translation id="1274977772557788323">Adobe Flash Player 儲存設定</translation>
 <translation id="1274997165432133392">Cookie 和其他網站資料</translation>
 <translation id="1280820357415527819">正在搜尋行動網路</translation>
+<translation id="1280965841156951489">編輯檔案</translation>
 <translation id="1282420830958964167">「<ph name="APP_NAME" />」的使用時間已達到貴家長設定的上限。你明天可以使用 <ph name="TIME_LIMIT" />。</translation>
 <translation id="1285320974508926690">一律不翻譯此網站</translation>
 <translation id="1285484354230578868">將資料儲存在 Google 雲端硬碟帳戶中</translation>
@@ -398,6 +401,7 @@
 <translation id="1545177026077493356">自動 Kiosk 模式</translation>
 <translation id="1545775234664667895">已安裝「<ph name="THEME_NAME" />」主題</translation>
 <translation id="1546280085599573572">這個擴充功能已變更您點選 [首頁] 按鈕時所顯示的網頁。</translation>
+<translation id="1546452108651444655"><ph name="CHILD_NAME" /> 要求安裝具有下列功能的<ph name="EXTENSION_TYPE" />:</translation>
 <translation id="1549275686094429035">已啟用 ARC</translation>
 <translation id="1549788673239553762">「<ph name="APP_NAME" />」要求存取 <ph name="VOLUME_NAME" />。您的檔案可能會遭到修改或刪除。</translation>
 <translation id="1553538517812678578">無限制</translation>
@@ -496,6 +500,7 @@
 <translation id="1679806121152819234">Plugin VM</translation>
 <translation id="1679810534535368772">確定要離開嗎?</translation>
 <translation id="167983332380191032">管理服務傳回了 HTTP 錯誤。</translation>
+<translation id="1680841347983561661">請稍後再嘗試重新啟動 Google Play。</translation>
 <translation id="1680849702532889074">安裝 Linux 應用程式的過程中發生錯誤。</translation>
 <translation id="16815041330799488">禁止網站讀取已複製到剪貼簿的文字和圖片</translation>
 <translation id="1682548588986054654">新增無痕式視窗</translation>
@@ -509,6 +514,7 @@
 <translation id="1692210323591458290">深紫色</translation>
 <translation id="1692799361700686467">系統允許使用多個網站的 Cookie。</translation>
 <translation id="1697150536837697295">藝術</translation>
+<translation id="1697686431566694143">編輯檔案</translation>
 <translation id="1698122934742150150">僅適用於目前的無痕模式工作階段</translation>
 <translation id="1698650002254827833">無法載入應用程式清單,請再試一次。</translation>
 <translation id="1701062906490865540">移除這個使用者</translation>
@@ -694,6 +700,7 @@
 <translation id="1931152874660185993">未安裝任何元件。</translation>
 <translation id="1932098463447129402">此日期之後:</translation>
 <translation id="1933809209549026293">請連接滑鼠或鍵盤。如果你使用的是藍牙裝置,請確認該裝置處於可進行配對的狀態。</translation>
+<translation id="1936931585862840749">使用數字指定列印份數 (1 至 <ph name="MAX_COPIES" />)。</translation>
 <translation id="1937774647013465102">這個裝置使用 <ph name="ARCHITECTURE_DEVICE" />,因此無法匯入容器架構類型 <ph name="ARCHITECTURE_CONTAINER" />。你可以嘗試將這個容器還原至其他裝置,或透過 Files 應用程式開啟這個容器映像檔,以存取其中的檔案。</translation>
 <translation id="1938351510777341717">外部 Command 鍵</translation>
 <translation id="1940546824932169984">已連結的裝置</translation>
@@ -749,6 +756,7 @@
 <translation id="2025632980034333559"><ph name="APP_NAME" /> 當機了,請按一下這個提示框來重新載入擴充功能。</translation>
 <translation id="2025891858974379949">不安全的內容</translation>
 <translation id="202918510990975568">請輸入你的密碼以進行安全性與登入設定</translation>
+<translation id="2030672406208960151">開啟復原終端機</translation>
 <translation id="2034346955588403444">新增其他 WiFi 網路</translation>
 <translation id="203574396658008164">允許在螢幕鎖定狀態下建立記事</translation>
 <translation id="2037445849770872822">你已設定這個 Google 帳戶的監督功能。如要設定更多家長監護功能,請選取 [繼續]。
@@ -901,6 +909,7 @@
 <translation id="2220572644011485463">PIN 或密碼</translation>
 <translation id="2224444042887712269">這項設定屬於 <ph name="OWNER_EMAIL" />。</translation>
 <translation id="2224551243087462610">編輯資料夾名稱</translation>
+<translation id="2225864335125757863">請立即變更這些密碼,確保帳戶安全:</translation>
 <translation id="2226449515541314767">這個網站已遭封鎖,無法完整控制 MIDI 裝置。</translation>
 <translation id="222704500187107962">當你結束目前的無痕模式工作階段後,系統將自動移除這個例外設定</translation>
 <translation id="2227179592712503583">移除建議</translation>
@@ -987,6 +996,7 @@
 <translation id="2343747224442182863">將焦點移至這個分頁</translation>
 <translation id="2344028582131185878">自動下載</translation>
 <translation id="2345723121311404059">將 1 個網頁傳送至「<ph name="PRINTER_NAME" />」列印</translation>
+<translation id="2346953515226895098">SODA Service</translation>
 <translation id="2347644257713614136">Hangouts 和 Cast for Education 的相關使用行為受到《Google 隱私權政策》所規範。</translation>
 <translation id="2348176352564285430">應用程式:<ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">已重新載入</translation>
@@ -1021,6 +1031,7 @@
 <translation id="2387052489799050037">前往主畫面</translation>
 <translation id="2387458720915042159">Proxy 連線類型</translation>
 <translation id="2391419135980381625">標準字型</translation>
+<translation id="2392163307141705938">你已達到貴家長為 <ph name="IDS_SHORT_PRODUCT_NAME" /> 設定的使用時間限制。</translation>
 <translation id="2392369802118427583">啟用</translation>
 <translation id="2394566832561516196">系統將在你重新載入網頁後清除設定</translation>
 <translation id="2395616325548404795">你的 <ph name="DEVICE_TYPE" /> 已成功註冊企業管理服務,但無法傳送資產和位置資訊。請前往管理控制台,為這個裝置手動輸入這些資訊。</translation>
@@ -1038,6 +1049,7 @@
 <translation id="2422125132043002186">已取消 Linux 還原作業</translation>
 <translation id="2423578206845792524">另存圖片(&amp;V)...</translation>
 <translation id="2428510569851653187">說明分頁當掉時你正在執行的動作</translation>
+<translation id="2428939361789119025">關閉 Wi-Fi</translation>
 <translation id="2431027948063157455">無法載入 Google 助理,請檢查網路連線狀態並重試。</translation>
 <translation id="2432753757290432042">必須更新 Linux (測試版)</translation>
 <translation id="2433452467737464329">在網址中新增查詢參數即可自動重新整理網頁:chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1085,6 +1097,7 @@
 <translation id="247949520305900375">分享音訊</translation>
 <translation id="2480868415629598489">修改你複製和貼上的資料</translation>
 <translation id="2482878487686419369">通知</translation>
+<translation id="2483610039979585156">在你關閉所有 <ph name="ORIGIN" /> 分頁前,<ph name="ORIGIN" /> 都可以編輯「<ph name="FILENAME" />」</translation>
 <translation id="2484959914739448251">如要從所有同步的裝置和 Google 帳戶中清除瀏覽資料,請<ph name="BEGIN_LINK" />輸入通關密語<ph name="END_LINK" />。</translation>
 <translation id="2485005079599453134">已將密碼儲存在這個裝置上</translation>
 <translation id="2485422356828889247">解除安裝</translation>
@@ -1298,6 +1311,7 @@
 <translation id="274290345632688601">正在還原 Linux 應用程式和檔案</translation>
 <translation id="2743387203779672305">複製到剪貼簿</translation>
 <translation id="2745080116229976798">Microsoft 合格分類</translation>
+<translation id="2748061034695037846"><ph name="DOMAIN" /> 已暫停</translation>
 <translation id="2749756011735116528">登入 <ph name="PRODUCT_NAME" /></translation>
 <translation id="2749881179542288782">檢查拼字及文法</translation>
 <translation id="2751739896257479635">EAP 第 2 階段驗證</translation>
@@ -1306,6 +1320,7 @@
 <translation id="275662540872599901">螢幕已關閉</translation>
 <translation id="2762441749940182211">無法使用攝影機</translation>
 <translation id="2765217105034171413">小</translation>
+<translation id="2766161002040448006">詢問家長</translation>
 <translation id="276969039800130567">以 <ph name="USER_EMAIL_ADDRESS" /> 的身分登入。</translation>
 <translation id="2770465223704140727">從清單中移除</translation>
 <translation id="2770690685823456775">將你的密碼匯出至其他資料夾</translation>
@@ -1452,6 +1467,7 @@
 <translation id="2944060181911631861">傳送使用狀況與診斷資料。讓系統自動將診斷資料以及裝置和應用程式的使用狀況資料傳送給 Google,協助改善你的 Android 使用體驗。這些資料將有助於系統和應用程式提高穩定性及做出其他改善。部分匯總資料還能夠為 Google 應用程式和合作夥伴 (例如 Android 開發人員) 提供幫助。如果你的「其他網路和應用程式活動」設定為開啟,系統可能會將這些資料儲存到你的 Google 帳戶。<ph name="BEGIN_LINK1" />瞭解詳情<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">新增連線</translation>
 <translation id="2947605845283690091">網路瀏覽速度應該要快速流暢。現在就花點時間<ph name="BEGIN_LINK" />檢查擴充功能<ph name="END_LINK" />吧。</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{已關閉 1 個可能有害的擴充功能,你也可以移除這項擴充功能。}other{已關閉 # 個可能有害的擴充功能,你也可以移除這些擴充功能。}}</translation>
 <translation id="2948300991547862301">前往<ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">一款快速、簡單又安全的新世代網路瀏覽器。</translation>
 <translation id="2949289451367477459">使用定位服務。允許具有位置存取權的應用程式和服務使用這個裝置的位置資訊。Google 可能會定期收集位置資料,並以匿名方式使用這類資料,藉此提高定位精確度及改善適地性服務。<ph name="BEGIN_LINK1" />瞭解詳情<ph name="END_LINK1" /></translation>
@@ -1532,6 +1548,7 @@
 <translation id="3067198179881736288">要安裝應用程式嗎?</translation>
 <translation id="3067198360141518313">執行這個外掛程式</translation>
 <translation id="3071624960923923138">按一下這裡即可開啟新分頁</translation>
+<translation id="3072775339180057696">要允許網站查看「<ph name="FILE_NAME" />」嗎?</translation>
 <translation id="3075874217500066906">Powerwash 程序必須重新啟動才能開始執行。重新啟動後,系統將向你確認是否繼續程序。</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">已刪除你的登入資料</translation>
@@ -1544,6 +1561,7 @@
 <translation id="3085412380278336437">網站可以使用你的攝影機</translation>
 <translation id="3085752524577180175">SOCKS 主機</translation>
 <translation id="3088052000289932193">網站正在使用 MIDI 裝置</translation>
+<translation id="3088128611727407543">正在準備應用程式設定檔...</translation>
 <translation id="3088325635286126843">重新命名(&amp;R)...</translation>
 <translation id="3089137131053189723">已清除搜尋內容</translation>
 <translation id="3090193911106258841">正在存取音訊和視訊輸入</translation>
@@ -1557,6 +1575,7 @@
 <translation id="3115580024857770654">全部收合</translation>
 <translation id="3117362587799608430">座架不完全相容</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" />說明</translation>
+<translation id="3118654181216384296">請稍後再嘗試重新啟動 Linux。</translation>
 <translation id="3120430004221004537">在以下裝置上指定的作業的加密強度不足:「<ph name="DEVICE_NAME" />」。</translation>
 <translation id="3121793941267913344">重設這個 <ph name="IDS_SHORT_PRODUCT_NAME" /> 裝置</translation>
 <translation id="3122464029669770682">CPU</translation>
@@ -1566,6 +1585,7 @@
 <translation id="3127156390846601284">這將會刪除所有顯示的網站儲存在你裝置上的全部資料。你要繼續操作嗎?</translation>
 <translation id="3127860049873093642">為避免發生充電和效能問題,請使用相容的 Dell 或 USB Type-C 電源變壓器。</translation>
 <translation id="3129173833825111527">左邊界</translation>
+<translation id="3129215702932019810">啟動應用程式時發生錯誤</translation>
 <translation id="3130528281680948470">你的裝置將會進行重設,且所有使用者帳戶和本機資料都會遭到移除。這項操作無法復原。</translation>
 <translation id="313205617302240621">忘記密碼了嗎?</translation>
 <translation id="3132996321662585180">每天重新整理</translation>
@@ -1583,6 +1603,7 @@
     說明:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Chrome 應用程式</translation>
+<translation id="3150693969729403281">立即執行安全檢查</translation>
 <translation id="3150927491400159470">強制重新載入</translation>
 <translation id="315116470104423982">行動數據</translation>
 <translation id="3151539355209957474">開始時間</translation>
@@ -1675,6 +1696,7 @@
 <translation id="3282568296779691940">登入 Chrome</translation>
 <translation id="3285322247471302225">新增分頁(&amp;T)</translation>
 <translation id="328571385944182268">要儲存密碼嗎?</translation>
+<translation id="328785681103589998">在你關閉所有 <ph name="ORIGIN" /> 分頁前,<ph name="ORIGIN" /> 都可以查看「<ph name="FILENAME" />」</translation>
 <translation id="3288047731229977326">在開發人員模式中執行擴充功能可能會損害你的電腦。如果你不是開發人員,最好在開發人員模式中停用這些擴充功能,以策安全。</translation>
 <translation id="3289856944988573801">如要檢查更新,請使用乙太網路或 Wi-Fi。</translation>
 <translation id="3290356915286466215">不安全</translation>
@@ -1781,7 +1803,9 @@
 <translation id="3441653493275994384">螢幕</translation>
 <translation id="3445925074670675829">USB-C 裝置</translation>
 <translation id="344630545793878684">讀取你在多個網站上產生的資料</translation>
+<translation id="3448086340637592206">Google Chrome 和 Chrome 作業系統的《附加條款》</translation>
 <translation id="3448492834076427715">更新帳戶</translation>
+<translation id="3449393517661170867">新分頁視窗</translation>
 <translation id="3449839693241009168">按下「<ph name="SEARCH_KEY" />」即可將指令傳送給 <ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">閒置狀態占用率</translation>
 <translation id="3451332697983754369">同步處理我的 <ph name="DEVICE_TYPE" /></translation>
@@ -1962,6 +1986,7 @@
 <translation id="3681311097828166361">感謝你提供意見!你目前處於離線狀態,重新上線後系統就會傳送你的意見回饋報告。</translation>
 <translation id="3682824389861648626">滑鼠移動限額</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> 要求共用畫面</translation>
+<translation id="3686074530047028092">教育版帳戶</translation>
 <translation id="368789413795732264">嘗試寫入檔案時發生錯誤:<ph name="ERROR_TEXT" />。</translation>
 <translation id="3688507211863392146">寫入你在應用程式中開啟的檔案和資料夾</translation>
 <translation id="3688526734140524629">變更版本</translation>
@@ -2030,6 +2055,7 @@
 <translation id="3759933321830434300">封鎖網頁部分內容</translation>
 <translation id="3760460896538743390">檢查背景頁面(&amp;B)</translation>
 <translation id="37613671848467444">在無痕式視窗中開啟(&amp;I)</translation>
+<translation id="3761556954875533505">要允許網站編輯檔案嗎?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{與 1 個 USB 裝置通訊}other{與 # 個 USB 裝置通訊}}</translation>
 <translation id="3765246971671567135">無法讀取離線示範模式的政策。</translation>
 <translation id="3768037234834996183">正在處理您的偏好設定...</translation>
@@ -2128,6 +2154,7 @@
 <translation id="3873423927483480833">顯示 PIN 碼</translation>
 <translation id="3873915545594852654">ARC++ 發生問題。</translation>
 <translation id="3879748587602334249">下載管理員</translation>
+<translation id="3881321138433527084">安全瀏覽功能已停用。請啟用這項功能,確保上網安全。</translation>
 <translation id="3882165008614329320">相機或檔案中的現有影片</translation>
 <translation id="3886446263141354045">你想存取這個網站的要求已傳送給<ph name="NAME" /></translation>
 <translation id="3888550877729210209">使用「<ph name="LOCK_SCREEN_APP_NAME" />」寫筆記</translation>
@@ -2164,6 +2191,7 @@
 <translation id="3927932062596804919">拒絕</translation>
 <translation id="3928570707778085600">要將變更儲存至「<ph name="FILE_OR_FOLDER_NAME" />」嗎?</translation>
 <translation id="3929426037718431833">這些擴充功能可以查看並變更這個網站上的資訊。</translation>
+<translation id="3930155420525972941">將群組移到新視窗</translation>
 <translation id="3930737994424905957">正在尋找裝置</translation>
 <translation id="3930968231047618417">背景顏色</translation>
 <translation id="3933283459331715412">還原已刪除的 <ph name="USERNAME" /> 密碼</translation>
@@ -2321,6 +2349,7 @@
 <translation id="4130750466177569591">我同意</translation>
 <translation id="413121957363593859">元件</translation>
 <translation id="4131410914670010031">黑白</translation>
+<translation id="4133076602192971179">開啟應用程式以變更密碼</translation>
 <translation id="4136203100490971508">夜燈功能將於日出時自動關閉</translation>
 <translation id="41365691917097717">如果繼續,系統將啟用 ADB 偵錯功能建立及測試 Android 應用程式。請注意,這項操作會允許你安裝未經 Google 驗證的 Android 應用程式,而且必須將裝置恢復原廠設定才能停用。</translation>
 <translation id="4138267921960073861">在登入畫面中顯示使用者名稱和相片</translation>
@@ -2432,6 +2461,7 @@
 <translation id="4330387663455830245">一律不翻譯<ph name="LANGUAGE" />內容</translation>
 <translation id="4332976768901252016">設定家長監護功能</translation>
 <translation id="4333854382783149454">PKCS #1 SHA-1 (使用 RSA 加密)</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{系統管理員已重新開啟 1 個可能有害的擴充功能}other{系統管理員已重新開啟 # 個可能有害的擴充功能}}</translation>
 <translation id="4336434711095810371">清除所有資料</translation>
 <translation id="4336979451636460645">如需網路記錄,請查看:<ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> 要求與「<ph name="EXTENSION_NAME" />」應用程式通訊</translation>
@@ -2468,6 +2498,7 @@
 <translation id="4384652540891215547">啟用擴充功能</translation>
 <translation id="438503109373656455">赤兔馬</translation>
 <translation id="4387004326333427325">遠端已拒絕驗證憑證</translation>
+<translation id="4387890294700445764">遭外洩的密碼</translation>
 <translation id="4389091756366370506">使用者 <ph name="VALUE" /></translation>
 <translation id="4390000551125140321">{0,plural, =1{無痕模式}other{已開啟 # 個無痕式視窗}}</translation>
 <translation id="439266289085815679">藍牙設定由 <ph name="USER_EMAIL" /> 控制。</translation>
@@ -2499,6 +2530,7 @@
 <translation id="4429030830601238961">這項資料違反了貴機構的安全性政策,因此無法貼上。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4430369329743628066">已新增書籤</translation>
+<translation id="4432621511648257259">密碼不正確</translation>
 <translation id="4434045419905280838">彈出式視窗與重新導向</translation>
 <translation id="443454694385851356">舊版 (不安全)</translation>
 <translation id="443475966875174318">更新或移除不相容的應用程式</translation>
@@ -2736,6 +2768,7 @@
 <translation id="4785719467058219317">你目前使用的安全金鑰並未在這個網站註冊</translation>
 <translation id="4788092183367008521">請檢查你的網路連線,然後再試一次。</translation>
 <translation id="4792711294155034829">回報問題(&amp;R)...</translation>
+<translation id="4794810983896241342">更新項目是由<ph name="BEGIN_LINK" />系統管理員<ph name="END_LINK" />管理</translation>
 <translation id="479536056609751218">僅限網頁的 HTML 部分</translation>
 <translation id="4798236378408895261">附加<ph name="BEGIN_LINK" />藍牙記錄<ph name="END_LINK" /> (Google 內部使用)</translation>
 <translation id="4801448226354548035">隱藏帳戶</translation>
@@ -2748,6 +2781,7 @@
 <translation id="4808667324955055115">已封鎖彈出式視窗:</translation>
 <translation id="480990236307250886">開啟首頁</translation>
 <translation id="4811503964269049987">將所選分頁分組</translation>
+<translation id="4811818760963189951">你已停用歷史記錄同步功能,因此系統已關閉這項功能</translation>
 <translation id="4813136279048157860">我的圖片</translation>
 <translation id="4813512666221746211">網路錯誤</translation>
 <translation id="4814378367953456825">請輸入這個指紋的名稱</translation>
@@ -2777,6 +2811,7 @@
 <translation id="4850669014075537160">捲動</translation>
 <translation id="4850886885716139402">檢視</translation>
 <translation id="4853020600495124913">在新視窗中開啟(&amp;N)</translation>
+<translation id="4854317507773910281">選擇進行審核的家長帳戶</translation>
 <translation id="485480310608090163">更多設定和權限</translation>
 <translation id="4856478137399998590">你的行動數據服務已啟用,隨時可供使用</translation>
 <translation id="4856855265648545577">使用平板電腦模式時,在檔案櫃中顯示「啟動器」、「返回」和「總覽」按鈕。系統會在你啟用 ChromeVox (互動朗讀) 或開關功能時開啟這項設定。</translation>
@@ -2829,6 +2864,7 @@
 <translation id="4908811072292128752">開啟新分頁即可一次瀏覽兩個網站</translation>
 <translation id="4909038193460299775">這個帳戶是由 <ph name="DOMAIN" /> 所管理,因此系統會將你的書籤、歷史記錄、密碼和其他設定從這個裝置上清除。不過,你的資料仍會儲存在你的 Google 帳戶中,並可透過 <ph name="BEGIN_LINK" />Google 資訊主頁<ph name="END_LINK" />管理。</translation>
 <translation id="4912643508233590958">閒置喚醒</translation>
+<translation id="4916542008280060967">要允許網站編輯「<ph name="FILE_NAME" />」嗎?</translation>
 <translation id="491691592645955587">改用安全的瀏覽器</translation>
 <translation id="4917385247580444890">強</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> 要求與「<ph name="EXTENSION_NAME" />」擴充功能通訊</translation>
@@ -2900,6 +2936,7 @@
 <translation id="5017633213534173756">記住</translation>
 <translation id="5018207570537526145">開啟擴充功能網站</translation>
 <translation id="5021750053540820849">尚未更新</translation>
+<translation id="5026806129670917316">開啟 Wi-Fi</translation>
 <translation id="5026874946691314267">不要再顯示這則通知</translation>
 <translation id="5027550639139316293">電子郵件憑證</translation>
 <translation id="5027562294707732951">新增擴充功能</translation>
@@ -2913,10 +2950,12 @@
 <translation id="5040823038948176460">其他內容設定</translation>
 <translation id="5042282098504489593">開啟設定以將 <ph name="USB_DEVICE_NAME" /> 連線至 Linux</translation>
 <translation id="5043913660911154449">或指定印表機 PPD。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
+<translation id="5044314273978194362">你已使用通關密語加密同步資料,因此系統已停用這項功能</translation>
 <translation id="5045550434625856497">密碼不正確</translation>
 <translation id="504561833207953641">正於現有瀏覽器工作階段中開啟。</translation>
 <translation id="5047421709274785093">禁止網站使用動作感應器和光源感應器</translation>
 <translation id="5050042263972837708">群組名稱</translation>
+<translation id="5051073330196664891">Google 通用服務條款 (uToS)</translation>
 <translation id="5051836348807686060">你選取的語言不支援拼字檢查功能</translation>
 <translation id="5052499409147950210">編輯網站</translation>
 <translation id="5053604404986157245">無法使用隨機產生的 TPM 密碼。在執行 Powerwash 之後,這是正常情況。</translation>
@@ -2954,6 +2993,7 @@
 <translation id="5097002363526479830">無法連線至「<ph name="NAME" />」:<ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">開啟所有書籤</translation>
 <translation id="5101839224773798795">游標停止時自動點擊</translation>
+<translation id="5107443654503185812">某個擴充功能已停用安全瀏覽功能</translation>
 <translation id="5108967062857032718">設定 - 移除 Android 應用程式</translation>
 <translation id="5109044022078737958">咪咪</translation>
 <translation id="5111646998522066203">結束無痕模式</translation>
@@ -3009,6 +3049,7 @@
 <translation id="5184063094292164363">JavaScript 控制台(&amp;J)</translation>
 <translation id="5184209580557088469">已有票證使用這個使用者名稱</translation>
 <translation id="5184662919967270437">正在更新您的裝置</translation>
+<translation id="5185359571430619712">查看擴充功能</translation>
 <translation id="5185386675596372454">由於最新版本的 <ph name="EXTENSION_NAME" /> 需要更多權限,因此已經停用。</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> 想要下載多個檔案</translation>
@@ -3040,6 +3081,7 @@
 <translation id="523505283826916779">無障礙設定</translation>
 <translation id="5235750401727657667">取代新分頁開啟時顯示的網頁</translation>
 <translation id="5238278114306905396">「<ph name="EXTENSION_NAME" />」應用程式已自動移除。</translation>
+<translation id="5239730228370806996">這份拖放的資料違反了貴機構的安全性政策。仍要繼續執行嗎?</translation>
 <translation id="5241128660650683457">讀取你在造訪的網站上產生的所有資料</translation>
 <translation id="5242724311594467048">啟用「<ph name="EXTENSION_NAME" />」?</translation>
 <translation id="5243522832766285132">請稍後再試</translation>
@@ -3058,6 +3100,7 @@
 <translation id="5260334392110301220">智慧型引號</translation>
 <translation id="5260508466980570042">抱歉,系統無法驗證你的電子郵件地址或密碼,請再試一次。</translation>
 <translation id="5261683757250193089">開啟線上應用程式商店</translation>
+<translation id="5262178194499261222">移除密碼</translation>
 <translation id="5264148714798105376">請稍候片刻。</translation>
 <translation id="5264252276333215551">如要以 Kiosk 模式啟動你的應用程式,請連線至網際網路。</translation>
 <translation id="5265562206369321422">離線超過一週</translation>
@@ -3327,6 +3370,7 @@
 <translation id="5618075537869101857">糟糕,無法啟動 Kiosk 應用程式。</translation>
 <translation id="5618333180342767515">(這可能需要幾分鐘的時間)</translation>
 <translation id="56197088284879152">以下遠端裝置的連線壅塞:「<ph name="DEVICE_NAME" />」。</translation>
+<translation id="5620163320393916465">未儲存任何密碼</translation>
 <translation id="5620549857835247159">使用平板電腦模式時,在檔案櫃中顯示「啟動器」、「返回」和「總覽」按鈕。</translation>
 <translation id="5620568081365989559">DevTools 要求取得 <ph name="FOLDER_PATH" /> 的完整權限。請務必小心,不要透露任何機密資訊。</translation>
 <translation id="5620612546311710611">使用統計資料</translation>
@@ -3420,6 +3464,7 @@
 <translation id="5747785204778348146">開發人員版 - 不穩定</translation>
 <translation id="5747809636523347288">貼上 <ph name="URL" /> 並前往該網址 (&amp;S)</translation>
 <translation id="5750324801516359607">遠</translation>
+<translation id="5751887393582880060">這個上傳內容違反了貴機構的安全性政策。仍要繼續執行嗎?</translation>
 <translation id="5756163054456765343">說明中心(&amp;E)</translation>
 <translation id="5759728514498647443">「<ph name="APP_NAME" />」可以讀取您透過「<ph name="APP_NAME" />」傳送的待列印文件。</translation>
 <translation id="5763751966069581670">找不到 USB 裝置</translation>
@@ -3481,6 +3526,7 @@
 <translation id="5833726373896279253">你必須是擁有者,才能修改這些設定:</translation>
 <translation id="5834581999798853053">剩下 <ph name="TIME" /> 分鐘</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - 攝影機或麥克風錄影/錄音中</translation>
+<translation id="5841270259333717135">設定乙太網路</translation>
 <translation id="5842497610951477805">啟用藍牙</translation>
 <translation id="5846200638699387931">關聯語法錯誤:<ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">已加入過了</translation>
@@ -3526,6 +3572,7 @@
 <translation id="5900358982890952556">升級 Linux (Beta 版)</translation>
 <translation id="5901494423252125310">印表機的蓋子處於開啟狀態</translation>
 <translation id="5901630391730855834">黃色</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{你已重新開啟 1 個可能有害的擴充功能}other{你已重新開啟 # 個可能有害的擴充功能}}</translation>
 <translation id="5906655207909574370">即將更新為最新版本!重新啟動您的裝置即可完成更新程序。</translation>
 <translation id="5906732635754427568">與這個應用程式相關聯的資料會從這個裝置上移除。</translation>
 <translation id="5908769186679515905">禁止網站執行 Flash</translation>
@@ -3555,6 +3602,7 @@
 <translation id="59324397759951282"><ph name="MANUFACTURER_NAME" /> USB 裝置</translation>
 <translation id="5932881020239635062">序列</translation>
 <translation id="5933376509899483611">時區</translation>
+<translation id="5935656526031444304">管理安全瀏覽功能</translation>
 <translation id="5938002010494270685">可進行安全性更新</translation>
 <translation id="5939518447894949180">重設</translation>
 <translation id="5941153596444580863">新增使用者...</translation>
@@ -3598,6 +3646,7 @@
 <translation id="5993807461461235661">這個上傳檔案經過加密,違反了貴機構的安全性政策。</translation>
 <translation id="5997337190805127100">進一步瞭解網站存取權</translation>
 <translation id="6000758707621254961">有 <ph name="RESULT_COUNT" /> 個與「<ph name="SEARCH_TEXT" />」相符的搜尋結果</translation>
+<translation id="6002210667729577411">將群組移到新視窗</translation>
 <translation id="6002458620803359783">聲音偏好</translation>
 <translation id="6006484371116297560">傳統版</translation>
 <translation id="6007240208646052708">無法使用你的語言進行語音搜尋。</translation>
@@ -3629,6 +3678,7 @@
 <translation id="6040852767465482106">匿名身分</translation>
 <translation id="6041046205544295907"><ph name="BEGIN_PARAGRAPH1" />Google 的定位服務會使用 Wi‑Fi、行動網路和感應器等來源,推測出你的裝置的所在位置。<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />關閉裝置的主要「定位」設定即可關閉「定位」服務。你也可以前往位置資訊設定,將使用 Wi‑Fi、行動網路和感應器的定位功能關閉。<ph name="END_PARAGRAPH2" /></translation>
+<translation id="6041150002191391409">在你關閉所有 <ph name="ORIGIN" /> 分頁前,<ph name="ORIGIN" /> 都可以查看「<ph name="FOLDERNAME" />」中的檔案</translation>
 <translation id="6041155700700864984">結束全螢幕</translation>
 <translation id="604124094241169006">自動</translation>
 <translation id="6042308850641462728">更多</translation>
@@ -3690,6 +3740,7 @@
 <translation id="6104311680260824317">無法將這個裝置加入網域,伺服器不支援指定的 Kerberos 加密類型。請前往「更多選項」檢查加密設定。</translation>
 <translation id="6104641575223043670">「<ph name="ORGANIZATION_NAME" />」要求立即更新這部裝置</translation>
 <translation id="6106186653986077033">外掛程式 VM 必須取得授權</translation>
+<translation id="6107047744202598802">允許網站記住你造訪的網頁,並追蹤你在網路上的活動</translation>
 <translation id="6112294629795967147">輕觸即可調整大小</translation>
 <translation id="6112727384379533756">新增票證</translation>
 <translation id="6112931163620622315">請查看你的手機</translation>
@@ -3768,6 +3819,7 @@
 <translation id="622537739776246443">系統將會刪除設定檔</translation>
 <translation id="6225475702458870625">可透過 <ph name="PHONE_NAME" /> 使用數據連線</translation>
 <translation id="6226777517901268232">私密金鑰檔案 (選填)</translation>
+<translation id="6227280783235722609">擴充功能</translation>
 <translation id="6228691855869374890">這個網站可完整控制 MIDI 裝置。</translation>
 <translation id="6228720835160974792">為這張圖片產生 QR 圖碼</translation>
 <translation id="6229890768313448549">無法載入《Google Play 服務條款》,請重試。</translation>
@@ -3819,6 +3871,7 @@
 <translation id="6285120108426285413">一般使用者不常下載 <ph name="FILE_NAME" />,代表這個檔案可能不安全。</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{您的網路上有一台新印表機}other{您的網路上有多台新印表機}}</translation>
 <translation id="6286708577777130801">已儲存的密碼詳細資料</translation>
+<translation id="6291163159361301370"><ph name="ORGANIZATION_NAME" /> 要求你備份資料,並將這部 Chromebook 恢復原廠設定,才能啟動 Linux。</translation>
 <translation id="6291949900244949761">網站要求存取 USB 裝置時詢問我 (建議)</translation>
 <translation id="6291953229176937411">在 Finder 中顯示(&amp;S)</translation>
 <translation id="6295158916970320988">所有網站</translation>
@@ -4015,6 +4068,7 @@
 <translation id="6561726789132298588">Enter 鍵</translation>
 <translation id="656293578423618167">檔案路徑或檔案名稱過長。請縮短檔案名稱或選擇其他儲存位置。</translation>
 <translation id="6563469144985748109">你的管理員尚未核准這個網站</translation>
+<translation id="6565955132287672866">你的裝置先前未正確關閉。必須重新啟動裝置才能使用 Linux (Beta 版)。</translation>
 <translation id="6567688344210276845">無法載入網頁動作的圖示「<ph name="ICON" />」。</translation>
 <translation id="6569934958368283244">其他人</translation>
 <translation id="657402800789773160">重新載入這個網頁(&amp;R)</translation>
@@ -4131,6 +4185,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">顯示桌面捷徑</translation>
 <translation id="6740234557573873150">已暫停下載 <ph name="FILE_NAME" /></translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />系統管理員<ph name="END_LINK" />已停用安全瀏覽功能</translation>
 <translation id="6742339027238151589">可透過指令碼存取</translation>
 <translation id="6745592621698551453">立即更新</translation>
 <translation id="6746124502594467657">下移</translation>
@@ -4389,6 +4444,7 @@
     <ph name="BEGIN_BOLD" />注意事項:<ph name="END_BOLD" />其他聲音與你相似的人或是取得你錄音的人,或許也能存取 Google 助理。之後如需移除 Voice Match 權限,只要前往 Google 助理設定頁面關閉 Voice Match 功能即可。</translation>
 <translation id="7093434536568905704">GTK+</translation>
 <translation id="7093866338626856921">與下列名稱的裝置交換資料:<ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">裝置會在更新完成時重新啟動。</translation>
 <translation id="7098389117866926363">USB-C 裝置 (背面左側連接埠)</translation>
 <translation id="7098447629416471489">你所儲存的其他搜尋引擎會顯示在這裡</translation>
 <translation id="7099337801055912064">無法載入大型 PPD。大小上限為 250 KB。</translation>
@@ -4512,6 +4568,7 @@
 <translation id="7258225044283673131">應用程式沒有回應。選取「強制關閉」即可關閉應用程式。</translation>
 <translation id="7258697411818564379">PIN 碼新增成功</translation>
 <translation id="7262004276116528033">這是由 <ph name="SAML_DOMAIN" /> 代管的登入服務。</translation>
+<translation id="7266898409676782635">你可以取得 <ph name="DEVICE_TYPE" /> 實用提示、優惠資訊與最新消息,並提供意見回饋。你隨時可以取消訂閱。</translation>
 <translation id="7268127947535186412">這項設定受到裝置管理員控管。</translation>
 <translation id="7270858098575133036">每當有網站要使用系統專用訊息存取 MIDI 裝置時詢問我</translation>
 <translation id="7272674038937250585">沒有任何說明</translation>
@@ -4585,6 +4642,7 @@
 <translation id="7364796246159120393">選擇檔案</translation>
 <translation id="7366415735885268578">新增網站</translation>
 <translation id="7366909168761621528">瀏覽資料</translation>
+<translation id="7367714965999718019">QR 圖碼產生器</translation>
 <translation id="736877393389250337">無法在 <ph name="ALTERNATIVE_BROWSER_NAME" /> 中開啟 <ph name="URL" />。請與你的系統管理員聯絡。</translation>
 <translation id="7370592524170198497">乙太網路 EAP:</translation>
 <translation id="7371006317849674875">開始時間</translation>
@@ -4842,8 +4900,10 @@
 <translation id="7737238973539693982">刪除 Linux (測試版)</translation>
 <translation id="7740996059027112821">標準</translation>
 <translation id="7744047395460924128">查看你的列印歷史記錄</translation>
+<translation id="7744192722284567281">發生資料侵害事件</translation>
 <translation id="7746457520633464754">為了偵測危險的應用程式和網站,Chrome 會將你造訪的部分網頁網址、部分系統資訊以及部分網頁內容傳送給 Google</translation>
 <translation id="7750228210027921155">子母畫面</translation>
+<translation id="7751229152614300329">安全瀏覽功能為最新版本,可封鎖有害的網站和下載內容</translation>
 <translation id="7751260505918304024">全部顯示</translation>
 <translation id="7754704193130578113">下載每個檔案前先詢問儲存位置</translation>
 <translation id="7755287808199759310">你的家長可以為你解除封鎖這個網站</translation>
@@ -4857,6 +4917,7 @@
 <translation id="7766807826975222231">觀看導覽</translation>
 <translation id="7766838926148951335">接受權限</translation>
 <translation id="7769672763586021400">型號 ID</translation>
+<translation id="7770651108375708429">中斷 Wi-Fi 連線</translation>
 <translation id="7771452384635174008">配置</translation>
 <translation id="7772032839648071052">確認通關密語</translation>
 <translation id="7772127298218883077">關於 <ph name="PRODUCT_NAME" /></translation>
@@ -4991,6 +5052,7 @@
 <translation id="7910768399700579500">新增資料夾(&amp;N)</translation>
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">伺服器上的密碼已變更。請先登出然後重新登入。</translation>
+<translation id="7914583336730284547">這些拖放的檔案違反了貴機構的安全性政策。仍要繼續執行嗎?</translation>
 <translation id="7915457674565721553">如要設定家長監護功能,請連線至網際網路</translation>
 <translation id="7915471803647590281">請將發生的狀況告訴我們,然後再提供意見。</translation>
 <translation id="7918257978052780342">註冊</translation>
@@ -5014,6 +5076,7 @@
 <translation id="7939412583708276221">保留</translation>
 <translation id="7942349550061667556">紅色</translation>
 <translation id="7943837619101191061">新增位置...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{有 1 個密碼遭外洩}other{有 # 個密碼遭外洩}}</translation>
 <translation id="7945031593909029181">「<ph name="CHROME_EXTENSION_NAME" />」要求連線</translation>
 <translation id="7946586320617670168">來源必須是安全來源</translation>
 <translation id="794676567536738329">確認權限</translation>
@@ -5088,6 +5151,7 @@
 <translation id="8028803902702117856">正在下載 <ph name="FILE_NAME" />,檔案大小為 <ph name="SIZE" /></translation>
 <translation id="8028993641010258682">大小</translation>
 <translation id="8030656706657716245">新增印表機</translation>
+<translation id="8030852056903932865">核准</translation>
 <translation id="8032244173881942855">無法投放分頁。</translation>
 <translation id="8033827949643255796">已選取</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{在無痕式視窗中開啟所有書籤(&amp;I)}=1{在無痕式視窗中開啟(&amp;I)}other{在無痕式視窗中開啟全部 # 個書籤(&amp;I)}}</translation>
@@ -5112,6 +5176,7 @@
 <translation id="8059417245945632445">檢查裝置 (&amp;I)</translation>
 <translation id="8059456211585183827">沒有可供儲存的印表機。</translation>
 <translation id="8063235345342641131">預設的綠色顯示圖片</translation>
+<translation id="8063535366119089408">查看檔案</translation>
 <translation id="8064671687106936412">金鑰:</translation>
 <translation id="8068253693380742035">輕觸即可登入</translation>
 <translation id="8068809649322155577">這會清除 <ph name="SITE_GROUP_NAME" /> 儲存的所有資料和 Cookie、所包含的網站,以及所安裝的應用程式。</translation>
@@ -5176,6 +5241,7 @@
 <translation id="8152091997436726702">印表機註冊程序逾時。如要註冊印表機,你必須完成印表機的註冊確認程序。</translation>
 <translation id="8154790740888707867">沒有檔案</translation>
 <translation id="815491593104042026">糟糕!由於設定使用的網址 (<ph name="BLOCKED_URL" />) 不安全,導致驗證失敗。請與你的管理員聯絡。</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{找不到遭外洩的密碼}=1{有 {COUNT} 個密碼遭外洩}other{有 {COUNT} 個密碼遭外洩}}</translation>
 <translation id="8157704005178149728">正在設定監督功能</translation>
 <translation id="8158117992543756526">這部裝置已在 <ph name="MONTH_AND_YEAR" />停止自動更新軟體和安全性。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">憑證信任設定錯誤</translation>
@@ -5229,6 +5295,7 @@
 <translation id="8226742006292257240">以下是你的電腦專用的 TPM 密碼 (由系統隨機產生):</translation>
 <translation id="8227119283605456246">附加檔案</translation>
 <translation id="8230134520748321204">要儲存 <ph name="ORIGIN" /> 的密碼嗎?</translation>
+<translation id="8233762480744368479">網際網路設定</translation>
 <translation id="8234795456569844941">請告訴我們在你收到設定檔錯誤訊息前執行的動作,以協助工程師修正此問題:</translation>
 <translation id="8236123533334037984">機構正在掃描這個上傳項目以取得安全性核准。</translation>
 <translation id="8236917170563564587">改為分享這個分頁</translation>
@@ -5407,6 +5474,7 @@
 <translation id="8472623782143987204">硬體支援</translation>
 <translation id="8473863474539038330">地址和其他資訊</translation>
 <translation id="8475313423285172237">電腦中其他程式所新增的擴充功能可能會變更 Chrome 的運作方式。</translation>
+<translation id="8476659515398963495">這份貼上的資料違反了貴機構的安全性政策。仍要繼續執行嗎?</translation>
 <translation id="8477241577829954800">已取代</translation>
 <translation id="8477384620836102176">一般(&amp;G)</translation>
 <translation id="8480082892550707549">雖然你曾經從這個網站下載檔案,但這個網站目前並不安全 (遭到入侵)。建議你日後再下載這個檔案。</translation>
@@ -5460,6 +5528,7 @@
 <translation id="8547013269961688403">啟用全螢幕放大鏡</translation>
 <translation id="85486688517848470">按住搜尋鍵即可切換最上排按鍵的行為</translation>
 <translation id="8549457076611407730">{NUM_ITEMS,plural, =1{1 個項目 }other{# 個項目}}</translation>
+<translation id="8550165047974571882">在你關閉所有 <ph name="ORIGIN" /> 分頁前,<ph name="ORIGIN" /> 都可以編輯「<ph name="FOLDERNAME" />」中的檔案</translation>
 <translation id="8551388862522347954">授權</translation>
 <translation id="8553342806078037065">管理其他使用者</translation>
 <translation id="8554899698005018844">未指定語言</translation>
@@ -5518,6 +5587,7 @@
 <translation id="8637688295594795546">可安裝系統更新,正在準備下載…</translation>
 <translation id="8639047128869322042">正在檢查有害軟體...</translation>
 <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - 通訊埠</translation>
+<translation id="8641606876632989680">如果你使用遭外洩的密碼登入帳戶,Chrome 會通知你</translation>
 <translation id="8642900771896232685">2 秒</translation>
 <translation id="8642947597466641025">放大文字</translation>
 <translation id="8644655801811752511">無法重設這個安全金鑰。請在插入金鑰後立即重設。</translation>
@@ -5563,10 +5633,12 @@
 <translation id="8688579245973331962">找不到你的名稱嗎?</translation>
 <translation id="8688591111840995413">密碼錯誤</translation>
 <translation id="8688672835843460752">可用空間</translation>
+<translation id="8691418731028620688">連線到 Wi-Fi</translation>
 <translation id="8695825812785969222">開啟位置(&amp;L)...</translation>
 <translation id="869884720829132584">應用程式選單</translation>
 <translation id="869891660844655955">到期日</translation>
 <translation id="8703346390800944767">略過廣告</translation>
+<translation id="870341961648617780">安全瀏覽和進階安全性設定</translation>
 <translation id="8705331520020532516">序號</translation>
 <translation id="8705580154597116082">可透過手機使用 Wi-Fi</translation>
 <translation id="8705629851992224300">無法讀取你的安全金鑰</translation>
@@ -5612,6 +5684,7 @@
 <translation id="874689135111202667">{0,plural, =1{要將 1 個檔案上傳到這個網站嗎?}other{要將 # 個檔案上傳到這個網站嗎?}}</translation>
 <translation id="8748384418490037181">Smart Lock 選項</translation>
 <translation id="8749863574775030885">存取製造商不明的 USB 裝置</translation>
+<translation id="8750133148106010815"><ph name="ORGANIZATION_NAME" /> 要求你備份資料,並將這部 Chromebook 恢復原廠設定,才能啟動 Google Play。</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> 要求與序列埠連線</translation>
 <translation id="8754200782896249056">&lt;p&gt;在受支援的桌面環境下執行「<ph name="PRODUCT_NAME" />」時,瀏覽器會使用系統的 Proxy 設定。不過,您的系統可能不受支援,或在啟動系統設定時發生問題。&lt;/p&gt;
 
@@ -5666,6 +5739,7 @@
 <translation id="8809147117840417135">淺藍綠色</translation>
 <translation id="8813698869395535039">無法登入 <ph name="USERNAME" /></translation>
 <translation id="8813811964357448561">張</translation>
+<translation id="8813872945700551674">要求家長核准安裝「<ph name="EXTENSION_NAME" />」</translation>
 <translation id="8813969267212093033">系統會以這個語言顯示文字</translation>
 <translation id="8814190375133053267">Wi-Fi</translation>
 <translation id="8814687660896548945">系統正在掃描封存檔案,請稍候...</translation>
@@ -5719,6 +5793,7 @@
 <translation id="8872187374998143710">請重新啟動裝置以使用 Plugin VM。</translation>
 <translation id="8872777911145321141">網站必須先詢問你,才能使用你的虛擬實境裝置和資料 (建議設定)</translation>
 <translation id="8874184842967597500">未連線</translation>
+<translation id="8875775314572167244">乙太網路設定</translation>
 <translation id="8876307312329369159">這項設定無法在示範工作階段中變更。</translation>
 <translation id="8877448029301136595">[父目錄]</translation>
 <translation id="8878384954777710821">正在解除安裝 Plugin VM...</translation>
@@ -5760,6 +5835,7 @@
 <translation id="892706138619340876">部分設定已重設</translation>
 <translation id="8930351635855238750">新的 Cookie 設定會在重新載入網頁後生效</translation>
 <translation id="8931394284949551895">新裝置</translation>
+<translation id="8931475688782629595">管理同步處理的項目</translation>
 <translation id="8932894639908691771">開關功能選項</translation>
 <translation id="8933960630081805351">在 Finder 中顯示(&amp;S)</translation>
 <translation id="8934732568177537184">繼續</translation>
@@ -5917,6 +5993,7 @@
 <translation id="9148126808321036104">重新登入</translation>
 <translation id="9149866541089851383">編輯...</translation>
 <translation id="9150045010208374699">使用你的相機</translation>
+<translation id="9150429437595727962">Wi-Fi 設定</translation>
 <translation id="9153934054460603056">儲存身分與密碼</translation>
 <translation id="9154194610265714752">已更新</translation>
 <translation id="91568222606626347">建立捷徑...</translation>
@@ -5946,6 +6023,7 @@
 <translation id="9203398526606335860">分析已啟用(&amp;P)</translation>
 <translation id="9203904171912129171">選取裝置</translation>
 <translation id="9203962528777363226">裝置管理員已停用新增使用者功能</translation>
+<translation id="9211177926627870898">必須更新</translation>
 <translation id="9214520840402538427">糟糕!系統嘗試初始設定安裝時間 (installation-time) 屬性,但是動作已逾時。請洽詢你的支援代表。</translation>
 <translation id="9214695392875603905">杯子蛋糕</translation>
 <translation id="9215293857209265904">已新增「<ph name="EXTENSION_NAME" />」</translation>
@@ -5977,6 +6055,7 @@
 <translation id="945522503751344254">提供意見</translation>
 <translation id="947329552760389097">檢查元素 (&amp;I)</translation>
 <translation id="952992212772159698">未啟用</translation>
+<translation id="956500788634395331">系統已封鎖可能有害的擴充功能</translation>
 <translation id="957960681186851048">這個網站試圖自動下載多個檔案</translation>
 <translation id="9580706199804957">無法連上 Google 服務</translation>
 <translation id="960719561871045870">電信業者代碼</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index e59b144..10777de 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -207,6 +207,7 @@
 <translation id="1274977772557788323">Izilungiselelo zesitoreji sesidlali se-Adobe Flash</translation>
 <translation id="1274997165432133392">Amakhukhi nenye idatha yesayithi</translation>
 <translation id="1280820357415527819">Isesha amanethiwekhi eselula</translation>
+<translation id="1280965841156951489">Hlela amafayela</translation>
 <translation id="1282420830958964167">Umkhawulo ku-"<ph name="APP_NAME" />" osethwe umzali wakho usuphelile. Ungalisebenzisa ngokungu-<ph name="TIME_LIMIT" /> kusasa.</translation>
 <translation id="1285320974508926690">Ungalokothi uhumushe leli sayithi</translation>
 <translation id="1285484354230578868">Gcina idatha ku-akhawunti yakho ye-Google Drayivu</translation>
@@ -511,6 +512,7 @@
 <translation id="1692210323591458290">Okunsomi kakhulu</translation>
 <translation id="1692799361700686467">Kuvunyelwe amakhukhi asuka kumasayithi amaningi.</translation>
 <translation id="1697150536837697295">Ubuciko</translation>
+<translation id="1697686431566694143">Hlela ifayela</translation>
 <translation id="1698122934742150150">Isikhathi se-incognito samanje kuphela</translation>
 <translation id="1698650002254827833">Lolu hlu lwezinhlelo zokusebenza alukwazi ukulayishwa. Sicela uzame futhi.</translation>
 <translation id="1701062906490865540">Susa lo muntu</translation>
@@ -696,6 +698,7 @@
 <translation id="1931152874660185993">Azikho izingxenye ezifakiwe.</translation>
 <translation id="1932098463447129402">Hhayi ngaphambili</translation>
 <translation id="1933809209549026293">Sicela uxhume igundane noma ikhibhodi. Uma usebenzisa idivayisi ye-Bluetooth, qinisekisa ukuthi ilungele ukubhanqa.</translation>
+<translation id="1936931585862840749">Sebenzisa inombolo ukuze ubonise ukuthi mangakhi amakhophi ozowaphrinta (1 kuya kwangu-<ph name="MAX_COPIES" />999).</translation>
 <translation id="1937774647013465102">Ayikwazi ukungenisa uhlobo lwesiqukathi sesakhiwo se-<ph name="ARCHITECTURE_CONTAINER" /> nale divayisi esiyi-<ph name="ARCHITECTURE_DEVICE" />. Ungazama ukubuyisela lesi siqukathi kudivayisi ehlukile, noma ungafinyelela kumafayela angaphakathi kwalesi sithombe sesiqukathi ngokuvula uhlelo lokusebenza lwe-Files.</translation>
 <translation id="1938351510777341717">Umyalo wangaphandle</translation>
 <translation id="1940546824932169984">Amadivayisi axhunyiwe</translation>
@@ -991,6 +994,7 @@
 <translation id="2343747224442182863">Gxilisa le thebhu</translation>
 <translation id="2344028582131185878">Ukulandwa okuzenzakalela</translation>
 <translation id="2345723121311404059">1 ikhasi ku-<ph name="PRINTER_NAME" /></translation>
+<translation id="2346953515226895098">Isevisi ye-SODA</translation>
 <translation id="2347644257713614136">Ukusetshenziswa kwe-Hangouts ne-Cast for Education kubuswa inqubomgmo yobumfihlo ye-Google.</translation>
 <translation id="2348176352564285430">Uhlelo lokusebenza: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="2350133097354918058">Kuphinde kwalayishwa</translation>
@@ -1044,6 +1048,7 @@
 <translation id="2422125132043002186">Ukubuyisa kwe-Linux kukhanseliwe</translation>
 <translation id="2423578206845792524">Londoloza isithombe njenge...</translation>
 <translation id="2428510569851653187">Chaza ukuthi bowukade wenzani ngenkathi kuphahlazeka ithebhu</translation>
+<translation id="2428939361789119025">Vala i-WiFi</translation>
 <translation id="2431027948063157455">Umsizi we-Google akakwazanga ukulayisha, sicela uhlole ukuxhumeka kwakho kwenethiwekhi uphinde uzame futhi.</translation>
 <translation id="2432753757290432042">Isibuyekezo se-Linux (Beta) siyadingeka</translation>
 <translation id="2433452467737464329">Engeza i-param yombuzo ku-URL ukuze uvuselele ikhasi: chrome://network/?refresh=&lt;sec&gt;</translation>
@@ -1461,6 +1466,7 @@
 <translation id="2944060181911631861">Thumela idatha yokusetshenziswa neyokuxilonga. Siza ukuthuthukisa umuzwa wakho we-Android ngokuthumela ngokuzenzakalela idatha yokuxilonga, yedivayisi, neyokusetshenziswa kohlelo lokusebenza ku-Google. Lokhu kuzosiza ukuzinza kwesistimu nokohlelo lokusebenza nokunye ukuthuthukiswa. Enye idatha izophinda isize izinhlelo zokusebenza ze-Google nozakwethu, abafana nonjiniyela be-Android. Uma isilungiselelo sakho esingeziwe sewebhu nesohlelo lokusebenza sivuliwe, le datha ingalondolozwa ku-akhawunti yakho ye-Google. <ph name="BEGIN_LINK1" />Funda kabanzi<ph name="END_LINK1" /></translation>
 <translation id="2946119680249604491">Engeza ukuxhumeka</translation>
 <translation id="2947605845283690091">Ukuphequlula kwewebhu kufanele kusheshe. Thatha isikhashana <ph name="BEGIN_LINK" />ukuhlola izandiso zakho<ph name="END_LINK" /> manje.</translation>
+<translation id="294776358433205713">{NUM_EXTENSIONS,plural, =1{1 isandiso esingase sibe ingozi sivalie. Ungasisusa futhi lapha.}one{# izandiso ezingase zibe ingozi zivaliwe. Ungazisusa futhi lapha.}other{# izandiso ezingase zibe ingozi zivaliwe. Ungazisusa futhi lapha.}}</translation>
 <translation id="2948300991547862301">Hamba ku-<ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Isiphequluli sewebhu esisheshayo, esilula futhi esiphephile, esakhelwe iwebhu yamanje.</translation>
 <translation id="2949289451367477459">Sebenzisa indawo. Vumela izinhlelo zokusebenza namasevisi anemvume yendawo ukusebenzisa indawo yedivayisi. I-Google ingaqoqa idatha yendawo ngezikhathi ezithile iphinde isebenzise le datha ngendlela engaziwa ukuze ithuthukise ukunemba kwendawo namasevisi asuselwa endaweni. <ph name="BEGIN_LINK1" />Funda kabanzi<ph name="END_LINK1" /></translation>
@@ -1541,6 +1547,7 @@
 <translation id="3067198179881736288">Faka uhlelo lokusebenza?</translation>
 <translation id="3067198360141518313">Qalisa le-pugin</translation>
 <translation id="3071624960923923138">Ungachofoza lapha ukuze uvule ithebhu entsha</translation>
+<translation id="3072775339180057696">Vumela isayithi libuke i-<ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">Ukuqala kabusha kuyadingeka ukuze kuqaliswe inqubo yokugezwa ngamandla. Ngemuva kokuqalisa kabusha uzocelwa ukuthi uqinisekise ukuthi ufuna ukuqhubeka.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Idatha yakho yokungena ngemvume iye yasuswa</translation>
@@ -1553,6 +1560,7 @@
 <translation id="3085412380278336437">Isayithi lingasebenzisa ikhamera yakho</translation>
 <translation id="3085752524577180175">Umsingathi we-SOCKS</translation>
 <translation id="3088052000289932193">Isayithi lisebenzisa i-MIDI</translation>
+<translation id="3088128611727407543">Ilungiselela iphrofayela yohlelo lokusebenza...</translation>
 <translation id="3088325635286126843">&amp;Qamba kabusha...</translation>
 <translation id="3089137131053189723">Usesho lusuliwe</translation>
 <translation id="3090193911106258841">Ifinyelela kumsindo nokokufaka kwevidiyo</translation>
@@ -1594,6 +1602,7 @@
     Incazelo:
     <ph name="LINUX_DESCRIPTION" /></translation>
 <translation id="3149510190863420837">Izinhlelo zokusebenza ze-Chrome</translation>
+<translation id="3150693969729403281">Sebenzisa ukuhlola kokuphepha manje</translation>
 <translation id="3150927491400159470">Ukulayishwa kabusha okunzima</translation>
 <translation id="315116470104423982">Idatha yeselula</translation>
 <translation id="3151539355209957474">Isikhathi sokuqala</translation>
@@ -1686,6 +1695,7 @@
 <translation id="3282568296779691940">Ngena ngemvume ku-Chrome</translation>
 <translation id="3285322247471302225">Ithebhu entsha</translation>
 <translation id="328571385944182268">Londoloza amaphasiwedi akho?</translation>
+<translation id="328785681103589998">I-<ph name="ORIGIN" /> izokwazi ukubuka i-<ph name="FILENAME" /> kuze kube yilapho uvala wonke amathebhu we-<ph name="ORIGIN" /></translation>
 <translation id="3288047731229977326">Izandiso ezisebenza kumodi yonjiniyela zingalimaza ikhompyutha yakho. Uma ungeyena unjiniyela, kuzomele ukhubaze lezi zandiso ezisebenza kumodi yonjiniyela ukuze uhlale uvikelekile.</translation>
 <translation id="3289856944988573801">Ukuze uhlolele izibuyekezo, sicela usebenzise i-Ethernet noma i-Wi-Fi.</translation>
 <translation id="3290356915286466215">Okungaphephanga</translation>
@@ -1794,6 +1804,7 @@
 <translation id="344630545793878684">Funda idatha yakho kumawebhusayithi athile</translation>
 <translation id="3448086340637592206">I-Google Chrome Nemigomo Yokungezwa ye-Chrome OS</translation>
 <translation id="3448492834076427715">Buyekeza i-akhawunti</translation>
+<translation id="3449393517661170867">Iwindi lethebhu elisha</translation>
 <translation id="3449839693241009168">Cindezela ku-<ph name="SEARCH_KEY" /> ukuze uthumele imiyalo ku-<ph name="EXTENSION_NAME" /></translation>
 <translation id="3450157232394774192">Amaphesenti wokuthatha indawo yesimo esijwayelekile wokungenzi lutho</translation>
 <translation id="3451332697983754369">Vumelanisa i-<ph name="DEVICE_TYPE" /> yami</translation>
@@ -1974,6 +1985,7 @@
 <translation id="3681311097828166361">Siyabonga ngempendulo yakho. Awuxhumekile ku-inthanethi manje, futhi umbiko wakho uzothunyelwa emuva kwesikhathi.</translation>
 <translation id="3682824389861648626">Umkhawulo wokunyakaza</translation>
 <translation id="3683524264665795342"><ph name="APP_NAME" /> Isicelo sokwabelana ngesikrini</translation>
+<translation id="3686074530047028092">I-akhawunti yemfundo</translation>
 <translation id="368789413795732264">Kube khona iphutha ngenkathi kuzanywa ukubhala ifayela: <ph name="ERROR_TEXT" />.</translation>
 <translation id="3688507211863392146">Bhala kumafayela namafolda owavula kuhlelo lokusebenza</translation>
 <translation id="3688526734140524629">Shintsha isiteshi</translation>
@@ -2042,6 +2054,7 @@
 <translation id="3759933321830434300">Vimba izingxenye zamakhasi wewebhu</translation>
 <translation id="3760460896538743390">Hlola ikhasi elingemuva</translation>
 <translation id="37613671848467444">Vula ku-&amp;Incognito Window</translation>
+<translation id="3761556954875533505">Vumela isayithi lihlele amafayela?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Xhumana nedivayisi ye-USB}one{Xhumana namadivayisi angu-# we-USB}other{Xhumana namadivayisi angu-# we-USB}}</translation>
 <translation id="3765246971671567135">Ayikwazanga ukufunda inqubomgomo yemodi yedemo engaxhunyiwe ku-inthanethi.</translation>
 <translation id="3768037234834996183">Ivumelanisa okuncamelayo...</translation>
@@ -2177,6 +2190,7 @@
 <translation id="3927932062596804919">Phika</translation>
 <translation id="3928570707778085600">Ilondoloze ushintsho ku-<ph name="FILE_OR_FOLDER_NAME" />?</translation>
 <translation id="3929426037718431833">Lezi zandiso zingabona futhi zishintshe ulwazi kuleli sayithi.</translation>
+<translation id="3930155420525972941">Hambisa iqembu ewindini elisha</translation>
 <translation id="3930737994424905957">Ifuna amadivayisi</translation>
 <translation id="3930968231047618417">Umbala ongemuva</translation>
 <translation id="3933283459331715412">Buyisela amaphasiwedi asusiwe ka-<ph name="USERNAME" /></translation>
@@ -2334,6 +2348,7 @@
 <translation id="4130750466177569591">Ngiyavuma</translation>
 <translation id="413121957363593859">Izingxenye</translation>
 <translation id="4131410914670010031">Okumnyama nokumhlophe</translation>
+<translation id="4133076602192971179">Vula uhlelo lokusebenza ukushintsha iphasiwedi yakho</translation>
 <translation id="4136203100490971508">Umkhayo wasebusuku uzovala ngokuzenzakalelayo uma kuphuma ilanga</translation>
 <translation id="41365691917097717">Ukuqhubeka kuzonika amandla ukulungisa amaphutha e-ADB okudala nokuhlola izinhlelo zokusebenza ze-Android. Qaphela ukuthi lesi senzo sivumela ukufakwa kwezinhlelo zokusebenza ze-Android ezingazange ziqinisekiswe i-Google, futhi sidinga ukusethwa kabusha kwasekuqaleni ukuze usikhubaze.</translation>
 <translation id="4138267921960073861">Bonisa amagama wabasebenzisi nezithombe kusikrini sokungena ngemvume</translation>
@@ -2445,6 +2460,7 @@
 <translation id="4330387663455830245">Ungalokothi uhumushe isi-<ph name="LANGUAGE" /></translation>
 <translation id="4332976768901252016">Setha izilawuli zomzali</translation>
 <translation id="4333854382783149454">I-PKCS #1 SHA-1 enokubethela kwe-RSA</translation>
+<translation id="4336329548027352634">{NUM_EXTENSIONS,plural, =1{Umphathi wakho uvule isandiso esingase sibe ingozi esingu-1}one{Umphathi wakho uvule izandiso ezingase zibe ingozi ezingu-#}other{Umphathi wakho uvule izandiso ezingase zibe ingozi ezingu-#}}</translation>
 <translation id="4336434711095810371">Sula yonke idatha</translation>
 <translation id="4336979451636460645">Ngamalogi wenethiwekhi, bona i-: <ph name="DEVICE_LOG_LINK" /></translation>
 <translation id="4340515029017875942"><ph name="ORIGIN" /> ifuna ukuxhumana nohlelo lokusebenza "<ph name="EXTENSION_NAME" />"</translation>
@@ -2751,6 +2767,7 @@
 <translation id="4785719467058219317">Usebenzisa ukhiye wokuvikela ongabhalisiwe ngale webhusayithi</translation>
 <translation id="4788092183367008521">Sicela uhlole ukuxhumana kwenethiwekhi yakho bese uyazama futhi.</translation>
 <translation id="4792711294155034829">Bika inkinga...</translation>
+<translation id="4794810983896241342">Izibuyekezo ziphethwe <ph name="BEGIN_LINK" />umlawuli wakho<ph name="END_LINK" /></translation>
 <translation id="479536056609751218">Ikhasi lewebhu, i-HTML kuphela</translation>
 <translation id="4798236378408895261">Namthisela <ph name="BEGIN_LINK" />Amalogu e-Bluetooth<ph name="END_LINK" /> (kwangaphakathi kwe-Google)</translation>
 <translation id="4801448226354548035">Fihla ama-akhawunti</translation>
@@ -2846,6 +2863,7 @@
 <translation id="4908811072292128752">Vula ithebhu entsha ukuze uphequluli amasayithi amabili ngesikhathi esisodwa</translation>
 <translation id="4909038193460299775">Ngoba le akhawunti iphethwe yi-<ph name="DOMAIN" />, amabhukhimakhi akho, umlando, amaphasiwedi, nezinye izilungiselelo zizosulwa kusukela kule divayisi. Kodwa, idatha yakho izohlala igcinwe ku-akhawunti yakho ye-Google futhi ingaphathwa <ph name="BEGIN_LINK" />kudeshibhodi ye-Google<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Ukuvuswa kokungenzi lutho</translation>
+<translation id="4916542008280060967">Vumela isayithi lihlele i-<ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Shintshela kusiphequluli esiphephile</translation>
 <translation id="4917385247580444890">kunamandla</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ifuna ukuxhumana nesandiso "<ph name="EXTENSION_NAME" />"</translation>
@@ -2917,6 +2935,7 @@
 <translation id="5017633213534173756">Khumbula</translation>
 <translation id="5018207570537526145">Vula isandiso sewebhusayithi</translation>
 <translation id="5021750053540820849">Akukabuyekezwa okwamanje</translation>
+<translation id="5026806129670917316">Vula i-Wi-Fi</translation>
 <translation id="5026874946691314267">Ungaphindi ubonise lokhu</translation>
 <translation id="5027550639139316293">Isitifiketi se-imeyili</translation>
 <translation id="5027562294707732951">Engeza isandiso</translation>
@@ -3029,6 +3048,7 @@
 <translation id="5184063094292164363">I-&amp;JavaScript Console</translation>
 <translation id="5184209580557088469">Ithikithi elinaleli gama lomsebenzisi selivele likhona</translation>
 <translation id="5184662919967270437">Ibuyekeza idivayisi yakho</translation>
+<translation id="5185359571430619712">Buyekeza izandiso</translation>
 <translation id="5185386675596372454">Inguqulo entsha ye-"<ph name="EXTENSION_NAME" />" ikhutshaziwe ngoba idinga izimvume eziningi.</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="51918995459521422"><ph name="ORIGIN" /> ifuna ukulanda amafayela amaningi</translation>
@@ -3079,6 +3099,7 @@
 <translation id="5260334392110301220">Ama-Smart Quotes</translation>
 <translation id="5260508466980570042">Uxolo, i-imeyili yakho noma iphasiwedi ayikwazanga ukuqinisekiswa. Sicela uzame futhi.</translation>
 <translation id="5261683757250193089">Buka kusitolo sewebhu</translation>
+<translation id="5262178194499261222">Susa iphasiwedi</translation>
 <translation id="5264148714798105376">Lokhu kungathatha iminithi noma ngaphezulu.</translation>
 <translation id="5264252276333215551">Sicela uxhumeke ku-inthanethi ukuze uqalise uhlelo lwakho lokusebenza ngemodi yekhiyoski.</translation>
 <translation id="5265562206369321422">Akuxhunyiwe ku-inthanethi ngaphezulu kweviki</translation>
@@ -3506,6 +3527,7 @@
 <translation id="5833726373896279253">Lezi zilungiselelo zingashintshwa kuphela ngumnikazi:</translation>
 <translation id="5834581999798853053">Kusele okungenani amaminithi angu-<ph name="TIME" /></translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Ikhamera noma ukurekhoda kwemakrofoni</translation>
+<translation id="5841270259333717135">Lungiselela i-Ethernet</translation>
 <translation id="5842497610951477805">Ukunika amandla i-Bluetooth</translation>
 <translation id="5846200638699387931">Iphutha lokuhambisana kwesintheksi: <ph name="ERROR_LINE" /></translation>
 <translation id="5849212445710944278">Sekuvele kungeziwe</translation>
@@ -3551,6 +3573,7 @@
 <translation id="5900358982890952556">Thuthukisa i-Linux (Beta)</translation>
 <translation id="5901494423252125310">Umnyango wephrinta uvuliwe</translation>
 <translation id="5901630391730855834">Okuliphuzi</translation>
+<translation id="5902861914735357691">{NUM_EXTENSIONS,plural, =1{Uvule isandiso esingase sibe ingozi esingu-1}one{Uvule izandiso ezingase zibe ingozi ezingu-#}other{Uvule izandiso ezingase zibe ingozi ezingu-#}}</translation>
 <translation id="5906655207909574370">Kucishe isesikhathini! Qala kabusha idivayisi yakho ukuze uqedele ukubuyekeza.</translation>
 <translation id="5906732635754427568">Idatha ephathelaniswe nalolu hlelo lokusebenza izosuswa kule divayisi.</translation>
 <translation id="5908769186679515905">Vimbela amasayithi kusukela ekuqaliseni i-Flash</translation>
@@ -3580,6 +3603,7 @@
 <translation id="59324397759951282">Idivayisi ye-USB kusuka ku-<ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932881020239635062">Umkhiqizo</translation>
 <translation id="5933376509899483611">Indawo yesikhathi</translation>
+<translation id="5935656526031444304">Phatha ukuphequlula ngokuphephile</translation>
 <translation id="5938002010494270685">Ukuthuthuka kokuphepha kuyatholakala</translation>
 <translation id="5939518447894949180">Setha kabusha</translation>
 <translation id="5941153596444580863">Engeza umuntu...</translation>
@@ -3623,6 +3647,7 @@
 <translation id="5993807461461235661">Lokhu kulayishwa kubethelwe futhi kuphula izinqubomgomo zokuvikela zenhlangano yakho.</translation>
 <translation id="5997337190805127100">Funda kabanzi ngokufinyelela kwesayithi</translation>
 <translation id="6000758707621254961">imiphumela engu-<ph name="RESULT_COUNT" /> ye-'<ph name="SEARCH_TEXT" />'</translation>
+<translation id="6002210667729577411">Hambisa iqembu ewindini elisha</translation>
 <translation id="6002458620803359783">Amazwi ancanyelwayo</translation>
 <translation id="6006484371116297560">Okwakudala</translation>
 <translation id="6007240208646052708">Usesho lwezwi ngolimi lwakho olutholakali.</translation>
@@ -4161,6 +4186,7 @@
 <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation>
 <translation id="6739923123728562974">Bonisa isinqamuleli sedeskithophu</translation>
 <translation id="6740234557573873150">I-<ph name="FILE_NAME" /> emiswe isikhashana</translation>
+<translation id="6741063444351041466"><ph name="BEGIN_LINK" />Umlawuli wakho<ph name="END_LINK" /> uvale ukuphequlula ngokuphephile</translation>
 <translation id="6742339027238151589">Ukufinyelela kusikripthi</translation>
 <translation id="6745592621698551453">Buyekeza manje</translation>
 <translation id="6746124502594467657">Hambisa phansi</translation>
@@ -4419,6 +4445,7 @@
     <ph name="BEGIN_BOLD" />Khumbula:<ph name="END_BOLD" /> Izwi elifanayo noma ukurekhoda kungakwazi ukufinyelela nakumsizi wakho. Ungasusa imvume ye-Voice Match ngemuva kwesikhathi ngokuyivala kuzilungiselelo zomsizi.</translation>
 <translation id="7093434536568905704">I-GTK+</translation>
 <translation id="7093866338626856921">Shintshisana ngedatha ngamadivayisi anegama: <ph name="HOSTNAMES" /></translation>
+<translation id="7094434674404953373">Idivayisi izoqala kabusha lapho izibuyekezo seziqedile.</translation>
 <translation id="7098389117866926363">Idivayisi ye-USB-C (imbobo engakwesokunxele ngemuva)</translation>
 <translation id="7098447629416471489">Ezinye izinjini zokusesha ezilondoloziwe zizobonakala lapha</translation>
 <translation id="7099337801055912064">Ayikwazi ukulayisha i-PPD enkulu. Usayizi omkhulu ngu-250 kB.</translation>
@@ -4891,6 +4918,7 @@
 <translation id="7766807826975222231">Thatha uhambo</translation>
 <translation id="7766838926148951335">Yamukela izimvume</translation>
 <translation id="7769672763586021400">I-ID yemodeli</translation>
+<translation id="7770651108375708429">Nqamula i-Wi-Fi</translation>
 <translation id="7771452384635174008">Isakhiwo</translation>
 <translation id="7772032839648071052">Qinisekisa umushwana wokungena</translation>
 <translation id="7772127298218883077">Mayelana ne-<ph name="PRODUCT_NAME" /></translation>
@@ -5049,6 +5077,7 @@
 <translation id="7939412583708276221">Gcina noma kunjalo</translation>
 <translation id="7942349550061667556">Okubomvu</translation>
 <translation id="7943837619101191061">Engeza indawo...</translation>
+<translation id="7944146786814519771">{NUM_PASSWORDS,plural, =1{1 iphasiwedi eyonakalisiwe}one{# amaphasiwedi onakalisiwe}other{# amaphasiwedi onakalisiwe}}</translation>
 <translation id="7945031593909029181">I-"<ph name="CHROME_EXTENSION_NAME" />" ifuna ukuxhuma i-:</translation>
 <translation id="7946586320617670168">Okoqobo kufanele kuvikelwe</translation>
 <translation id="794676567536738329">Qinisekisa izimvume</translation>
@@ -5147,6 +5176,7 @@
 <translation id="8059417245945632445">&amp;Hlola amadivayisi</translation>
 <translation id="8059456211585183827">Awekho amaphrinta atholakalayo ukuze alondolozwe.</translation>
 <translation id="8063235345342641131">Isithombe esizenzakalelayo esiluhlaza</translation>
+<translation id="8063535366119089408">Buka ifayela</translation>
 <translation id="8064671687106936412">Ukhiye:</translation>
 <translation id="8068253693380742035">Thinta ukuze ungene ngemvume.</translation>
 <translation id="8068809649322155577">Lokhu kuzosula yonke idatha namakhukhu okugcinwe i-<ph name="SITE_GROUP_NAME" />, nanoma yimaphi amasayithi angaphansi kwalo, nezinhlelo zokusebenza zalo ezifakiwe.</translation>
@@ -5212,6 +5242,7 @@
 <translation id="8152091997436726702">Ukubhaliswa kwephrinta kuphelelwe yisikhathi. Ukuze ubhalise iphrinta, kuzomele uqinisekise  ukubhalisa kuphrinta.</translation>
 <translation id="8154790740888707867">Alikho ifayela</translation>
 <translation id="815491593104042026">Eshu!  Ukuvumelanisa kuhlulekile ngoba kuye kwalungiselelwa ku-URL engavikelekile (<ph name="BLOCKED_URL" />).  Sicela uxhumane nomqondisi wakho.</translation>
+<translation id="8155676038687609779">{COUNT,plural, =0{Awekho amaphasiwedi onakalisiwe atholakele}=1{{COUNT} iphasiwedi eyonakalisiwe}one{{COUNT} amaphasiwedi onakalisiwe}other{{COUNT} amaphasiwedi onakalisiwe}}</translation>
 <translation id="8157704005178149728">Isetha ukugada</translation>
 <translation id="8158117992543756526">Le divayisi iyekile ukuthola izibuyekezo zokuphepha nezesofthiwe ngokuzenzakalelayo ngo-<ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Iphutha lokusetha ukuthembeka kwesitifiketi</translation>
@@ -5265,6 +5296,7 @@
 <translation id="8226742006292257240">Ngaphansi kukhona iphasiwedi ye-TPM ekhiqizwa ngokunganakile enikezelwe kukhompyutha yakho.</translation>
 <translation id="8227119283605456246">Namathisela ifayela</translation>
 <translation id="8230134520748321204">Londolozela amaphasiwedi i-<ph name="ORIGIN" />?</translation>
+<translation id="8233762480744368479">Izilungiselelo ze-inthanethi</translation>
 <translation id="8234795456569844941">Sicela usize onjiniyela bethu ukulungisa le nkinga. Sitshele ukuthi kwenzeke ini ngaphambi kokuthi uthole umlayezo wephutha wephrofayela:</translation>
 <translation id="8236123533334037984">Inhlangano yakho iphequlula lokhu okulayishayo ngenjongo yokugunyaza okuphephile.</translation>
 <translation id="8236917170563564587">Yabelana ngale thebhu kunalokho</translation>
@@ -5602,6 +5634,7 @@
 <translation id="8688579245973331962">Awuliboni igama lakho?</translation>
 <translation id="8688591111840995413">Iphasiwedi embi</translation>
 <translation id="8688672835843460752">Kuyatholakala</translation>
+<translation id="8691418731028620688">Xhuma i-Wi-Fi</translation>
 <translation id="8695825812785969222">Vula &amp;Indawo...</translation>
 <translation id="869884720829132584">Imenyu yezinhlelo zokusebenza</translation>
 <translation id="869891660844655955">Idethi yokuphelelwa yisikhathi</translation>
@@ -5761,6 +5794,7 @@
 <translation id="8872187374998143710">Sicela uqale kabusha idivayisi yakho ukuze usebenzise i-Plugin VM.</translation>
 <translation id="8872777911145321141">Buza uma isayithi lifuna ukusebenzisa amadivayisi akho ento engekho ngokoqobo nedatha (kunconyiwe)</translation>
 <translation id="8874184842967597500">Ayixhunyiwe</translation>
+<translation id="8875775314572167244">Izilungiselelo ze-Ethernet</translation>
 <translation id="8876307312329369159">Lesi silungiselelo asikwazi ukushintshwa esikhathini sedemo.</translation>
 <translation id="8877448029301136595">[umkhombandlela womzali]</translation>
 <translation id="8878384954777710821">Ikhipha i-Plugin VM...</translation>
@@ -5802,6 +5836,7 @@
 <translation id="892706138619340876">Ezinye izilungiselelo ziye zasethwa kabusha</translation>
 <translation id="8930351635855238750">Izilungiselelo ezintsha zekhukhi zizosebenza ngemuva kokuphinda ulayishe ikhasi</translation>
 <translation id="8931394284949551895">Amadivayisi amasha</translation>
+<translation id="8931475688782629595">Phatha ukuvumelanisa kwakho</translation>
 <translation id="8932894639908691771">Izinketho zokushintsha ukufinyeleleka</translation>
 <translation id="8933960630081805351">&amp;Bonisa kusitholi</translation>
 <translation id="8934732568177537184">Qhubeka</translation>
@@ -5959,6 +5994,7 @@
 <translation id="9148126808321036104">Phinda ungene ngemvume</translation>
 <translation id="9149866541089851383">Hlela...</translation>
 <translation id="9150045010208374699">Sebenzisa ikhamela yakho</translation>
+<translation id="9150429437595727962">Izilungiselelo ze-Wi-Fi</translation>
 <translation id="9153934054460603056">Londoloza ubunikazi nephasiwedi</translation>
 <translation id="9154194610265714752">Kubuyekeziwe</translation>
 <translation id="91568222606626347">Dala isinqamuleli...</translation>
@@ -6020,6 +6056,7 @@
 <translation id="945522503751344254">Thumela impendulo</translation>
 <translation id="947329552760389097">&amp;Hlola izinto</translation>
 <translation id="952992212772159698">Ayenziwanga yasebenza</translation>
+<translation id="956500788634395331">Uvikelwe kusuka kwizandiso ezingase zibe ingozi</translation>
 <translation id="957960681186851048">Leli sayithi lizame ukulanda amafayela amaningi ngokuzenzakalela</translation>
 <translation id="9580706199804957">Ayikwazanga ukuxhuma namasevisi e-Google</translation>
 <translation id="960719561871045870">Ikhodi ye-opharetha</translation>
diff --git a/chrome/app/resources/google_chrome_strings_am.xtb b/chrome/app/resources/google_chrome_strings_am.xtb
index 930bc23..b0a4da0 100644
--- a/chrome/app/resources/google_chrome_strings_am.xtb
+++ b/chrome/app/resources/google_chrome_strings_am.xtb
@@ -52,6 +52,7 @@
 <translation id="2309047409763057870">ይሄ ሁለተኛ የGoogle Chrome ጭነት ነው፣ እና ነባሪ አሳሽዎ ማድረግ አይቻልም።</translation>
 <translation id="2341767445688917208">Chrome OS የእርስዎን የይለፍ ቃል ማስመር አልቻለም። አሁኑኑ ያስተካክሉ።</translation>
 <translation id="2348335408836342058">Chrome ለዚህ ጣቢያ የእርስዎን ካሜራ እና ማይክሮፎን ለመድረስ ፈቃድ ያስፈልገዋል</translation>
+<translation id="234869673307233423">Chrome የእርስዎን የይለፍ ቃላት መፈተሽ አይችልም። ቆይተው እንደገና ይሞክሩ።</translation>
 <translation id="2429317896000329049">ማመሳሰል ለጎራዎ ስለማይገኝ Google Chrome ውሂብዎን ማመሳሰል አልቻለም።</translation>
 <translation id="2467438592969358367">Google Chrome የእርስዎን የይለፍ ቃላት ወደ ውጭ መላክ ይፈልጋል። ይህንን ለመፍቀድ የWindows የይለፍ ቃልዎን ይተይቡ።</translation>
 <translation id="2485422356828889247">አራግፍ</translation>
@@ -72,6 +73,8 @@
 <translation id="2857540653560290388">Chromeን በማስጀመር ላይ...</translation>
 <translation id="2871893339301912279">ወደ Chrome ገብተዋል!</translation>
 <translation id="2888126860611144412">ስለChrome</translation>
+<translation id="2929907241665500097">Chrome አልተዘመነም፣ የሆነ ስክህተት ተከስቷል። <ph name="BEGIN_LINK" />የChrome ዝማኔ ችግሮችን እና ያልተሳኩ ዝማኔዎችን ያስተካክሉ።<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - በአውታረ መረብ ወደ መለያ መግባት - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome በጀርባ ሁኔታ ላይ ነው።</translation>
 <translation id="3065168410429928842">የChrome ትር</translation>
 <translation id="3080151273017101988">Google Chrome ሲዘጋ የጀርባ መተግበሪያዎችን ማሂዱን ይቀጥሉ</translation>
@@ -110,7 +113,9 @@
 <translation id="4331809312908958774">Chrome ስርዓተ ክወና</translation>
 <translation id="4335235004908507846">Chrome ደህንነትዎ ከውሂብ ጥሰቶች፣ ከመጥፎ ቅጥያዎች እና ተጨማሪ ነገሮች እንደተጠበቀ እንዲቆይ ሊያግዝ ይችላል</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> ወደ Chrome ታክሏል</translation>
+<translation id="4384570495110188418">እርስዎ በመለያ ስላልገቡ ስለሆኑ Chrome የይለፍ ቃላትዎን መፈተሽ አይችልም</translation>
 <translation id="4407807842708586359">Google Chrome ስርዓተ ክወና</translation>
+<translation id="4450664632294415862">Chrome - በአውታረ መረብ ወደ መለያ መግባት - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">በGoogle Chrome ላይ ሌላ ሥርዓተ ክወና በሂደት ላይ ነው። እባክዎ በኋላ ላይ እንደገና ይሞክሩ።</translation>
 <translation id="4480040274068703980">Chrome OS እየተገባ ሳለ በተፈጠረ አንድ ስህተት ምክንያት ውሂብዎን ማመሳሰል አልቻለም።</translation>
 <translation id="4561051373932531560">Google Chrome ድር ላይ ያለ ስልክ ቁጥር ጠቅ እንዲያደርጉት እና በSkype እንዲደውሉለት ያስችልዎታል!</translation>
@@ -120,6 +125,7 @@
 <translation id="4600710005438004015">Chrome ወደ የቅርብ ጊዜው ስሪት ሊዘመን አልቻለም፣ ስለዚህ አዲስ ባህሪያት እና የደህንነት ማስተካከያዎች እያመለጠዎት ነው።</translation>
 <translation id="4631713731678262610">በChrome ምናሌ ውስጥ ደብቅ</translation>
 <translation id="4633000520311261472">Chrome ይበልጥ ደህንነቱ የተጠበቀ እንዲሆን ለማድረግ፣ በ<ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ውስጥ ያልተጠቀሱ እና እርስዎ ሳያውቋቸው የታከሉ ሊሆኑ የሚችሉ የተወሰኑ ዝርዝሮችን አሰናክለናል።</translation>
+<translation id="4653397506175047429">Chrome ሁሉንም የእርስዎ የይለፍ ቃላት መፈተሽ አይችልም። ከ24 ሰዓቶች በኋላ እንደገና ይሞክሩ።</translation>
 <translation id="4728575227883772061">ተለይቶ ባልታወቀ ስህተት ምክንያት ጭነት ከሽፏል። Google Chrome አሁን እያሄደ ከሆነ ፣ እባክዎ ይዝጉትና እንደገና ይሞክሩ።</translation>
 <translation id="4750550185319565338"><ph name="PLUGIN_NAME" />ን ለማንቃት Chromeን ዳግም ያስጀምሩ</translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -157,6 +163,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Chromeን ማስጀመር አልተቻለም። እንደገና ይሞክሩ።</translation>
 <translation id="5895138241574237353">እንደገና ጀምር</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - በአውታረ መረብ ወደ መለያ መግባት</translation>
 <translation id="5940385492829620908">የእርስዎ ድር፣ ዕልባቶች እና ሌሎች የChrome ነገሮች እዚህ ይኖራሉ።</translation>
 <translation id="5941830788786076944">Google Chromeን መነሻ ማሰሻ አድርግ</translation>
 <translation id="6070348360322141662">ለተጨማሪ ደህንነት ሲባል Google Chrome ውሂብዎን ያመሰጥረዋል</translation>
@@ -212,6 +219,7 @@
 <translation id="7855730255114109580">Google Chrome የተዘመነ ነው</translation>
 <translation id="7890208801193284374">ኮምፒውተር የሚጋሩ ከሆኑ ጓደኛዎች እና ቤተሰብ ተለይተው ሊያስሱ እና Chromeን በሚፈልጉበት መንገድ ማዋቀር ይችላሉ።</translation>
 <translation id="7896673875602241923">የሆነ ሰው ከዚህ ቀደም በዚህ ኮምፒውተር ላይ እንደ <ph name="ACCOUNT_EMAIL_LAST" /> ሆነው ወደ Chrome ገብተዋል። የእርስዎን መረጃ ለይተው ለማስቀመጥ እባክዎ አዲስ የChrome ተጠቃሚ ይፍጠሩ።</translation>
+<translation id="7905891027772979035">Chrome የእርስዎን ቅጥያዎች መፈተሽ አይችልም። ቆይተው እንደገና ይሞክሩ።</translation>
 <translation id="7916016681687251387">Chrome OS የእርስዎን ውሂብ ማስመር አልቻለም። አሁኑኑ ያስተካክሉ።</translation>
 <translation id="7930071585467473040">Google Chrome የይለፍ ቃላትን ለመቅዳት እየሞከረ ነው።</translation>
 <translation id="7962410387636238736">Windows XP እና Windows Vista ከእንግዲህ ስለማይደገፉ ይህ ኮምፒውተር ከአሁን በኋላ የGoogle Chrome ዝማኔዎችን አይቀበልም።</translation>
diff --git a/chrome/app/resources/google_chrome_strings_az.xtb b/chrome/app/resources/google_chrome_strings_az.xtb
index 7166738..eade6c5 100644
--- a/chrome/app/resources/google_chrome_strings_az.xtb
+++ b/chrome/app/resources/google_chrome_strings_az.xtb
@@ -50,6 +50,7 @@
 <translation id="2309047409763057870">Bu Chromium'un ikinci quraşdırmasıdır və defolt brauzer kimi ayarlana bilmir.</translation>
 <translation id="2341767445688917208">Chrome OS parollarınızı sinxronizasiya edə bilmədi. İndi düzəliş edin.</translation>
 <translation id="2348335408836342058">Chrome bu sayt üçün kamera və mikrofona giriş tələb edir</translation>
+<translation id="234869673307233423">Chrome parollarınızı yoxlaya bilmir. Sonra yenidən cəhd edin.</translation>
 <translation id="2429317896000329049">Google Chrome datanızı sinxronizasiya edə bilmədi, çünki sinxronizasiya domeniniz üçün əlçatan deyil.</translation>
 <translation id="2467438592969358367">Google Chrome parolları eksport etmək istəyir. Buna icazə vermək üçün Windows parolunuzu yazın.</translation>
 <translation id="2485422356828889247">Sistemdən silin</translation>
@@ -70,6 +71,8 @@
 <translation id="2857540653560290388">Chrome başlayır...</translation>
 <translation id="2871893339301912279">Chrome'a daxil olmusunuz!</translation>
 <translation id="2888126860611144412">Chrome haqqında</translation>
+<translation id="2929907241665500097">Chrome güncəllənmədi, xəta baş verdi. <ph name="BEGIN_LINK" />Chrome'un güncəllənmə problemlərini və alınmayan güncəllənmələri həll edin.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Şəbəkəyə Giriş - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome arxa fon rejimindədir.</translation>
 <translation id="3065168410429928842">Chrome Paneli</translation>
 <translation id="3080151273017101988">Google Chrome bağlı olduqda arxa fon tətbiqləri davam etdirilsin</translation>
@@ -108,7 +111,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome Sizi data pozuntuları, xətalı artırmalar və digər güvənlik məsələlərinə qarşı qoruya bilər</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> Chrome'a əlavə edildi</translation>
+<translation id="4384570495110188418">Hesaba daxil olmadığınız üçün Chrome parollarınızı yoxlaya bilmir</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - Şəbəkəyə Giriş - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome'da digər əməliyyat davam edir. Daha sonra yenidən cəhd edin.</translation>
 <translation id="4480040274068703980">Hesaba giriş xətası üzündən Chrome OS datanızı sinxronlaşdıra bilmədi.</translation>
 <translation id="4561051373932531560">Google Chrome Sizə imkan verir ki, telefon nömrənizə vebdə klikləyərək Skype'da zəng edəsiniz!</translation>
@@ -118,6 +123,7 @@
 <translation id="4600710005438004015">Chromium ən son versiyaya güncəllənə bilmədi. Yeni funksiyaları və təhlükəsizlik həllərini əldən veririsiniz.</translation>
 <translation id="4631713731678262610">Chrome menyusunda gizlədin</translation>
 <translation id="4633000520311261472">Güvənliyiniz üçün <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> siyahısında olamayan artırmaları deaktiv etdik.</translation>
+<translation id="4653397506175047429">Chrome bütün parollarınızı yoxlaya bilmir. 24 saat sonra yenidən cəhd edin.</translation>
 <translation id="4728575227883772061">Naməlum xəta üzündən quraşdırmaq alınmadı. Əgər Google Chrome hazırda işləyirsə, Lütfən, qapadın və yenidən cəhd edin.</translation>
 <translation id="4750550185319565338"><ph name="PLUGIN_NAME" /> plaqinini aktiv etmək üçün Chrome'u yenidən başladın</translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -153,6 +159,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Chrome başlamadı. Yenidən sınayın.</translation>
 <translation id="5895138241574237353">Yenidən başladın</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Şəbəkəyə Giriş</translation>
 <translation id="5940385492829620908">Veb, əlfəcinlər və Chrome'a aid hər şeyiniz buradadır.</translation>
 <translation id="5941830788786076944">Google Chrome'u defolt brauzer edin</translation>
 <translation id="6070348360322141662">Əlavə təhlükəsizlik üçün Google Chrome datanı şifrələyəcək</translation>
@@ -208,6 +215,7 @@
 <translation id="7855730255114109580">Google Chrome güncəldir</translation>
 <translation id="7890208801193284374">Kompüteri paylaşsanız dostlarınız və ailəniz ayrıca brauzer ilə Chrome'u istədikləri kimi ayarlaya bilər.</translation>
 <translation id="7896673875602241923">Kimsə bu kompüterdə <ph name="ACCOUNT_EMAIL_LAST" /> olaraq Chrome'a daxil olub. Məlumatınızı ayrı saxlamaq üçün yeni Chrome istifadəçisi yaradın.</translation>
+<translation id="7905891027772979035">Chrome artırmalarınızı yoxlaya bilmir. Sonra yenidən cəhd edin.</translation>
 <translation id="7916016681687251387">Chrome OS datanızı sinxronizasiya edə bilmədi. İndi düzəliş edin.</translation>
 <translation id="7930071585467473040">Google Chrome parolları kopyalamağa çalışır.</translation>
 <translation id="7962410387636238736">Windows XP və Windows Vista artıq dəstəklənmədiyi üçün bu kompüter Google Chrome güncəlləmələrini qəbul etməyəcək</translation>
diff --git a/chrome/app/resources/google_chrome_strings_be.xtb b/chrome/app/resources/google_chrome_strings_be.xtb
index 73805fc..e34b21a 100644
--- a/chrome/app/resources/google_chrome_strings_be.xtb
+++ b/chrome/app/resources/google_chrome_strings_be.xtb
@@ -52,6 +52,7 @@
 <translation id="2309047409763057870">Гэта другасны ўсталяваны экзэмпляр Google Chrome – яго нельга зрабіць стандартным браўзерам.</translation>
 <translation id="2341767445688917208">Сістэме Chrome OS не ўдалося сінхранізаваць паролі. Вырашыце праблему.</translation>
 <translation id="2348335408836342058">Chrome запытвае дазвол на доступ да вашай камеры і мікрафона для гэтага сайта</translation>
+<translation id="234869673307233423">Браўзеру Chrome не ўдаецца праверыць паролі. Паўтарыце спробу пазней.</translation>
 <translation id="2429317896000329049">Браўзеру Google Chrome не ўдалося сінхранізаваць даныя: для вашага дамена сінхранізацыя недаступная.</translation>
 <translation id="2467438592969358367">Google Chrome запытвае дазвол на экспартаванне вашых пароляў. Каб дазволіць гэта, увядзіце пароль Windows.</translation>
 <translation id="2485422356828889247">Выдаліць</translation>
@@ -72,6 +73,8 @@
 <translation id="2857540653560290388">Ідзе запуск Chrome...</translation>
 <translation id="2871893339301912279">Вы ўвайшлі ў Chrome!</translation>
 <translation id="2888126860611144412">Пра браўзер Chrome</translation>
+<translation id="2929907241665500097">Chrome не абнавіўся. Нешта пайшло не так. <ph name="BEGIN_LINK" />Выправіце праблемы з абнаўленнем Chrome і памылкі абнаўлення.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Уваход у сетку – Chrome</translation>
 <translation id="3037838751736561277">Google Chrome працуе ў фонавым рэжыме.</translation>
 <translation id="3065168410429928842">Укладка Chrome</translation>
 <translation id="3080151273017101988">Працягваць выконваць фонавыя праграмы, калі Google Chrome закрыты</translation>
@@ -110,7 +113,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome дапамагае прадухіляць праблемы, звязаныя з уцечкай даных, выкарыстаннем няправільных пашырэнняў і г. д.</translation>
 <translation id="4343195214584226067">Пашырэнне <ph name="EXTENSION_NAME" /> дададзена ў Chrome</translation>
+<translation id="4384570495110188418">Chrome не можа праверыць вашы паролі, пакуль вы не ўвойдзеце ва ўліковы запіс</translation>
 <translation id="4407807842708586359">АС Google Chrome</translation>
+<translation id="4450664632294415862">Chrome – Уваход у сетку – <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">У Google Chrome выконваецца іншая аперацыя. Паўтарыце спробу пазней.</translation>
 <translation id="4480040274068703980">Сістэма Chrome OS не змагла сінхранізаваць даныя з-за памылкі ўваходу.</translation>
 <translation id="4561051373932531560">Google Chrome дазваляе націснуць на нумар тэлефона з вэб-старонкі і выклікаць яго праз Skype!</translation>
@@ -120,6 +125,7 @@
 <translation id="4600710005438004015">Браўзеру Chrome не ўдалося абнавіцца да апошняй версіі, таму ў ім няма новых функцый і выпраўленняў сістэмы бяспекі.</translation>
 <translation id="4631713731678262610">Схаваць у меню Chrome</translation>
 <translation id="4633000520311261472">У мэтах бяспекі Chrome мы выключылі некаторыя пашырэнні, якія не значацца ў спісе <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> і маглі быць дададзены без вашага ведама.</translation>
+<translation id="4653397506175047429">Браўзеру Chrome не ўдаецца праверыць усе паролі. Паўтарыце спробу праз 24 гадзіны</translation>
 <translation id="4728575227883772061">Збой усталявання з-за нявызначанай памылкі. Калі Google Chrome зараз запушчаны, закрыйце яго і паўтарыце спробу.</translation>
 <translation id="4750550185319565338">Каб уключыць убудову "<ph name="PLUGIN_NAME" />", перазапусціце Chrome</translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -157,6 +163,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> – Google Chrome Canary</translation>
 <translation id="5804318322022881572">Не ўдалося запусціць Chrome. Паўтарыце спробу.</translation>
 <translation id="5895138241574237353">Перазапусціць</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Уваход у сетку</translation>
 <translation id="5940385492829620908">Тут знаходзяцца вашы вэб-старонкі, закладкі і іншыя даныя браўзера Chrome.</translation>
 <translation id="5941830788786076944">Зрабіць Google Chrome стандартным браўзерам</translation>
 <translation id="6070348360322141662">Для дадатковай бяспекі Google Chrome будзе шыфраваць вашы даныя</translation>
@@ -212,6 +219,7 @@
 <translation id="7855730255114109580">Google Chrome абноўлены да апошняй версіі</translation>
 <translation id="7890208801193284374">Калі камп'ютар выкарыстоўваюць некалькі чалавек, кожны з іх можа наладзіць Chrome для сябе і праглядаць старонкі асобна ад іншых.</translation>
 <translation id="7896673875602241923">Нехта раней увайшоў у Chrome на гэтым камп'ютары як <ph name="ACCOUNT_EMAIL_LAST" />. Стварыце новага карыстальніка Chrome, каб трымаць сваю інфармацыю асобна.</translation>
+<translation id="7905891027772979035">Браўзеру Chrome не ўдаецца праверыць пашырэнні. Паўтарыце спробу пазней.</translation>
 <translation id="7916016681687251387">Сістэме Chrome OS не ўдалося сінхранізаваць даныя. Вырашыце праблему.</translation>
 <translation id="7930071585467473040">Google Chrome спрабуе скапіраваць паролі.</translation>
 <translation id="7962410387636238736">Гэты камп'ютар больш не будзе атрымліваць абнаўленні Google Chrome: Windows XP і Windows Vista цяпер не падтрымліваюцца</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb
index be2dbb9..7e6c506a 100644
--- a/chrome/app/resources/google_chrome_strings_cs.xtb
+++ b/chrome/app/resources/google_chrome_strings_cs.xtb
@@ -51,6 +51,7 @@
 <translation id="2309047409763057870">Toto je druhá instalace prohlížeče Google Chrome. Tuto instalaci nelze nastavit jako výchozí prohlížeč.</translation>
 <translation id="2341767445688917208">Chrome OS vaše hesla nemohl synchronizovat. Vyřešit.</translation>
 <translation id="2348335408836342058">Chrome pro tento web potřebuje oprávnění k přístupu k fotoaparátu a mikrofonu</translation>
+<translation id="234869673307233423">Chrome nemůže zkontrolovat vaše hesla. Zkuste to později.</translation>
 <translation id="2429317896000329049">Google Chrome nemohl synchronizovat vaše data, protože Synchronizace ve vaší doméně není k dispozici.</translation>
 <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>
@@ -71,6 +72,8 @@
 <translation id="2857540653560290388">Spouštění Chromu...</translation>
 <translation id="2871893339301912279">Nyní jste přihlášeni do Chromu.</translation>
 <translation id="2888126860611144412">O aplikaci Chrome</translation>
+<translation id="2929907241665500097">Prohlížeč Chrome se neaktualizoval, něco se pokazilo. <ph name="BEGIN_LINK" />Vyřešte problémy se stahováním aktualizací Chromu a neúspěšnými aktualizacemi.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – přihlášení k síti – Chrome</translation>
 <translation id="3037838751736561277">Google Chrome je v režimu na pozadí.</translation>
 <translation id="3065168410429928842">Karta prohlížeče Chrome</translation>
 <translation id="3080151273017101988">Po ukončení prohlížeče Google Chrome nechat aplikace na pozadí spuštěné</translation>
@@ -109,7 +112,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome vás pomáhá chránit před porušeními zabezpečení údajů, škodlivými rozšířeními a dalšími hrozbami</translation>
 <translation id="4343195214584226067">Do Chromu bylo přidáno rozšíření <ph name="EXTENSION_NAME" /></translation>
+<translation id="4384570495110188418">Chrome nemůže zkontrolovat vaše hesla, protože nejste přihlášeni</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome – přihlášení k síti – <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">V prohlížeči Google Chrome právě probíhá jiná operace. Zkuste to znovu později.</translation>
 <translation id="4480040274068703980">Chrome OS vaše data nemohl synchronizovat z důvodu chyby při přihlášení.</translation>
 <translation id="4561051373932531560">Google Chrome umožňuje kliknout na telefonní číslo na webu a volat na něj prostřednictvím aplikace Skype.</translation>
@@ -119,6 +124,7 @@
 <translation id="4600710005438004015">Chrome nebylo možné aktualizovat na nejnovější verzi. Nemáte proto k dispozici nové funkce a opravy zabezpečení.</translation>
 <translation id="4631713731678262610">Skrýt v nabídce Chrome</translation>
 <translation id="4633000520311261472">Aby byl Chrome 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="4653397506175047429">Chrome nemůže zkontrolovat všechna vaše hesla. Zkuste to znovu za 24 hodin.</translation>
 <translation id="4728575227883772061">Došlo k nespecifikované chybě, instalace se nezdařila. Pokud je Google Chrome právě spuštěný, zavřete jej prosím a zkuste to znovu.</translation>
 <translation id="4750550185319565338">Chcete-li aktivovat plugin <ph name="PLUGIN_NAME" />, restartujte Chrome</translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -155,6 +161,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> – Google Chrome Canary</translation>
 <translation id="5804318322022881572">Chrome nelze spustit. Zkuste to znovu.</translation>
 <translation id="5895138241574237353">Restartovat</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – přihlášení k síti</translation>
 <translation id="5940385492829620908">Zde jsou k dispozici vaše weby, záložky a další obsah Chromu.</translation>
 <translation id="5941830788786076944">Nastavit Google Chrome jako výchozí prohlížeč</translation>
 <translation id="6070348360322141662">V zájmu lepšího zabezpečení bude Google Chrome vaše data šifrovat</translation>
@@ -210,6 +217,7 @@
 <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="7905891027772979035">Chrome nemůže zkontrolovat vaše rozšíření. Zkuste to později.</translation>
 <translation id="7916016681687251387">Chrome OS vaše data nemohl synchronizovat. Vyřešit.</translation>
 <translation id="7930071585467473040">Google Chrome se pokouší zkopírovat hesla.</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>
diff --git a/chrome/app/resources/google_chrome_strings_de.xtb b/chrome/app/resources/google_chrome_strings_de.xtb
index 15e7f454..5e5fcd11 100644
--- a/chrome/app/resources/google_chrome_strings_de.xtb
+++ b/chrome/app/resources/google_chrome_strings_de.xtb
@@ -47,6 +47,7 @@
 <translation id="2309047409763057870">Dies ist eine Zweitinstallation, daher kann Google Chrome nicht als Standardbrowser festgelegt werden.</translation>
 <translation id="2341767445688917208">Chrome OS konnte Ihre Passwörter nicht synchronisieren. Jetzt beheben.</translation>
 <translation id="2348335408836342058">Chrome benötigt für diese Website die Berechtigung, auf Ihre Kamera und Ihr Mikrofon zuzugreifen</translation>
+<translation id="234869673307233423">Chrome kann Ihre Passwörter nicht prüfen. Versuchen Sie es später noch einmal.</translation>
 <translation id="2429317896000329049">Google Chrome konnte Ihre Daten nicht synchronisieren, da die Synchronisierung für Ihre Domain nicht zur Verfügung steht.</translation>
 <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>
@@ -67,6 +68,8 @@
 <translation id="2857540653560290388">Chrome wird gestartet…</translation>
 <translation id="2871893339301912279">Sie sind in Chrome angemeldet.</translation>
 <translation id="2888126860611144412">Über Google Chrome</translation>
+<translation id="2929907241665500097">Chrome konnte aufgrund eines Fehlers nicht aktualisiert werden. Wie Sie Updateprobleme und Fehler bei der Aktualisierung von Chrome beheben, <ph name="BEGIN_LINK" />erfahren Sie hier<ph name="END_LINK" />.</translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Netzwerkanmeldung – Chrome</translation>
 <translation id="3037838751736561277">Google Chrome wird im Hintergrundmodus ausgeführt.</translation>
 <translation id="3065168410429928842">Chrome-Tab</translation>
 <translation id="3080151273017101988">Apps im Hintergrund ausführen, wenn Google Chrome geschlossen ist</translation>
@@ -105,7 +108,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome kann dazu beitragen, Sie beispielsweise vor Datenpannen und schädlichen Erweiterungen zu schützen</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> wurde zu Chrome hinzugefügt</translation>
+<translation id="4384570495110188418">Chrome kann Ihre Passwörter nicht prüfen, da Sie nicht angemeldet sind</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome – Netzwerkanmeldung – <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">In Google Chrome wird eine andere Aktion durchgeführt. Bitte versuchen Sie es später noch einmal.</translation>
 <translation id="4480040274068703980">Chrome OS konnte Ihre Daten aufgrund eines Fehlers bei der Anmeldung nicht synchronisieren.</translation>
 <translation id="4561051373932531560">In Google Chrome können Sie auf eine Telefonnummer im Web klicken und diese mit Skype anrufen.</translation>
@@ -115,6 +120,7 @@
 <translation id="4600710005438004015">Chrome konnte nicht auf die neueste Version aktualisiert werden. In Ihrer Version fehlen daher einige neue Funktionen und Sicherheitspatches.</translation>
 <translation id="4631713731678262610">Ins Chrome-Menü verschieben</translation>
 <translation id="4633000520311261472">Um Chrome 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="4653397506175047429">Chrome kann nicht alle Ihre Passwörter prüfen. Bitte versuchen Sie es in 24 Stunden noch einmal.</translation>
 <translation id="4728575227883772061">Installation aufgrund von unbekanntem Fehler fehlgeschlagen. Falls Google Chrome bereits ausgeführt wird, schließen Sie es und versuchen Sie es erneut.</translation>
 <translation id="4750550185319565338">Chrome neu starten, um <ph name="PLUGIN_NAME" /> zu aktivieren</translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -147,6 +153,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> – Google Chrome Canary</translation>
 <translation id="5804318322022881572">Chrome konnte nicht gestartet werden. Versuchen Sie es noch einmal.</translation>
 <translation id="5895138241574237353">Neu starten</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Netzwerkanmeldung</translation>
 <translation id="5940385492829620908">Hier können Sie im Web surfen und Ihre Lesezeichen und andere Chrome-Inhalte speichern.</translation>
 <translation id="5941830788786076944">Google Chrome als Standardbrowser festlegen</translation>
 <translation id="6070348360322141662">Google Chrome verschlüsselt Ihre Daten zur Erhöhung der Sicherheit</translation>
@@ -202,6 +209,7 @@
 <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="7905891027772979035">Chrome kann Ihre Erweiterungen nicht prüfen. Versuchen Sie es später noch einmal.</translation>
 <translation id="7916016681687251387">Chrome OS konnte Ihre Daten nicht synchronisieren. Jetzt beheben.</translation>
 <translation id="7930071585467473040">Google Chrome versucht, Passwörter zu kopieren.</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>
diff --git a/chrome/app/resources/google_chrome_strings_es-419.xtb b/chrome/app/resources/google_chrome_strings_es-419.xtb
index a87b772..ba55024 100644
--- a/chrome/app/resources/google_chrome_strings_es-419.xtb
+++ b/chrome/app/resources/google_chrome_strings_es-419.xtb
@@ -48,6 +48,7 @@
 <translation id="2309047409763057870">Como esta es una instalación secundaria de Google Chrome, no puede establecerse como tu navegador predeterminado.</translation>
 <translation id="2341767445688917208">El Sistema operativo Chrome no pudo sincronizar tus contraseñas. Soluciona el problema ahora.</translation>
 <translation id="2348335408836342058">Chrome necesita permiso para acceder a tu cámara y micrófono para este sitio</translation>
+<translation id="234869673307233423">Chrome no puede revisar las contraseñas. Vuelve a intentarlo más tarde.</translation>
 <translation id="2429317896000329049">Google Chrome no pudo sincronizar los datos porque la sincronización no está disponible para el dominio.</translation>
 <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>
@@ -68,6 +69,8 @@
 <translation id="2857540653560290388">Iniciando Chrome…</translation>
 <translation id="2871893339301912279">Accediste a Google Chrome.</translation>
 <translation id="2888126860611144412">Acerca de Chrome</translation>
+<translation id="2929907241665500097">No se actualizó Chrome porque se produjo un error. <ph name="BEGIN_LINK" />Soluciona los problemas de actualización y las actualizaciones con error de Chrome.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" />: Acceso a la red - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome está en modo de segundo plano</translation>
 <translation id="3065168410429928842">Pestaña de Chrome</translation>
 <translation id="3080151273017101988">Seguir ejecutando aplicaciones en segundo plano al cerrar Google Chrome</translation>
@@ -106,7 +109,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome puede protegerte ante violaciones de la seguridad de los datos, extensiones dañadas y mucho más</translation>
 <translation id="4343195214584226067">Se agregó <ph name="EXTENSION_NAME" /> a Chrome</translation>
+<translation id="4384570495110188418">Chrome no puede revisar las contraseñas porque no accediste a tu cuenta</translation>
 <translation id="4407807842708586359">SO de Google Chrome</translation>
+<translation id="4450664632294415862">Chrome: Acceso a la red - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Hay otra operación en Google Chrome en curso. Vuelve a intentarlo más tarde.</translation>
 <translation id="4480040274068703980">El Sistema operativo Chrome no pudo sincronizar los datos porque se produjo un error de acceso.</translation>
 <translation id="4561051373932531560">Google Chrome te permite hacer clic en un número de teléfono en la web y ¡llamarlo por Skype!</translation>
@@ -116,6 +121,7 @@
 <translation id="4600710005438004015">Chrome 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="4631713731678262610">Ocultar en el menú de Chrome</translation>
 <translation id="4633000520311261472">Para que Chrome 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="4653397506175047429">Chrome no puede revisar todas las contraseñas. Vuelve a intentarlo después de 24 horas.</translation>
 <translation id="4728575227883772061">No se pudo completar la instalación debido a un error no identificado. Si Google Chrome se está ejecutando en este momento, ciérrelo e intente nuevamente.</translation>
 <translation id="4750550185319565338">Reiniciar Chrome para habilitar <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (tráfico mDNS entrante)</translation>
@@ -149,6 +155,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" />: Google Chrome Canary</translation>
 <translation id="5804318322022881572">No se pudo iniciar Chrome. Vuelve a intentarlo.</translation>
 <translation id="5895138241574237353">Reiniciar</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" />: Acceso a la red</translation>
 <translation id="5940385492829620908">Aquí puedes encontrar tus páginas web, favoritos y otros contenidos de Chrome.</translation>
 <translation id="5941830788786076944">Haga de Google Chrome su navegador predeterminado</translation>
 <translation id="6070348360322141662">Para mejorar la seguridad, Google Chrome encriptará los datos</translation>
@@ -204,6 +211,7 @@
 <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="7905891027772979035">Chrome no puede revisar las extensiones. Vuelve a intentarlo más tarde.</translation>
 <translation id="7916016681687251387">El Sistema operativo Chrome no pudo sincronizar los datos. Soluciona el problema ahora.</translation>
 <translation id="7930071585467473040">Google Chrome está intentando copiar contraseñas.</translation>
 <translation id="7962410387636238736">Esta computadora dejará de recibir actualizaciones de Google Chrome porque Windows XP y Windows Vista ya no son compatibles</translation>
diff --git a/chrome/app/resources/google_chrome_strings_eu.xtb b/chrome/app/resources/google_chrome_strings_eu.xtb
index 5840f21..d4f3717 100644
--- a/chrome/app/resources/google_chrome_strings_eu.xtb
+++ b/chrome/app/resources/google_chrome_strings_eu.xtb
@@ -52,6 +52,7 @@
 <translation id="2309047409763057870">Google Chrome-ren bigarren mailako instalazio bat da hau; beraz, ezin duzu ezarri arakatzaile lehenetsi gisa.</translation>
 <translation id="2341767445688917208">Chrome OS sistema eragileak ezin izan ditu sinkronizatu pasahitzak. Konpondu arazoa.</translation>
 <translation id="2348335408836342058">Chrome-k webgune honen izenean kamera eta mikrofonoa atzitzeko baimena behar du</translation>
+<translation id="234869673307233423">Chrome-k ezin ditu egiaztatu pasahitzak. Saiatu geroago.</translation>
 <translation id="2429317896000329049">Google Chrome-k ezin izan ditu sinkronizatu zure datuak, sinkronizazioa ez dagoelako erabilgarri zure domeinuan.</translation>
 <translation id="2467438592969358367">Google Chrome-k pasahitzak esportatu nahi ditu. Hori baimentzeko, idatzi Windows pasahitza.</translation>
 <translation id="2485422356828889247">Desinstalatu</translation>
@@ -72,6 +73,8 @@
 <translation id="2857540653560290388">Chrome abiarazten…</translation>
 <translation id="2871893339301912279">Chrome-n saioa hasi duzu.</translation>
 <translation id="2888126860611144412">Chrome-ri buruz</translation>
+<translation id="2929907241665500097">Chrome ez da eguneratu arazoren bat izan delako. <ph name="BEGIN_LINK" />Konpondu Chrome eguneratzeko arazoak eta huts egindako eguneratzeak.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Hasi saioa sarean - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome atzeko planoko moduan dago.</translation>
 <translation id="3065168410429928842">Chrome fitxa</translation>
 <translation id="3080151273017101988">Mantendu atzeko planoko aplikazioak abian Google Chrome ixten denean</translation>
@@ -110,7 +113,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Datuen isilpekotasunaren urratzeen, luzapen gaiztoen eta abarren aurrean babes zaitzake Chrome-k</translation>
 <translation id="4343195214584226067">Gehitu da <ph name="EXTENSION_NAME" /> Chrome-n</translation>
+<translation id="4384570495110188418">Chrome-k ezin ditu egiaztatu pasahitzak saioa hasi ez duzulako</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - Hasi saioa sarean - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Beste eragiketa bat ari da egiten Google Chrome. Saiatu berriro geroago.</translation>
 <translation id="4480040274068703980">Saioa hastean gertatu den errore bat dela-eta, Chrome OS sistemak ezin izan ditu sinkronizatu zure datuak.</translation>
 <translation id="4561051373932531560">Google Chrome-rekin, telefono-zenbakietan klik egin dezakezu Skype bidez horietara deitzeko!</translation>
@@ -120,6 +125,7 @@
 <translation id="4600710005438004015">Ezin izan da eguneratu Chrome azken bertsiora; beraz, ez dituzu erabilgarri eginbide berriak eta segurtasun-konponketak.</translation>
 <translation id="4631713731678262610">Ezkutatu Chrome-ko menuan</translation>
 <translation id="4633000520311261472">Chrome seguruagoa izan dadin, <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> dendan ez dauden luzapen batzuk desgaitu ditugu; horiek agian zuk jakin gabe zeuden gehituta.</translation>
+<translation id="4653397506175047429">Chrome-k ezin ditu egiaztatu pasahitzak. Saiatu berriro 24 orduren buruan.</translation>
 <translation id="4728575227883772061">Instalazioak huts egin du zehaztu gabeko errore batengatik. Google Chrome abian bada, itxi ezazu eta saiatu berriro.</translation>
 <translation id="4750550185319565338">Berrabiarazi Chrome <ph name="PLUGIN_NAME" /> gaitzeko</translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -157,6 +163,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Ezin izan da abiarazi Chrome. Saiatu berriro.</translation>
 <translation id="5895138241574237353">Berrabiarazi</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Hasi saioa sarean</translation>
 <translation id="5940385492829620908">Zure weba, laster-markak eta Chrome-n dituzun beste gauzak hemen bizi dira.</translation>
 <translation id="5941830788786076944">Ezarri Google Chrome arakatzaile lehenetsi gisa</translation>
 <translation id="6070348360322141662">Segurtasun gehiago izateko, Google Chrome-k datuak enkriptatuko ditu</translation>
@@ -212,6 +219,7 @@
 <translation id="7855730255114109580">Eguneratuta dago Google Chrome</translation>
 <translation id="7890208801193284374">Ordenagailua partekatzen baduzu, lagunek eta familiako kideek euren kontuak erabilita ibil daitezke Interneten, nahi duten moduan.</translation>
 <translation id="7896673875602241923">Norbaitek <ph name="ACCOUNT_EMAIL_LAST" /> gisa hasi du saioa Chrome-n ordenagailu hau erabilita. Zure informazioa bereizita izateko, sortu beste Chrome erabiltzaile bat.</translation>
+<translation id="7905891027772979035">Chrome-k ezin ditu egiaztatu luzapenak. Saiatu geroago.</translation>
 <translation id="7916016681687251387">Chrome OS sistema eragileak ezin izan ditu sinkronizatu datuak. Konpondu arazoa.</translation>
 <translation id="7930071585467473040">Pasahitzak kopiatzen saiatzen ari da Google Chrome.</translation>
 <translation id="7962410387636238736">Ordenagailuak ez du jasoko beste Google Chrome eguneratzerik, jada ez baita bateragarria Windows XP eta Windows Vista-rekin</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb
index bdf8353..c91ddc76 100644
--- a/chrome/app/resources/google_chrome_strings_fa.xtb
+++ b/chrome/app/resources/google_chrome_strings_fa.xtb
@@ -48,6 +48,7 @@
 <translation id="2309047409763057870">‏این نصب ثانویه Google Chrome است و نمی‌تواند مرورگر پیش‌فرضتان شود.</translation>
 <translation id="2341767445688917208">‏سیستم‌عامل Chrome نتوانست گذرواژه‌هایتان را همگام‌سازی کند. اکنون مشکل رفع شود.</translation>
 <translation id="2348335408836342058">‏Chrome برای این سایت به مجوز دسترسی به دوربین و میکروفون نیاز دارد</translation>
+<translation id="234869673307233423">‏Chrome نمی‌تواند گذرواژه‌هایتان را بررسی کند. بعداً دوباره امتحان کنید.</translation>
 <translation id="2429317896000329049">‏Google Chrome قادر به همگام‌سازی داده‌های شما نبود زیرا همگام‌سازی برای دامنه شما قابل دسترسی نیست.</translation>
 <translation id="2467438592969358367">‏Google Chrome می‌خواهد گذرواژه‌های شما را صادر کند. برای اجازه به این کار، گذرواژه Windows خود را تایپ کنید.</translation>
 <translation id="2485422356828889247">حذف نصب</translation>
@@ -68,6 +69,8 @@
 <translation id="2857540653560290388">‏درحال راه‌اندازی Chrome…</translation>
 <translation id="2871893339301912279">‏شما در حال حاضر وارد سیستم Chrome شده‌اید!</translation>
 <translation id="2888126860611144412">‏درباره Chrome</translation>
+<translation id="2929907241665500097">‏Chrome به‌روزرسانی نشد؛ مشکلی پیش آمد. <ph name="BEGIN_LINK" />مشکلات به‌روزرسانی Chrome و به‌روزرسانی‌های ناموفق را برطرف کنید.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736">‏<ph name="PAGE_TITLE" /> - ورود به سیستم شبکه - Chrome</translation>
 <translation id="3037838751736561277">‏Google Chrome در حالت پس‌زمینه است.</translation>
 <translation id="3065168410429928842">‏برگه Chrome</translation>
 <translation id="3080151273017101988">‏ادامه اجرای برنامه‌ها در پس‌زمینه هنگامیکه Google Chrome بسته می‌شود</translation>
@@ -106,7 +109,9 @@
 <translation id="4331809312908958774">‏سیستم عامل Chrome</translation>
 <translation id="4335235004908507846">‏Chrome می‌تواند به ایمن ماندن شما در برابر نقض داده، افزونه‌های مخرب، و خطرهای دیگر کمک کند</translation>
 <translation id="4343195214584226067">‏<ph name="EXTENSION_NAME" /> به Chrome اضافه شده است</translation>
+<translation id="4384570495110188418">‏چون به سیستم وارد نشده‌اید، Chrome نمی‌تواند گذرواژه‌هایتان را بررسی کند</translation>
 <translation id="4407807842708586359">‏سیستم عامل Google Chrome</translation>
+<translation id="4450664632294415862">‏Chrome - ورود به سیستم شبکه - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">‏عملکرد دیگری در Google Chrome درحال انجام است. لطفاً بعداً دوباره امتحان کنید.</translation>
 <translation id="4480040274068703980">‏به دلیل وجود یک خطای ورود به سیستم، سیستم‌عامل Chrome قادر به همگام‌سازی داده‌هایتان نبود.</translation>
 <translation id="4561051373932531560">‏Google Chrome به شما اجازه می‌دهد بر روی شماره تلفن روی وب کلیک کرده و از طریق Skype تماس بگیرید!</translation>
@@ -116,6 +121,7 @@
 <translation id="4600710005438004015">‏Chrome به جدیدترین نسخه به‌روزرسانی نشد، بنابراین قابلیت‌های جدید و رفع اشکال‌های امنیتی را ندارید.</translation>
 <translation id="4631713731678262610">‏پنهان در منوی Chrome</translation>
 <translation id="4633000520311261472">‏برای ایمن‌تر کردن Chrome، برخی از افزونه‌هایی را که در<ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> فهرست نشده‌اند و ممکن است بدون اطلاع شما اضافه شده باشند، غیرفعال کردیم.</translation>
+<translation id="4653397506175047429">‏Chrome نمی‌تواند همه گذرواژه‌هایتان را بررسی کند. بعد از ۲۴ ساعت دوباره امتحان کنید.</translation>
 <translation id="4728575227883772061">‏به دلیل خطای نامشخص نصب ناموفق بود. اگر Google Chrome در حال اجرا است، لطفاً آن را ببندید و دوباره سعی کنید.</translation>
 <translation id="4750550185319565338">‏برای فعال کردن <ph name="PLUGIN_NAME" />، ‏Chrome را راه‌اندازی مجدد کنید</translation>
 <translation id="4754614261631455953">‏Google Chrome Canary (ورودی mDNS)</translation>
@@ -149,6 +155,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">‏Chrome راه‌اندازی نشد. دوباره امتحان کنید.</translation>
 <translation id="5895138241574237353">راه‌اندازی مجدد</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ورود به سیستم شبکه</translation>
 <translation id="5940385492829620908">‏وب، نشانک‌ها و موارد دیگر Chrome شما در اینجا هستند.</translation>
 <translation id="5941830788786076944">‏Google Chrome مرورگر پیش‌فرض شود</translation>
 <translation id="6070348360322141662">‏برای امنیت بیشتر، Google Chrome داده‌های شما را رمزگذاری می‌کند</translation>
@@ -204,6 +211,7 @@
 <translation id="7855730255114109580">‏Google Chrome به‌روز است</translation>
 <translation id="7890208801193284374">‏اگر رایانه‌ای را به صورت مشترک استفاده می‌کنید، دوستان و خانواده می‌توانند به صورت جداگانه مرور کنند و Chrome را به صورتی که مایلند تنظیم کنند.</translation>
 <translation id="7896673875602241923">‏شخصی قبلاً به‌عنوان <ph name="ACCOUNT_EMAIL_LAST" /> به سیستم Chrome در این رایانه وارد شده است. برای اینکه اطلاعاتتان جدا حفظ شود، لطفاً کاربر Chrome جدیدی ایجاد کنید.</translation>
+<translation id="7905891027772979035">‏Chrome نمی‌تواند افزونه‌هایتان را بررسی کند. بعداً دوباره امتحان کنید.</translation>
 <translation id="7916016681687251387">‏سیستم‌عامل Chrome نتوانست داده‌هایتان را همگام‌سازی کند. اکنون مشکل رفع شود.</translation>
 <translation id="7930071585467473040">‏Google Chrome می‌خواهد گذرواژه‌ها را کپی کند.</translation>
 <translation id="7962410387636238736">‏این رایانه دیگر به‌روزرسانی‌های Google Chrome را دریافت نمی‌کند زیرا Windows XP و Windows Vista دیگر پشتیبانی نمی‌شوند</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fi.xtb b/chrome/app/resources/google_chrome_strings_fi.xtb
index 94cf3bb..de5741a 100644
--- a/chrome/app/resources/google_chrome_strings_fi.xtb
+++ b/chrome/app/resources/google_chrome_strings_fi.xtb
@@ -69,7 +69,7 @@
 <translation id="2857540653560290388">Käynnistetään Chromea…</translation>
 <translation id="2871893339301912279">Olet kirjautunut Chromeen!</translation>
 <translation id="2888126860611144412">Tietoja Chromesta</translation>
-<translation id="2929907241665500097">Chromea ei päivitetty, vaan jotain meni pieleen. <ph name="BEGIN_LINK" />Korjaa Chromen päivitysongelmat ja epäonnistuneet päivitykset.<ph name="END_LINK" /></translation>
+<translation id="2929907241665500097">Chromea ei päivitetty, vaan jotain meni pieleen. <ph name="BEGIN_LINK" />Korjaa Chromen päivitysongelmat ja epäonnistuneet päivitykset<ph name="END_LINK" />.</translation>
 <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Kirjautuminen verkkoon – Chrome</translation>
 <translation id="3037838751736561277">Google Chrome on käynnissä taustalla.</translation>
 <translation id="3065168410429928842">Chrome-välilehti</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb
index f240c316..dbe456f 100644
--- a/chrome/app/resources/google_chrome_strings_fil.xtb
+++ b/chrome/app/resources/google_chrome_strings_fil.xtb
@@ -52,6 +52,7 @@
 <translation id="2309047409763057870">Pangalawang pag-install ito ng Google Chrome at hindi ito maaaring gawing iyong default na browser.</translation>
 <translation id="2341767445688917208">Hindi ma-sync ng Chrome OS ang iyong mga password. Ayusin ngayon.</translation>
 <translation id="2348335408836342058">Kailangan ng Chrome ng pahintulot na i-access ang iyong camera at mikropono para sa site na ito</translation>
+<translation id="234869673307233423">Hindi masuri ng Chrome ang iyong mga password. Subukan ulit sa ibang pagkakataon.</translation>
 <translation id="2429317896000329049">Hindi mai-sync ng Google Chrome ang iyong data dahil hindi available ang Pag-sync para sa iyong domain.</translation>
 <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>
@@ -72,6 +73,8 @@
 <translation id="2857540653560290388">Inilulunsad ang Chrome...</translation>
 <translation id="2871893339301912279">Naka-sign in ka sa Chrome!</translation>
 <translation id="2888126860611144412">Tungkol sa Chrome</translation>
+<translation id="2929907241665500097">Hindi na-update ang Chrome, nagkaproblema. <ph name="BEGIN_LINK" />Ayusin ang mga problema sa pag-update ng Chrome at ang mga hindi naisagawang pag-update dito.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Pag-sign in sa Network - Chrome</translation>
 <translation id="3037838751736561277">Nasa background mode ang Google Chrome.</translation>
 <translation id="3065168410429928842">Tab ng Chrome</translation>
 <translation id="3080151273017101988">Magpatuloy sa pagpapatakbo ng mga app sa background kapag nakasara ang Google Chrome</translation>
@@ -110,7 +113,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Makakatulong ang Chrome na panatilihin kang ligtas laban sa mga paglabag sa data, sirang extension, at higit pa</translation>
 <translation id="4343195214584226067">Naidagdag na ang <ph name="EXTENSION_NAME" /> sa Chrome</translation>
+<translation id="4384570495110188418">Hindi masusuri ng Chrome ang iyong mga password dahil hindi ka naka-sign in</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - Pag-sign in sa Network - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">May kasalukuyang isinasagawang isa pang pagpapatakbo sa Google Chrome. Pakisubukang muli sa ibang pagkakataon.</translation>
 <translation id="4480040274068703980">Hindi ma-sync ng Chrome OS ang iyong data dahil sa isang error sa pagsa-sign in.</translation>
 <translation id="4561051373932531560">Pinapayagan ka ng Google Chrome na mag-click sa isang numero ng telepono sa web at tawagan ito gamit ang Skype!</translation>
@@ -120,6 +125,7 @@
 <translation id="4600710005438004015">Hindi ma-update ang Chrome sa pinakabagong bersyon, kaya hindi mo magagamit ang mga bagong feature at pag-aayos sa seguridad.</translation>
 <translation id="4631713731678262610">Itago sa menu ng Chrome</translation>
 <translation id="4633000520311261472">Upang gawing mas ligtas ang Chrome, 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="4653397506175047429">Hindi masusuri ng Chrome ang lahat ng iyong password. Subukan ulit pagkalipas ng 24 na oras.</translation>
 <translation id="4728575227883772061">Nabigo ang pag-install dahil sa hindi natukoy na error. Kung kasalukuyang tumatakbo ang Google Chrome, paki-sara ito at subukang muli.</translation>
 <translation id="4750550185319565338">I-restart ang Chrome upang ma-enable ang <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -157,6 +163,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Hindi mailunsad ang Chrome. Subukang muli.</translation>
 <translation id="5895138241574237353">I-restart</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Pag-sign in sa Network</translation>
 <translation id="5940385492829620908">Makikita dito ang iyong web, mga bookmark at iba pang mga bagay-bagay sa Chrome.</translation>
 <translation id="5941830788786076944">Gawin ang Google Chrome na default browser</translation>
 <translation id="6070348360322141662">Para sa karagdagang seguridad, ie-encrypt ng Google Chrome ang iyong data</translation>
@@ -212,6 +219,7 @@
 <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="7905891027772979035">Hindi masuri ng Chrome ang iyong mga extension. Subukan ulit sa ibang pagkakataon.</translation>
 <translation id="7916016681687251387">Hindi ma-sync ng Chrome OS ang iyong data. Ayusin ngayon.</translation>
 <translation id="7930071585467473040">Sinusubukan ng Google Chrome na kopyahin ang mga password.</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>
diff --git a/chrome/app/resources/google_chrome_strings_fr-CA.xtb b/chrome/app/resources/google_chrome_strings_fr-CA.xtb
index 7daf4dd..e45fa3b 100644
--- a/chrome/app/resources/google_chrome_strings_fr-CA.xtb
+++ b/chrome/app/resources/google_chrome_strings_fr-CA.xtb
@@ -51,6 +51,7 @@
 <translation id="2309047409763057870">Cette installation de Google Chrome est secondaire. Celui-ci ne peut donc pas servir de navigateur par défaut.</translation>
 <translation id="2341767445688917208">Chrome OS n'a pas pu synchroniser vos mots de passe. Corrigez le problème maintenant.</translation>
 <translation id="2348335408836342058">Chrome a besoin de votre autorisation pour accéder à votre appareil photo et à votre micro pour ce site</translation>
+<translation id="234869673307233423">Chrome ne peut pas vérifier vos mots de passe. Réessayez plus tard.</translation>
 <translation id="2429317896000329049">Google Chrome ne peut pas synchroniser vos données, car la synchronisation n'est pas offerte pour votre domaine.</translation>
 <translation id="2467438592969358367">Google Chrome veut exporter vos mots de passe. Pour autoriser cette action, entrez votre mot de passe Windows.</translation>
 <translation id="2485422356828889247">Désinstaller</translation>
@@ -71,6 +72,8 @@
 <translation id="2857540653560290388">Lancement de Chrome en cours…</translation>
 <translation id="2871893339301912279">Vous êtes connecté à Google Chrome!</translation>
 <translation id="2888126860611144412">À propos de Google Chrome</translation>
+<translation id="2929907241665500097">La mise à jour de Chrome n'a pas été installée. Une erreur s'est produite. <ph name="BEGIN_LINK" />Découvrez comment résoudre les problèmes de mise à jour de Chrome.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Connexion au réseau – Chrome</translation>
 <translation id="3037838751736561277">Google Chrome fonctionne en mode arrière-plan.</translation>
 <translation id="3065168410429928842">Onglet Chrome</translation>
 <translation id="3080151273017101988">Continuer l'exécution des applications en arrière-plan après la fermeture de Google Chrome</translation>
@@ -109,7 +112,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome peut vous aider à vous protéger, entre autres, contre les violations de données et les extensions malveillantes</translation>
 <translation id="4343195214584226067">L'extension « <ph name="EXTENSION_NAME" /> » a été ajoutée à Chrome</translation>
+<translation id="4384570495110188418">Chrome ne peut pas vérifier vos mots de passe parce que vous n'êtes pas connecté.</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome – Connexion au réseau –<ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Une autre opération est en cours sur Google Chrome. Veuillez réessayer plus tard.</translation>
 <translation id="4480040274068703980">Chrome OS ne peut pas synchroniser vos données, car une erreur s'est produite lors de la connexion.</translation>
 <translation id="4561051373932531560">Google Chrome vous permet de cliquer sur un numéro de téléphone dans une page Web pour faire un appel avec Skype!</translation>
@@ -119,6 +124,7 @@
 <translation id="4600710005438004015">Google Chrome n'a pas pu installer la nouvelle version, vous ne pouvez donc pas profiter des nouvelles fonctionnalités ni des correctifs relatifs à la sécurité.</translation>
 <translation id="4631713731678262610">Masquer dans le menu Chrome</translation>
 <translation id="4633000520311261472">Afin de rendre Chrome plus sûr, nous avons désactivé certaines extensions qui ne sont pas répertoriées dans la boutique <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> et qui ont pu être ajoutées à votre insu.</translation>
+<translation id="4653397506175047429">Chrome ne peut pas vérifier tous vos mots de passe. Réessayez dans 24 heures.</translation>
 <translation id="4728575227883772061">Échec de l'installation suite à une erreur non spécifiée. Si Google Chrome est en cours d'exécution, veuillez le fermer, puis réessayer.</translation>
 <translation id="4750550185319565338">Redémarrer Chrome pour activer le plugiciel <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -155,6 +161,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Impossible de lancer Chrome. Réessayez.</translation>
 <translation id="5895138241574237353">Redémarrer</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Connexion au réseau</translation>
 <translation id="5940385492829620908">Votre contenu Web, vos favoris et toutes vos données de Google Chrome sont conservés ici.</translation>
 <translation id="5941830788786076944">Faire de Google Chrome le navigateur par défaut</translation>
 <translation id="6070348360322141662">Pour une sécurité accrue, Google Chrome va crypter vos données</translation>
@@ -210,6 +217,7 @@
 <translation id="7855730255114109580">Google Chrome est à jour</translation>
 <translation id="7890208801193284374">Si vous partagez un ordinateur avec vos proches, ceux-ci peuvent configurer Google Chrome comme bon leur semble et naviguer sur le Web à leur manière.</translation>
 <translation id="7896673875602241923">Un utilisateur s'est récemment connecté à Google Chrome sur cet ordinateur en tant que <ph name="ACCOUNT_EMAIL_LAST" />. Veuillez créer un autre utilisateur Google Chrome pour séparer vos données.</translation>
+<translation id="7905891027772979035">Chrome ne peut pas vérifier vos extensions. Réessayez plus tard.</translation>
 <translation id="7916016681687251387">Chrome OS n'a pas pu synchroniser vos données. Corrigez le problème maintenant.</translation>
 <translation id="7930071585467473040">Google Chrome essaie de copier des mots de passe.</translation>
 <translation id="7962410387636238736">Cet ordinateur ne recevra plus de mises à jour de Google Chrome, car Windows XP et Windows Vista ne sont plus pris en charge</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr.xtb b/chrome/app/resources/google_chrome_strings_fr.xtb
index 8cd0e89..5b10e95d 100644
--- a/chrome/app/resources/google_chrome_strings_fr.xtb
+++ b/chrome/app/resources/google_chrome_strings_fr.xtb
@@ -50,6 +50,7 @@
 <translation id="2309047409763057870">Ceci est une installation secondaire de Google Chrome. Vous ne pouvez pas le définir comme navigateur par défaut.</translation>
 <translation id="2341767445688917208">Impossible de synchroniser vos mots de passe dans Chrome OS. Corrigez le problème maintenant.</translation>
 <translation id="2348335408836342058">Chrome a besoin de votre autorisation pour accéder à votre appareil photo et à votre micro pour ce site</translation>
+<translation id="234869673307233423">Chrome ne parvient pas à vérifier vos mots de passe. Réessayez plus tard.</translation>
 <translation id="2429317896000329049">Impossible de synchroniser vos données dans Google Chrome, car la synchronisation n'est pas disponible pour votre domaine.</translation>
 <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>
@@ -70,6 +71,8 @@
 <translation id="2857540653560290388">Lancement de Chrome…</translation>
 <translation id="2871893339301912279">Vous êtes connecté à Google Chrome.</translation>
 <translation id="2888126860611144412">À propos de Chrome</translation>
+<translation id="2929907241665500097">Échec de la mise à jour de Chrome en raison d'une erreur. <ph name="BEGIN_LINK" />Découvrez comment résoudre ce type de problème.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Connexion au réseau - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome est exécuté en mode arrière-plan.</translation>
 <translation id="3065168410429928842">Onglet Chrome</translation>
 <translation id="3080151273017101988">Poursuivre l'exécution d'applications en arrière-plan après la fermeture de Google Chrome</translation>
@@ -108,7 +111,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome peut vous aider à vous protéger entre autres contre les violations de données et les extensions malveillantes</translation>
 <translation id="4343195214584226067">L'extension <ph name="EXTENSION_NAME" /> a été ajoutée à Chrome</translation>
+<translation id="4384570495110188418">Chrome ne peut pas vérifier vos mots de passe, car vous n'êtes pas connecté</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - Connexion au réseau - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Une autre opération est en cours dans Google Chrome. Veuillez réessayer ultérieurement.</translation>
 <translation id="4480040274068703980">Impossible de synchroniser vos données dans Chrome OS, car une erreur s'est produite lors de la connexion.</translation>
 <translation id="4561051373932531560">Avec Google Chrome, cliquez sur un numéro de téléphone sur le Web et appelez-le dans Skype !</translation>
@@ -118,6 +123,7 @@
 <translation id="4600710005438004015">Échec de l'installation de la dernière version de Chrome. Vous ne disposez donc pas des nouvelles fonctionnalités, ni des correctifs de sécurité.</translation>
 <translation id="4631713731678262610">Masquer dans le menu Chrome</translation>
 <translation id="4633000520311261472">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="4653397506175047429">Chrome ne parvient pas à vérifier tous vos mots de passe. Réessayez dans 24 heures.</translation>
 <translation id="4728575227883772061">Échec de l'installation suite à une erreur non spécifiée. Si Google Chrome est en cours d'exécution, fermez-le puis réessayez.</translation>
 <translation id="4750550185319565338">Redémarrer Chrome pour activer <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -154,6 +160,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> – Google Chrome Canary</translation>
 <translation id="5804318322022881572">Impossible de lancer Chrome. Réessayez.</translation>
 <translation id="5895138241574237353">Redémarrer</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Connexion au réseau</translation>
 <translation id="5940385492829620908">Votre contenu Web, vos favoris et toutes vos données Chrome sont conservés ici.</translation>
 <translation id="5941830788786076944">Définir Google Chrome comme navigateur par défaut</translation>
 <translation id="6070348360322141662">Pour plus de sécurité, vos données seront chiffrées dans Google Chrome</translation>
@@ -209,6 +216,7 @@
 <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="7905891027772979035">Chrome ne parvient pas à vérifier vos extensions. Réessayez plus tard.</translation>
 <translation id="7916016681687251387">Impossible de synchroniser vos données dans Chrome OS. Corrigez le problème maintenant.</translation>
 <translation id="7930071585467473040">Google Chrome tente de copier les mots de passe.</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>
diff --git a/chrome/app/resources/google_chrome_strings_id.xtb b/chrome/app/resources/google_chrome_strings_id.xtb
index fde2363..aa36851b 100644
--- a/chrome/app/resources/google_chrome_strings_id.xtb
+++ b/chrome/app/resources/google_chrome_strings_id.xtb
@@ -48,6 +48,7 @@
 <translation id="2309047409763057870">Ini adalah pemasangan Google Chrome sekunder, dan tidak dapat digunakan sebagai browser default.</translation>
 <translation id="2341767445688917208">Chrome OS tidak dapat menyinkronkan sandi Anda. Perbaiki sekarang.</translation>
 <translation id="2348335408836342058">Chrome memerlukan izin akses ke kamera dan mikrofon untuk situs ini</translation>
+<translation id="234869673307233423">Chrome tidak dapat memeriksa sandi Anda. Coba lagi nanti.</translation>
 <translation id="2429317896000329049">Google Chrome tidak dapat menyinkronkan data Anda karena Sinkronisasi tidak tersedia untuk domain Anda.</translation>
 <translation id="2467438592969358367">Google Chrome ingin mengekspor sandi. Ketik sandi Windows Anda untuk mengizinkannya.</translation>
 <translation id="2485422356828889247">Uninstal</translation>
@@ -68,6 +69,8 @@
 <translation id="2857540653560290388">Meluncurkan Chrome...</translation>
 <translation id="2871893339301912279">Anda sudah masuk ke Chrome!</translation>
 <translation id="2888126860611144412">Tentang Chrome</translation>
+<translation id="2929907241665500097">Chrome tidak dapat diupdate, terjadi error. <ph name="BEGIN_LINK" />Perbaiki masalah update Chrome dan update yang gagal.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Login Jaringan - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome berjalan di mode latar belakang.</translation>
 <translation id="3065168410429928842">Tab Chrome</translation>
 <translation id="3080151273017101988">Terus jalankan apl latar belakang saat Google Chrome ditutup</translation>
@@ -106,7 +109,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome dapat membantu Anda agar tetap aman dari pelanggaran data, ekstensi berbahaya, dan lainnya</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> telah ditambahkan ke Chrome</translation>
+<translation id="4384570495110188418">Chrome tidak dapat memeriksa sandi karena Anda tidak login</translation>
 <translation id="4407807842708586359">OS Google Chrome</translation>
+<translation id="4450664632294415862">Chrome - Login Jaringan - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Operasi lain di Google Chrome sedang berlangsung. Coba lagi nanti.</translation>
 <translation id="4480040274068703980">Chrome OS tidak dapat menyinkronkan data Anda karena kesalahan saat masuk.</translation>
 <translation id="4561051373932531560">Google Chrome memungkinkan Anda mengeklik nomor telepon pada web dan menghubunginya melalui Skype!</translation>
@@ -116,6 +121,7 @@
 <translation id="4600710005438004015">Chrome tidak dapat diupdate ke versi terbaru, sehingga Anda tidak mendapatkan perbaikan keamanan dan fitur baru.</translation>
 <translation id="4631713731678262610">Sembunyikan di menu Chrome</translation>
 <translation id="4633000520311261472">Agar Chrome lebih aman, kami menonaktifkan beberapa ekstensi yang tidak tercantum pada <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> dan mungkin telah ditambahkan tanpa sepengetahuan Anda.</translation>
+<translation id="4653397506175047429">Chrome tidak dapat memeriksa semua sandi Anda. Coba lagi setelah 24 jam.</translation>
 <translation id="4728575227883772061">Penginstalan gagal karena kesalahan yang tidak diketahui. Jika Google Chrome sedang berjalan; tutup, lalu ulang kembali.</translation>
 <translation id="4750550185319565338">Muat ulang Chrome untuk mengaktifkan <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -149,6 +155,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Tidak dapat meluncurkan Chrome. Harap coba lagi.</translation>
 <translation id="5895138241574237353">Mulai Ulang</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Login Jaringan</translation>
 <translation id="5940385492829620908">Web, bookmark, dan file Chrome Anda lainnya tersedia di sini.</translation>
 <translation id="5941830788786076944">Jadikan Google Chrome sebagai browser default</translation>
 <translation id="6070348360322141662">Untuk keamanan tambahan, Google Chrome akan mengenkripsi data Anda</translation>
@@ -204,6 +211,7 @@
 <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="7905891027772979035">Chrome tidak dapat memeriksa ekstensi Anda. Coba lagi nanti.</translation>
 <translation id="7916016681687251387">Chrome OS tidak dapat menyinkronkan data Anda. Perbaiki sekarang.</translation>
 <translation id="7930071585467473040">Google Chrome mencoba menyalin sandi.</translation>
 <translation id="7962410387636238736">Komputer ini tidak akan menerima update Google Chrome lagi karena Windows XP dan Windows Vista sudah tidak didukung</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ja.xtb b/chrome/app/resources/google_chrome_strings_ja.xtb
index 547ca07..9622802 100644
--- a/chrome/app/resources/google_chrome_strings_ja.xtb
+++ b/chrome/app/resources/google_chrome_strings_ja.xtb
@@ -48,6 +48,7 @@
 <translation id="2309047409763057870">この Google Chrome はセカンダリ インストールのため、既定のブラウザには設定できません。</translation>
 <translation id="2341767445688917208">Chrome OS でパスワードを同期できませんでした。今すぐ問題を修正してください。</translation>
 <translation id="2348335408836342058">このサイトを利用するには、Chrome でカメラとマイクの使用を許可する必要があります</translation>
+<translation id="234869673307233423">Chrome でパスワードを確認できません。しばらくしてからもう一度お試しください。</translation>
 <translation id="2429317896000329049">お使いのドメインでは同期を利用できないため、Google Chrome はデータを同期できませんでした。</translation>
 <translation id="2467438592969358367">Google Chrome からパスワードをエクスポートするための許可を求められています。許可するには Windows のパスワードを入力してください。</translation>
 <translation id="2485422356828889247">アンインストール</translation>
@@ -68,6 +69,8 @@
 <translation id="2857540653560290388">Chrome を起動しています...</translation>
 <translation id="2871893339301912279">Chrome にログインしました</translation>
 <translation id="2888126860611144412">Chrome について</translation>
+<translation id="2929907241665500097">エラーが発生したため、Chrome が更新されませんでした。<ph name="BEGIN_LINK" />Chrome の更新に関する問題を解決してください。<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - ネットワークにログイン - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome はバックグラウンド モードです。</translation>
 <translation id="3065168410429928842">Chrome タブ</translation>
 <translation id="3080151273017101988">Google Chrome を閉じた際にバックグラウンド アプリの処理を続行する</translation>
@@ -106,7 +109,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome でデータ侵害や不正な拡張機能などの脅威から保護できているか確認します</translation>
 <translation id="4343195214584226067">「<ph name="EXTENSION_NAME" />」が Chrome に追加されました</translation>
+<translation id="4384570495110188418">ログインしていないため、Chrome でパスワードを確認できません</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - ネットワークにログイン - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome で別の処理が行われています。しばらくしてからもう一度お試しください。</translation>
 <translation id="4480040274068703980">ログイン時にエラーが発生したため、Chrome OS はデータを同期できませんでした。</translation>
 <translation id="4561051373932531560">Google Chrome では、ウェブサイト上の電話番号をクリックするだけで Skype で通話を発信できます。</translation>
@@ -116,6 +121,7 @@
 <translation id="4600710005438004015">Chrome を最新版に更新できませんでした。新しい機能とセキュリティ修正は適用されていません。</translation>
 <translation id="4631713731678262610">Chrome メニューで非表示</translation>
 <translation id="4633000520311261472">Chrome をより安全にご利用いただくため、<ph name="IDS_EXTENSION_WEB_STORE_TITLE" />で提供していない一部の拡張機能を無効にしました。これらは知らないうちに追加された可能性があります。</translation>
+<translation id="4653397506175047429">Chrome ですべてのパスワードを確認できません。24 時間後にもう一度お試しください。</translation>
 <translation id="4728575227883772061">原因不明のエラーによりインストールが失敗しました。実行中の Google Chrome を終了してからやり直してください。</translation>
 <translation id="4750550185319565338"><ph name="PLUGIN_NAME" /> を有効にするには Chrome を再起動してください</translation>
 <translation id="4754614261631455953">Google Chrome Canary(mDNS インバウンド)</translation>
@@ -149,6 +155,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Chrome を起動できませんでした。もう一度お試しください。</translation>
 <translation id="5895138241574237353">再起動</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ネットワークにログイン</translation>
 <translation id="5940385492829620908">ウェブ、ブックマーク、その他の Chrome データを好みに設定できます。</translation>
 <translation id="5941830788786076944">Google Chrome を既定のブラウザにする</translation>
 <translation id="6070348360322141662">セキュリティ強化のため、データは Google Chrome で暗号化されます</translation>
@@ -204,6 +211,7 @@
 <translation id="7855730255114109580">Google Chrome は最新版です</translation>
 <translation id="7890208801193284374">パソコンを共有している場合、友だちや家族はそれぞれ Chrome を自分専用のブラウザとして自分用の設定をして使うことができます。</translation>
 <translation id="7896673875602241923">前回このパソコンで別のユーザー(<ph name="ACCOUNT_EMAIL_LAST" />)が Chrome にログインしました。情報を個別に保持するには、新しい Chrome ユーザーを作成してください。</translation>
+<translation id="7905891027772979035">Chrome で拡張機能を確認できません。しばらくしてからもう一度お試しください。</translation>
 <translation id="7916016681687251387">Chrome OS でデータを同期できませんでした。今すぐ問題を修正してください。</translation>
 <translation id="7930071585467473040">Google Chrome がパスワードをコピーしようとしています。</translation>
 <translation id="7962410387636238736">Windows XP と Windows Vista はサポートされなくなったため、このパソコンでは今後 Google Chrome のアップデートは受信されません</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ka.xtb b/chrome/app/resources/google_chrome_strings_ka.xtb
index f85e6e6..4eefdbcd 100644
--- a/chrome/app/resources/google_chrome_strings_ka.xtb
+++ b/chrome/app/resources/google_chrome_strings_ka.xtb
@@ -51,6 +51,7 @@
 <translation id="2309047409763057870">ეს Google Chrome-ის მეორადი ინსტალაცია არის და ნაგულისხმევ ბრაუზერად ის ვერ დაყენდება.</translation>
 <translation id="2341767445688917208">Chrome OS-მა ვერ მოახერხა თქვენი პაროლების სინქრონიზაცია. შეასწორეთ ახლავე.</translation>
 <translation id="2348335408836342058">Chrome საჭიროებს თქვენს კამერასა და მიკროფონზე წვდომის ნებართვას ამ საიტისთვის</translation>
+<translation id="234869673307233423">Chrome ვერ ახერხებს პაროლების შემოწმებას. ცადეთ მოგვიანებით.</translation>
 <translation id="2429317896000329049">Google Chrome-მა ვერ დაასინქრონა თქვენი მონაცემები, რადგან სინქრონიზაცია არ არის ხელმისაწვდომი თქვენი დომენისთვის.</translation>
 <translation id="2467438592969358367">Google Chrome ითხოვს თქვენი პაროლების ექსპორტირებას. აღნიშნულის დასაშვებად აკრიფეთ თქვენი Windows-ის პაროლი.</translation>
 <translation id="2485422356828889247">დეინსტალაცია</translation>
@@ -71,6 +72,8 @@
 <translation id="2857540653560290388">მიმდინარეობს Chrome-ის გაშვება…</translation>
 <translation id="2871893339301912279">თქვენ შესული ხართ Chrome-ში!</translation>
 <translation id="2888126860611144412">Chrome-ის შესახებ</translation>
+<translation id="2929907241665500097">Chrome-ის განახლება ვერ მოხერხდა შეფერხების გამო. <ph name="BEGIN_LINK" />შეასწორეთ Chrome-ის განახლებასთან დაკავშირებული პრობლემები და განუხორციელებელი განახლებები.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> — ქსელში შესვლა — Chrome</translation>
 <translation id="3037838751736561277">Google Chrome ფონურ რეჟიმშია.</translation>
 <translation id="3065168410429928842">Chrome-ის ჩანართი</translation>
 <translation id="3080151273017101988">გაგრძელება გაშვებული ფონური პროგრამებით Google Chrome-ის დახურვისას</translation>
@@ -109,7 +112,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome დაგიცავთ პერსონალურ მონაცემთა გაჟონვის შემთხვევებისგან, არასათანადო გაფართოებებისა და სხვა უსიამოვნებისგან</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> დაემატა Chrome-ს</translation>
+<translation id="4384570495110188418">Chrome ვერ ახერხებს თქვენი პაროლების შემოწმებას, რადგან შესული არ ხართ</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome — ქსელში შესვლა — <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome-ში სხვა ოპერაცია მიმდინარეობს. გთხოვთ, ცადოთ მოგვიანებით.</translation>
 <translation id="4480040274068703980">Chrome OS-მა ვერ დაასინქრონა თქვენი მონაცემები შესვლის შეცდომის გამო.</translation>
 <translation id="4561051373932531560">Google Chrome-ის საშუალებით შეგიძლიათ დააწკაპუნოთ ტელეფონის ნომერზე ინტერნეტში და დარეკოთ Skype-ით!</translation>
@@ -119,6 +124,7 @@
 <translation id="4600710005438004015">Chrome ვერ განახლდა უახლეს ვერსიაზე, რომელსაც დამატებულ აქვს ახალი ფუნქციები და უსაფრთხოების სისტემის შესწორებები.</translation>
 <translation id="4631713731678262610">Chrome-ის მენიუში დამალვა</translation>
 <translation id="4633000520311261472">Chrome-ის უსაფრთხოების გაზრდის მიზნით, ჩვენ გავთიშეთ რამდენიმე გაფართოება, რომელიც არ არის ჩამოთვლილი <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />-ში და, შესაძლოა, დამატებულია თქვენი თანხმობის გარეშე.</translation>
+<translation id="4653397506175047429">Chrome ვერ ახერხებს თქვენი ყველა პაროლის შემოწმებას. ცადეთ 24 საათში.</translation>
 <translation id="4728575227883772061">ინსტალაცია ვერ გონხორციელდა გაურკვეველი შეცდომის გამო. თუ Google Chrome ამჟამად გაშვებულია, დახურეთ იგი და ხელახლა სცადეთ.</translation>
 <translation id="4750550185319565338">გადატვირთეთ Chrome, რათა ჩართოთ <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -155,6 +161,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> — Google Chrome Canary</translation>
 <translation id="5804318322022881572">Chrome-ის გაშვება ვერ მოხერხდა. ცადეთ ხელახლა.</translation>
 <translation id="5895138241574237353">გადატვირთვა</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> — ქსელში შესვლა</translation>
 <translation id="5940385492829620908">თქვენი ვები, სანიშნეები და Chrome-ის სხვა მასალა არის აქ.</translation>
 <translation id="5941830788786076944">Google Chrome გახდეს ნაგულისხმევი ბრაუზერი</translation>
 <translation id="6070348360322141662">დამატებითი უსაფრთხოებისთვის, Google Chrome თქვენს მონაცემებს დაშიფრავს</translation>
@@ -210,6 +217,7 @@
 <translation id="7855730255114109580">Google Chrome განახლებულია</translation>
 <translation id="7890208801193284374">თუ თქვენ აზიარებთ კომპიუტერს, თქვენი მეგობრები და ოჯახის წევრები შეძლებენ ინტერნეტ-გვერდების დამოუკიდებლად დათვალიერებას და Chrome-ის დაყენებას საკუთარი სურვილის შესაბამისად.</translation>
 <translation id="7896673875602241923">Chrome-ში უკვე განხორციელდა შესვლა ამ კომპიუტერიდან, როგორც <ph name="ACCOUNT_EMAIL_LAST" />. გთხოვთ, შექმნათ Chrome-ის ახალი მომხმარებელი თქვენი ინფორმაციის ცალკე შესანახად.</translation>
+<translation id="7905891027772979035">Chrome ვერ ახერხებს გაფართოებების შემოწმებას. ცადეთ მოგვიანებით.</translation>
 <translation id="7916016681687251387">Chrome OS-მა ვერ მოახერხა თქვენი მონაცემების სინქრონიზაცია. შეასწორეთ ახლავე.</translation>
 <translation id="7930071585467473040">Google Chrome ცდილობს პაროლების კოპირებას.</translation>
 <translation id="7962410387636238736">ეს კომპიუტერი აღარ მიიღებს Google Chrome-ის განახლებებს, რადგან Windows XP და Windows Vista აღარ არის მხარდაჭერილი</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kk.xtb b/chrome/app/resources/google_chrome_strings_kk.xtb
index edbe792..6ed1c8f 100644
--- a/chrome/app/resources/google_chrome_strings_kk.xtb
+++ b/chrome/app/resources/google_chrome_strings_kk.xtb
@@ -52,6 +52,7 @@
 <translation id="2309047409763057870">Бұл – Google Chrome браузерінің қайта орнатылған нұсқасы және әдепкі браузер бола алмайды.</translation>
 <translation id="2341767445688917208">Chrome OS құпия сөздеріңізді синхрондай алмады. Қазір түзетіңіз.</translation>
 <translation id="2348335408836342058">Chrome браузеріне бұл сайтта камераны және микрофонды пайдалану үшін рұқсат керек</translation>
+<translation id="234869673307233423">Chrome сіздің құпия сөздеріңізді тексере алмайды. Кейінірек қайталап көріңіз.</translation>
 <translation id="2429317896000329049">Google Chrome деректеріңізді синхрондай алмады, себебі синхрондау функциясы доменіңіз үшін қолжетімді емес.</translation>
 <translation id="2467438592969358367">Google Chrome құпия сөздерді экспорттағысы келеді. Бұған рұқсат беру үшін Windows құпия сөзіңізді теріңіз.</translation>
 <translation id="2485422356828889247">Жою</translation>
@@ -72,6 +73,8 @@
 <translation id="2857540653560290388">Chrome қосылып жатыр…</translation>
 <translation id="2871893339301912279">Chrome жүйесіне кірдіңіз!</translation>
 <translation id="2888126860611144412">Chrome туралы</translation>
+<translation id="2929907241665500097">Chrome жаңартылған жоқ. Бірдеңе дұрыс болмады. <ph name="BEGIN_LINK" />Chrome браузеріндегі жаңартуға қатысты мәселелерді түзетіңіз.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Желіге кіру – Chrome</translation>
 <translation id="3037838751736561277">Google Chrome фондық режимде.</translation>
 <translation id="3065168410429928842">Chrome қойындысы</translation>
 <translation id="3080151273017101988">Google Chrome жабылғанда, фондық қолданбаларды пайдалануды жалғастыру</translation>
@@ -110,7 +113,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome деректердің қолды болуынан, сәйкес келмейтін кеңейтімдерден және тағы басқа мәселелерден қорғайды.</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> кеңейтімі Chrome браузеріне енгізілді</translation>
+<translation id="4384570495110188418">Есептік жазбаға кірмегендіктен, Chrome сіздің құпия сөздеріңізді тексере алмайды.</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome – Желіге кіру – <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome браузерінде басқа операция орындалуда. Әрекетті кейінірек қайталаңыз.</translation>
 <translation id="4480040274068703980">Кіру кезіндегі қате себебінен Chrome OS деректеріңізді синхрондай алмайды.</translation>
 <translation id="4561051373932531560">Google Chrome вебтегі телефон нөмірін басып, оған Skype арқылы қоңырау шалуға мүмкіндік береді!</translation>
@@ -120,6 +125,7 @@
 <translation id="4600710005438004015">Chrome браузерінің ең соңғы нұсқасы орнатылмады, сондықтан жаңа мүмкіндіктер мен қауіпсіздікке қатысты түзетілген функцияларды пайдалана алмайсыз.</translation>
 <translation id="4631713731678262610">Chrome мәзірінде жасыру</translation>
 <translation id="4633000520311261472">Chrome қауіпсіз ету үшін <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ішінде көрсетілмеген және сізге білдірмей қосылған болуы мүмкін кейбір кеңейтімдерді өшірдік.</translation>
+<translation id="4653397506175047429">Chrome сіздің барлық құпия сөзіңізді тексере алмайды. 24 сағаттан кейін қайталап көріңіз.</translation>
 <translation id="4728575227883772061">Орнату анықталмаған қате себебінен сәтсіз аяқталды. Қазір Google Chrome жұмыс істеп тұрса, оны жауып, әрекетті қайталаңыз.</translation>
 <translation id="4750550185319565338"><ph name="PLUGIN_NAME" /> плагинін қосу үшін Chrome браузерін қайта іске қосу</translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -157,6 +163,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Chrome браузері іске қосылмады. Қайталап көріңіз.</translation>
 <translation id="5895138241574237353">Қайта іске қосу</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Желіге кіру</translation>
 <translation id="5940385492829620908">Веб-сайттар, бетбелгілер және басқа Chrome материалдары осы жерде болады.</translation>
 <translation id="5941830788786076944">Google Chrome қолданбасын әдепкі браузер етіп орнату</translation>
 <translation id="6070348360322141662">Қауіпсіздікті күшейту үшін Google Chrome деректеріңізді шифрлайды</translation>
@@ -212,6 +219,7 @@
 <translation id="7855730255114109580">Google Chrome жаңартылған</translation>
 <translation id="7890208801193284374">Компьютерді бөлісетін болсаңыз, достарыңыз бен жақындарыңыз интернетке бөлек кіріп, Chrome браузерін қалауларынша реттей алады.</translation>
 <translation id="7896673875602241923">Әлдекім бұл компьютерден Chrome жүйесіне <ph name="ACCOUNT_EMAIL_LAST" /> болып кірген. Ақпаратты бөлек сақтау үшін жаңа Chrome пайдаланушысын жасаңыз.</translation>
+<translation id="7905891027772979035">Chrome браузері кеңейтімдеріңізді тексере алмайды. Кейінірек қайталап көріңіз.</translation>
 <translation id="7916016681687251387">Chrome OS деректеріңізді синхрондай алмады. Қазір түзетіңіз.</translation>
 <translation id="7930071585467473040">Google Chrome құпия сөздерді көшіргісі келеді.</translation>
 <translation id="7962410387636238736">Windows XP және Windows Vista жүйелеріне қолдау көрсетілмейтіндіктен, бұл компьютер енді Google Chrome жаңартылған нұсқаларын қабылдамайды</translation>
diff --git a/chrome/app/resources/google_chrome_strings_km.xtb b/chrome/app/resources/google_chrome_strings_km.xtb
index d6c5f0e..f386029 100644
--- a/chrome/app/resources/google_chrome_strings_km.xtb
+++ b/chrome/app/resources/google_chrome_strings_km.xtb
@@ -52,6 +52,7 @@
 <translation id="2309047409763057870">នេះគឺជាការដំឡើេង Google Chrome បន្ទាប់បន្សំ ហើយវាមិនអាចធ្វើជាកម្មវិធីរុករកលំនាំដើមរបស់អ្នកបានទេ។</translation>
 <translation id="2341767445688917208">Chrome OS មិនអាច​ធ្វើសមកាលកម្ម​ពាក្យសម្ងាត់​របស់អ្នក​បានទេ។ ដោះស្រាយ​ឥឡូវនេះ​។</translation>
 <translation id="2348335408836342058">Chrome ត្រូវការ​ការអនុញ្ញាត​ដើម្បី​ចូលប្រើ​កាមេរ៉ា និង​មីក្រូហ្វូន​របស់អ្នក​សម្រាប់​ទំព័រនេះ</translation>
+<translation id="234869673307233423">Chrome មិន​អាចពិនិត្យ​ពាក្យសម្ងាត់របស់អ្នកបានទេ។ សូមព្យាយាមម្តងទៀតនៅពេលក្រោយ។</translation>
 <translation id="2429317896000329049">Google Chrome មិនអាចធ្វើសមកម្មទិន្នន័យរបស់អ្នកទេ ពីព្រោះ សមកម្ម មិនមានសម្រាប់ដែនរបស់អ្នកទេ។</translation>
 <translation id="2467438592969358367">Google Chrome ចង់​នាំចេញពាក្យ​សម្ងាត់​របស់អ្នក​។ សូមវាយ​បញ្ចូលពាក្យ​សម្ងាត់ Windows របស់អ្នក​ដើម្បីអនុញ្ញាត​ការនាំចេញ​នេះ។</translation>
 <translation id="2485422356828889247">លុបការតំឡើង</translation>
@@ -72,6 +73,8 @@
 <translation id="2857540653560290388">កំពុង​ចាប់ផ្ដើម Chrome...</translation>
 <translation id="2871893339301912279">អ្នកបានចូលមកកាន់ Chrome!</translation>
 <translation id="2888126860611144412">អំពី Chrome</translation>
+<translation id="2929907241665500097">Chrome មិន​បានដំឡើងកំណែទេ មានអ្វីមួយខុសប្រក្រតី។ <ph name="BEGIN_LINK" />សូមដោះស្រាយបញ្ហា​នៃការដំឡើងកំណែ Chrome និងការដំឡើងកំណែដែលមិនបានសម្រេចផ្សេងៗ។<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - ការចូលបណ្ដាញ - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome នៅក្នុងរបៀបផ្ទៃខាងក្រោយ។</translation>
 <translation id="3065168410429928842">ផ្ទាំង Chrome</translation>
 <translation id="3080151273017101988">បន្តដំណើរការកម្មវិធីផ្ទៃខាងក្រោយ នៅពេល Google Chrome ត្រូវបានបិទ</translation>
@@ -110,7 +113,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome អាច​ជួយរក្សាសុវត្ថិភាពរបស់អ្នកពី​ការបែកធ្លាយ​ទិន្នន័យ កម្មវិធីបន្ថែម​ដែលមានបញ្ហា និង​អ្វីៗជាច្រើនទៀត</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> ត្រូវបាន​បញ្ចូល​ទៅ Chrome</translation>
+<translation id="4384570495110188418">Chrome មិន​អាច​ពិនិត្យពាក្យសម្ងាត់របស់អ្នកបានទេ ដោយសារអ្នកមិនបានចូលគណនី</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - ការចូល​បណ្ដាញ - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">ប្រតិបត្តិការផ្សេងទៀតនៅលើ Google Chrome កំពុងដំណើរការ សូមព្យាយាមម្តងទៀតនៅពេលក្រោយ។</translation>
 <translation id="4480040274068703980">Chrome OS មិនអាចធ្វើសមកម្មទិន្នន័យរបស់អ្នកទេដោយសារកំហុសឆ្គងការចូល។</translation>
 <translation id="4561051373932531560">Google Chrome អនុញ្ញាតឲ្យអ្នកចុចលេខទូរស័ព្ទនៅលើគេហទំព័រ ហើយហៅចេញជាមួយ Skype!</translation>
@@ -120,6 +125,7 @@
 <translation id="4600710005438004015">Chrome មិនអាចដំឡើងជំនាន់ទៅកំណែចុងក្រោយបំផុតបានទេ ដូច្នេះអ្នកនឹងមិនអាចទទួល​បានមុខងារថ្មី និងដោះស្រាយបញ្ហាសុវត្ថិភាពទេ។</translation>
 <translation id="4631713731678262610">លាក់នៅក្នុងម៉ឺនុយ Chrome</translation>
 <translation id="4633000520311261472">ដើម្បីធ្វើឲ្យ Chrome មានសុវត្ថិភាពជាងមុន យើងបានបិទដំណើរកម្មវិធីបន្ថែមមួយចំនួនដែលមិនត្រូវបានរាយនៅក្នុង <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> និងអាចត្រូវបានបន្ថែមដោយពុំមានការជូនដំណឹងដល់អ្នក។</translation>
+<translation id="4653397506175047429">Chrome មិន​អាចពិនិត្យ​ពាក្យសម្ងាត់ទាំងអស់របស់អ្នកបានទេ។ សូមព្យាយាមម្ដងទៀតក្រោយរយៈពេល 24 ម៉ោង។</translation>
 <translation id="4728575227883772061">ការតំឡើងបានបរាជ័យដោយសារកំហុសឆ្គងដែលមិនជាក់លាក់។ ប្រសិនបើ Google Chrome កំពុងដំណើរការនៅពេលបច្ចុប្បន្ន សូមបិទវាហើយព្យាយាមម្តងទៀត។</translation>
 <translation id="4750550185319565338">ចាប់ផ្តើម Chrome ឡើងវិញដើម្បីបើក <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -157,6 +163,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">មិន​អាច​ចាប់ផ្ដើម Chrome បានទេ។ សូមព្យាយាម​ម្ដង​ទៀត។</translation>
 <translation id="5895138241574237353">ចាប់ផ្តើមឡើងវិញ</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ការចូល​បណ្ដាញ</translation>
 <translation id="5940385492829620908">គេហទំព័រ ចំណាំ និងរបស់ផ្សេងទៀតរបស់ Chrome របស់អ្នកនៅទីនេះ។</translation>
 <translation id="5941830788786076944">ដាក់ Google Chrome ជាកម្មវិធីរុករកលំនាំដើម</translation>
 <translation id="6070348360322141662">ដើម្បី​ទទួលបាន​សុវត្ថិភាព​បន្ថែម Google Chrome នឹង​អ៊ិនគ្រីប​ទិន្នន័យ​របស់​អ្នក</translation>
@@ -212,6 +219,7 @@
 <translation id="7855730255114109580">Google Chrome នេះជា​កំណែថ្មី​ហើយ</translation>
 <translation id="7890208801193284374">ប្រសិនបើអ្នកចែករំលែកកុំព្យូទ័រ មិត្តភ័ក្ត និងគ្រួសារអាចរុករកដាច់ដោយឡែក ហើយតំឡើង Chrome តាមរបៀបដែលអ្នកចង់បាន។</translation>
 <translation id="7896673875602241923">មាននរណាម្នាក់បានចូលទៅកាន់ Chrome នៅលើកុំព្យូទ័រនេះកាលពីមុន ជា <ph name="ACCOUNT_EMAIL_LAST" /> ។ សូមបង្កើតអ្នកប្រើ Chrome ថ្មី ដើម្បីរក្សាព័ត៌មានរបស់អ្នកដាច់ដោយឡែក។</translation>
+<translation id="7905891027772979035">Chrome មិន​អាចពិនិត្យ​កម្មវិធីបន្ថែមរបស់អ្នកបានទេ។ សូមព្យាយាមម្តងទៀតនៅពេលក្រោយ។</translation>
 <translation id="7916016681687251387">Chrome OS មិនអាច​ធ្វើសមកាលកម្ម​ទិន្នន័យ​របស់អ្នក​បានទេ។ ដោះស្រាយ​ឥឡូវនេះ​។</translation>
 <translation id="7930071585467473040">Google Chrome កំពុង​ព្យាយាម​ចម្លង​ពាក្យសម្ងាត់។</translation>
 <translation id="7962410387636238736">កុំព្យូទ័រនេះ​នឹងមិនទទួល​បានកំណែ​ថ្មី​របស់ Google Chrome ទៀតទេ ដោយសារ​តែ Windows XP និង Windows Vista មិន​អាច​ប្រើបាន​ទៀតទេ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb
index f0f02803..c790a76 100644
--- a/chrome/app/resources/google_chrome_strings_kn.xtb
+++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -49,6 +49,7 @@
 <translation id="2309047409763057870">ಇದು Google Chrome ನ ದ್ವಿತೀಯ ಸ್ಥಾಪನೆಯಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಆಗಿ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="2341767445688917208">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chrome OS ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಈಗಲೇ ಸರಿಪಡಿಸಿ.</translation>
 <translation id="2348335408836342058">ಈ ಸೈಟ್‌ಗಾಗಿ ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೊಫೋನ್‌ಗೆ ಪ್ರವೇಶಿಸಲು Chrome ಗೆ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ</translation>
+<translation id="234869673307233423">Chrome ಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="2429317896000329049">ನಿಮ್ಮ ಡೊಮೇನ್‌ನಲ್ಲಿ ಸಿಂಕ್‌ ಮಾಡುವ ಸೌಲಭ್ಯವಿಲ್ಲದ ಕಾರಣ Google Chrome ಗೆ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation>
 <translation id="2467438592969358367">Google Chrome ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ರಫ್ತು ಮಾಡಲು ಬಯಸುತ್ತದೆ. ಇದನ್ನು ಅನುಮತಿಸಲು ನಿಮ್ಮ Windows ಪಾಸ್‌ವರ್ಡ್‌ ಟೈಪ್ ಮಾಡಿ.</translation>
 <translation id="2485422356828889247">ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್</translation>
@@ -69,6 +70,8 @@
 <translation id="2857540653560290388">Chrome ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="2871893339301912279">ನೀವೀಗ Chrome ಗೆ ಸೈನ್ ಇನ್ ಆಗಿರುವಿರಿ!</translation>
 <translation id="2888126860611144412">Chrome ಕುರಿತು</translation>
+<translation id="2929907241665500097">Chrome ಅಪ್‌ಡೇಟ್ ಆಗಲಿಲ್ಲ, ಏನೋ ಸಮಸ್ಯೆಯಾಗಿದೆ. <ph name="BEGIN_LINK" />Chrome ಅಪ್‌ಡೇಟ್ ಸಮಸ್ಯೆಗಳು ಹಾಗೂ ವಿಫಲವಾದ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಸರಿಪಡಿಸಿ.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - ನೆಟ್‌ವರ್ಕ್ ಸೈನ್ ಇನ್ - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome ಹಿನ್ನೆಲೆ ಮೋಡ್‌ನಲ್ಲಿದೆ.</translation>
 <translation id="3065168410429928842">Chrome ಟ್ಯಾಬ್</translation>
 <translation id="3080151273017101988">Google Chrome ಮುಚ್ಚಿದಾಗ ರನ್‌ ಆಗುತ್ತಿರುವ ಹಿನ್ನೆಲೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಮುಂದುವರಿಸು</translation>
@@ -107,7 +110,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">ಡೇಟಾ ಉಲ್ಲಂಘನೆಗಳು, ಕಳಪೆ ವಿಸ್ತರಣೆಗಳು ಮತ್ತು ಇತ್ಯಾದಿಗಳಿಂದ ನಿಮ್ಮನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು Chrome ಸಹಾಯ ಮಾಡಬಹುದು</translation>
 <translation id="4343195214584226067">Chrome ಗೆ <ph name="EXTENSION_NAME" /> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ</translation>
+<translation id="4384570495110188418">ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿರದ ಕಾರಣ Chrome ಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - ನೆಟ್‌ವರ್ಕ್ ಸೈನ್ ಇನ್ - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome ನಲ್ಲಿ ಮತ್ತೊಂದು ಕಾರ್ಯಾಚರಣೆಯು ಪ್ರಗತಿಯಲ್ಲಿದೆ. ದಯವಿಟ್ಟು ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="4480040274068703980">ಸೈನ್ ಇನ್ ಮಾಡುವಲ್ಲಿ ದೋಷವಿರುವ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chrome OS ಗೆ ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="4561051373932531560">Google Chrome ನೀವು ವೆಬ್‌ನಲ್ಲಿ ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ಕ್ಲಿಕ್ ಮಾಡಲು ಅವಕಾಶ ಮಾಡುತ್ತದೆ ಮತ್ತು Skype ನೊಂದಿಗೆ ಕರೆ ಮಾಡುತ್ತದೆ!</translation>
@@ -117,6 +122,7 @@
 <translation id="4600710005438004015">Chrome ಗೆ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಗೆ ಅಪ್‌ಡೇಟ್ ಆಗಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ, ಆದ್ದರಿಂದ ನೀವು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಭದ್ರತೆ ಸರಿಪಡಿಸುವಿಕೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ.</translation>
 <translation id="4631713731678262610">Chrome ಮೆನುವಿನಲ್ಲಿ ಮರೆಮಾಡು</translation>
 <translation id="4633000520311261472">Chrome ಸುರಕ್ಷಿತವಾಗಿರಿಸುವಂತೆ ಮಾಡಲು, <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ನಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾದ ಕೆಲವು ವಿಸ್ತರಣೆಗಳನ್ನು ನಾವು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದೇವೆ ಮತ್ತು ಅವುಗಳನ್ನು ನಿಮ್ಮ ಅರಿವಿಲ್ಲದೆ ಸೇರಿಸಿರಬಹುದು.</translation>
+<translation id="4653397506175047429">Chrome ಗೆ ನಿಮ್ಮ ಎಲ್ಲಾ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. 24 ಗಂಟೆಗಳ ಬಳಿಕ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="4728575227883772061">ಅನಿರ್ದಿಷ್ಟ ದೋಷದಿಂದಾಗಿ ಸ್ಥಾಪನೆ ವಿಫಲವಾಗಿದೆ. Google Chrome ಪ್ರಸ್ತುತ ಚಲಿಸುತ್ತಿದ್ದರೆ, ದಯವಿಟ್ಟು ಇದನ್ನು ಮುಚ್ಚಿ ಮತ್ತು ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="4750550185319565338"><ph name="PLUGIN_NAME" /> ಸಕ್ರಿಯಗೊಳಿಸಲು Chrome ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="4754614261631455953">Google Chrome ಕ್ಯಾನರಿ (mDNS-In)</translation>
@@ -149,6 +155,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Chrome ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="5895138241574237353">ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ನೆಟ್‌ವರ್ಕ್ ಸೈನ್ ಇನ್</translation>
 <translation id="5940385492829620908">ನಿಮ್ಮ ವೆಬ್, ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು ಮತ್ತು ಇತರ Chrome ವಿಷಯವು ಇಲ್ಲಿ ಲೈವ್ ಆಗುತ್ತವೆ.</translation>
 <translation id="5941830788786076944">Google Chrome ಅನ್ನು ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಆಗಿಸು</translation>
 <translation id="6070348360322141662">ಹೆಚ್ಚುವರಿ ಭದ್ರತೆಗಾಗಿ, Google Chrome ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡುತ್ತದೆ</translation>
@@ -204,6 +211,7 @@
 <translation id="7855730255114109580">Google Chrome ಅನ್ನು ಅಪ್‌ ಟು ಡೇಟ್‌ ಆಗಿದೆ</translation>
 <translation id="7890208801193284374">ನೀವು ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಹಂಚಿಕೊಂಡರೆ, ಸ್ನೇಹಿತರು ಮತ್ತು ಕುಟುಂಬದವರು ಪ್ರತ್ಯೇಕವಾಗಿ ಬ್ರೌಸ್ ಮಾಡಬಹುದು ಮತ್ತು Chrome ಅನ್ನು ಅವರ ಅಗತ್ಯಕ್ಕೆ ತಕ್ಕಂತೆ ಹೊಂದಿಸಿಕೊಳ್ಳಬಹುದು.</translation>
 <translation id="7896673875602241923">ಈ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ Chrome ಗೆ ಯಾರೋ ಈ ಹಿಂದೆಯೇ <ph name="ACCOUNT_EMAIL_LAST" /> ಹೆಸರಿನಲ್ಲಿ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದಾರೆ. ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಲು ದಯವಿಟ್ಟು ಹೊಸ Chrome ಬಳಕೆದಾರರನ್ನು ರಚಿಸಿ.</translation>
+<translation id="7905891027772979035">Chrome ಗೆ ನಿಮ್ಮ ವಿಸ್ತರಣೆಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="7916016681687251387">ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chrome OS ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಈಗಲೇ ಸರಿಪಡಿಸಿ.</translation>
 <translation id="7930071585467473040">Google Chrome, ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಕಲಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ.</translation>
 <translation id="7962410387636238736">Windows XP ಮತ್ತು Windows Vista ಗಳಿಗೆ ಬೆಂಬಲವಿಲ್ಲದೇ ಇರುವುದರಿಂದ ಈ ಕಂಪ್ಯೂಟರ್‌‌ ಇನ್ನು ಮುಂದೆ Google Chrome ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದಿಲ್ಲ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ko.xtb b/chrome/app/resources/google_chrome_strings_ko.xtb
index 682e5d0..6c95c75d 100644
--- a/chrome/app/resources/google_chrome_strings_ko.xtb
+++ b/chrome/app/resources/google_chrome_strings_ko.xtb
@@ -52,6 +52,7 @@
 <translation id="2309047409763057870">Chrome의 보조 설치이며 기본 브라우저로 설정할 수 없습니다.</translation>
 <translation id="2341767445688917208">Chrome OS에서 비밀번호를 동기화할 수 없습니다. 지금 문제를 해결해 주세요.</translation>
 <translation id="2348335408836342058">이 사이트에서 카메라와 마이크에 액세스하려면 Chrome에 권한이 필요합니다</translation>
+<translation id="234869673307233423">Chrome에서 비밀번호를 확인할 수 없습니다. 나중에 다시 시도하세요.</translation>
 <translation id="2429317896000329049">도메인에서 동기화를 사용할 수 없어 Chrome에서 데이터를 동기화하지 못했습니다.</translation>
 <translation id="2467438592969358367">Chrome에서 비밀번호를 내보내려고 합니다. 허용하려면 Windows 비밀번호를 입력하세요.</translation>
 <translation id="2485422356828889247">제거</translation>
@@ -72,6 +73,8 @@
 <translation id="2857540653560290388">Chrome 실행 중...</translation>
 <translation id="2871893339301912279">Chrome에 로그인되어 있습니다.</translation>
 <translation id="2888126860611144412">Chrome 정보</translation>
+<translation id="2929907241665500097">문제가 발생하여 Chrome이 업데이트되지 않았습니다. <ph name="BEGIN_LINK" />Chrome 업데이트 문제 및 업데이트 실패 문제 해결하기<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - 네트워크 로그인 - Chrome</translation>
 <translation id="3037838751736561277">Chrome이 백그라운드 모드로 실행 중입니다.</translation>
 <translation id="3065168410429928842">Chrome 탭</translation>
 <translation id="3080151273017101988">Chrome 종료 후에도 백그라운드 앱을 계속 실행</translation>
@@ -110,7 +113,9 @@
 <translation id="4331809312908958774">크롬 OS</translation>
 <translation id="4335235004908507846">Chrome이 정보 유출, 유해한 확장 프로그램 등으로부터 사용자를 보호해 줍니다.</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" />이(가) Chrome에 추가됨</translation>
+<translation id="4384570495110188418">로그인되어 있지 않으므로 Chrome에서 비밀번호를 확인할 수 없습니다.</translation>
 <translation id="4407807842708586359">Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - 네트워크 로그인 - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Chrome에서 다른 작업이 진행 중입니다. 나중에 다시 시도해 주세요.</translation>
 <translation id="4480040274068703980">로그인 중 오류가 발생하여 Chrome OS에서 데이터를 동기화하지 못했습니다.</translation>
 <translation id="4561051373932531560">Chrome을 사용하면 웹에서 전화번호를 클릭하여 Skype로 통화할 수 있습니다.</translation>
@@ -120,6 +125,7 @@
 <translation id="4600710005438004015">Chrome을 최신 버전으로 업데이트하지 못했기 때문에 새로운 기능과 보안 수정 사항이 적용되지 않았습니다.</translation>
 <translation id="4631713731678262610">Chrome 메뉴에서 숨기기</translation>
 <translation id="4633000520311261472">Google에서는 Chrome의 보안을 강화하기 위해 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />에 표시되지 않고 사용자 모르게 추가되었을 수 있는 일부 확장 프로그램의 사용을 중지했습니다.</translation>
+<translation id="4653397506175047429">Chrome에서 일부 비밀번호를 확인할 수 없습니다. 24시간 후 다시 시도하세요.</translation>
 <translation id="4728575227883772061">확인되지 않은 오류로 설치에 실패했습니다. Chrome이 실행 중인 경우 종료한 후 다시 실행하세요.</translation>
 <translation id="4750550185319565338"><ph name="PLUGIN_NAME" />을(를) 사용하려면 Chrome을 다시 시작하세요.</translation>
 <translation id="4754614261631455953">Chrome Canary(mDNS-In)</translation>
@@ -157,6 +163,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Chrome Canary</translation>
 <translation id="5804318322022881572">Chrome을 실행할 수 없습니다. 다시 시도해 보세요.</translation>
 <translation id="5895138241574237353">다시 시작</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - 네트워크 로그인</translation>
 <translation id="5940385492829620908">웹, 북마크 및 기타 Chrome 콘텐츠가 여기에 저장됩니다.</translation>
 <translation id="5941830788786076944">Chrome을 기본 브라우저로</translation>
 <translation id="6070348360322141662">보안 강화를 위해 Chrome에서 사용자 데이터를 암호화합니다.</translation>
@@ -212,6 +219,7 @@
 <translation id="7855730255114109580">Chrome이 최신 버전입니다.</translation>
 <translation id="7890208801193284374">컴퓨터를 공유하는 경우 친구와 가족이 개별적으로 탐색하고 원하는 대로 Chrome을 설정할 수 있습니다.</translation>
 <translation id="7896673875602241923">다른 사용자가 이전에 이 컴퓨터에서 <ph name="ACCOUNT_EMAIL_LAST" />(으)로 Chrome에 로그인했습니다. 새 Chrome 사용자를 만들어 정보를 별도로 관리하세요.</translation>
+<translation id="7905891027772979035">Chrome에서 확장 프로그램을 확인할 수 없습니다. 나중에 다시 시도하세요.</translation>
 <translation id="7916016681687251387">Chrome OS에서 데이터를 동기화할 수 없습니다. 지금 문제를 해결해 주세요.</translation>
 <translation id="7930071585467473040">Chrome에서 비밀번호를 복사하려고 합니다.</translation>
 <translation id="7962410387636238736">Windows XP와 Windows Vista가 더 이상 지원되지 않으므로 이 컴퓨터에서 Chrome 업데이트를 받을 수 없게 됩니다</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ky.xtb b/chrome/app/resources/google_chrome_strings_ky.xtb
index e190b96e..6a60d42 100644
--- a/chrome/app/resources/google_chrome_strings_ky.xtb
+++ b/chrome/app/resources/google_chrome_strings_ky.xtb
@@ -52,6 +52,7 @@
 <translation id="2309047409763057870">Бул Chromium'дун кошумча орнотулушу болгондуктан, аны демейки серепчиңиз катары тандай албайсыз.</translation>
 <translation id="2341767445688917208">Chrome OS сырсөздөрүңүздү шайкештештире албай койду. Азыр оңдоо.</translation>
 <translation id="2348335408836342058">Бул сайтта иштөө үчүн Chrome камераңызды жана микрофонуңузду колдонушу керек</translation>
+<translation id="234869673307233423">Chrome сырсөздөрүңүздү текшере албай жатат. Кийинчерээк кайталаңыз.</translation>
 <translation id="2429317896000329049">Домениңизде шайкештештирүү аракети жок болгондуктан, Google Chrome дайын-даректериңизди шайкештештире алган жок.</translation>
 <translation id="2467438592969358367">Google Chrome сырсөздөрүңүздү экспорттогону жатат. Ага уруксат берүү үчүн Windows аккаунтуңуздун сырсөзүн териңиз.</translation>
 <translation id="2485422356828889247">Орнотуудан чыгаруу</translation>
@@ -72,6 +73,8 @@
 <translation id="2857540653560290388">Chrome иштетилүүдө…</translation>
 <translation id="2871893339301912279">Chrome'го кирдиңиз!</translation>
 <translation id="2888126860611144412">Chrome тууралуу</translation>
+<translation id="2929907241665500097">Chrome жаңыртылган жок. Бир жерден ката кетти. <ph name="BEGIN_LINK" />Chrome'догу жаңыртуу маселелерин оңдоңуз.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Тармакка кирүү – Chrome</translation>
 <translation id="3037838751736561277">Google Chrome фондук режимде.</translation>
 <translation id="3065168410429928842">Chrome өтмөгү</translation>
 <translation id="3080151273017101988">Google Chrome жабылганда фондук колдонмолор иштей берсин</translation>
@@ -110,7 +113,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome сырсөздөрүңүздү коопсуз сактоого, кооптуу кеңейтүүлөрдөн жана башкалардан коргоого жардам берет</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> Chrome'го кошулду</translation>
+<translation id="4384570495110188418">Chrome сырсөздөрүңүздү текшере албайт, анткени аккаунтуңузга кирген жоксуз</translation>
 <translation id="4407807842708586359">Google Chrome Иш тутуму</translation>
+<translation id="4450664632294415862">Chrome – Тармакка кирүү – <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome'до башка операция жүрүп жатат. Кийинчерээк дагы аракет кылып көрүңүз.</translation>
 <translation id="4480040274068703980">Chrome OS кирүү катасынан улам дайын-даректериңизди шайкештештире албай койду.</translation>
 <translation id="4561051373932531560">Google Chrome'дун жардамы менен, желеден телефон номерин чыкылдатып, ага Skype аркылуу чала аласыз!</translation>
@@ -120,6 +125,7 @@
 <translation id="4600710005438004015">Chrome акыркы версиясына жаңыртылбай койду, андыктан жаңы функциялар менен коопсуздук оңдоолорун пайдалана албай калдыңыз.</translation>
 <translation id="4631713731678262610">Chrome менюсунда жашыруу</translation>
 <translation id="4633000520311261472">Жеке маалыматыңызды коргоо үчүн, айрым Chromium кеңейтүүлөрүн өчүрүп койдук, себеби <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ичинде аларга байланыштуу маалымат жок. Демек, бул курамдык бөлүктөр тымызын орнотулган.</translation>
+<translation id="4653397506175047429">Chrome бардык сырсөздөрүңүздү текшере албай жатат. 24 сааттан кийин кайра аракет кылыңыз.</translation>
 <translation id="4728575227883772061">Күтүлбөгөн катадан орнотулбай калды. Учурда Google Chrome иштеп жатса, аны жаап туруп кайталап көрүңүз.</translation>
 <translation id="4750550185319565338"><ph name="PLUGIN_NAME" /> плагинин иштетүү үчүн Chrome'ду өчүрүп-күйгүзүңүз</translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -157,6 +163,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> – Google Chrome Canary</translation>
 <translation id="5804318322022881572">Chrome иштетилбей койду. Кайталап көрүңүз.</translation>
 <translation id="5895138241574237353">Өчүрүп күйгүзүү</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Тармакка кирүү</translation>
 <translation id="5940385492829620908">Веб, кыстармалар жана башка Chrome жеке дайын-даректериңиз ушул жерде жайгашкан.</translation>
 <translation id="5941830788786076944">Google Chrome'ду демейки серепчи кылуу</translation>
 <translation id="6070348360322141662">Кошумча коопсуздук максатында, Google Chrome дайын-даректериңизди шифрлеп коёт</translation>
@@ -212,6 +219,7 @@
 <translation id="7855730255114109580">Google Chrome жаңыртылган</translation>
 <translation id="7890208801193284374">Компьютерди бөлүшсөңүз, жакындарыңыз өзүнчө серептеп, Chrome'ду өзүлөрүнө ылайыктап жөндөп алышат.</translation>
 <translation id="7896673875602241923">Буга чейин кимдир бирөө бул компьютерден Chrome'го <ph name="ACCOUNT_EMAIL_LAST" /> аккаунту менен кирген. Жеке маалыматыңызды өзүнчө сактоо үчүн жаңы Chrome колдонуучусун түзүңүз.</translation>
+<translation id="7905891027772979035">Chrome кеңейтүүлөрүңүздү текшере албай жатат. Кийинчерээк кайталаңыз.</translation>
 <translation id="7916016681687251387">Chrome OS маалыматыңызды шайкештештире албай койду. Азыр оңдоо.</translation>
 <translation id="7930071585467473040">Google Chrome сырсөздөрдү көчүрүүгө аракет кылып жатат.</translation>
 <translation id="7962410387636238736">Бул компьютер мындан ары Google Chrome жаңыртууларын албайт, себеби Windows XP жана Windows Vista мындан ары колдоого алынбайт</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lo.xtb b/chrome/app/resources/google_chrome_strings_lo.xtb
index 034e3272..bd84d32 100644
--- a/chrome/app/resources/google_chrome_strings_lo.xtb
+++ b/chrome/app/resources/google_chrome_strings_lo.xtb
@@ -52,6 +52,7 @@
 <translation id="2309047409763057870">ນີ້ແມ່ນການຕິດຕັ້ງສຳຮອງຂອງ Google Chrome ແລະ ບໍ່ສາມາດຕັ້ງໃຫ້ເປັນໂປຣແກຣມທ່ອງເວັບເລີ່ມຕົ້ນຂອງທ່ານໄດ້.</translation>
 <translation id="2341767445688917208">Chrome OS ບໍ່ສາມາດຊິ້ງຂໍ້ມູນລະຫັດຜ່ານຂອງທ່ານໄດ້. ແກ້ໄຂຕອນນີ້ເລີຍ.</translation>
 <translation id="2348335408836342058">Chrome ຕ້ອງການການອະນຸຍາດເພື່ອເຂົ້າເຖິງກ້ອງຖ່າຍຮູບ ແລະ ໄມໂຄຣໂຟນຂອງທ່ານສຳລັບເວັບໄຊນີ້</translation>
+<translation id="234869673307233423">Chrome ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້. ລອງໃໝ່ໃນພາຍຫລັງ.</translation>
 <translation id="2429317896000329049">Google Chrome ບໍ່​ສາ​ມາດຊິງຄ໌ຂໍ້​ມູນ​ຂອງ​ທ່ານໄດ້ ເພາະວ່າບໍ່ມີການຊິງຄ໌ຢູ່ໃນໂດເມນຂອງທ່ານ.</translation>
 <translation id="2467438592969358367">Google Chrome ຕ້ອງການສົ່ງອອກລະຫັດຜ່ານຂອງທ່ານ. ກະລຸນາພິມລະຫັດຜ່ານ Windows ຂອງທ່ານ ເພື່ອອະນຸຍາດສິ່ງນີ້.</translation>
 <translation id="2485422356828889247">ຖອນ​ຕິດ​ຕັ້ງ</translation>
@@ -72,6 +73,8 @@
 <translation id="2857540653560290388">ກຳລັງເປີດໃຊ້ Chrome...</translation>
 <translation id="2871893339301912279">ທ່ານລົງຊື່ເຂົ້າໃຊ້ Chrome ແລ້ວ.</translation>
 <translation id="2888126860611144412">ກ່ຽວ​ກັບ Chrome</translation>
+<translation id="2929907241665500097">Chrome ບໍ່ອັບເດດ, ມີບາງຢ່າງຜິດພາດ. <ph name="BEGIN_LINK" />ແກ້ໄຂບັນຫາການອັບເດດ Chrome ແລະ ການອັບເດດທີ່ບໍ່ສຳເລັດ.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - ການເຂົ້າສູ່ລະບົບເຄືອຂ່າຍ - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome ຢູ່ໃນໂໝດພື້ນຫຼັງ.</translation>
 <translation id="3065168410429928842">ແຖບ Chrome</translation>
 <translation id="3080151273017101988">ສືບຕໍ່ແລ່ນແອັບພື້ນຫຼັງ ເມື່ອ Google Chrome ປິດ</translation>
@@ -110,7 +113,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome ສາມາດຊ່ວຍຮັກສາໃຫ້ທ່ານປອດໄພຈາກການລະເມີດຂໍ້ມູນ, ສ່ວນຂະຫຍາຍທີ່ບໍ່ດີ ແລະ ອື່ນໆອີກໄດ້</translation>
 <translation id="4343195214584226067">ເພີ່ມ <ph name="EXTENSION_NAME" /> ໃສ່ Chrome ແລ້ວ</translation>
+<translation id="4384570495110188418">Chrome ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້ ເພາະວ່າທ່ານບໍ່ໄດ້ເຂົ້າສູ່ລະບົບ</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - ການເຂົ້າສູ່ລະບົບເຄືອຂ່າຍ - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">ກຳລັງມີການດຳເນີນການອື່ນຢູ່ໃນ Google Chrome. ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ.</translation>
 <translation id="4480040274068703980">Chrome OS ບໍ່ສາມາດຊິງຄ໌ຂໍ້ມູນຂອງທ່ານໄດ້ ເນື່ອງຈາກການລົງຊື່ເຂົ້າ​ໃຊ້ຜິດພາດ.</translation>
 <translation id="4561051373932531560">Google Chrome ໃຫ້ທ່ານຄລິກໃສ່ເບີໂທລະສັບຢູ່ໃນເວັບ ແລະໂທມັນດ້ວຍ Skype!</translation>
@@ -120,6 +125,7 @@
 <translation id="4600710005438004015">Chrome ບໍ່ສາມາດອັບເດດເປັນເວີຊັນຫຼ້າສຸດໄດ້, ສະນັ້ນທ່ານກຳລັງພາດຄຸນສົມບັດ ແລະ ການແກ້ໄຂດ້ານຄວາມປອດໄພໃໝ່ໆຢູ່.</translation>
 <translation id="4631713731678262610">ເຊື່ອງ​ຢູ່​ໃນ​ເມ​ນູ Chrome</translation>
 <translation id="4633000520311261472">ເພື່ອເຮັດໃຫ້  Chrome ປອດໄພຂຶ້ນ, ພວກເຮົາປິດໃຊ້ງານບາງສ່ວນຂະຫຍາຍທີ່ບໍ່ໄດ້ມີລາຍຊື່ຢູ່ໃນ <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ແລະອາດຈະຖືກເພີ່ມເຂົ້າໂດຍທີ່ທ່ານບໍ່ຮູ້ຈັກ.</translation>
+<translation id="4653397506175047429">Chrome ບໍ່ສາມາດກວດລະຫັດຜ່ານທັງໝົດຂອງທ່ານໄດ້. ກະລຸນາລອງໃໝ່ຫຼັງຈາກ 24 ຊົ່ວໂມງ.</translation>
 <translation id="4728575227883772061">ການ​ຕິດ​ຕັ້ງ​ບໍ່​ສໍາ​ເລັດ​ ​ເນື່ອງ​ມາ​ຈາກ​ຄວາມ​ຜິດພາດທີ່ບໍ່ລະບຸໄວ້​. ຖ້າ Google Chrome ກໍາລັງແລ່ນຢູ່ໃນປະຈຸບັນ​, ກະ​ລຸ​ນາ​ປິດ​ມັນ ​ແລະ​ລອງໃໝ່​ອີກ​.</translation>
 <translation id="4750550185319565338">ເປິດເປີດ Chrome ຄືນໃໝ່ເພື່ອເປີດນຳໃຊ້ <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -157,6 +163,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">ບໍ່ສາມາດເປີດໃຊ້ Chrome. ກະລຸນາລອງອີກຄັ້ງ.</translation>
 <translation id="5895138241574237353">ເລີ່ມຕົ້ນໃໝ່</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ການເຂົ້າສູ່ລະບົບເຄືອຂ່າຍ</translation>
 <translation id="5940385492829620908">ເວັບຂອງທ່ານ, ບຸກມາກສ໌, ແລະ Chrome ອື່ນສົດຢູ່ທີ່ນີ້.</translation>
 <translation id="5941830788786076944">ເຮັດ Google Chrome ເປັນບຣາວເຊີມາດຕະຖານ</translation>
 <translation id="6070348360322141662">ເພື່ອຄວາມປອດໄພເພີ່ມເຕີມ, Google Chrome ຈະເຂົ້າລະຫັດລັບຂໍ້ມູນຂອງທ່ານ</translation>
@@ -212,6 +219,7 @@
 <translation id="7855730255114109580">Google Chrome ແມ່ນເວີຊັນໃໝ່ຫຼ້າສຸດແລ້ວ</translation>
 <translation id="7890208801193284374">ຖ້າທ່ານແຊຣ໌ຄອມພິວເຕີ, ໝູ່​ເພື່ອນ ແລະຄອບຄົວຂອງທ່ານສາມາດທ່ອງເນັດໄດ້ແຍກຕ່າງຫາກ ແລະຕັ້ງ Chrome ​ໃນແບບ​ທີ່​ພວກ​ເຂົາຕ້ອງການ.</translation>
 <translation id="7896673875602241923">ຄົນອື່ນເຄີຍເຂົ້າສູ່ລະບົບ Chrome ໃນຄອມພິວເຕີນີ້ເປັນ <ph name="ACCOUNT_EMAIL_LAST" /> ມາກ່ອນແລ້ວ. ກະລຸນາສ້າງຜູ້ໃຊ້ Chrome ໃໝ່ເພື່ອເກັບຂໍ້ມູນຂອງທ່ານໃຫ້ແຍກກັນຕ່າງຫາກ.</translation>
+<translation id="7905891027772979035">Chrome ບໍ່ສາມາດກວດສ່ວນຂະຫຍາຍຂອງທ່ານໄດ້. ລອງໃໝ່ໃນພາຍຫລັງ.</translation>
 <translation id="7916016681687251387">Chrome OS ບໍ່ສາມາດຊິ້ງຂໍ້ມູນຂອງທ່ານໄດ້. ແກ້ໄຂຕອນນີ້ເລີຍ.</translation>
 <translation id="7930071585467473040">Google Chrome ກໍາລັງພະຍາຍາມສຳເນົາລະຫັດຜ່ານ.</translation>
 <translation id="7962410387636238736">ຄອມພິວເຕີນີ້ຈະບໍ່ໄດ້ຮັບການອັບເດດ Google Chrome ອີກຕໍ່ໄປ ເພາະວ່າບໍ່ຮອງຮັບ Windows XP ແລະ Windows Vista ອີກຕໍ່ໄປ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mk.xtb b/chrome/app/resources/google_chrome_strings_mk.xtb
index bb88d90..558722a 100644
--- a/chrome/app/resources/google_chrome_strings_mk.xtb
+++ b/chrome/app/resources/google_chrome_strings_mk.xtb
@@ -52,6 +52,7 @@
 <translation id="2309047409763057870">Ова е второстепена инсталација на Google Chrome и затоа не може да биде стандарден прелистувач.</translation>
 <translation id="2341767445688917208">Chrome OS не можеше да ги синхронизира вашите лозинки. Поправете сега.</translation>
 <translation id="2348335408836342058">На Chrome му треба дозвола за да пристапи до камерата и микрофонот за сајтов</translation>
+<translation id="234869673307233423">Chrome не може да ги провери вашите лозинки. Обидете се пак подоцна.</translation>
 <translation id="2429317896000329049">Google Chrome не може да ги синхронизира вашите податоци затоа што Sync не е достапен за вашиот домен.</translation>
 <translation id="2467438592969358367">Google Chrome сака да ги извезе вашите лозинки. Внесете ја лозинката за Windows за да го дозволите ова.</translation>
 <translation id="2485422356828889247">Деинсталирај</translation>
@@ -72,6 +73,8 @@
 <translation id="2857540653560290388">Се стартува Chrome…</translation>
 <translation id="2871893339301912279">Најавени сте на Chrome!</translation>
 <translation id="2888126860611144412">За Chrome</translation>
+<translation id="2929907241665500097">Chrome не се ажурираше, нешто тргна наопаку. <ph name="BEGIN_LINK" />Поправете ги проблемите со ажурирањето на Chrome и со неуспешните ажурирања.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Мрежно најавување - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome е во заднински режим.</translation>
 <translation id="3065168410429928842">Картичка на Chrome</translation>
 <translation id="3080151273017101988">Продолжи со извршување апликации во заднина кога е затворен Google Chrome</translation>
@@ -110,7 +113,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome може да ве штити од упад во податоците, злонамерни екстензии и друго</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> е додадена на Chrome</translation>
+<translation id="4384570495110188418">Chrome не може да ги провери вашите лозинки бидејќи не сте најавени</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - Мрежно најавување - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Во тек е друга операција на Google Chrome. Обидете се повторно подоцна.</translation>
 <translation id="4480040274068703980">Chrome OS не може да ги синхронизира вашите податоци поради грешка при пријавувањето.</translation>
 <translation id="4561051373932531560">Google Chrome ви овозможува да кликнете на телефонски број на интернет и да го повикате со Skype!</translation>
@@ -120,6 +125,7 @@
 <translation id="4600710005438004015">Chrome не може да се ажурира на најновата верзија и поради тоа ги пропуштате новите функции и безбедносни поправки.</translation>
 <translation id="4631713731678262610">Сокриј во мени на Chrome</translation>
 <translation id="4633000520311261472">За Chrome да биде побезбеден, оневозможивме неколку наставки што не се наведени во <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> и можеби се додадени без ваше знаење.</translation>
+<translation id="4653397506175047429">Chrome не може да ги провери сите ваши лозинки. Обидете се пак по 24 часа.</translation>
 <translation id="4728575227883772061">Инсталацијата не успеа поради неодредена грешка. Доколку Google Chrome е активен во моментов, затворете го и обидете се повторно.</translation>
 <translation id="4750550185319565338">Рестартирајте го Chrome за да го овозможите <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Канари (mDNS-In)</translation>
@@ -157,6 +163,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Не можеше да се стартува Chrome. Обидете се повторно.</translation>
 <translation id="5895138241574237353">Рестартирај</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Мрежно најавување</translation>
 <translation id="5940385492829620908">Вебот, обележувачите и останатите работи на Chrome живеат тука.</translation>
 <translation id="5941830788786076944">Постави го Google Chrome за стандарден прелистувач</translation>
 <translation id="6070348360322141662">За дополнителна безбедност, Google Chrome ќе ги шифрира вашите податоци</translation>
@@ -212,6 +219,7 @@
 <translation id="7855730255114109580">Google Chrome е ажуриран</translation>
 <translation id="7890208801193284374">Доколку споделувате компјутер, пријателите и семејството може да прелистуваат одделно и да го поставуваат Chrome токму онака како што сакаат.</translation>
 <translation id="7896673875602241923">Некој претходно се најави на Chrome од овој компјутер како <ph name="ACCOUNT_EMAIL_LAST" />. Создајте нов корисник на Chrome за да ги чувате информациите одделно.</translation>
+<translation id="7905891027772979035">Chrome не може да ги провери вашите екстензии. Обидете се пак подоцна.</translation>
 <translation id="7916016681687251387">Chrome OS не можеше да ги синхронизира вашите податоци. Поправете сега.</translation>
 <translation id="7930071585467473040">Google Chrome се обидува да копира лозинки.</translation>
 <translation id="7962410387636238736">Компјутеров веќе нема да добива ажурирања за Google Chrome затоа што Windows XP и Windows Vista веќе не се поддржуваат</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb
index 6e07e0b..3e6b5dad 100644
--- a/chrome/app/resources/google_chrome_strings_ml.xtb
+++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -52,6 +52,7 @@
 <translation id="2309047409763057870">ഇത് Google Chrome-ന്റെ ദ്വിതീയ ഇൻസ്‌റ്റലേഷനായതിനാൽ, നിങ്ങളുടെ ഡിഫോൾട്ട് ബ്രൗസറാക്കാൻ കഴിയില്ല.</translation>
 <translation id="2341767445688917208">Chrome OS-ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ സമന്വയിപ്പിക്കാനായില്ല. ഇപ്പോൾ പരിഹരിക്കുക.</translation>
 <translation id="2348335408836342058">ഈ സൈറ്റിനായി, Chrome-ന് നിങ്ങളുടെ ക്യാമറയും മൈക്രോഫോണും ആക്‌സസ് ചെയ്യാനുള്ള അനുമതി ആവശ്യമാണ്</translation>
+<translation id="234869673307233423">Chrome-ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ പരിശോധിക്കാനാവുന്നില്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="2429317896000329049">നിങ്ങളുടെ ഡൊമെയ്‌‌നിനായി സമന്വയം ലഭ്യമല്ലാത്തതിനാൽ Google Chrome-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation>
 <translation id="2467438592969358367">നിങ്ങളുടെ പാസ്‌വേഡുകൾ എക്‌സ്‌പോർട്ട് ചെയ്യാൻ Google Chrome ആഗ്രഹിക്കുന്നു. ഇത് അനുവദിക്കാൻ നിങ്ങളുടെ Windows പാസ്‌വേഡ് നൽകുക.</translation>
 <translation id="2485422356828889247">അണ്‍‌ഇന്‍‌സ്റ്റാള്‍‌ ചെയ്യുക</translation>
@@ -72,6 +73,8 @@
 <translation id="2857540653560290388">Chrome സമാരംഭിക്കുന്നു...</translation>
 <translation id="2871893339301912279">നിങ്ങൾ Chrome-ൽ സൈൻ ഇൻ ചെയ്‌തു!</translation>
 <translation id="2888126860611144412">Chrome-നെ കുറിച്ച്</translation>
+<translation id="2929907241665500097">Chrome അപ്‌ഡേറ്റ് ചെയ്തില്ല, എന്തോ കുഴപ്പമുണ്ടായി. <ph name="BEGIN_LINK" />Chrome അപ്‌ഡേറ്റ് സംബന്ധിച്ച പ്രശ്നങ്ങളും പരാജയപ്പെട്ട അപ്ഡേറ്റുകളും പരിഹരിക്കുക.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - നെറ്റ്‌വർക്ക് സൈൻ ഇൻ - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome ഒരു പശ്ചാത്തല മോഡിലാണ്.</translation>
 <translation id="3065168410429928842">Chrome ടാബ്</translation>
 <translation id="3080151273017101988">Google Chrome അടച്ചാലും പശ്ചാത്തല ആപ്ലിക്കേഷനുകള്‍ പ്രവര്‍ത്തിപ്പിക്കുന്നത് തുടരുക</translation>
@@ -110,7 +113,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">ഡാറ്റാ ലംഘനങ്ങൾ, മോശം വിപുലീകരണങ്ങൾ എന്നിവയിൽ നിന്നും മറ്റും നിങ്ങളെ സുരക്ഷിതമായി നിലനിർത്താൻ Chrome സഹായിക്കും</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> Chrome-ലേക്ക് ചേർത്തു</translation>
+<translation id="4384570495110188418">നിങ്ങൾ സൈൻ ഇൻ ചെയ്‌തിട്ടില്ലാത്തതിനാൽ Chrome-ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ പരിശോധിക്കാനാവില്ല</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - നെറ്റ്‌വർക്ക് സൈൻ ഇൻ - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome-ലെ മറ്റൊരു പ്രവർത്തനം പുരോഗതിയിലാണ്. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="4480040274068703980">സൈൻ ഇൻ ചെയ്യുന്നതിലെ പിശക് കാരണം Chrome OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation>
 <translation id="4561051373932531560">വെബ്ബിലുള്ള ഒരു ഫോണ്‍ നമ്പരില്‍ ക്ലിക്ക് ചെയ്യുവാനും Skype ഉപയോഗിച്ച് വിളിക്കുവാനും Google Chrome നിങ്ങളെ അനുവദിക്കുന്നു!</translation>
@@ -120,6 +125,7 @@
 <translation id="4600710005438004015">ഏറ്റവും പുതിയ പതിപ്പിലേക്ക് Chrome അപ്‌ഡേറ്റ് ചെയ്യാനായില്ല, അതിനാൽ പുതിയ ഫീച്ചറുകളും സുരക്ഷാ പരിഹാരങ്ങളും നിങ്ങൾക്ക് ലഭിക്കുന്നില്ല.</translation>
 <translation id="4631713731678262610">Chrome മെനുവിൽ മറയ്‌ക്കുക</translation>
 <translation id="4633000520311261472">Chrome സുരക്ഷിതമാക്കുന്നതിന്, <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> എന്നതിൽ ലിസ്റ്റുചെയ്യാത്ത ചില വിപുലീകരണങ്ങൾ ഞങ്ങൾ പ്രവർത്തനരഹിതമാക്കി, അവ നിങ്ങളുടെ അറിവില്ലാതെ ചേർത്തിരിക്കാനിടയുണ്ട്.</translation>
+<translation id="4653397506175047429">Chrome-ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ പരിശോധിക്കാനാവുന്നില്ല. 24 മണിക്കൂറിന് ശേഷം വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="4728575227883772061">വ്യക്തമല്ലാത്ത പിശക് കാരണം ഇൻസ്റ്റലേഷൻ പരാജയപ്പെട്ടു. Google Chrome നിലവില്‍ പ്രവര്‍ത്തിക്കുകയാണെങ്കില്‍, ദയവായി അത് അടച്ചിട്ട് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="4750550185319565338"><ph name="PLUGIN_NAME" /> പ്രവർത്തനക്ഷമമാക്കാൻ Chrome റീസ്റ്റാർട്ട് ചെയ്യുക</translation>
 <translation id="4754614261631455953">Google Chrome കാനറി (mDNS-In)</translation>
@@ -157,6 +163,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Chrome ലോഞ്ച് ചെയ്യാനായില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="5895138241574237353">പുനരാരംഭിക്കുക</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - നെറ്റ്‌വർക്ക് സൈൻ ഇൻ</translation>
 <translation id="5940385492829620908">നിങ്ങളുടെ വെബും ബുക്ക്മാർക്കുകളും മറ്റ് Chrome ഫയലും ഇവിടെ തത്സമയമാണ്.</translation>
 <translation id="5941830788786076944">Google Chrome-നെ ഡിഫോൾട്ട് ബ്രൗസർ ആക്കുക</translation>
 <translation id="6070348360322141662">കൂടുതൽ സുരക്ഷ ലഭ്യമാക്കാൻ, Google Chrome നിങ്ങളുടെ ഡാറ്റ എന്‍‌ക്രിപ്‌റ്റ് ചെയ്യും</translation>
@@ -212,6 +219,7 @@
 <translation id="7855730255114109580">Chromium അപ്‌‌ടുഡേറ്റാണ്</translation>
 <translation id="7890208801193284374">നിങ്ങളൊരു കമ്പ്യൂട്ടർ പങ്കിടുകയാണെങ്കിൽ, സുഹൃത്തുക്കൾക്കും കുടുബാംഗങ്ങൾക്കും വെവ്വേറെ ബ്രൗസ് ചെയ്യാനും അവർക്കാവശ്യമുള്ള രീതിയിൽ Chrome സജ്ജമാക്കാനുമാകും.</translation>
 <translation id="7896673875602241923">ഈ കമ്പ്യൂട്ടറിലെ Chrome-ൽ മുമ്പ് മറ്റാരോ <ph name="ACCOUNT_EMAIL_LAST" /> എന്നയാളായി സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്നു. നിങ്ങളുടെ വിവരങ്ങൾ പ്രത്യേകം വേർതിരിച്ച് സൂക്ഷിക്കാൻ പുതിയ Chrome ഉപയോക്താവിനെ സൃഷ്‌ടിക്കുക.</translation>
+<translation id="7905891027772979035">Chrome-ന് നിങ്ങളുടെ വിപുലീകരണങ്ങൾ പരിശോധിക്കാനാവുന്നില്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="7916016681687251387">Chrome OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല. ഇപ്പോൾ പരിഹരിക്കുക.</translation>
 <translation id="7930071585467473040">പാസ്‌വേഡുകൾ Google Chrome പകർത്താൻ ശ്രമിക്കുന്നു.</translation>
 <translation id="7962410387636238736">Windows XP-ക്കും Windows Vista-യ്‌ക്കും ഇനിയങ്ങോട്ട് പിന്തുണ ഇല്ലാത്തതിനാൽ ഈ കമ്പ്യൂട്ടറിന് ഇനി Google Chrome അപ്‌ഡേറ്റുകൾ സ്വീകരിക്കാനാകില്ല</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mn.xtb b/chrome/app/resources/google_chrome_strings_mn.xtb
index 250c85f..bbdf5dc 100644
--- a/chrome/app/resources/google_chrome_strings_mn.xtb
+++ b/chrome/app/resources/google_chrome_strings_mn.xtb
@@ -74,7 +74,7 @@
 <translation id="2871893339301912279">Та Chrome-д нэвтэрсэн байна!</translation>
 <translation id="2888126860611144412">Chrome-н тухай</translation>
 <translation id="2929907241665500097">Chrome-г шинэчлээгүй, ямар нэг алдаа гарлаа. <ph name="BEGIN_LINK" />Chrome-г шинэчлэхтэй холбоотой асуудлууд болон амжилтгүй болсон шинэчлэлтүүдийг засна уу.<ph name="END_LINK" /></translation>
-<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Сүлжээнд Нэвтрэх - Chrome</translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Сүлжээнд нэвтрэх - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome нь суурь горимд байна.</translation>
 <translation id="3065168410429928842">Chrome-н чихтэй хуудас</translation>
 <translation id="3080151273017101988">Google Chrome хаагдсан үед үндсэн аппликйешнуудыг үргэлжлүүлэн ажиллуул</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb
index 91d56706..5255784 100644
--- a/chrome/app/resources/google_chrome_strings_mr.xtb
+++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -51,6 +51,7 @@
 <translation id="2309047409763057870">ही Google Chrome ची दुय्यम स्थापना असून त्यास तुमचा डीफॉल्ट ब्राउझर बनवू शकत नाही.</translation>
 <translation id="2341767445688917208">Chrome OS तुमचे पासवर्ड सिंक करू शकले नाही. आता निराकरण करा.</translation>
 <translation id="2348335408836342058">या साइटसाठी Chrome ला तुमचा कॅमेरा आणि मायक्रोफोन ॲक्सेस करण्याची परवानगी हवी आहे</translation>
+<translation id="234869673307233423">Chrome तुमचे पासवर्ड तपासू शकत नाही. नंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="2429317896000329049">आपल्या डोमेनसाठी संकालन उपलब्ध नसल्यामुळे Google Chrome तुमचा डेटा संकालित करू शकले नाही.</translation>
 <translation id="2467438592969358367">Google Chrome ला तुमचे पासवर्ड निर्यात करायचे आहेत. हे करू देण्यासाठी तुमचा Windows पासवर्ड टाइप करा.</translation>
 <translation id="2485422356828889247">अनइंस्टॉल करा</translation>
@@ -71,6 +72,8 @@
 <translation id="2857540653560290388">Chrome लाँच करत आहे...</translation>
 <translation id="2871893339301912279">तुम्ही Chrome मध्‍ये साइन इन केले आहे!</translation>
 <translation id="2888126860611144412">Chrome बद्दल</translation>
+<translation id="2929907241665500097">Chrome अपडेट झाले नाही, काहीतरी चूक झाली. <ph name="BEGIN_LINK" />Chrome अपडेट समस्या आणि अयशस्वी झालेल्या अपडेटचे निराकरण करा.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - नेटवर्क साइन इन - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome पार्श्वभूमी मोड मध्ये आहे.</translation>
 <translation id="3065168410429928842">Chrome टॅब</translation>
 <translation id="3080151273017101988">जेव्हा Google Chrome बंद असेल तेव्हा पार्श्वभूमीत ॲप्लिकेशन चालणे सुरू ठेवा</translation>
@@ -109,7 +112,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome तुम्हाला डेटा भंग, खराब एक्स्टेंशन आणि बर्‍याच गोष्टींपासून सुरक्षित ठेवण्यात मदत करू शकते</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> हे Chrome मध्‍ये जोडले गेले आहे</translation>
+<translation id="4384570495110188418">तुम्ही साइन इन केलेले नसल्यामुळे Chrome तुमचे पासवर्ड तपासू शकत नाही</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - नेटवर्क साइन इन - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome वर दुसरे ऑपरेशन प्रगतीपथावर आहे. कृपया नंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="4480040274068703980">साइन इन करण्यात एररमुळे Chrome OS तुमचा डेटा सिंक करू शकले नाही.</translation>
 <translation id="4561051373932531560">Google Chrome तुम्हाला वेबवरील फोन नंबर क्लिक करू देते आणि त्या नंबरवर Skype द्वारा कॉल करू देते!</translation>
@@ -119,6 +124,7 @@
 <translation id="4600710005438004015">Chrome नवीनतम आवृत्तीवर अपडेट होऊ शकले नाही, त्यामुळे तुम्ही नवीन वैशिष्ट्ये आणि सुरक्षितता निराकरणे गमावत आहात.</translation>
 <translation id="4631713731678262610">Chrome मेनूमध्‍ये लपवा</translation>
 <translation id="4633000520311261472">Chrome ला अधिक सुरक्षित करण्यासाठी, आम्ही <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> मध्ये सूचीबद्ध नसलेले काही विस्तार अक्षम केले आणि ते कदाचित आपल्या माहिती शिवाय जोडले गेले असावेत.</translation>
+<translation id="4653397506175047429">Chrome तुमचे सर्व पासवर्ड तपासू शकत नाही. २४ तासांनंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="4728575227883772061">नमूद न केलेल्या एररमुळे स्थापना अयशस्वी. जर Google Chrome सध्या चालू असेल तर, कृपया त्यास बंद करा आणि पुन्हा प्रयत्न करा.</translation>
 <translation id="4750550185319565338"><ph name="PLUGIN_NAME" /> सुरू करण्‍यासाठी Chrome रीस्टार्ट करा</translation>
 <translation id="4754614261631455953">Google Chrome कॅनरी (mDNS-मध्ये)</translation>
@@ -155,6 +161,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome कॅनरी</translation>
 <translation id="5804318322022881572">Chrome लाँच करता आले नाही. पुन्हा प्रयत्न करा.</translation>
 <translation id="5895138241574237353">रीस्टार्ट करा</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - नेटवर्क साइन इन</translation>
 <translation id="5940385492829620908">तुमचे वेब, बुकमार्क आणि अन्य Chrome सामग्री येथे थेट आहे.</translation>
 <translation id="5941830788786076944">Google Chromeला डीफॉल्ट ब्राउझर बनवा</translation>
 <translation id="6070348360322141662">अतिरिक्त सुरक्षिततेसाठी, Google Chrome तुमचा डेटा एंक्रिप्ट करेल</translation>
@@ -210,6 +217,7 @@
 <translation id="7855730255114109580">Google Chrome अपडेट झाले आहे</translation>
 <translation id="7890208801193284374">तुम्ही कॉंप्युटर शेअर केल्यास, मित्र आणि कुटुंब स्वतंत्रपणे ब्राउझ करू शकतात आणि त्यांना पाहिजे तसे Chrome सेट अप करू शकतात.</translation>
 <translation id="7896673875602241923">कोणीतरी यापूर्वी <ph name="ACCOUNT_EMAIL_LAST" /> म्हणून या संंगणकावरील Chrome मध्ये साइन इन केले आहे. कृपया तुमची माहिती स्वतंत्र ठेवण्यासाठी एक नवीन Chrome वापरकर्ता तयार करा.</translation>
+<translation id="7905891027772979035">Chrome तुमची एक्स्टेंशन तपासू शकत नाही. नंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="7916016681687251387">Chrome OS तुमचा डेटा सिंक करू शकले नाही. आता निराकरण करा.</translation>
 <translation id="7930071585467473040">Google Chrome पासवर्ड कॉपी करण्याचा प्रयत्न करत आहे.</translation>
 <translation id="7962410387636238736">Windows XP आणि Windows Vista ला आता सपोर्ट नसल्याने या कॉंप्युटरला यापुढे Google Chrome अपडेट मिळणार नाहीत</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb
index 911c3e4d..7ad9542 100644
--- a/chrome/app/resources/google_chrome_strings_ms.xtb
+++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -48,6 +48,7 @@
 <translation id="2309047409763057870">Ini adalah pemasangan kedua Google Chrome dan tidak boleh dijadikan penyemak imbas lalai anda.</translation>
 <translation id="2341767445688917208">OS Chrome tidak dapat menyegerakkan kata laluan anda. Betulkan sekarang.</translation>
 <translation id="2348335408836342058">Chrome memerlukan kebenaran untuk mengakses kamera dan mikrofon anda bagi tapak ini</translation>
+<translation id="234869673307233423">Chrome tidak dapat menyemak kata laluan anda. Cuba lagi nanti.</translation>
 <translation id="2429317896000329049">Google Chrome tidak dapat menyegerakkan data anda kerana Segerak tidak tersedia untuk domain anda.</translation>
 <translation id="2467438592969358367">Google Chrome mahu mengeksport kata laluan anda. Taip kata laluan Windows anda untuk membenarkannya.</translation>
 <translation id="2485422356828889247">Nyahpasang</translation>
@@ -68,6 +69,8 @@
 <translation id="2857540653560290388">Melancarkan Chrome...</translation>
 <translation id="2871893339301912279">Anda kini telah log masuk ke Chrome!</translation>
 <translation id="2888126860611144412">Perihal Chrome</translation>
+<translation id="2929907241665500097">Chrome tidak dikemas kini, kesilapan telah berlaku. <ph name="BEGIN_LINK" />Selesaikan masalah kemas kini dan kegagalan kemas kini Chrome.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Log Masuk Rangkaian - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome dalam mod latar belakang.</translation>
 <translation id="3065168410429928842">Tab Chrome</translation>
 <translation id="3080151273017101988">Terus menjalankan apl latar belakang apabila Google Chrome ditutup</translation>
@@ -106,7 +109,9 @@
 <translation id="4331809312908958774">OS Chrome</translation>
 <translation id="4335235004908507846">Chrome dapat membantu untuk memastikan anda selamat daripada pelanggaran data, sambungan tidak elok dan pelbagai lagi</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> telah ditambahkan pada Chrome</translation>
+<translation id="4384570495110188418">Chrome tidak dapat menyemak kata laluan anda kerana anda tidak log masuk</translation>
 <translation id="4407807842708586359">OS Google Chrome</translation>
+<translation id="4450664632294415862">Chrome - Log Masuk Rangkaian - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Terdapat operasi lain sedang dijalankan pada Google Chrome. Sila cuba sebentar lagi.</translation>
 <translation id="4480040274068703980">OS Chrome tidak dapat menyegerakkan data anda disebabkan oleh ralat melog masuk.</translation>
 <translation id="4561051373932531560">Google Chrome membolehkan anda mengklik nombor telefon pada web dan menghubunginya dengan Skype!</translation>
@@ -116,6 +121,7 @@
 <translation id="4600710005438004015">Chrome tidak dapat dikemas kini kepada versi terkini, maka anda terlepas ciri baharu dan penyelesaian keselamatan.</translation>
 <translation id="4631713731678262610">Sembunyikan dalam menu Chrome</translation>
 <translation id="4633000520311261472">Untuk menjadikan Chrome 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="4653397506175047429">Chrome tidak dapat menyemak semua kata laluan anda. Cuba lagi selepas 24 jam.</translation>
 <translation id="4728575227883772061">Pemasangan gagal disebabkan ralat tidak dinyatakan. Jika Google Chrome kini dijalankan, sila tutupnya dan cuba semula.</translation>
 <translation id="4750550185319565338">Mulakan semula Chrome untuk mendayakan <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -149,6 +155,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Tidak dapat melancarkan Chrome. Cuba lagi.</translation>
 <translation id="5895138241574237353">Mulakan Semula</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Log Masuk Rangkaian</translation>
 <translation id="5940385492829620908">Web, penanda halaman dan barangan Chrome anda yang lain tinggal di sini.</translation>
 <translation id="5941830788786076944">Jadikan Google Chrome penyemak imbas lalai</translation>
 <translation id="6070348360322141662">Untuk keselamatan tambahan, Google Chrome akan menyulitkan data anda</translation>
@@ -204,6 +211,7 @@
 <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="7905891027772979035">Chrome tidak dapat menyemak sambungan anda. Cuba lagi nanti.</translation>
 <translation id="7916016681687251387">OS Chrome tidak dapat menyegerakkan data anda. Betulkan sekarang.</translation>
 <translation id="7930071585467473040">Google Chrome cuba menyalin kata laluan.</translation>
 <translation id="7962410387636238736">Komputer ini tidak akan menerima kemas kini Google Chrome lagi kerana Windows XP dan Windows Vista sudah tidak disokong</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ru.xtb b/chrome/app/resources/google_chrome_strings_ru.xtb
index bb9b3d2..5c3d5f8 100644
--- a/chrome/app/resources/google_chrome_strings_ru.xtb
+++ b/chrome/app/resources/google_chrome_strings_ru.xtb
@@ -47,6 +47,7 @@
 <translation id="2309047409763057870">Это дополнительная установка Google Chrome. Его нельзя сделать браузером по умолчанию.</translation>
 <translation id="2341767445688917208">Не удалось синхронизировать пароли. Войдите, чтобы исправить эту ошибку.</translation>
 <translation id="2348335408836342058">Для этого сайта Chrome запрашивает доступ к камере и микрофону.</translation>
+<translation id="234869673307233423">Не удается запустить проверку паролей в Chrome. Повторите попытку позже.</translation>
 <translation id="2429317896000329049">Google Chrome не удалось синхронизировать данные, поскольку служба Sync недоступна для вашего домена.</translation>
 <translation id="2467438592969358367">Чтобы экспортировать пароли из Google Chrome, введите пароль своего аккаунта Windows.</translation>
 <translation id="2485422356828889247">Удалить</translation>
@@ -67,6 +68,8 @@
 <translation id="2857540653560290388">Запуск Chrome...</translation>
 <translation id="2871893339301912279">Добро пожаловать в Chrome!</translation>
 <translation id="2888126860611144412">О браузере Chrome</translation>
+<translation id="2929907241665500097">Не удалось обновить Chrome. <ph name="BEGIN_LINK" />Выяснить причины неполадок и устранить их<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – вход в сеть – Chrome</translation>
 <translation id="3037838751736561277">Google Chrome работает в фоновом режиме</translation>
 <translation id="3065168410429928842">Вкладка Chrome</translation>
 <translation id="3080151273017101988">Не отключать работающие в фоновом режиме сервисы при закрытии браузера</translation>
@@ -105,7 +108,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome поможет обеспечить защиту от утечки данных, ненадежных расширений и других проблем с безопасностью.</translation>
 <translation id="4343195214584226067">Расширение "<ph name="EXTENSION_NAME" />" установлено</translation>
+<translation id="4384570495110188418">Не удается запустить проверку паролей в Chrome, поскольку вы не вошли в аккаунт.</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome – вход в сеть – <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome выполняет другую операцию. Повторите попытку позже.</translation>
 <translation id="4480040274068703980">Не удалось синхронизировать данные из-за ошибки входа в аккаунт.</translation>
 <translation id="4561051373932531560">В Google Chrome вы можете нажать на любой номер телефона и позвонить на него через Skype!</translation>
@@ -115,6 +120,7 @@
 <translation id="4600710005438004015">Не удалось установить последнюю версию Chrome, в которой добавлены новые функции и обновления системы безопасности.</translation>
 <translation id="4631713731678262610">Спрятать в меню Chrome</translation>
 <translation id="4633000520311261472">Чтобы обеспечить безопасность ваших данных, некоторые расширения Chrome были отключены, так как <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> не содержит сведений о них, то есть эти компоненты могли быть установлены без вашего ведома.</translation>
+<translation id="4653397506175047429">Не удается запустить проверку всех паролей в Chrome. Повторите попытку через 24 часа.</translation>
 <translation id="4728575227883772061">Установка не удалась из-за неизвестной ошибки. Закройте все окна Google Chrome и повторите попытку снова.</translation>
 <translation id="4750550185319565338">Перезапустите Chrome, чтобы включить плагин "<ph name="PLUGIN_NAME" />"</translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -147,6 +153,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> – Google Chrome Canary</translation>
 <translation id="5804318322022881572">Не удалось запустить Chrome. Повторите попытку.</translation>
 <translation id="5895138241574237353">Перезапустить</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – вход в сеть</translation>
 <translation id="5940385492829620908">Все веб-страницы, закладки и другие данные Chrome можно найти здесь.</translation>
 <translation id="5941830788786076944">Назначить Google Chrome браузером по умолчанию</translation>
 <translation id="6070348360322141662">В целях повышения безопасности Google Chrome шифрует ваши данные</translation>
@@ -202,6 +209,7 @@
 <translation id="7855730255114109580">Последняя версия Google Chrome уже установлена</translation>
 <translation id="7890208801193284374">Если, кроме вас, компьютером пользуется кто-то ещё, например родные или друзья, они тоже смогут настроить Chrome на свой вкус.</translation>
 <translation id="7896673875602241923">Ранее вход в Chrome на этом компьютере выполнялся из аккаунта <ph name="ACCOUNT_EMAIL_LAST" />. Чтобы ваши данные хранились отдельно, создайте новый профиль Chrome.</translation>
+<translation id="7905891027772979035">Не удается запустить проверку расширений в Chrome. Повторите попытку позже.</translation>
 <translation id="7916016681687251387">Не удалось синхронизировать данные. Войдите, чтобы исправить эту ошибку.</translation>
 <translation id="7930071585467473040">Google Chrome пытается скопировать пароли</translation>
 <translation id="7962410387636238736">Google Chrome больше не будет обновляться на этом компьютере, так как поддержка Windows XP и Windows Vista прекращена.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb
index c1f0a6b..2d1640f 100644
--- a/chrome/app/resources/google_chrome_strings_ta.xtb
+++ b/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -55,12 +55,14 @@
 <translation id="2580411288591421699">நடப்பில் இயங்கிக்கொண்டிருக்கும் அதே Google Chrome பதிப்பை நிறுவ முடியாது. Google Chromeமை மூடிவிட்டு மீண்டும் முயற்சி செய்க.</translation>
 <translation id="2586406160782125153">வெளியேறினால், இந்தச் சாதனத்திலிருந்து நீங்கள் உலாவிய தரவு நீக்கப்படும். பின்னர் தரவை மீட்டமைக்க, Chromeல் <ph name="USER_EMAIL" /> எனும் முகவரியின் மூலம் உள்நுழையவும்.</translation>
 <translation id="2588322182880276190">Chrome லோகோ</translation>
+<translation id="2622559029861875898">Chromeமால் புதுப்பிப்புகளைச் சரிபார்க்க முடியாது. உங்கள் இணைய இணைப்பைச் சரிபார்க்க முயலவும்.</translation>
 <translation id="2644798301485385923">Chrome OS சிஸ்டம்</translation>
 <translation id="2652691236519827073">புதிய Chrome &amp;தாவலில் இணைப்பைத் திற</translation>
 <translation id="2665296953892887393">சிதைவு அறிக்கைகளையும் <ph name="UMA_LINK" /> உம் Google க்கு அனுப்புவதன் மூலம் Google Chrome ஐ மேலும் சிறப்பானதாக்க உதவவும்</translation>
 <translation id="2689103672227170538">Chromeஐத் தொடங்கும் போது காண்பிக்கப்படும் பக்கத்தை இந்த நீட்டிப்பு மாற்றியுள்ளது.</translation>
 <translation id="2765403129283291972">இந்தத் தளத்திற்காக மைக்ரோஃபோனை அணுக Chromeமுக்கு அனுமதி தேவை</translation>
 <translation id="2770231113462710648">இயல்புநிலை உலாவியாக இதை அமை:</translation>
+<translation id="2775140325783767197">Chromeமால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியவில்லை. உங்கள் இணைய இணைப்பைச் சரிபார்க்க முயலவும்.</translation>
 <translation id="2799223571221894425">மீண்டும் தொடங்கு</translation>
 <translation id="2847461019998147611">Google Chromeமை இந்த மொழியில் காட்டு</translation>
 <translation id="2857540653560290388">Chromeமைத் தொடங்குகிறது...</translation>
@@ -227,6 +229,7 @@
 <translation id="8862326446509486874">கம்ப்யூட்டர்-சார்ந்த நிறுவலுக்கான முறையான உரிமைகள் உங்களிடம் இல்லை. அதனால் நிர்வாகியாக மீண்டும் நிறுவலை இயக்க முயற்சி செய்க.</translation>
 <translation id="8914504000324227558">Chrome ஐ மீண்டும் தொடங்கு</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chromeமிற்கான புதுப்பிப்பு உள்ளது}=1{Chromeமிற்கான புதுப்பிப்பு உள்ளது}other{Chromeமிற்கான புதுப்பிப்பு வந்து # நாட்களாகிறது}}</translation>
+<translation id="9025321516765676895">நீங்கள் சேமித்து வைத்துள்ள கடவுச்சொற்கள் அதிகளவில் உள்ளதால் Chromeமால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியவில்லை</translation>
 <translation id="9026991721384951619">உங்கள் கணக்கின் உள்நுழைவு விவரங்கள் காலாவதியாகிவிட்டதால், உங்கள் தரவை Chrome OS ஆல் ஒத்திசைக்க முடியவில்லை.</translation>
 <translation id="9067395829937117663">Windows 7 அல்லது அதற்குப் பிந்தைய பதிப்புகளில் மட்டுமே Google Chrome இயங்கும்.</translation>
 <translation id="911206726377975832">உங்கள் உலாவிய தரவையும் நீக்க வேண்டுமா?</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb
index 4cbd0d3..8321c92f 100644
--- a/chrome/app/resources/google_chrome_strings_th.xtb
+++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -47,6 +47,7 @@
 <translation id="2309047409763057870">นี่เป็นการติดตั้ง Google Chrome แบบสำรอง และไม่สามารถใช้เป็นเบราว์เซอร์เริ่มต้นของคุณ</translation>
 <translation id="2341767445688917208">Chrome OS ซิงค์รหัสผ่านของคุณไม่ได้ แก้ไขเลย</translation>
 <translation id="2348335408836342058">Chrome ต้องการสิทธิ์เข้าถึงไมโครโฟนและกล้องถ่ายรูปของคุณสำหรับเว็บไซต์นี้</translation>
+<translation id="234869673307233423">Chrome ตรวจสอบรหัสผ่านของคุณไม่ได้ โปรดลองอีกครั้งภายหลัง</translation>
 <translation id="2429317896000329049">Google Chrome ไม่สามารถซิงค์ข้อมูลของคุณเนื่องจากไม่สามารถใช้การซิงค์กับโดเมนของคุณ</translation>
 <translation id="2467438592969358367">Google Chrome ต้องการส่งออกรหัสผ่านของคุณ พิมพ์รหัสผ่าน Windows เพื่ออนุญาตให้ดำเนินการ</translation>
 <translation id="2485422356828889247">ถอนการติดตั้ง</translation>
@@ -67,6 +68,8 @@
 <translation id="2857540653560290388">กำลังเปิด Chrome...</translation>
 <translation id="2871893339301912279">คุณได้ลงชื่อเข้าใช้ Chrome แล้ว!</translation>
 <translation id="2888126860611144412">เกี่ยวกับ Chrome</translation>
+<translation id="2929907241665500097">Chrome ไม่ได้อัปเดตเนื่องจากเกิดข้อผิดพลาด <ph name="BEGIN_LINK" />โปรดแก้ปัญหาการอัปเดต Chrome และการอัปเดตที่ไม่สำเร็จ<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - หน้าลงชื่อเข้าใช้ของเครือข่าย - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome กำลังอยู่ในโหมดทำงานในพื้นหลัง</translation>
 <translation id="3065168410429928842">แท็บ Chrome</translation>
 <translation id="3080151273017101988">เรียกใช้แอปพลิเคชันเบื้องหลังต่อไปเมื่อ Google Chrome ถูกปิดลง</translation>
@@ -105,7 +108,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome ช่วยให้คุณปลอดภัยจากการละเมิดข้อมูล ส่วนขยายที่ไม่ปลอดภัย และอื่นๆ ได้</translation>
 <translation id="4343195214584226067">เพิ่ม <ph name="EXTENSION_NAME" /> ลงใน Chrome แล้ว</translation>
+<translation id="4384570495110188418">Chrome ตรวจสอบรหัสผ่านไม่ได้เพราะคุณไม่ได้ลงชื่อเข้าใช้</translation>
 <translation id="4407807842708586359">ระบบปฏิบัติการ Google Chrome</translation>
+<translation id="4450664632294415862">Chrome - หน้าลงชื่อเข้าใช้ของเครือข่าย - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome กำลังดำเนินการอย่างอื่นอยู่ โปรดลองอีกครั้งในภายหลัง</translation>
 <translation id="4480040274068703980">Chrome OS ไม่สามารถซิงค์ข้อมูลของคุณเนื่องจากเกิดข้อผิดพลาดในการลงชื่อเข้าใช้</translation>
 <translation id="4561051373932531560">Google Chrome ทำให้คุณสามารถคลิกที่หมายเลขโทรศัพท์บนเว็บแล้วโทรหาด้วย Skype!</translation>
@@ -115,6 +120,7 @@
 <translation id="4600710005438004015">Chrome อัปเดตเป็นเวอร์ชันล่าสุดไม่ได้ คุณจึงไม่ได้รับฟีเจอร์ใหม่และการแก้ไขด้านความปลอดภัย</translation>
 <translation id="4631713731678262610">ซ่อนในเมนู Chrome</translation>
 <translation id="4633000520311261472">เพื่อให้ Chrome ปลอดภัยขึ้น เราปิดส่วนขยายบางรายการที่ไม่ได้ระบุไว้ใน <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> และอาจถูกเพิ่มเข้ามาโดยที่คุณไม่รู้ตัว</translation>
+<translation id="4653397506175047429">Chrome ตรวจสอบรหัสผ่านทั้งหมดของคุณไม่ได้ โปรดลองอีกครั้งหลังผ่านไป 24 ชั่วโมง</translation>
 <translation id="4728575227883772061">การติดตั้งล้มเหลวเนื่องจากมีข้อผิดพลาดที่ไม่ได้ระบุ หาก Google Chrome ทำงานอยู่ในขณะนี้ โปรดปิดและลองอีกครั้ง</translation>
 <translation id="4750550185319565338">รีสตาร์ท Chrome เพื่อเปิดใช้ <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -147,6 +153,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">เปิด Chrome ไม่ได้ โปรดลองอีกครั้ง</translation>
 <translation id="5895138241574237353">ปิดแล้วเปิดอีกครั้ง</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - หน้าลงชื่อเข้าใช้ของเครือข่าย</translation>
 <translation id="5940385492829620908">เว็บของคุณ บุ๊กมาร์ก และสิ่งอื่นๆ ใน Chrome พร้อมใช้แล้วที่นี่</translation>
 <translation id="5941830788786076944">ทำให้ Google Chrome เป็นเบราว์เซอร์เริ่มต้น</translation>
 <translation id="6070348360322141662">Google Chrome จะเข้ารหัสลับข้อมูลของคุณเพื่อเพิ่มความปลอดภัยให้มากยิ่งขึ้น</translation>
@@ -202,6 +209,7 @@
 <translation id="7855730255114109580">Google Chrome อัปเดตแล้ว</translation>
 <translation id="7890208801193284374">ถ้าคุณให้ผู้อื่นใช้คอมพิวเตอร์ร่วมด้วย เพื่อนๆ และครอบครัวของคุณสามารถท่องเว็บแยกกันได้และตั้งค่า Chrome ได้ตามที่พวกเขาต้องการ</translation>
 <translation id="7896673875602241923">ก่อนหน้านี้มีผู้ลงชื่อเข้าใช้ Chrome ในคอมพิวเตอร์นี้ด้วยชื่อ <ph name="ACCOUNT_EMAIL_LAST" /> โปรดสร้างผู้ใช้ Chrome ใหม่เพื่อเก็บข้อมูลแยก</translation>
+<translation id="7905891027772979035">Chrome ตรวจสอบส่วนขยายของคุณไม่ได้ โปรดลองอีกครั้งภายหลัง</translation>
 <translation id="7916016681687251387">Chrome OS ซิงค์ข้อมูลของคุณไม่ได้ แก้ไขเลย</translation>
 <translation id="7930071585467473040">Google Chrome กำลังพยายามคัดลอกรหัสผ่าน</translation>
 <translation id="7962410387636238736">คอมพิวเตอร์เครื่องนี้จะไม่ได้รับการอัปเดต Google Chrome อีกต่อไปเพราะระบบไม่รองรับ Windows XP และ Windows Vista แล้ว</translation>
diff --git a/chrome/app/resources/google_chrome_strings_tr.xtb b/chrome/app/resources/google_chrome_strings_tr.xtb
index 1251b0a..cade3fdf 100644
--- a/chrome/app/resources/google_chrome_strings_tr.xtb
+++ b/chrome/app/resources/google_chrome_strings_tr.xtb
@@ -48,6 +48,7 @@
 <translation id="2309047409763057870">Bu, Google Chrome'un ikincil bir yüklemesidir ve varsayılan tarayıcınız yapılamaz.</translation>
 <translation id="2341767445688917208">Chrome OS, şifrelerinizi senkronize edemedi. Şimdi düzelt.</translation>
 <translation id="2348335408836342058">Chrome'un bu sitede kameranıza ve mikrofonunuza erişmesi için izin gerekiyor</translation>
+<translation id="234869673307233423">Chrome, şifrelerinizi kontrol edemiyor. Daha sonra tekrar deneyin.</translation>
 <translation id="2429317896000329049">Senkronizasyon, alan adınızda kullanılamadığından Google Chrome, verilerinizi senkronize edemedi.</translation>
 <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>
@@ -68,6 +69,8 @@
 <translation id="2857540653560290388">Chrome başlatılıyor...</translation>
 <translation id="2871893339301912279">Chrome'da oturum açtınız!</translation>
 <translation id="2888126860611144412">Chrome hakkında</translation>
+<translation id="2929907241665500097">Chrome güncellenmedi. Bir sorun oluştu. <ph name="BEGIN_LINK" />Chrome güncelleme sorunlarını ve başarısız güncellemeleri düzeltin.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Ağda Oturum Açın - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome arka plan modunda.</translation>
 <translation id="3065168410429928842">Chrome Sekmesi</translation>
 <translation id="3080151273017101988">Google Chrome kapandığında arka plan uygulamaları çalıştırmaya devam et</translation>
@@ -106,7 +109,9 @@
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4335235004908507846">Chrome veri ihlallerine, kötü uzantılara ve diğer tehditlere karşı güvende kalmanıza yardımcı olabilir</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> Chrome'a eklendi</translation>
+<translation id="4384570495110188418">Oturum açmadığınızdan Chrome, şifrelerinizi kontrol edemiyor</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome - Ağda Oturum Açın - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome'da başka bir işlem devam ediyor. Lütfen daha sonra yeniden deneyin.</translation>
 <translation id="4480040274068703980">Oturum açmadaki bir hata nedeniyle Chrome OS, verilerinizi senkronize edemedi.</translation>
 <translation id="4561051373932531560">Google Chrome web'de bir telefon numarasını tıklayarak Skype ile aramanıza olanak sağlar!</translation>
@@ -116,6 +121,7 @@
 <translation id="4600710005438004015">Chrome en son sürüme güncellenemediği için yeni özellikler ve güvenlik düzeltmeleri cihazınızda bulunmuyor.</translation>
 <translation id="4631713731678262610">Chrome menüsünde gizle</translation>
 <translation id="4633000520311261472">Chrome'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="4653397506175047429">Chrome, tüm şifrelerinizi kontrol edemiyor. 24 saat sonra tekrar deneyin.</translation>
 <translation id="4728575227883772061">Belirlenemeyen bir hata nedeniyle yükleme başarısız oldu. Google Chrome şu anda çalışır durumdaysa, kapatıp yeniden deneyin.</translation>
 <translation id="4750550185319565338"><ph name="PLUGIN_NAME" /> eklentisini etkinleştirmek için Chrome'u yeniden başlatın</translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -151,6 +157,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Chrome başlatılamadı. Tekrar deneyin.</translation>
 <translation id="5895138241574237353">Yeniden başlat</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Ağda Oturum Açın</translation>
 <translation id="5940385492829620908">Web, yer işaretleri ve diğer Chrome öğeleriniz burada bulunur.</translation>
 <translation id="5941830788786076944">Google Chrome varsayılan tarayıcı olsun</translation>
 <translation id="6070348360322141662">Google Chrome ek güvenlik sağlamak için verilerinizi şifreler</translation>
@@ -206,6 +213,7 @@
 <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="7905891027772979035">Chrome, uzantılarınızı kontrol edemiyor. Daha sonra tekrar deneyin.</translation>
 <translation id="7916016681687251387">Chrome OS verilerinizi senkronize edemedi. Şimdi düzelt.</translation>
 <translation id="7930071585467473040">Google Chrome şifreleri kopyalamayı deniyor.</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>
diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb
index 0ea6d6e..d39c473 100644
--- a/chrome/app/resources/google_chrome_strings_vi.xtb
+++ b/chrome/app/resources/google_chrome_strings_vi.xtb
@@ -50,6 +50,7 @@
 <translation id="2309047409763057870">Đây là cài đặt thứ cấp của Google Chrome và không thể trở thành trình duyệt mặc định của bạn.</translation>
 <translation id="2341767445688917208">Chrome OS không thể đồng bộ hóa mật khẩu của bạn. Khắc phục ngay.</translation>
 <translation id="2348335408836342058">Chrome cần có quyền truy cập vào máy ảnh và micrô của bạn cho trang web này</translation>
+<translation id="234869673307233423">Chrome không thể kiểm tra mật khẩu của bạn. Hãy thử lại sau.</translation>
 <translation id="2429317896000329049">Google Chrome không thể đồng bộ hóa dữ liệu của bạn vì Đồng bộ hóa không khả dụng cho miền của bạn.</translation>
 <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>
@@ -70,6 +71,8 @@
 <translation id="2857540653560290388">Đang khởi động Chrome...</translation>
 <translation id="2871893339301912279">Bạn đã đăng nhập vào Chrome!</translation>
 <translation id="2888126860611144412">Giới thiệu về Chrome</translation>
+<translation id="2929907241665500097">Đã xảy ra lỗi nên Chrome chưa cập nhật được. <ph name="BEGIN_LINK" />Hãy khắc phục các vấn đề cập nhật và các bản cập nhật không thành công của Chrome.<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Đăng nhập mạng – Chrome</translation>
 <translation id="3037838751736561277">Google Chrome đang chạy trong nền.</translation>
 <translation id="3065168410429928842">Tab Chrome</translation>
 <translation id="3080151273017101988">Tiếp tục chạy các ứng dụng nền khi Google Chrome đóng</translation>
@@ -108,7 +111,9 @@
 <translation id="4331809312908958774">Hệ điều hành Chrome</translation>
 <translation id="4335235004908507846">Chrome có thể giúp bảo vệ bạn trước các sự cố rò rỉ dữ liệu, tiện ích độc hại và những vấn đề khác</translation>
 <translation id="4343195214584226067"><ph name="EXTENSION_NAME" /> đã được thêm vào Chrome</translation>
+<translation id="4384570495110188418">Chrome không thể kiểm tra mật khẩu của bạn vì bạn chưa đăng nhập</translation>
 <translation id="4407807842708586359">Google Chrome OS</translation>
+<translation id="4450664632294415862">Chrome – Đăng nhập mạng – <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Một hoạt động khác trên Google Chrome đang diễn ra. Vui lòng thử lại sau.</translation>
 <translation id="4480040274068703980">Chrome OS không thể đồng bộ hóa dữ liệu của bạn do lỗi khi đăng nhập.</translation>
 <translation id="4561051373932531560">Google Chrome cho phép bạn nhấp vào số điện thoại trên web và gọi tới số đó bằng Skype!</translation>
@@ -118,6 +123,7 @@
 <translation id="4600710005438004015">Chrome 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="4631713731678262610">Ẩn trong menu Chrome</translation>
 <translation id="4633000520311261472">Để làm cho Chrome 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="4653397506175047429">Chrome không thể kiểm tra tất cả mật khẩu của bạn. Hãy thử lại sau 24 giờ.</translation>
 <translation id="4728575227883772061">Không cài đặt được do lỗi chưa xác định. Nếu Google Chrome hiện đang chạy, vui lòng đóng Google Chrome và thử lại.</translation>
 <translation id="4750550185319565338">Khởi động lại Chrome để bật <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -153,6 +159,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">Không thể mở Chrome. Hãy thử lại.</translation>
 <translation id="5895138241574237353">Khởi động lại</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Đăng nhập mạng</translation>
 <translation id="5940385492829620908">Web, dấu trang và các nội dung khác của bạn trên Chrome đều có ở đây.</translation>
 <translation id="5941830788786076944">Chọn Google Chrome làm trình duyệt mặc định</translation>
 <translation id="6070348360322141662">Để bảo mật hơn, Google Chrome sẽ mã hóa dữ liệu của bạn</translation>
@@ -208,6 +215,7 @@
 <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="7905891027772979035">Chrome không thể kiểm tra các tiện ích của bạn. Hãy thử lại sau.</translation>
 <translation id="7916016681687251387">Chrome OS không thể đồng bộ hóa dữ liệu của bạn. Khắc phục ngay.</translation>
 <translation id="7930071585467473040">Google Chrome đang cố gắng sao chép mật khẩu.</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>
diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
index f1c249b..e6c6cc32 100644
--- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
@@ -48,6 +48,7 @@
 <translation id="2309047409763057870">这是 Google Chrome 的并行安装,您无法将此浏览器设为默认浏览器。</translation>
 <translation id="2341767445688917208">Chrome 操作系统无法同步您的密码。请立即修正。</translation>
 <translation id="2348335408836342058">Chrome 需要获得相应权限,才能允许此网站使用您的摄像头和麦克风</translation>
+<translation id="234869673307233423">Chrome 无法检查您的密码。请稍后重试。</translation>
 <translation id="2429317896000329049">由于您的网域停用了同步功能,Google Chrome无法同步您的数据。</translation>
 <translation id="2467438592969358367">Google Chrome 想导出您的密码。请输入您的 Windows 密码以允许此操作。</translation>
 <translation id="2485422356828889247">卸载</translation>
@@ -68,6 +69,8 @@
 <translation id="2857540653560290388">正在启动 Chrome…</translation>
 <translation id="2871893339301912279">您已登录 Chrome!</translation>
 <translation id="2888126860611144412">关于 Chrome</translation>
+<translation id="2929907241665500097">Chrome 未能更新,因为出了点问题。<ph name="BEGIN_LINK" />请解决导致 Chrome 更新失败的问题<ph name="END_LINK" />。</translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - 网络登录 - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome处于后台运行模式。</translation>
 <translation id="3065168410429928842">Chrome 标签页</translation>
 <translation id="3080151273017101988">关闭 Google Chrome 后继续运行后台应用</translation>
@@ -106,7 +109,9 @@
 <translation id="4331809312908958774">Chrome 操作系统</translation>
 <translation id="4335235004908507846">Chrome 有助于保护您免受数据泄露、不良扩展程序等问题的影响</translation>
 <translation id="4343195214584226067">“<ph name="EXTENSION_NAME" />”已添加到 Chrome</translation>
+<translation id="4384570495110188418">Chrome 无法检查您的密码,因为您未登录</translation>
 <translation id="4407807842708586359">Google Chrome 操作系统</translation>
+<translation id="4450664632294415862">Chrome - 网络登录 - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome 正在执行另一项操作,请稍后重试。</translation>
 <translation id="4480040274068703980">登录时出现错误,Chrome操作系统无法同步您的数据。</translation>
 <translation id="4561051373932531560">您可以在 Google Chrome 浏览器中点击网上的电话号码,然后通过 Skype 拨打!</translation>
@@ -116,6 +121,7 @@
 <translation id="4600710005438004015">Chrome 无法更新至最新版本,因此您未能获得最新的功能和安全修复程序。</translation>
 <translation id="4631713731678262610">在 Chrome 菜单中隐藏</translation>
 <translation id="4633000520311261472">为了提高 Chrome 的安全性,系统停用了一些未列在 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />中、可能是在您不知情的情况下添加的扩展程序。</translation>
+<translation id="4653397506175047429">Chrome 无法检查您的所有密码。请过 24 小时再试。</translation>
 <translation id="4728575227883772061">未知错误导致安装失败。如果 Google Chrome 浏览器正在运行,请将其关闭,然后重试。</translation>
 <translation id="4750550185319565338">重新启动 Chrome 以启用 <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -149,6 +155,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">无法启动 Chrome。请重试。</translation>
 <translation id="5895138241574237353">重新启动</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - 网络登录</translation>
 <translation id="5940385492829620908">您的上网记录、书签和其他Chrome资料和数据都保存在此处。</translation>
 <translation id="5941830788786076944">将 Google Chrome 浏览器设为默认浏览器</translation>
 <translation id="6070348360322141662">为了提高安全性,Google Chrome 将对您的数据进行加密</translation>
@@ -204,6 +211,7 @@
 <translation id="7855730255114109580">Google Chrome 已是最新版本</translation>
 <translation id="7890208801193284374">如果您与亲朋好友共用计算机,他们将能够使用单独的帐号进行浏览,并可随心所欲地设置Chrome。</translation>
 <translation id="7896673875602241923">之前已有人在此计算机上以 <ph name="ACCOUNT_EMAIL_LAST" /> 的身份登录了 Chrome。请新建一个 Chrome 用户来单独保存您的信息。</translation>
+<translation id="7905891027772979035">Chrome 无法检查您的扩展程序。请稍后重试。</translation>
 <translation id="7916016681687251387">Chrome 操作系统无法同步您的数据。请立即修正。</translation>
 <translation id="7930071585467473040">Google Chrome 正在尝试复制密码。</translation>
 <translation id="7962410387636238736">此计算机将不会再收到 Google Chrome 更新,因为 Windows XP 和 Windows Vista 已不再受支持</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-HK.xtb b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
index b5255a57a..2086bbb 100644
--- a/chrome/app/resources/google_chrome_strings_zh-HK.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
@@ -51,6 +51,7 @@
 <translation id="2309047409763057870">這是以並行形式安裝的第二個 Google Chrome,因此無法設定為您的預設瀏覽器。</translation>
 <translation id="2341767445688917208">Chrome OS 無法同步您的密碼。請立即修正。</translation>
 <translation id="2348335408836342058">Chrome 需要取得權限,才能讓這個網站存取您的相機和麥克風</translation>
+<translation id="234869673307233423">Chrome 無法檢查密碼,請稍後再試。</translation>
 <translation id="2429317896000329049">您的網域無法使用「同步功能」,因此 Google Chrome 無法同步處理您的數據。</translation>
 <translation id="2467438592969358367">Google Chrome 想匯出您的密碼。請輸入 Windows 密碼以允許此操作。</translation>
 <translation id="2485422356828889247">解除安裝</translation>
@@ -71,6 +72,8 @@
 <translation id="2857540653560290388">正在啟動 Chrome…</translation>
 <translation id="2871893339301912279">您已登入 Chrome!</translation>
 <translation id="2888126860611144412">關於 Chrome</translation>
+<translation id="2929907241665500097">發生錯誤,Chrome 未能更新。<ph name="BEGIN_LINK" />請修正 Chrome 更新問題與更新失敗問題。<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - 網絡登入 - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome 正在背景模式中執行。</translation>
 <translation id="3065168410429928842">Chrome 分頁</translation>
 <translation id="3080151273017101988">Google Chrome 關閉時繼續執行背景應用程式</translation>
@@ -109,7 +112,9 @@
 <translation id="4331809312908958774">Chrome 作業系統</translation>
 <translation id="4335235004908507846">Chrome 能確保系統安全,避免發生資料外洩或擴充程式損毀等問題</translation>
 <translation id="4343195214584226067">已將 <ph name="EXTENSION_NAME" /> 加到 Chrome</translation>
+<translation id="4384570495110188418">您並未登入帳戶,因此 Chrome 無法檢查密碼</translation>
 <translation id="4407807842708586359">Google Chrome 作業系統</translation>
+<translation id="4450664632294415862">Chrome - 網絡登入 - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome 正在執行另一項操作,請稍後再試。</translation>
 <translation id="4480040274068703980">登入時發生錯誤,因此 Chrome 作業系統無法同步處理您的數據。</translation>
 <translation id="4561051373932531560">Google Chrome 可讓您按一下網頁上的電話號碼,隨即透過 Skype 撥打電話!</translation>
@@ -119,6 +124,7 @@
 <translation id="4600710005438004015">由於 Chrome 無法更新至最新版本,因此您無法使用最新功能和安全性修正。</translation>
 <translation id="4631713731678262610">隱藏在 Chrome 選單中</translation>
 <translation id="4633000520311261472">為了提高 Chrome 的安全性,我們已將部分未列在 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> 中的擴充功能停用,它們可能在您不知情的情況下新增至瀏覽器。</translation>
+<translation id="4653397506175047429">Chrome 無法檢查所有密碼,請於 24 小時後再試一次。</translation>
 <translation id="4728575227883772061">安裝失敗,錯誤原因不明。如果目前正在執行 Google Chrome,請先關閉,然後再試一次。</translation>
 <translation id="4750550185319565338">重新啟動 Chrome 即可啟用 <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -155,6 +161,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary</translation>
 <translation id="5804318322022881572">無法啟動 Chrome,請再試一次。</translation>
 <translation id="5895138241574237353">重新啟動</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - 網絡登入</translation>
 <translation id="5940385492829620908">您的網頁、書籤和其他 Chrome 資料在這裡直播。</translation>
 <translation id="5941830788786076944">將 Google Chrome 設為預設瀏覽器</translation>
 <translation id="6070348360322141662">為提高安全性,Google Chrome 會將您的資料加密</translation>
@@ -210,6 +217,7 @@
 <translation id="7855730255114109580">Google Chrome 已是最新版本</translation>
 <translation id="7890208801193284374">如果您與親朋好友共用電腦,每個人均可享有獨立的瀏覽空間,按照自己的偏好設定 Chrome。</translation>
 <translation id="7896673875602241923">先前已有其他人在這部電腦上以 <ph name="ACCOUNT_EMAIL_LAST" /> 的身分登入 Chrome。請建立新的 Chrome 使用者以個別保存您的資料。</translation>
+<translation id="7905891027772979035">Chrome 無法檢查擴充程式,請稍後再試。</translation>
 <translation id="7916016681687251387">Chrome OS 無法同步您的資料。請立即修正。</translation>
 <translation id="7930071585467473040">Google Chrome 正在嘗試複製密碼。</translation>
 <translation id="7962410387636238736">由於 Google Chrome 將停止支援 Windows XP 和 Windows Vista,因此這部電腦不會再收到 Google Chrome 更新。</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-TW.xtb b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
index 5c3f636..cfaab0b3 100644
--- a/chrome/app/resources/google_chrome_strings_zh-TW.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
@@ -48,6 +48,7 @@
 <translation id="2309047409763057870">這是以並存形式安裝的次要 Google Chrome,無法設為您的預設瀏覽器。</translation>
 <translation id="2341767445688917208">Chrome 作業系統無法同步處理你的密碼。立即修正。</translation>
 <translation id="2348335408836342058">Chrome 需要相關權限,才能讓這個網站使用你的攝影機和麥克風</translation>
+<translation id="234869673307233423">Chrome 無法檢查你的密碼,請稍後再試。</translation>
 <translation id="2429317896000329049">你的網域無法使用「同步功能」,因此 Google Chrome 無法同步處理你的資料。</translation>
 <translation id="2467438592969358367">Google Chrome 要求匯出你的密碼。如果允許,請輸入你的 Windows 密碼。</translation>
 <translation id="2485422356828889247">解除安裝</translation>
@@ -68,6 +69,8 @@
 <translation id="2857540653560290388">正在啟動 Chrome…</translation>
 <translation id="2871893339301912279">你已登入 Chrome!</translation>
 <translation id="2888126860611144412">關於 Chrome</translation>
+<translation id="2929907241665500097">發生錯誤,Chrome 未能更新。<ph name="BEGIN_LINK" />請修正 Chrome 更新問題與更新失敗項目。<ph name="END_LINK" /></translation>
+<translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - 網路登入 - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome 正在背景模式中執行。</translation>
 <translation id="3065168410429928842">Chrome 分頁</translation>
 <translation id="3080151273017101988">Google Chrome 關閉時繼續執行背景應用程式</translation>
@@ -106,7 +109,9 @@
 <translation id="4331809312908958774">Chrome 作業系統</translation>
 <translation id="4335235004908507846">Chrome 可確保安全性,例如防範資料侵害事件或封鎖含有惡意軟體的擴充功能等等</translation>
 <translation id="4343195214584226067">已將「<ph name="EXTENSION_NAME" />」加到 Chrome</translation>
+<translation id="4384570495110188418">你尚未登入帳戶,因此 Chrome 無法檢查你的密碼</translation>
 <translation id="4407807842708586359">Google Chrome 作業系統</translation>
+<translation id="4450664632294415862">Chrome - 網路登入 - <ph name="PAGE_TITLE" /></translation>
 <translation id="4458462641685292929">Google Chrome 正在執行另一項作業,請稍後再試。</translation>
 <translation id="4480040274068703980">登入時發生錯誤,因此 Chrome 作業系統無法同步處理你的資料。</translation>
 <translation id="4561051373932531560">Google Chrome 可讓你按一下網頁上的電話號碼,隨即透過 Skype 撥打電話!</translation>
@@ -116,6 +121,7 @@
 <translation id="4600710005438004015">Chrome 無法更新至最新版本,因此你並未取得最新功能和安全性問題修正。</translation>
 <translation id="4631713731678262610">在 Chrome 選單中隱藏</translation>
 <translation id="4633000520311261472">為了讓 Chrome 的安全性更有保障,我們已將部分未列在 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> 中的擴充功能停用,它們可能在你不知情的情況下加入瀏覽器。</translation>
+<translation id="4653397506175047429">Chrome 無法檢查你所有的密碼,請於 24 小時後再試一次。</translation>
 <translation id="4728575227883772061">安裝因不明錯誤而失敗。如果 Google Chrome 目前正在執行中,請將其關閉然後再試一次。</translation>
 <translation id="4750550185319565338">重新啟動 Chrome 即可啟用 <ph name="PLUGIN_NAME" /></translation>
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
@@ -151,6 +157,7 @@
 <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome Canary 版</translation>
 <translation id="5804318322022881572">無法啟動 Chrome,請再試一次。</translation>
 <translation id="5895138241574237353">重新啟動</translation>
+<translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - 網路登入</translation>
 <translation id="5940385492829620908">你瀏覽的網頁、書籤和其他 Chrome 設定都在這裡。</translation>
 <translation id="5941830788786076944">使用 Google Chrome 做為我的預設瀏覽器</translation>
 <translation id="6070348360322141662">為了提升安全性,Google Chrome 會將你的資料加密保護</translation>
@@ -206,6 +213,7 @@
 <translation id="7855730255114109580">Google Chrome 目前是最新版本</translation>
 <translation id="7890208801193284374">如果你與親朋好友共用電腦,人人皆可享有獨立的瀏覽空間,依照自己的偏好設定 Chrome。</translation>
 <translation id="7896673875602241923">先前已有其他使用者使用 <ph name="ACCOUNT_EMAIL_LAST" /> 在這部電腦上登入 Chrome。請建立新的 Chrome 使用者,以便另行保存你的資訊。</translation>
+<translation id="7905891027772979035">Chrome 無法檢查你的擴充功能,請稍後再試。</translation>
 <translation id="7916016681687251387">Chrome 作業系統無法同步處理你的資料。立即修正。</translation>
 <translation id="7930071585467473040">Google Chrome 正在嘗試複製密碼。</translation>
 <translation id="7962410387636238736">Google Chrome 已停止支援 Windows XP 和 Windows Vista,因此這部電腦不會再收到 Google Chrome 更新</translation>
diff --git a/chrome/app/resources/resources_unittest.cc b/chrome/app/resources/resources_unittest.cc
index 7b924bf..7d28c2d6 100644
--- a/chrome/app/resources/resources_unittest.cc
+++ b/chrome/app/resources/resources_unittest.cc
@@ -13,7 +13,6 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 #include "ui/base/l10n/l10n_util.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/base/ui_base_paths.h"
 
@@ -21,7 +20,6 @@
  protected:
   ResourcesTest() {
     ui::RegisterPathProvider();
-    ui::MaterialDesignController::Initialize();
     ui::ResourceBundle::InitSharedInstanceWithLocale(
         "en-US", nullptr, ui::ResourceBundle::LOAD_COMMON_RESOURCES);
   }
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index b2505779..bb75995 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -60,6 +60,12 @@
   <message name="IDS_SETTINGS_ACCESSIBLE_IMAGE_LABELS_SUBTITLE" desc="Subtitle for screen reader image labels feature.">
     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.
   </message>
+  <message name="IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_TITLE" desc="Name of the setting to enable Live Caption.">
+    Live caption
+  </message>
+  <message name="IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE" desc="Subtitle of the setting to enable Live Caption.">
+    Live caption detects speech in media and automatically generates captions for all media playing in Chrome.
+  </message>
   <if expr="chromeos">
     <!-- Android Apps Page -->
     <message name="IDS_SETTINGS_ANDROID_APPS_TITLE" desc="The title of Google Play Store (Arc++ / Android Apps) section.">
@@ -359,9 +365,18 @@
   <message name="IDS_SETTINGS_CHECK_PASSWORDS_AGAIN" desc="Button to start bulk password check manually in passwords check section.">
     Check again
   </message>
+  <message name="IDS_SETTINGS_CHECK_PASSWORDS_AGAIN_AFTER_ERROR" desc="Button to start bulk password check manually in passwords check section after it already failed once.">
+    Try again
+  </message>
+  <message name="IDS_SETTINGS_CHECK_PASSWORDS_AGAIN_IN_ACCOUNT" desc="Link suggesting to perform a bulk leak check in the Google Account page.">
+    Check in Google Account.
+  </message>
   <message name="IDS_SETTINGS_CHECK_PASSWORDS_PROGRESS" desc="Text for a label showing how many passwords were checked so far and how many passwords need to be checked in total.">
     Checking passwords (<ph name="CHECKED_PASSWORDS">$1<ex>6</ex></ph> of <ph name="TOTAL_PASSWORDS">$2<ex>31</ex></ph>)…
   </message>
+  <message name="IDS_SETTINGS_CHECK_PASSWORDS_STOP" desc="Button to manually stop an ongoing bulk password check.">
+    Cancel
+  </message>
   <message name="IDS_SETTINGS_PASSWORDS_JUST_NOW" desc="Label shown when a compromised credential was found less than a minute ago">
     Just now
   </message>
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE.png.sha1
new file mode 100644
index 0000000..3d15fb7
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE.png.sha1
@@ -0,0 +1 @@
+cf206f45ac340d44f0e2cddd52cde7d2d1039f5c
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_TITLE.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_TITLE.png.sha1
new file mode 100644
index 0000000..3d15fb7
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_TITLE.png.sha1
@@ -0,0 +1 @@
+cf206f45ac340d44f0e2cddd52cde7d2d1039f5c
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_CHECK_PASSWORDS_AGAIN_AFTER_ERROR.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_CHECK_PASSWORDS_AGAIN_AFTER_ERROR.png.sha1
new file mode 100644
index 0000000..6a94587
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_CHECK_PASSWORDS_AGAIN_AFTER_ERROR.png.sha1
@@ -0,0 +1 @@
+49e6f4a55042471f270619ab6f9902ac6e778eac
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_CHECK_PASSWORDS_AGAIN_IN_ACCOUNT.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_CHECK_PASSWORDS_AGAIN_IN_ACCOUNT.png.sha1
new file mode 100644
index 0000000..2accf68
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_CHECK_PASSWORDS_AGAIN_IN_ACCOUNT.png.sha1
@@ -0,0 +1 @@
+5fd2c1fe645c994d11e0df148b735532296784de
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_CHECK_PASSWORDS_STOP.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_CHECK_PASSWORDS_STOP.png.sha1
new file mode 100644
index 0000000..63bd0b31
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_CHECK_PASSWORDS_STOP.png.sha1
@@ -0,0 +1 @@
+04fbc6de892ca0637efc2492057a1d39607d6a9b
\ No newline at end of file
diff --git a/chrome/app/shared_settings_strings.grdp b/chrome/app/shared_settings_strings.grdp
index b52d89fc..c6127e1 100644
--- a/chrome/app/shared_settings_strings.grdp
+++ b/chrome/app/shared_settings_strings.grdp
@@ -83,9 +83,6 @@
   <message name="IDS_SETTINGS_CAPTIONS_DEFAULT_SETTING" desc="Name of the default setting for the caption text.">
     Default
   </message>
-  <message name="IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION" desc="Name of the setting to enable Live Caption.">
-    Enable Live Caption
-  </message>
 
  <!-- Personalization Options SubPage (strings used by the <settings-personalization-options> element) -->
   <message name="IDS_SETTINGS_ENABLE_URL_KEYED_ANONYMIZED_DATA_COLLECTION" desc="The label of the checkbox to enable/disable url keyed anonymized data collection.">
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index c1289f5..a670aa2 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -1296,6 +1296,7 @@
     "predictors/predictor_database.h",
     "predictors/predictor_database_factory.cc",
     "predictors/predictor_database_factory.h",
+    "predictors/predictors_enums.h",
     "predictors/predictors_features.cc",
     "predictors/predictors_features.h",
     "predictors/proxy_lookup_client_impl.cc",
@@ -1986,6 +1987,7 @@
     "//chrome/browser/image_decoder",
     "//chrome/browser/media:media_engagement_preload_proto",
     "//chrome/browser/media:mojo_bindings",
+    "//chrome/browser/media/feeds:mojo_bindings",
     "//chrome/browser/media/router",
     "//chrome/browser/metrics:expired_histograms_array",
     "//chrome/browser/metrics/variations:chrome_ui_string_overrider_factory",
@@ -5664,6 +5666,7 @@
   deps = [
     "//chrome/browser/engagement:mojo_bindings_js",
     "//chrome/browser/media:mojo_bindings_js",
+    "//chrome/browser/media/feeds:mojo_bindings_js",
     "//chrome/browser/ui/webui/interventions_internals:mojo_bindings_js",
   ]
   if (is_android) {
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index fca23275..bce67ed 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1913,9 +1913,6 @@
     {"shelf-hover-previews", flag_descriptions::kShelfHoverPreviewsName,
      flag_descriptions::kShelfHoverPreviewsDescription, kOsCrOS,
      SINGLE_VALUE_TYPE(chromeos::switches::kShelfHoverPreviews)},
-    {"shelf-scrollable", flag_descriptions::kShelfScrollableName,
-     flag_descriptions::kShelfScrollableDescription, kOsCrOS,
-     FEATURE_VALUE_TYPE(chromeos::features::kShelfScrollable)},
     {"show-bluetooth-debug-log-toggle",
      flag_descriptions::kShowBluetoothDebugLogToggleName,
      flag_descriptions::kShowBluetoothDebugLogToggleDescription, kOsCrOS,
diff --git a/chrome/browser/android/autofill_assistant/assistant_generic_ui_delegate.cc b/chrome/browser/android/autofill_assistant/assistant_generic_ui_delegate.cc
index ec9924a..148bd95 100644
--- a/chrome/browser/android/autofill_assistant/assistant_generic_ui_delegate.cc
+++ b/chrome/browser/android/autofill_assistant/assistant_generic_ui_delegate.cc
@@ -57,26 +57,6 @@
   ui_controller_->OnValueChanged(identifier, value);
 }
 
-// TODO(b/145043394): refactor delegate methods into a single SetValue() where
-// possible.
-void AssistantGenericUiDelegate::OnCalendarPopupDateChanged(
-    JNIEnv* env,
-    const base::android::JavaParamRef<jobject>& jcaller,
-    const base::android::JavaParamRef<jstring>& jmodel_identifier,
-    const base::android::JavaParamRef<jobject>& jvalue) {
-  std::string identifier;
-  if (jmodel_identifier) {
-    base::android::ConvertJavaStringToUTF8(env, jmodel_identifier, &identifier);
-  }
-
-  ValueProto value;
-  if (jvalue) {
-    value = ui_controller_android_utils::ToNativeValue(env, jvalue);
-  }
-
-  ui_controller_->OnValueChanged(identifier, value);
-}
-
 base::android::ScopedJavaGlobalRef<jobject>
 AssistantGenericUiDelegate::GetJavaObject() {
   return java_assistant_generic_ui_delegate_;
diff --git a/chrome/browser/android/autofill_assistant/assistant_generic_ui_delegate.h b/chrome/browser/android/autofill_assistant/assistant_generic_ui_delegate.h
index ff0aac40..1ee42630 100644
--- a/chrome/browser/android/autofill_assistant/assistant_generic_ui_delegate.h
+++ b/chrome/browser/android/autofill_assistant/assistant_generic_ui_delegate.h
@@ -32,16 +32,6 @@
       const base::android::JavaParamRef<jstring>& jmodel_identifier,
       const base::android::JavaParamRef<jobject>& jvalue);
 
-  // The date in a calendar popup has changed. |jmodel_identifier| is the model
-  // identifier that the new date should be written to. |jvalue| is a Java
-  // AssistantValue containing a single AssistantDateTime with the new date, or
-  // nullptr if the date was cleared.
-  void OnCalendarPopupDateChanged(
-      JNIEnv* env,
-      const base::android::JavaParamRef<jobject>& jcaller,
-      const base::android::JavaParamRef<jstring>& jmodel_identifier,
-      const base::android::JavaParamRef<jobject>& jvalue);
-
   base::android::ScopedJavaGlobalRef<jobject> GetJavaObject();
 
  private:
diff --git a/chrome/browser/android/autofill_assistant/interaction_handler_android.cc b/chrome/browser/android/autofill_assistant/interaction_handler_android.cc
index a07268a..4f3444c 100644
--- a/chrome/browser/android/autofill_assistant/interaction_handler_android.cc
+++ b/chrome/browser/android/autofill_assistant/interaction_handler_android.cc
@@ -154,54 +154,6 @@
       proto.allow_multiselect(), jidentifier, jdelegate);
 }
 
-void ShowCalendarPopup(base::WeakPtr<UserModel> user_model,
-                       const ShowCalendarPopupProto& proto,
-                       base::android::ScopedJavaGlobalRef<jobject> jcontext,
-                       base::android::ScopedJavaGlobalRef<jobject> jdelegate) {
-  if (!user_model) {
-    return;
-  }
-
-  JNIEnv* env = base::android::AttachCurrentThread();
-  auto initial_date = user_model->GetValue(proto.date_model_identifier());
-  if (initial_date.has_value() && initial_date->dates().values_size() != 1) {
-    DVLOG(2) << "Failed to show calendar popup: date_model_identifier must be "
-                "empty or contain single date, but was "
-             << *initial_date;
-    return;
-  }
-
-  auto min_date = user_model->GetValue(proto.min_date_model_identifier());
-  if (!min_date.has_value() || min_date->dates().values_size() != 1) {
-    DVLOG(2) << "Failed to show calendar popup: min_date not found or invalid "
-                "in user model at "
-             << proto.min_date_model_identifier();
-    return;
-  }
-
-  auto max_date = user_model->GetValue(proto.max_date_model_identifier());
-  if (!max_date.has_value() || max_date->dates().values_size() != 1) {
-    DVLOG(2) << "Failed to show calendar popup: max_date not found or invalid "
-                "in user model at "
-             << proto.max_date_model_identifier();
-    return;
-  }
-
-  jboolean jsuccess = Java_AssistantViewInteractions_showCalendarPopup(
-      env, jcontext,
-      initial_date.has_value()
-          ? ui_controller_android_utils::ToJavaValue(env, *initial_date)
-          : nullptr,
-      ui_controller_android_utils::ToJavaValue(env, *min_date),
-      ui_controller_android_utils::ToJavaValue(env, *max_date),
-      base::android::ConvertUTF8ToJavaString(env,
-                                             proto.date_model_identifier()),
-      jdelegate);
-  if (!jsuccess) {
-    DVLOG(2) << "Failed to show calendar popup: JNI call failed";
-  }
-}
-
 base::Optional<EventHandler::EventKey> CreateEventKeyFromProto(
     const EventProto& proto,
     JNIEnv* env,
@@ -300,17 +252,6 @@
       return base::Optional<InteractionHandlerAndroid::InteractionCallback>(
           base::BindRepeating(&TryEndAction, basic_interactions->GetWeakPtr(),
                               proto.end_action()));
-    case CallbackProto::kShowCalendarPopup:
-      if (proto.show_calendar_popup().date_model_identifier().empty()) {
-        VLOG(1) << "Error creating ShowCalendarPopup interaction: "
-                   "date_model_identifier not set";
-        return base::nullopt;
-      }
-      return base::Optional<InteractionHandlerAndroid::InteractionCallback>(
-          base::BindRepeating(&ShowCalendarPopup, user_model->GetWeakPtr(),
-                              proto.show_calendar_popup(), jcontext,
-                              jdelegate));
-      break;
     case CallbackProto::KIND_NOT_SET:
       VLOG(1) << "Error creating interaction: kind not set";
       return base::nullopt;
diff --git a/chrome/browser/android/autofill_assistant/ui_controller_android_utils.cc b/chrome/browser/android/autofill_assistant/ui_controller_android_utils.cc
index 3cdbe65..828531c 100644
--- a/chrome/browser/android/autofill_assistant/ui_controller_android_utils.cc
+++ b/chrome/browser/android/autofill_assistant/ui_controller_android_utils.cc
@@ -6,7 +6,6 @@
 #include "base/android/jni_array.h"
 #include "base/android/jni_string.h"
 #include "chrome/android/features/autofill_assistant/jni_headers/AssistantColor_jni.h"
-#include "chrome/android/features/autofill_assistant/jni_headers/AssistantDateTime_jni.h"
 #include "chrome/android/features/autofill_assistant/jni_headers/AssistantDialogButton_jni.h"
 #include "chrome/android/features/autofill_assistant/jni_headers/AssistantDimension_jni.h"
 #include "chrome/android/features/autofill_assistant/jni_headers/AssistantInfoPopup_jni.h"
@@ -127,16 +126,6 @@
       NOTREACHED();
       return nullptr;
     }
-    case ValueProto::kDates: {
-      auto jlist = Java_AssistantValue_createDateTimeList(env);
-      for (const auto& value : proto.dates().values()) {
-        Java_AssistantValue_addDateTimeToList(
-            env, jlist,
-            Java_AssistantDateTime_Constructor(env, value.year(), value.month(),
-                                               value.day(), 0, 0, 0));
-      }
-      return Java_AssistantValue_createForDateTimes(env, jlist);
-    }
     case ValueProto::KIND_NOT_SET:
       return Java_AssistantValue_create(env);
   }
@@ -147,47 +136,33 @@
   ValueProto proto;
   auto jints = Java_AssistantValue_getIntegers(env, jvalue);
   if (jints) {
-    auto* mutable_ints = proto.mutable_ints();
     std::vector<int> ints;
     base::android::JavaIntArrayToIntVector(env, jints, &ints);
+    proto.mutable_ints();
     for (int i : ints) {
-      mutable_ints->add_values(i);
+      proto.mutable_ints()->add_values(i);
     }
     return proto;
   }
 
   auto jbooleans = Java_AssistantValue_getBooleans(env, jvalue);
   if (jbooleans) {
-    auto* mutable_booleans = proto.mutable_booleans();
     std::vector<bool> booleans;
     base::android::JavaBooleanArrayToBoolVector(env, jbooleans, &booleans);
+    proto.mutable_booleans();
     for (auto b : booleans) {
-      mutable_booleans->add_values(b);
+      proto.mutable_booleans()->add_values(b);
     }
     return proto;
   }
 
   auto jstrings = Java_AssistantValue_getStrings(env, jvalue);
   if (jstrings) {
-    auto* mutable_strings = proto.mutable_strings();
     std::vector<std::string> strings;
     base::android::AppendJavaStringArrayToStringVector(env, jstrings, &strings);
+    proto.mutable_strings();
     for (const auto& string : strings) {
-      mutable_strings->add_values(string);
-    }
-    return proto;
-  }
-
-  auto jdatetimes = Java_AssistantValue_getDateTimes(env, jvalue);
-  if (jdatetimes) {
-    auto* mutable_dates = proto.mutable_dates();
-    for (int i = 0; i < Java_AssistantValue_getListSize(env, jdatetimes); ++i) {
-      auto jvalue = Java_AssistantValue_getListAt(env, jdatetimes, i);
-      DateProto date;
-      date.set_year(Java_AssistantDateTime_getYear(env, jvalue));
-      date.set_month(Java_AssistantDateTime_getMonth(env, jvalue));
-      date.set_day(Java_AssistantDateTime_getDay(env, jvalue));
-      *mutable_dates->add_values() = date;
+      proto.mutable_strings()->add_values(string);
     }
     return proto;
   }
diff --git a/chrome/browser/android/vr/test/ar_test_suite.cc b/chrome/browser/android/vr/test/ar_test_suite.cc
index b208ca0..c534aa410 100644
--- a/chrome/browser/android/vr/test/ar_test_suite.cc
+++ b/chrome/browser/android/vr/test/ar_test_suite.cc
@@ -11,7 +11,6 @@
 #include "base/test/task_environment.h"
 #include "build/build_config.h"
 #include "mojo/core/embedder/embedder.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/base/ui_base_paths.h"
 
@@ -34,7 +33,6 @@
   base::PathService::Get(ui::DIR_RESOURCE_PAKS_ANDROID, &pak_path);
   ui::ResourceBundle::InitSharedInstanceWithPakPath(
       pak_path.AppendASCII("vr_test.pak"));
-  ui::MaterialDesignController::Initialize();
 }
 
 void ArTestSuite::Shutdown() {
diff --git a/chrome/browser/bluetooth/chrome_bluetooth_delegate.cc b/chrome/browser/bluetooth/chrome_bluetooth_delegate.cc
index 2d7f396..d3dc2e7 100644
--- a/chrome/browser/bluetooth/chrome_bluetooth_delegate.cc
+++ b/chrome/browser/bluetooth/chrome_bluetooth_delegate.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/browser/bluetooth/chrome_bluetooth_delegate.h"
 
+#include <memory>
+
 #include "chrome/browser/bluetooth/bluetooth_chooser_context.h"
 #include "chrome/browser/bluetooth/bluetooth_chooser_context_factory.h"
 #include "chrome/browser/profiles/profile.h"
@@ -106,3 +108,25 @@
           frame->GetLastCommittedOrigin(),
           web_contents->GetMainFrame()->GetLastCommittedOrigin(), device_id);
 }
+
+std::vector<blink::mojom::WebBluetoothDevicePtr>
+ChromeBluetoothDelegate::GetPermittedDevices(content::RenderFrameHost* frame) {
+  auto* web_contents = WebContents::FromRenderFrameHost(frame);
+  std::vector<std::unique_ptr<permissions::ChooserContextBase::Object>>
+      objects = GetBluetoothChooserContext(web_contents)
+                    ->GetGrantedObjects(
+                        frame->GetLastCommittedOrigin(),
+                        web_contents->GetMainFrame()->GetLastCommittedOrigin());
+  std::vector<blink::mojom::WebBluetoothDevicePtr> permitted_devices;
+
+  for (const auto& object : objects) {
+    auto permitted_device = blink::mojom::WebBluetoothDevice::New();
+    permitted_device->id =
+        BluetoothChooserContext::GetObjectDeviceId(object->value);
+    permitted_device->name =
+        BluetoothChooserContext::GetObjectName(object->value);
+    permitted_devices.push_back(std::move(permitted_device));
+  }
+
+  return permitted_devices;
+}
diff --git a/chrome/browser/bluetooth/chrome_bluetooth_delegate.h b/chrome/browser/bluetooth/chrome_bluetooth_delegate.h
index bd273638..cee6f5d 100644
--- a/chrome/browser/bluetooth/chrome_bluetooth_delegate.h
+++ b/chrome/browser/bluetooth/chrome_bluetooth_delegate.h
@@ -6,6 +6,7 @@
 #define CHROME_BROWSER_BLUETOOTH_CHROME_BLUETOOTH_DELEGATE_H_
 
 #include <string>
+#include <vector>
 
 #include "content/public/browser/bluetooth_delegate.h"
 #include "third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom-forward.h"
@@ -58,6 +59,8 @@
   bool IsAllowedToAccessAtLeastOneService(
       content::RenderFrameHost* frame,
       const blink::WebBluetoothDeviceId& device_id) override;
+  std::vector<blink::mojom::WebBluetoothDevicePtr> GetPermittedDevices(
+      content::RenderFrameHost* frame) override;
 };
 
 #endif  // CHROME_BROWSER_BLUETOOTH_CHROME_BLUETOOTH_DELEGATE_H_
diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser/bookmarks/chrome_bookmark_client.cc
index 5f6fe0c..333e0204 100644
--- a/chrome/browser/bookmarks/chrome_bookmark_client.cc
+++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc
@@ -89,16 +89,29 @@
   }
 }
 
-bool ChromeBookmarkClient::IsPermanentNodeVisible(
-    const bookmarks::BookmarkPermanentNode* node) {
-  DCHECK(bookmarks::IsPermanentNode(node, managed_bookmark_service_));
-  if (bookmarks::IsManagedNode(node, managed_bookmark_service_))
-    return false;
+bool ChromeBookmarkClient::IsPermanentNodeVisibleWhenEmpty(
+    bookmarks::BookmarkNode::Type type) {
 #if defined(OS_ANDROID)
-  return node->type() == bookmarks::BookmarkNode::MOBILE;
+  const bool is_mobile = true;
 #else
-  return node->type() != bookmarks::BookmarkNode::MOBILE;
+  const bool is_mobile = false;
 #endif
+
+  switch (type) {
+    case bookmarks::BookmarkNode::URL:
+      NOTREACHED();
+      return false;
+    case bookmarks::BookmarkNode::FOLDER:
+      // Managed node.
+      return false;
+    case bookmarks::BookmarkNode::BOOKMARK_BAR:
+    case bookmarks::BookmarkNode::OTHER_NODE:
+      return !is_mobile;
+    case bookmarks::BookmarkNode::MOBILE:
+      return is_mobile;
+  }
+
+  return false;
 }
 
 void ChromeBookmarkClient::RecordAction(const base::UserMetricsAction& action) {
diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.h b/chrome/browser/bookmarks/chrome_bookmark_client.h
index 9ed12d2d..22d20219 100644
--- a/chrome/browser/bookmarks/chrome_bookmark_client.h
+++ b/chrome/browser/bookmarks/chrome_bookmark_client.h
@@ -19,7 +19,6 @@
 namespace bookmarks {
 class BookmarkModel;
 class BookmarkNode;
-class BookmarkPermanentNode;
 class ManagedBookmarkService;
 }
 
@@ -51,8 +50,8 @@
       base::CancelableTaskTracker* tracker) override;
   bool SupportsTypedCountForUrls() override;
   void GetTypedCountForUrls(UrlTypedCountMap* url_typed_count_map) override;
-  bool IsPermanentNodeVisible(
-      const bookmarks::BookmarkPermanentNode* node) override;
+  bool IsPermanentNodeVisibleWhenEmpty(
+      bookmarks::BookmarkNode::Type type) override;
   void RecordAction(const base::UserMetricsAction& action) override;
   bookmarks::LoadManagedNodeCallback GetLoadManagedNodeCallback() override;
   bool CanSetPermanentNodeTitle(
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
index 5fda4472..cbba616c 100644
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -39,6 +39,11 @@
         <structure name="IDR_ASSISTANT_OPTIN_HTML" file="resources\chromeos\assistant_optin\assistant_optin.html" compress="gzip" flattenhtml="true" allowexternalscript="true" type="chrome_html" />
         <structure name="IDR_ASSISTANT_OPTIN_JS" file="resources\chromeos\assistant_optin\assistant_optin.js" compress="gzip" flattenhtml="true" allowexternalscript="true" type="chrome_html" />
 
+        <!-- Gesture Navigation animations. -->
+        <structure type="chrome_html" name="IDR_GESTURE_NAVIGATION_GO_HOME_ANIMATION" file="resources\chromeos\login\images\gesture_go_home.json" compress="gzip" />
+        <structure type="chrome_html" name="IDR_GESTURE_NAVIGATION_GO_BACK_ANIMATION" file="resources\chromeos\login\images\gesture_go_back.json" compress="gzip" />
+        <structure type="chrome_html" name="IDR_GESTURE_NAVIGATION_HOTSEAT_OVERVIEW_ANIMATION" file="resources\chromeos\login\images\gesture_hotseat_overview.json" compress="gzip" />
+
         <!-- Marketing Opt In animation. -->
         <structure name="IDR_MARKETING_OPT_IN_ALL_SET_ANIMATION" file="resources\chromeos\login\images\all_set.json" compress="gzip" type="chrome_html" />
       </if>
diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc
index eedb48c..36a05c6c 100644
--- a/chrome/browser/chrome_browser_interface_binders.cc
+++ b/chrome/browser/chrome_browser_interface_binders.cc
@@ -14,6 +14,7 @@
 #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h"
 #include "chrome/browser/engagement/site_engagement_details.mojom.h"
 #include "chrome/browser/language/translate_frame_binder.h"
+#include "chrome/browser/media/feeds/media_feeds_store.mojom.h"
 #include "chrome/browser/media/history/media_history_store.mojom.h"
 #include "chrome/browser/media/media_engagement_score_details.mojom.h"
 #include "chrome/browser/navigation_predictor/navigation_predictor.h"
@@ -30,6 +31,7 @@
 #include "chrome/browser/ui/webui/interventions_internals/interventions_internals.mojom.h"
 #include "chrome/browser/ui/webui/interventions_internals/interventions_internals_ui.h"
 #include "chrome/browser/ui/webui/media/media_engagement_ui.h"
+#include "chrome/browser/ui/webui/media/media_feeds_ui.h"
 #include "chrome/browser/ui/webui/media/media_history_ui.h"
 #include "chrome/browser/ui/webui/omnibox/omnibox.mojom.h"
 #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h"
@@ -430,6 +432,9 @@
       media::mojom::MediaEngagementScoreDetailsProvider, MediaEngagementUI>(
       map);
 
+  RegisterWebUIControllerInterfaceBinder<media_feeds::mojom::MediaFeedsStore,
+                                         MediaFeedsUI>(map);
+
   RegisterWebUIControllerInterfaceBinder<
       media_history::mojom::MediaHistoryStore, MediaHistoryUI>(map);
 
diff --git a/chrome/browser/chromeos/arc/session/arc_session_manager.cc b/chrome/browser/chromeos/arc/session/arc_session_manager.cc
index dab97e2..2b068293d 100644
--- a/chrome/browser/chromeos/arc/session/arc_session_manager.cc
+++ b/chrome/browser/chromeos/arc/session/arc_session_manager.cc
@@ -461,6 +461,10 @@
       break;
   }
 
+  // When ARC provisioning fails due to Chrome failing to talk to server, we
+  // don't need to keep the ARC session running as the logs necessary to
+  // investigate are already present. ARC session will not provide any useful
+  // context.
   if (result == ProvisioningResult::ARC_STOPPED ||
       result == ProvisioningResult::CHROME_SERVER_COMMUNICATION_ERROR) {
     if (profile_->GetPrefs()->HasPrefPath(prefs::kArcSignedIn))
diff --git a/chrome/browser/custom_handlers/register_protocol_handler_permission_request.cc b/chrome/browser/custom_handlers/register_protocol_handler_permission_request.cc
index 947043a..9641c4d1 100644
--- a/chrome/browser/custom_handlers/register_protocol_handler_permission_request.cc
+++ b/chrome/browser/custom_handlers/register_protocol_handler_permission_request.cc
@@ -12,18 +12,20 @@
 #include "components/vector_icons/vector_icons.h"
 #include "ui/base/l10n/l10n_util.h"
 
-RegisterProtocolHandlerPermissionRequest
-::RegisterProtocolHandlerPermissionRequest(
-      ProtocolHandlerRegistry* registry,
-      const ProtocolHandler& handler,
-      GURL url,
-      bool user_gesture)
+RegisterProtocolHandlerPermissionRequest::
+    RegisterProtocolHandlerPermissionRequest(
+        ProtocolHandlerRegistry* registry,
+        const ProtocolHandler& handler,
+        GURL url,
+        bool user_gesture,
+        base::ScopedClosureRunner fullscreen_block)
     : registry_(registry),
       handler_(handler),
-      origin_(url.GetOrigin()) {}
+      origin_(url.GetOrigin()),
+      fullscreen_block_(std::move(fullscreen_block)) {}
 
 RegisterProtocolHandlerPermissionRequest::
-~RegisterProtocolHandlerPermissionRequest() {}
+    ~RegisterProtocolHandlerPermissionRequest() = default;
 
 permissions::PermissionRequest::IconId
 RegisterProtocolHandlerPermissionRequest::GetIconId() const {
diff --git a/chrome/browser/custom_handlers/register_protocol_handler_permission_request.h b/chrome/browser/custom_handlers/register_protocol_handler_permission_request.h
index 55e3ca80..cd41fdc 100644
--- a/chrome/browser/custom_handlers/register_protocol_handler_permission_request.h
+++ b/chrome/browser/custom_handlers/register_protocol_handler_permission_request.h
@@ -5,6 +5,7 @@
 #ifndef CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_PERMISSION_REQUEST_H_
 #define CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_PERMISSION_REQUEST_H_
 
+#include "base/callback_helpers.h"
 #include "base/macros.h"
 #include "chrome/common/custom_handlers/protocol_handler.h"
 #include "components/permissions/permission_request.h"
@@ -20,7 +21,8 @@
       ProtocolHandlerRegistry* registry,
       const ProtocolHandler& handler,
       GURL url,
-      bool user_gesture);
+      bool user_gesture,
+      base::ScopedClosureRunner fullscreen_block);
   ~RegisterProtocolHandlerPermissionRequest() override;
 
  private:
@@ -37,6 +39,10 @@
   ProtocolHandlerRegistry* registry_;
   ProtocolHandler handler_;
   GURL origin_;
+  // Fullscreen will be blocked for the duration of the lifetime of this block.
+  // TODO(avi): Move to either permissions::PermissionRequest or the
+  // PermissionRequestManager?
+  base::ScopedClosureRunner fullscreen_block_;
 
   DISALLOW_COPY_AND_ASSIGN(RegisterProtocolHandlerPermissionRequest);
 };
diff --git a/chrome/browser/data_reduction_proxy/data_reduction_proxy_browsertest.cc b/chrome/browser/data_reduction_proxy/data_reduction_proxy_browsertest.cc
index f0de117..3243fb2 100644
--- a/chrome/browser/data_reduction_proxy/data_reduction_proxy_browsertest.cc
+++ b/chrome/browser/data_reduction_proxy/data_reduction_proxy_browsertest.cc
@@ -869,7 +869,7 @@
 
   // Load a webpage in holdback group as well. This ensures that while in
   // holdback group, Chrome does not fetch the client config. If Chrome were to
-  // fetch the client config, the DHCECKs and other conditionals that check that
+  // fetch the client config, the DCHECKs and other conditionals that check that
   // holdback is not enabled would trigger and cause the test to fail.
   ui_test_utils::NavigateToURL(browser(), GURL("http://does.not.resolve/foo"));
 
diff --git a/chrome/browser/dev_ui_browser_resources.grd b/chrome/browser/dev_ui_browser_resources.grd
index 3f4adf48..402fb5d6 100644
--- a/chrome/browser/dev_ui_browser_resources.grd
+++ b/chrome/browser/dev_ui_browser_resources.grd
@@ -43,6 +43,9 @@
       <include name="IDR_MEDIA_ENGAGEMENT_HTML" file="resources\media\media_engagement.html" flattenhtml="true" type="BINDATA" compress="gzip" allowexternalscript="true" />
       <include name="IDR_MEDIA_ENGAGEMENT_JS" file="resources\media\media_engagement.js" flattenhtml="true" type="BINDATA" compress="gzip" />
       <include name="IDR_MEDIA_ENGAGEMENT_SCORE_DETAILS_MOJOM_LITE_JS" file="${root_gen_dir}\chrome\browser\media\media_engagement_score_details.mojom-lite.js" use_base_dir="false" type="BINDATA" compress="gzip" />
+      <include name="IDR_MEDIA_FEEDS_HTML" file="resources\media\media_feeds.html" flattenhtml="true" type="BINDATA" compress="gzip" allowexternalscript="true" />
+      <include name="IDR_MEDIA_FEEDS_JS" file="resources\media\media_feeds.js" flattenhtml="true" type="BINDATA" compress="gzip" />
+      <include name="IDR_MEDIA_FEEDS_STORE_MOJOM_LITE_JS" file="${root_gen_dir}\chrome\browser\media\feeds\media_feeds_store.mojom-lite.js" use_base_dir="false" type="BINDATA" compress="gzip" />
       <include name="IDR_MEDIA_HISTORY_HTML" file="resources\media\media_history.html" flattenhtml="true" type="BINDATA" compress="gzip" allowexternalscript="true" />
       <include name="IDR_MEDIA_HISTORY_JS" file="resources\media\media_history.js" flattenhtml="true" type="BINDATA" compress="gzip" />
       <include name="IDR_MEDIA_HISTORY_STORE_MOJOM_LITE_JS" file="${root_gen_dir}\chrome\browser\media\history\media_history_store.mojom-lite.js" use_base_dir="false" type="BINDATA" compress="gzip" />
diff --git a/chrome/browser/dom_distiller/distillable_page_utils_browsertest.cc b/chrome/browser/dom_distiller/distillable_page_utils_browsertest.cc
index 787ee67..c4c26628 100644
--- a/chrome/browser/dom_distiller/distillable_page_utils_browsertest.cc
+++ b/chrome/browser/dom_distiller/distillable_page_utils_browsertest.cc
@@ -10,6 +10,7 @@
 #include "base/optional.h"
 #include "base/run_loop.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "build/build_config.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_switches.h"
@@ -23,14 +24,23 @@
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "testing/gmock/include/gmock/gmock.h"
 
+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_MACOSX) || \
+    defined(OS_WIN)
+#include "components/ukm/test_ukm_recorder.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#endif
+
 namespace dom_distiller {
 namespace {
 
 using ::testing::_;
 using ::testing::AllOf;
 using ::testing::Field;
+using ::testing::InvokeWithoutArgs;
 using ::testing::Not;
 using ::testing::Optional;
+using ::testing::Pointee;
+using ::testing::SizeIs;
 
 const char kSimpleArticlePath[] = "/dom_distiller/simple_article.html";
 const char kSimpleArticleIFramePath[] =
@@ -259,4 +269,39 @@
       Optional(AllOf(IsDistillable(), IsLast(), Not(IsMobileFriendly()))));
 }
 
+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_MACOSX) || \
+    defined(OS_WIN)
+IN_PROC_BROWSER_TEST_F(DistillablePageUtilsBrowserTestAllArticles,
+                       RecordPageIsDistillableOnArticleLoad) {
+  ON_CALL(holder_, OnResult(IsLast()))
+      .WillByDefault(InvokeWithoutArgs(this, &TestOption::QuitSoon));
+
+  ukm::TestAutoSetUkmRecorder ukm_recorder;
+  NavigateAndWait(kSimpleArticlePath, base::TimeDelta());
+
+  std::vector<const ukm::mojom::UkmEntry*> distillability_entries =
+      ukm_recorder.GetEntriesByName("ReaderModeReceivedDistillability");
+  ASSERT_THAT(distillability_entries, SizeIs(1));
+  EXPECT_THAT(ukm_recorder.GetEntryMetric(distillability_entries.front(),
+                                          "IsPageDistillable"),
+              Pointee(true));
+}
+
+IN_PROC_BROWSER_TEST_F(DistillablePageUtilsBrowserTestAllArticles,
+                       RecordPageIsNotDistillableOnNonArticleLoad) {
+  ON_CALL(holder_, OnResult(IsLast()))
+      .WillByDefault(InvokeWithoutArgs(this, &TestOption::QuitSoon));
+
+  ukm::TestAutoSetUkmRecorder ukm_recorder;
+  NavigateAndWait(kNonArticlePath, base::TimeDelta());
+
+  std::vector<const ukm::mojom::UkmEntry*> distillability_entries =
+      ukm_recorder.GetEntriesByName("ReaderModeReceivedDistillability");
+  ASSERT_THAT(distillability_entries, SizeIs(1));
+  EXPECT_THAT(ukm_recorder.GetEntryMetric(distillability_entries.front(),
+                                          "IsPageDistillable"),
+              Pointee(false));
+}
+#endif  // OS_CHROMEOS || OS_LINUX || OS_MACOS || OS_WIN
+
 }  // namespace dom_distiller
diff --git a/chrome/browser/download/notification/download_notification_browsertest.cc b/chrome/browser/download/notification/download_notification_browsertest.cc
index c93df3d..239d2d2 100644
--- a/chrome/browser/download/notification/download_notification_browsertest.cc
+++ b/chrome/browser/download/notification/download_notification_browsertest.cc
@@ -209,7 +209,8 @@
         "Cache-Control: max-age=0\n";
     headers += base::StringPrintf("Content-type: %s\n", mime_type.c_str());
     if (content_length >= 0) {
-      headers += base::StringPrintf("Content-Length: %ld\n", content_length);
+      headers +=
+          base::StringPrintf("Content-Length: %" PRId64 "\n", content_length);
       head->content_length = content_length;
     }
     head->headers = base::MakeRefCounted<net::HttpResponseHeaders>(
diff --git a/chrome/browser/extensions/api/resources_private/resources_private_api.cc b/chrome/browser/extensions/api/resources_private/resources_private_api.cc
index 4820771c..24faa79 100644
--- a/chrome/browser/extensions/api/resources_private/resources_private_api.cc
+++ b/chrome/browser/extensions/api/resources_private/resources_private_api.cc
@@ -60,6 +60,8 @@
     {"tooltipPrint", IDS_PDF_TOOLTIP_PRINT},
     {"tooltipFitToPage", IDS_PDF_TOOLTIP_FIT_PAGE},
     {"tooltipFitToWidth", IDS_PDF_TOOLTIP_FIT_WIDTH},
+    {"tooltipTwoUpViewEnable", IDS_PDF_TOOLTIP_TWO_UP_VIEW_ENABLE},
+    {"tooltipTwoUpViewDisable", IDS_PDF_TOOLTIP_TWO_UP_VIEW_DISABLE},
     {"tooltipZoomIn", IDS_PDF_TOOLTIP_ZOOM_IN},
     {"tooltipZoomOut", IDS_PDF_TOOLTIP_ZOOM_OUT},
 #if defined(OS_CHROMEOS)
@@ -130,6 +132,9 @@
   dict->SetKey("pdfAnnotationsEnabled",
                base::Value(base::FeatureList::IsEnabled(
                    chrome_pdf::features::kPDFAnnotations)));
+  dict->SetKey("pdfTwoUpViewEnabled",
+               base::Value(base::FeatureList::IsEnabled(
+                   chrome_pdf::features::kPDFTwoUpView)));
 
   bool enable_printing = true;
 #if defined(OS_CHROMEOS)
diff --git a/chrome/browser/favicon/OWNERS b/chrome/browser/favicon/OWNERS
index 9a01ac2f..224bab0 100644
--- a/chrome/browser/favicon/OWNERS
+++ b/chrome/browser/favicon/OWNERS
@@ -1,3 +1,4 @@
+mastiz@chromium.org
 pkotwicz@chromium.org
 sky@chromium.org
 
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 7d37077..28f4ae1 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -1718,11 +1718,6 @@
     "Shows previews of the open windows for a given running app when hovering "
     "over the shelf.";
 
-const char kShelfScrollableName[] =
-    "Enable a scrollable list of apps on the shelf";
-const char kShelfScrollableDescription[] =
-    "Shows a list of applications that is scrollable by default on tablets.";
-
 const char kShowAndroidFilesInFilesAppName[] =
     "Show Android files in Files app";
 const char kShowAndroidFilesInFilesAppDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 0587c93..c40034a 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -995,9 +995,6 @@
 extern const char kShelfHoverPreviewsName[];
 extern const char kShelfHoverPreviewsDescription[];
 
-extern const char kShelfScrollableName[];
-extern const char kShelfScrollableDescription[];
-
 extern const char kShowAndroidFilesInFilesAppName[];
 extern const char kShowAndroidFilesInFilesAppDescription[];
 
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
index 69ccee3..f3e6c311 100644
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -322,7 +322,7 @@
                                              base::FEATURE_ENABLED_BY_DEFAULT};
 
 const base::Feature kCCTIncognito{"CCTIncognito",
-                                  base::FEATURE_ENABLED_BY_DEFAULT};
+                                  base::FEATURE_DISABLED_BY_DEFAULT};
 
 const base::Feature kCCTPostMessageAPI{"CCTPostMessageAPI",
                                        base::FEATURE_ENABLED_BY_DEFAULT};
@@ -447,7 +447,7 @@
                                       base::FEATURE_ENABLED_BY_DEFAULT};
 
 const base::Feature kHomepageSettingsUIConversion{
-    "HomepageSettingsUIConversion", base::FEATURE_DISABLED_BY_DEFAULT};
+    "HomepageSettingsUIConversion", base::FEATURE_ENABLED_BY_DEFAULT};
 
 const base::Feature kHorizontalTabSwitcherAndroid{
     "HorizontalTabSwitcherAndroid", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/chrome/browser/media/android/router/media_router_android.cc b/chrome/browser/media/android/router/media_router_android.cc
index fcc3ec9..0a986d8f 100644
--- a/chrome/browser/media/android/router/media_router_android.cc
+++ b/chrome/browser/media/android/router/media_router_android.cc
@@ -183,15 +183,6 @@
 
 void MediaRouterAndroid::OnUserGesture() {}
 
-void MediaRouterAndroid::SearchSinks(
-    const MediaSink::Id& sink_id,
-    const MediaSource::Id& source_id,
-    const std::string& search_input,
-    const std::string& domain,
-    MediaSinkSearchResponseCallback sink_callback) {
-  NOTIMPLEMENTED();
-}
-
 void MediaRouterAndroid::DetachRoute(const MediaRoute::Id& route_id) {
   bridge_->DetachRoute(route_id);
   RemoveRoute(route_id);
diff --git a/chrome/browser/media/android/router/media_router_android.h b/chrome/browser/media/android/router/media_router_android.h
index c13d901..6ad0b2a 100644
--- a/chrome/browser/media/android/router/media_router_android.h
+++ b/chrome/browser/media/android/router/media_router_android.h
@@ -62,11 +62,6 @@
       const MediaRoute::Id& route_id,
       std::unique_ptr<std::vector<uint8_t>> data) override;
   void OnUserGesture() override;
-  void SearchSinks(const MediaSink::Id& sink_id,
-                   const MediaSource::Id& source_id,
-                   const std::string& search_input,
-                   const std::string& domain,
-                   MediaSinkSearchResponseCallback sink_callback) override;
   std::unique_ptr<media::FlingingController> GetFlingingController(
       const MediaRoute::Id& route_id) override;
 
diff --git a/chrome/browser/media/feeds/BUILD.gn b/chrome/browser/media/feeds/BUILD.gn
new file mode 100644
index 0000000..84e0d5f
--- /dev/null
+++ b/chrome/browser/media/feeds/BUILD.gn
@@ -0,0 +1,11 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//mojo/public/tools/bindings/mojom.gni")
+
+mojom("mojo_bindings") {
+  sources = [ "media_feeds_store.mojom" ]
+
+  public_deps = [ "//url/mojom:url_mojom_origin" ]
+}
diff --git a/chrome/browser/media/feeds/OWNERS b/chrome/browser/media/feeds/OWNERS
index 5bf8e5f..b4f1fa9 100644
--- a/chrome/browser/media/feeds/OWNERS
+++ b/chrome/browser/media/feeds/OWNERS
@@ -4,3 +4,6 @@
 beccahughes@chromium.org
 sgbowen@google.com
 steimel@chromium.org
+
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/chrome/browser/media/feeds/media_feeds_store.mojom b/chrome/browser/media/feeds/media_feeds_store.mojom
new file mode 100644
index 0000000..6f9bf19
--- /dev/null
+++ b/chrome/browser/media/feeds/media_feeds_store.mojom
@@ -0,0 +1,22 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module media_feeds.mojom;
+
+import "url/mojom/url.mojom";
+
+struct MediaFeed {
+  // The ID of the field in storage.
+  int64 id;
+
+  // The URL for the discovered feed.
+  url.mojom.Url url;
+};
+
+// MediaFeedStore allows the Media Feeds WebUI to access data from the Media
+// Feeds backend in the browser process for diagnostic purposes.
+interface MediaFeedsStore {
+  // Gets all the discovered media feeds.
+  GetMediaFeeds() => (array<MediaFeed> feeds);
+};
diff --git a/chrome/browser/media/history/media_history_feeds_table.cc b/chrome/browser/media/history/media_history_feeds_table.cc
index 8e3e248c..0c14b44 100644
--- a/chrome/browser/media/history/media_history_feeds_table.cc
+++ b/chrome/browser/media/history/media_history_feeds_table.cc
@@ -74,4 +74,29 @@
   return statement.Run();
 }
 
+std::vector<media_feeds::mojom::MediaFeedPtr>
+MediaHistoryFeedsTable::GetRows() {
+  std::vector<media_feeds::mojom::MediaFeedPtr> feeds;
+  if (!CanAccessDatabase())
+    return feeds;
+
+  sql::Statement statement(
+      DB()->GetUniqueStatement(base::StringPrintf("SELECT id, url "
+                                                  "FROM %s",
+                                                  kTableName)
+                                   .c_str()));
+
+  while (statement.Step()) {
+    media_feeds::mojom::MediaFeedPtr feed(media_feeds::mojom::MediaFeed::New());
+
+    feed->id = statement.ColumnInt64(0);
+    feed->url = GURL(statement.ColumnString(1));
+
+    feeds.push_back(std::move(feed));
+  }
+
+  DCHECK(statement.Succeeded());
+  return feeds;
+}
+
 }  // namespace media_history
diff --git a/chrome/browser/media/history/media_history_feeds_table.h b/chrome/browser/media/history/media_history_feeds_table.h
index 499dffd2..a48381c 100644
--- a/chrome/browser/media/history/media_history_feeds_table.h
+++ b/chrome/browser/media/history/media_history_feeds_table.h
@@ -5,6 +5,9 @@
 #ifndef CHROME_BROWSER_MEDIA_HISTORY_MEDIA_HISTORY_FEEDS_TABLE_H_
 #define CHROME_BROWSER_MEDIA_HISTORY_MEDIA_HISTORY_FEEDS_TABLE_H_
 
+#include <vector>
+
+#include "chrome/browser/media/feeds/media_feeds_store.mojom.h"
 #include "chrome/browser/media/history/media_history_table_base.h"
 #include "sql/init_status.h"
 #include "url/gurl.h"
@@ -33,6 +36,9 @@
 
   // Saves a newly discovered feed in the database.
   bool SaveFeed(const GURL& url);
+
+  // Returns the feed rows in the database.
+  std::vector<media_feeds::mojom::MediaFeedPtr> GetRows();
 };
 
 }  // namespace media_history
diff --git a/chrome/browser/media/history/media_history_keyed_service.cc b/chrome/browser/media/history/media_history_keyed_service.cc
index c5ef1b7f..7220279 100644
--- a/chrome/browser/media/history/media_history_keyed_service.cc
+++ b/chrome/browser/media/history/media_history_keyed_service.cc
@@ -185,4 +185,10 @@
   store_->GetForRead()->PostTaskToDBForTest(std::move(callback));
 }
 
+void MediaHistoryKeyedService::GetMediaFeedsForDebug(
+    base::OnceCallback<void(std::vector<media_feeds::mojom::MediaFeedPtr>)>
+        callback) {
+  store_->GetForRead()->GetMediaFeedsForDebug(std::move(callback));
+}
+
 }  // namespace media_history
diff --git a/chrome/browser/media/history/media_history_keyed_service.h b/chrome/browser/media/history/media_history_keyed_service.h
index 8784d59..9ad1182e 100644
--- a/chrome/browser/media/history/media_history_keyed_service.h
+++ b/chrome/browser/media/history/media_history_keyed_service.h
@@ -91,6 +91,12 @@
   // for waiting for database operations in tests.
   void PostTaskToDBForTest(base::OnceClosure callback);
 
+  // Returns all the rows in the media feeds table.  This is only used for
+  // debugging because it loads all rows in the table.
+  void GetMediaFeedsForDebug(
+      base::OnceCallback<void(std::vector<media_feeds::mojom::MediaFeedPtr>)>
+          callback);
+
  private:
   class StoreHolder;
 
diff --git a/chrome/browser/media/history/media_history_store.cc b/chrome/browser/media/history/media_history_store.cc
index d35a79a..1f98bc1 100644
--- a/chrome/browser/media/history/media_history_store.cc
+++ b/chrome/browser/media/history/media_history_store.cc
@@ -73,6 +73,8 @@
   std::vector<mojom::MediaHistoryPlaybackRowPtr>
   GetMediaHistoryPlaybackRowsForDebug();
 
+  std::vector<media_feeds::mojom::MediaFeedPtr> GetMediaFeedsForDebug();
+
   void SavePlaybackSession(
       const GURL& url,
       const media_session::MediaMetadata& metadata,
@@ -313,6 +315,15 @@
   return playback_table_->GetPlaybackRows();
 }
 
+std::vector<media_feeds::mojom::MediaFeedPtr>
+MediaHistoryStoreInternal::GetMediaFeedsForDebug() {
+  DCHECK(db_task_runner_->RunsTasksInCurrentSequence());
+  if (!initialization_successful_ || !feeds_table_)
+    return std::vector<media_feeds::mojom::MediaFeedPtr>();
+
+  return feeds_table_->GetRows();
+}
+
 int MediaHistoryStoreInternal::GetTableRowCount(const std::string& table_name) {
   DCHECK(db_task_runner_->RunsTasksInCurrentSequence());
   if (!initialization_successful_)
@@ -542,6 +553,15 @@
       std::move(callback));
 }
 
+void MediaHistoryStore::GetMediaFeedsForDebug(
+    base::OnceCallback<void(std::vector<media_feeds::mojom::MediaFeedPtr>)>
+        callback) {
+  base::PostTaskAndReplyWithResult(
+      db_->db_task_runner_.get(), FROM_HERE,
+      base::BindOnce(&MediaHistoryStoreInternal::GetMediaFeedsForDebug, db_),
+      std::move(callback));
+}
+
 void MediaHistoryStore::SavePlaybackSession(
     const GURL& url,
     const media_session::MediaMetadata& metadata,
diff --git a/chrome/browser/media/history/media_history_store.h b/chrome/browser/media/history/media_history_store.h
index ce427add..13aedf6 100644
--- a/chrome/browser/media/history/media_history_store.h
+++ b/chrome/browser/media/history/media_history_store.h
@@ -14,6 +14,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/optional.h"
 #include "base/updateable_sequenced_task_runner.h"
+#include "chrome/browser/media/feeds/media_feeds_store.mojom.h"
 #include "chrome/browser/media/history/media_history_origin_table.h"
 #include "chrome/browser/media/history/media_history_playback_table.h"
 #include "chrome/browser/media/history/media_history_store.mojom.h"
@@ -74,6 +75,12 @@
       base::OnceCallback<void(std::vector<mojom::MediaHistoryPlaybackRowPtr>)>
           callback);
 
+  // Returns all the rows in the media feeds table.  This is only used for
+  // debugging because it loads all rows in the table.
+  void GetMediaFeedsForDebug(
+      base::OnceCallback<void(std::vector<media_feeds::mojom::MediaFeedPtr>)>
+          callback);
+
   // Gets the playback sessions from the media history store. The results will
   // be ordered by most recent first and be limited to the first |num_sessions|.
   // For each session it calls |filter| and if that returns |true| then that
diff --git a/chrome/browser/media/history/media_history_store_unittest.cc b/chrome/browser/media/history/media_history_store_unittest.cc
index 0f7203d..f11b57cf 100644
--- a/chrome/browser/media/history/media_history_store_unittest.cc
+++ b/chrome/browser/media/history/media_history_store_unittest.cc
@@ -15,6 +15,7 @@
 #include "base/test/scoped_feature_list.h"
 #include "base/test/test_timeouts.h"
 #include "chrome/browser/history/history_service_factory.h"
+#include "chrome/browser/media/feeds/media_feeds_store.mojom.h"
 #include "chrome/browser/media/history/media_history_feeds_table.h"
 #include "chrome/browser/media/history/media_history_images_table.h"
 #include "chrome/browser/media/history/media_history_keyed_service.h"
@@ -141,6 +142,21 @@
     return out;
   }
 
+  std::vector<media_feeds::mojom::MediaFeedPtr> GetMediaFeedsSync(
+      MediaHistoryKeyedService* service) {
+    base::RunLoop run_loop;
+    std::vector<media_feeds::mojom::MediaFeedPtr> out;
+
+    service->GetMediaFeedsForDebug(base::BindLambdaForTesting(
+        [&](std::vector<media_feeds::mojom::MediaFeedPtr> rows) {
+          out = std::move(rows);
+          run_loop.Quit();
+        }));
+
+    run_loop.Run();
+    return out;
+  }
+
   MediaHistoryKeyedService* service() const {
     // If the param is true then we use the OTR service to simulate being in
     // incognito.
@@ -524,13 +540,22 @@
 
   {
     // Check the feeds were recorded.
-    mojom::MediaHistoryStatsPtr stats = GetStatsSync(service());
+    std::vector<media_feeds::mojom::MediaFeedPtr> feeds =
+        GetMediaFeedsSync(service());
 
-    EXPECT_EQ(IsReadOnly() ? 0 : 2,
-              stats->table_row_counts[MediaHistoryFeedsTable::kTableName]);
+    if (IsReadOnly()) {
+      EXPECT_TRUE(feeds.empty());
+    } else {
+      EXPECT_EQ(2u, feeds.size());
+
+      EXPECT_EQ(1, feeds[0]->id);
+      EXPECT_EQ(url_a, feeds[0]->url);
+      EXPECT_EQ(2, feeds[1]->id);
+      EXPECT_EQ(url_b, feeds[1]->url);
+    }
 
     // The OTR service should have the same data.
-    EXPECT_EQ(stats, GetStatsSync(otr_service()));
+    EXPECT_EQ(feeds, GetMediaFeedsSync(otr_service()));
   }
 
   service()->SaveMediaFeed(url_c);
@@ -538,12 +563,22 @@
 
   {
     // Check the feeds were recorded.
-    mojom::MediaHistoryStatsPtr stats = GetStatsSync(service());
-    EXPECT_EQ(IsReadOnly() ? 0 : 2,
-              stats->table_row_counts[MediaHistoryFeedsTable::kTableName]);
+    std::vector<media_feeds::mojom::MediaFeedPtr> feeds =
+        GetMediaFeedsSync(service());
+
+    if (IsReadOnly()) {
+      EXPECT_TRUE(feeds.empty());
+    } else {
+      EXPECT_EQ(2u, feeds.size());
+
+      EXPECT_EQ(2, feeds[0]->id);
+      EXPECT_EQ(url_b, feeds[0]->url);
+      EXPECT_EQ(3, feeds[1]->id);
+      EXPECT_EQ(url_c, feeds[1]->url);
+    }
 
     // The OTR service should have the same data.
-    EXPECT_EQ(stats, GetStatsSync(otr_service()));
+    EXPECT_EQ(feeds, GetMediaFeedsSync(otr_service()));
   }
 }
 
diff --git a/chrome/browser/media/router/media_router.h b/chrome/browser/media/router/media_router.h
index 0b95164..1550188c 100644
--- a/chrome/browser/media/router/media_router.h
+++ b/chrome/browser/media/router/media_router.h
@@ -58,11 +58,6 @@
     base::OnceCallback<void(mojom::RoutePresentationConnectionPtr connection,
                             const RouteRequestResult& result)>;
 
-// Type of callback used for |SearchSinks()| to return the sink ID of the
-// newly-found sink. The sink ID will be the empty string if no sink was found.
-using MediaSinkSearchResponseCallback =
-    base::OnceCallback<void(const MediaSink::Id& sink_id)>;
-
 // Subscription object returned by calling
 // |AddPresentationConnectionStateChangedCallback|. See the method comments for
 // details.
@@ -165,17 +160,6 @@
   // approriate to be done at construction.
   virtual void OnUserGesture() = 0;
 
-  // Searches for a MediaSink using |search_input| and |domain| as criteria.
-  // |domain| is the hosted domain of the user's signed-in identity, or empty if
-  // the user has no domain or is not signed in.  |sink_callback| will be called
-  // either with the ID of the new sink when it is found or with an empty string
-  // if no sink was found.
-  virtual void SearchSinks(const MediaSink::Id& sink_id,
-                           const MediaSource::Id& source_id,
-                           const std::string& search_input,
-                           const std::string& domain,
-                           MediaSinkSearchResponseCallback sink_callback) = 0;
-
   // Adds |callback| to listen for state changes for presentation connected to
   // |route_id|. The returned Subscription object is owned by the caller.
   // |callback| will be invoked whenever there are state changes, until the
diff --git a/chrome/browser/media/router/media_router_metrics.cc b/chrome/browser/media/router/media_router_metrics.cc
index f74b8a8f..18649cd2 100644
--- a/chrome/browser/media/router/media_router_metrics.cc
+++ b/chrome/browser/media/router/media_router_metrics.cc
@@ -147,8 +147,6 @@
     "MediaRouter.Sink.SelectedType";
 const char MediaRouterMetrics::kHistogramPresentationUrlType[] =
     "MediaRouter.PresentationRequest.AvailabilityUrlType";
-const char MediaRouterMetrics::kHistogramRecordSearchSinkOutcome[] =
-    "MediaRouter.Sink.SearchOutcome";
 const char MediaRouterMetrics::kHistogramRouteCreationOutcome[] =
     "MediaRouter.Route.CreationOutcome";
 const char MediaRouterMetrics::kHistogramStartLocalLatency[] =
@@ -304,11 +302,6 @@
 }
 
 // static
-void MediaRouterMetrics::RecordSearchSinkOutcome(bool success) {
-  UMA_HISTOGRAM_BOOLEAN(kHistogramRecordSearchSinkOutcome, success);
-}
-
-// static
 void MediaRouterMetrics::RecordIconStateAtDialogOpen(bool is_pinned) {
   UMA_HISTOGRAM_BOOLEAN(kHistogramUiDialogIconStateAtOpen, is_pinned);
 }
diff --git a/chrome/browser/media/router/media_router_metrics.h b/chrome/browser/media/router/media_router_metrics.h
index 5d57270..9d7b3607 100644
--- a/chrome/browser/media/router/media_router_metrics.h
+++ b/chrome/browser/media/router/media_router_metrics.h
@@ -136,7 +136,6 @@
   static const char kHistogramMediaRouterFileSize[];
   static const char kHistogramMediaSinkType[];
   static const char kHistogramPresentationUrlType[];
-  static const char kHistogramRecordSearchSinkOutcome[];
   static const char kHistogramRouteCreationOutcome[];
   static const char kHistogramStartLocalLatency[];
   static const char kHistogramStartLocalPosition[];
@@ -217,10 +216,6 @@
   static void RecordStopLocalRoute();
   static void RecordStopRemoteRoute();
 
-  // Records whether or not a sink was found for the ID that the user manually
-  // entered and attempted to cast to.
-  static void RecordSearchSinkOutcome(bool success);
-
   // Records whether the toolbar icon is pinned by the user pref / admin policy.
   // Recorded whenever the Cast dialog is opened.
   static void RecordIconStateAtDialogOpen(bool is_pinned);
diff --git a/chrome/browser/media/router/media_router_metrics_unittest.cc b/chrome/browser/media/router/media_router_metrics_unittest.cc
index aa56bd4..9ed8b957 100644
--- a/chrome/browser/media/router/media_router_metrics_unittest.cc
+++ b/chrome/browser/media/router/media_router_metrics_unittest.cc
@@ -273,12 +273,6 @@
                           Bucket(/* Remote route */ 1, 1)));
 }
 
-TEST(MediaRouterMetricsTest, RecordSearchSinkOutcome) {
-  TestRecordBooleanMetric(
-      base::BindRepeating(&MediaRouterMetrics::RecordSearchSinkOutcome),
-      MediaRouterMetrics::kHistogramRecordSearchSinkOutcome);
-}
-
 TEST(MediaRouterMetricsTest, RecordIconStateAtDialogOpen) {
   TestRecordBooleanMetric(
       base::BindRepeating(&MediaRouterMetrics::RecordIconStateAtDialogOpen),
diff --git a/chrome/browser/media/router/mojo/media_router_mojo_impl.cc b/chrome/browser/media/router/mojo/media_router_mojo_impl.cc
index de9d9b3b..e7d20e71 100644
--- a/chrome/browser/media/router/mojo/media_router_mojo_impl.cc
+++ b/chrome/browser/media/router/mojo/media_router_mojo_impl.cc
@@ -457,29 +457,6 @@
 
 void MediaRouterMojoImpl::OnUserGesture() {}
 
-void MediaRouterMojoImpl::SearchSinks(
-    const MediaSink::Id& sink_id,
-    const MediaSource::Id& source_id,
-    const std::string& search_input,
-    const std::string& domain,
-    MediaSinkSearchResponseCallback sink_callback) {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-  base::Optional<MediaRouteProviderId> provider_id =
-      GetProviderIdForSink(sink_id);
-  if (!provider_id) {
-    DVLOG_WITH_INSTANCE(1) << __func__ << ": sink not found: " << sink_id;
-    std::move(sink_callback).Run("");
-    return;
-  }
-
-  auto sink_search_criteria = mojom::SinkSearchCriteria::New();
-  sink_search_criteria->input = search_input;
-  sink_search_criteria->domain = domain;
-  media_route_providers_[*provider_id]->SearchSinks(
-      sink_id, source_id, std::move(sink_search_criteria),
-      std::move(sink_callback));
-}
-
 void MediaRouterMojoImpl::GetMediaController(
     const MediaRoute::Id& route_id,
     mojo::PendingReceiver<mojom::MediaController> controller,
diff --git a/chrome/browser/media/router/mojo/media_router_mojo_impl.h b/chrome/browser/media/router/mojo/media_router_mojo_impl.h
index ebba2bc..9de16e25 100644
--- a/chrome/browser/media/router/mojo/media_router_mojo_impl.h
+++ b/chrome/browser/media/router/mojo/media_router_mojo_impl.h
@@ -77,11 +77,6 @@
   void SendRouteBinaryMessage(const MediaRoute::Id& route_id,
                               std::unique_ptr<std::vector<uint8_t>> data) final;
   void OnUserGesture() override;
-  void SearchSinks(const MediaSink::Id& sink_id,
-                   const MediaSource::Id& source_id,
-                   const std::string& search_input,
-                   const std::string& domain,
-                   MediaSinkSearchResponseCallback sink_callback) final;
   void GetMediaController(
       const MediaRoute::Id& route_id,
       mojo::PendingReceiver<mojom::MediaController> controller,
diff --git a/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc b/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc
index 8aa1278..e4e3f25 100644
--- a/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc
+++ b/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc
@@ -974,10 +974,6 @@
   base::RunLoop().RunUntilIdle();
 }
 
-TEST_F(MediaRouterMojoImplTest, SearchSinks) {
-  TestSearchSinks();
-}
-
 TEST_F(MediaRouterMojoImplTest, GetMediaController) {
   MockMediaController mock_controller;
   mojo::Remote<mojom::MediaController> controller_remote;
diff --git a/chrome/browser/media/router/mojo/media_router_mojo_metrics.cc b/chrome/browser/media/router/mojo/media_router_mojo_metrics.cc
index cd1aeaf..5f6b1d01 100644
--- a/chrome/browser/media/router/mojo/media_router_mojo_metrics.cc
+++ b/chrome/browser/media/router/mojo/media_router_mojo_metrics.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/media/router/mojo/media_router_mojo_metrics.h"
 
 #include "base/macros.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/version.h"
 #include "components/version_info/version_info.h"
@@ -12,41 +13,46 @@
 
 namespace media_router {
 
-// static
-constexpr char MediaRouterMojoMetrics::kHistogramProviderCreateRouteResult[] =
+namespace {
+
+constexpr char kHistogramProviderCreateRouteResult[] =
     "MediaRouter.Provider.CreateRoute.Result";
-constexpr char
-    MediaRouterMojoMetrics::kHistogramProviderCreateRouteResultWiredDisplay[] =
-        "MediaRouter.Provider.CreateRoute.Result.WiredDisplay";
-constexpr char MediaRouterMojoMetrics::kHistogramProviderJoinRouteResult[] =
+constexpr char kHistogramProviderJoinRouteResult[] =
     "MediaRouter.Provider.JoinRoute.Result";
-constexpr char
-    MediaRouterMojoMetrics::kHistogramProviderJoinRouteResultWiredDisplay[] =
-        "MediaRouter.Provider.JoinRoute.Result.WiredDisplay";
-constexpr char
-    MediaRouterMojoMetrics::kHistogramProviderRouteControllerCreationOutcome[] =
-        "MediaRouter.Provider.RouteControllerCreationOutcome";
-constexpr char
-    MediaRouterMojoMetrics::kHistogramProviderTerminateRouteResult[] =
-        "MediaRouter.Provider.TerminateRoute.Result";
-constexpr char MediaRouterMojoMetrics::
-    kHistogramProviderTerminateRouteResultWiredDisplay[] =
-        "MediaRouter.Provider.TerminateRoute.Result.WiredDisplay";
-constexpr char MediaRouterMojoMetrics::kHistogramProviderVersion[] =
-    "MediaRouter.Provider.Version";
-constexpr char MediaRouterMojoMetrics::kHistogramProviderWakeReason[] =
+constexpr char kHistogramProviderRouteControllerCreationOutcome[] =
+    "MediaRouter.Provider.RouteControllerCreationOutcome";
+constexpr char kHistogramProviderTerminateRouteResult[] =
+    "MediaRouter.Provider.TerminateRoute.Result";
+constexpr char kHistogramProviderVersion[] = "MediaRouter.Provider.Version";
+constexpr char kHistogramProviderWakeReason[] =
     "MediaRouter.Provider.WakeReason";
-constexpr char MediaRouterMojoMetrics::kHistogramProviderWakeup[] =
-    "MediaRouter.Provider.Wakeup";
+constexpr char kHistogramProviderWakeup[] = "MediaRouter.Provider.Wakeup";
+
+std::string GetHistogramNameForProvider(const std::string& base_name,
+                                        MediaRouteProviderId provider_id) {
+  switch (provider_id) {
+    case MediaRouteProviderId::CAST:
+      return base_name + ".Cast";
+    case MediaRouteProviderId::DIAL:
+      return base_name + ".DIAL";
+    case MediaRouteProviderId::WIRED_DISPLAY:
+      return base_name + ".WiredDisplay";
+    // |EXTENSION| and |UNKNOWN| use the base histogram name.
+    case MediaRouteProviderId::EXTENSION:
+    case MediaRouteProviderId::UNKNOWN:
+      return base_name;
+  }
+}
+
+}  // namespace
 
 // static
 void MediaRouterMojoMetrics::RecordMediaRouteProviderWakeReason(
     MediaRouteProviderWakeReason reason) {
   DCHECK_LT(static_cast<int>(reason),
             static_cast<int>(MediaRouteProviderWakeReason::TOTAL_COUNT));
-  UMA_HISTOGRAM_ENUMERATION(
-      kHistogramProviderWakeReason, static_cast<int>(reason),
-      static_cast<int>(MediaRouteProviderWakeReason::TOTAL_COUNT));
+  base::UmaHistogramEnumeration(kHistogramProviderWakeReason, reason,
+                                MediaRouteProviderWakeReason::TOTAL_COUNT);
 }
 
 // static
@@ -58,9 +64,8 @@
 
   DCHECK_LT(static_cast<int>(version),
             static_cast<int>(MediaRouteProviderVersion::TOTAL_COUNT));
-  UMA_HISTOGRAM_ENUMERATION(
-      kHistogramProviderVersion, static_cast<int>(version),
-      static_cast<int>(MediaRouteProviderVersion::TOTAL_COUNT));
+  base::UmaHistogramEnumeration(kHistogramProviderVersion, version,
+                                MediaRouteProviderVersion::TOTAL_COUNT);
 }
 
 // static
@@ -68,9 +73,8 @@
     MediaRouteProviderWakeup wakeup) {
   DCHECK_LT(static_cast<int>(wakeup),
             static_cast<int>(MediaRouteProviderWakeup::TOTAL_COUNT));
-  UMA_HISTOGRAM_ENUMERATION(
-      kHistogramProviderWakeup, static_cast<int>(wakeup),
-      static_cast<int>(MediaRouteProviderWakeup::TOTAL_COUNT));
+  base::UmaHistogramEnumeration(kHistogramProviderWakeup, wakeup,
+                                MediaRouteProviderWakeup::TOTAL_COUNT);
 }
 
 // static
@@ -78,21 +82,10 @@
     MediaRouteProviderId provider_id,
     RouteRequestResult::ResultCode result_code) {
   DCHECK_LT(result_code, RouteRequestResult::TOTAL_COUNT);
-  switch (provider_id) {
-    case MediaRouteProviderId::WIRED_DISPLAY:
-      UMA_HISTOGRAM_ENUMERATION(kHistogramProviderCreateRouteResultWiredDisplay,
-                                result_code, RouteRequestResult::TOTAL_COUNT);
-      break;
-    case MediaRouteProviderId::EXTENSION:
-    // TODO(crbug.com/809249): Implement Cast-specific metric.
-    case MediaRouteProviderId::CAST:
-    // TODO(crbug.com/808720): Implement DIAL-specific metric.
-    case MediaRouteProviderId::DIAL:
-    case MediaRouteProviderId::UNKNOWN:
-      UMA_HISTOGRAM_ENUMERATION(kHistogramProviderCreateRouteResult,
-                                result_code, RouteRequestResult::TOTAL_COUNT);
-      break;
-  }
+  base::UmaHistogramEnumeration(
+      GetHistogramNameForProvider(kHistogramProviderCreateRouteResult,
+                                  provider_id),
+      result_code, RouteRequestResult::TOTAL_COUNT);
 }
 
 // static
@@ -100,21 +93,10 @@
     MediaRouteProviderId provider_id,
     RouteRequestResult::ResultCode result_code) {
   DCHECK_LT(result_code, RouteRequestResult::ResultCode::TOTAL_COUNT);
-  switch (provider_id) {
-    case MediaRouteProviderId::WIRED_DISPLAY:
-      UMA_HISTOGRAM_ENUMERATION(kHistogramProviderJoinRouteResultWiredDisplay,
-                                result_code, RouteRequestResult::TOTAL_COUNT);
-      break;
-    case MediaRouteProviderId::EXTENSION:
-    // TODO(crbug.com/809249): Implement Cast-specific metric.
-    case MediaRouteProviderId::CAST:
-    // TODO(crbug.com/808720): Implement DIAL-specific metric.
-    case MediaRouteProviderId::DIAL:
-    case MediaRouteProviderId::UNKNOWN:
-      UMA_HISTOGRAM_ENUMERATION(kHistogramProviderJoinRouteResult, result_code,
-                                RouteRequestResult::TOTAL_COUNT);
-      break;
-  }
+  base::UmaHistogramEnumeration(
+      GetHistogramNameForProvider(kHistogramProviderJoinRouteResult,
+                                  provider_id),
+      result_code, RouteRequestResult::TOTAL_COUNT);
 }
 
 // static
@@ -122,29 +104,17 @@
     MediaRouteProviderId provider_id,
     RouteRequestResult::ResultCode result_code) {
   DCHECK_LT(result_code, RouteRequestResult::ResultCode::TOTAL_COUNT);
-  switch (provider_id) {
-    case MediaRouteProviderId::WIRED_DISPLAY:
-      UMA_HISTOGRAM_ENUMERATION(
-          kHistogramProviderTerminateRouteResultWiredDisplay, result_code,
-          RouteRequestResult::TOTAL_COUNT);
-      break;
-    case MediaRouteProviderId::EXTENSION:
-    // TODO(crbug.com/809249): Implement Cast-specific metric.
-    case MediaRouteProviderId::CAST:
-    // TODO(crbug.com/808720): Implement DIAL-specific metric.
-    case MediaRouteProviderId::DIAL:
-    case MediaRouteProviderId::UNKNOWN:
-      UMA_HISTOGRAM_ENUMERATION(kHistogramProviderTerminateRouteResult,
-                                result_code, RouteRequestResult::TOTAL_COUNT);
-      break;
-  }
+  base::UmaHistogramEnumeration(
+      GetHistogramNameForProvider(kHistogramProviderTerminateRouteResult,
+                                  provider_id),
+      result_code, RouteRequestResult::TOTAL_COUNT);
 }
 
 // static
 void MediaRouterMojoMetrics::RecordMediaRouteControllerCreationResult(
     bool success) {
-  UMA_HISTOGRAM_BOOLEAN(kHistogramProviderRouteControllerCreationOutcome,
-                        success);
+  base::UmaHistogramBoolean(kHistogramProviderRouteControllerCreationOutcome,
+                            success);
 }
 
 // static
diff --git a/chrome/browser/media/router/mojo/media_router_mojo_metrics.h b/chrome/browser/media/router/mojo/media_router_mojo_metrics.h
index 9623427..ce2f5c9 100644
--- a/chrome/browser/media/router/mojo/media_router_mojo_metrics.h
+++ b/chrome/browser/media/router/mojo/media_router_mojo_metrics.h
@@ -43,7 +43,7 @@
   CONNECT_ROUTE_BY_ROUTE_ID = 14,
   ENABLE_MDNS_DISCOVERY = 15,
   UPDATE_MEDIA_SINKS = 16,
-  SEARCH_SINKS = 17,
+  SEARCH_SINKS = 17,  // Obsolete
   PROVIDE_SINKS = 18,
   CREATE_MEDIA_ROUTE_CONTROLLER = 19,
   ROUTE_CONTROLLER_COMMAND = 20,
@@ -79,18 +79,6 @@
 
 class MediaRouterMojoMetrics {
  public:
-  // UMA histogram names.
-  static const char kHistogramProviderCreateRouteResult[];
-  static const char kHistogramProviderCreateRouteResultWiredDisplay[];
-  static const char kHistogramProviderJoinRouteResult[];
-  static const char kHistogramProviderJoinRouteResultWiredDisplay[];
-  static const char kHistogramProviderRouteControllerCreationOutcome[];
-  static const char kHistogramProviderTerminateRouteResult[];
-  static const char kHistogramProviderTerminateRouteResultWiredDisplay[];
-  static const char kHistogramProviderVersion[];
-  static const char kHistogramProviderWakeReason[];
-  static const char kHistogramProviderWakeup[];
-
   // Records the installed version of the Media Router component extension.
   static void RecordMediaRouteProviderVersion(
       const extensions::Extension& extension);
diff --git a/chrome/browser/media/router/mojo/media_router_mojo_metrics_unittest.cc b/chrome/browser/media/router/mojo/media_router_mojo_metrics_unittest.cc
index 4d0d864..3fda8cad 100644
--- a/chrome/browser/media/router/mojo/media_router_mojo_metrics_unittest.cc
+++ b/chrome/browser/media/router/mojo/media_router_mojo_metrics_unittest.cc
@@ -20,13 +20,13 @@
 
 // Tests that |record_cb| records metrics for each MediaRouteProvider in a
 // histogram specific to the provider.
-void TestRouteResultCodeHistograms(
+void TestRouteResultCodeHistogramsWithProviders(
     base::RepeatingCallback<void(MediaRouteProviderId,
                                  RouteRequestResult::ResultCode)> record_cb,
     MediaRouteProviderId provider1,
-    const char* const histogram_provider1,
+    const std::string& histogram_provider1,
     MediaRouteProviderId provider2,
-    const char* const histogram_provider2) {
+    const std::string& histogram_provider2) {
   base::HistogramTester tester;
   tester.ExpectTotalCount(histogram_provider1, 0);
   tester.ExpectTotalCount(histogram_provider2, 0);
@@ -52,6 +52,20 @@
           Bucket(static_cast<int>(RouteRequestResult::ROUTE_NOT_FOUND), 1)));
 }
 
+void TestRouteResultCodeHistograms(
+    base::RepeatingCallback<void(MediaRouteProviderId,
+                                 RouteRequestResult::ResultCode)> record_cb,
+    const std::string& base_histogram_name) {
+  TestRouteResultCodeHistogramsWithProviders(
+      record_cb, MediaRouteProviderId::EXTENSION, base_histogram_name,
+      MediaRouteProviderId::WIRED_DISPLAY,
+      base_histogram_name + ".WiredDisplay");
+
+  TestRouteResultCodeHistogramsWithProviders(
+      record_cb, MediaRouteProviderId::CAST, base_histogram_name + ".Cast",
+      MediaRouteProviderId::DIAL, base_histogram_name + ".DIAL");
+}
+
 }  // namespace
 
 TEST(MediaRouterMojoMetricsTest, TestGetMediaRouteProviderVersion) {
@@ -88,30 +102,20 @@
 TEST(MediaRouterMojoMetricsTest, RecordCreateRouteResultCode) {
   TestRouteResultCodeHistograms(
       base::BindRepeating(&MediaRouterMojoMetrics::RecordCreateRouteResultCode),
-      MediaRouteProviderId::EXTENSION,
-      MediaRouterMojoMetrics::kHistogramProviderCreateRouteResult,
-      MediaRouteProviderId::WIRED_DISPLAY,
-      MediaRouterMojoMetrics::kHistogramProviderCreateRouteResultWiredDisplay);
+      "MediaRouter.Provider.CreateRoute.Result");
 }
 
 TEST(MediaRouterMojoMetricsTest, RecordJoinRouteResultCode) {
   TestRouteResultCodeHistograms(
       base::BindRepeating(&MediaRouterMojoMetrics::RecordJoinRouteResultCode),
-      MediaRouteProviderId::EXTENSION,
-      MediaRouterMojoMetrics::kHistogramProviderJoinRouteResult,
-      MediaRouteProviderId::WIRED_DISPLAY,
-      MediaRouterMojoMetrics::kHistogramProviderJoinRouteResultWiredDisplay);
+      "MediaRouter.Provider.JoinRoute.Result");
 }
 
 TEST(MediaRouterMojoMetricsTest, RecordTerminateRouteResultCode) {
   TestRouteResultCodeHistograms(
       base::BindRepeating(
           &MediaRouterMojoMetrics::RecordMediaRouteProviderTerminateRoute),
-      MediaRouteProviderId::EXTENSION,
-      MediaRouterMojoMetrics::kHistogramProviderTerminateRouteResult,
-      MediaRouteProviderId::WIRED_DISPLAY,
-      MediaRouterMojoMetrics::
-          kHistogramProviderTerminateRouteResultWiredDisplay);
+      "MediaRouter.Provider.TerminateRoute.Result");
 }
 
 }  // namespace media_router
diff --git a/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc b/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc
index 79dad11..43d5111 100644
--- a/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc
+++ b/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc
@@ -250,14 +250,6 @@
   app_discovery_service_->Refresh();
 }
 
-void CastMediaRouteProvider::SearchSinks(
-    const std::string& sink_id,
-    const std::string& media_source,
-    mojom::SinkSearchCriteriaPtr search_criteria,
-    SearchSinksCallback callback) {
-  std::move(callback).Run(std::string());
-}
-
 void CastMediaRouteProvider::ProvideSinks(
     const std::string& provider_name,
     const std::vector<media_router::MediaSinkInternal>& sinks) {
diff --git a/chrome/browser/media/router/providers/cast/cast_media_route_provider.h b/chrome/browser/media/router/providers/cast/cast_media_route_provider.h
index 483aca3..4113953d 100644
--- a/chrome/browser/media/router/providers/cast/cast_media_route_provider.h
+++ b/chrome/browser/media/router/providers/cast/cast_media_route_provider.h
@@ -86,10 +86,6 @@
   void DetachRoute(const std::string& route_id) override;
   void EnableMdnsDiscovery() override;
   void UpdateMediaSinks(const std::string& media_source) override;
-  void SearchSinks(const std::string& sink_id,
-                   const std::string& media_source,
-                   mojom::SinkSearchCriteriaPtr search_criteria,
-                   SearchSinksCallback callback) override;
   void ProvideSinks(
       const std::string& provider_name,
       const std::vector<media_router::MediaSinkInternal>& sinks) override;
diff --git a/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc b/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc
index ab0783b..ceb3af6 100644
--- a/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc
+++ b/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc
@@ -494,14 +494,6 @@
   media_sink_service_->OnUserGesture();
 }
 
-void DialMediaRouteProvider::SearchSinks(
-    const std::string& sink_id,
-    const std::string& media_source,
-    mojom::SinkSearchCriteriaPtr search_criteria,
-    SearchSinksCallback callback) {
-  std::move(callback).Run(std::string());
-}
-
 void DialMediaRouteProvider::ProvideSinks(
     const std::string& provider_name,
     const std::vector<media_router::MediaSinkInternal>& sinks) {
diff --git a/chrome/browser/media/router/providers/dial/dial_media_route_provider.h b/chrome/browser/media/router/providers/dial/dial_media_route_provider.h
index ff54958e..9d24aaf 100644
--- a/chrome/browser/media/router/providers/dial/dial_media_route_provider.h
+++ b/chrome/browser/media/router/providers/dial/dial_media_route_provider.h
@@ -102,10 +102,6 @@
   void DetachRoute(const std::string& route_id) override;
   void EnableMdnsDiscovery() override;
   void UpdateMediaSinks(const std::string& media_source) override;
-  void SearchSinks(const std::string& sink_id,
-                   const std::string& media_source,
-                   mojom::SinkSearchCriteriaPtr search_criteria,
-                   SearchSinksCallback callback) override;
   void ProvideSinks(
       const std::string& provider_name,
       const std::vector<media_router::MediaSinkInternal>& sinks) override;
diff --git a/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.cc b/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.cc
index 135bcc4..8e1def7 100644
--- a/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.cc
+++ b/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.cc
@@ -185,18 +185,6 @@
       MediaRouteProviderWakeReason::UPDATE_MEDIA_SINKS);
 }
 
-void ExtensionMediaRouteProviderProxy::SearchSinks(
-    const std::string& sink_id,
-    const std::string& media_source,
-    mojom::SinkSearchCriteriaPtr search_criteria,
-    SearchSinksCallback callback) {
-  request_manager_->RunOrDefer(
-      base::BindOnce(&ExtensionMediaRouteProviderProxy::DoSearchSinks,
-                     weak_factory_.GetWeakPtr(), sink_id, media_source,
-                     std::move(search_criteria), std::move(callback)),
-      MediaRouteProviderWakeReason::SEARCH_SINKS);
-}
-
 void ExtensionMediaRouteProviderProxy::ProvideSinks(
     const std::string& provider_name,
     const std::vector<media_router::MediaSinkInternal>& sinks) {
@@ -368,16 +356,6 @@
   media_route_provider_->UpdateMediaSinks(media_source);
 }
 
-void ExtensionMediaRouteProviderProxy::DoSearchSinks(
-    const std::string& sink_id,
-    const std::string& media_source,
-    mojom::SinkSearchCriteriaPtr search_criteria,
-    SearchSinksCallback callback) {
-  DVLOG(1) << "SearchSinks";
-  media_route_provider_->SearchSinks(
-      sink_id, media_source, std::move(search_criteria), std::move(callback));
-}
-
 void ExtensionMediaRouteProviderProxy::DoProvideSinks(
     const std::string& provider_name,
     const std::vector<media_router::MediaSinkInternal>& sinks) {
diff --git a/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.h b/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.h
index 061932d..9dbbe4f 100644
--- a/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.h
+++ b/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.h
@@ -81,10 +81,6 @@
   void DetachRoute(const std::string& route_id) override;
   void EnableMdnsDiscovery() override;
   void UpdateMediaSinks(const std::string& media_source) override;
-  void SearchSinks(const std::string& sink_id,
-                   const std::string& media_source,
-                   mojom::SinkSearchCriteriaPtr search_criteria,
-                   SearchSinksCallback callback) override;
   void ProvideSinks(
       const std::string& provider_name,
       const std::vector<media_router::MediaSinkInternal>& sinks) override;
@@ -151,10 +147,6 @@
   void DoDetachRoute(const std::string& route_id);
   void DoEnableMdnsDiscovery();
   void DoUpdateMediaSinks(const std::string& media_source);
-  void DoSearchSinks(const std::string& sink_id,
-                     const std::string& media_source,
-                     mojom::SinkSearchCriteriaPtr search_criteria,
-                     SearchSinksCallback callback);
   void DoProvideSinks(
       const std::string& provider_name,
       const std::vector<media_router::MediaSinkInternal>& sinks);
diff --git a/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy_unittest.cc b/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy_unittest.cc
index 2edfb157..6107eb62 100644
--- a/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy_unittest.cc
+++ b/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy_unittest.cc
@@ -38,8 +38,6 @@
 using MockTerminateRouteCallback =
     base::MockCallback<mojom::MediaRouteProvider::TerminateRouteCallback>;
 using MockBoolCallback = base::MockCallback<base::OnceCallback<void(bool)>>;
-using MockSearchSinksCallback =
-    base::MockCallback<base::OnceCallback<void(const std::string&)>>;
 
 const char kDescription[] = "description";
 const bool kIsIncognito = false;
@@ -230,20 +228,6 @@
   base::RunLoop().RunUntilIdle();
 }
 
-TEST_F(ExtensionMediaRouteProviderProxyTest, SearchSinks) {
-  EXPECT_CALL(mock_provider_, SearchSinksInternal(kSinkId, kSource, _, _))
-      .WillOnce(WithArg<3>(Invoke(
-          &mock_provider_, &MockMediaRouteProvider::SearchSinksSuccess)));
-
-  auto sink_search_criteria = mojom::SinkSearchCriteria::New();
-  MockSearchSinksCallback callback;
-  provider_proxy_->SearchSinks(kSinkId, kSource,
-                               std::move(sink_search_criteria),
-                               base::BindOnce(&MockSearchSinksCallback::Run,
-                                              base::Unretained(&callback)));
-  base::RunLoop().RunUntilIdle();
-}
-
 TEST_F(ExtensionMediaRouteProviderProxyTest, ProvideSinks) {
   const std::string provider_name = "provider name";
   MediaSinkInternal sink;
diff --git a/chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.cc b/chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.cc
index f1e9a0aa..621ef20 100644
--- a/chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.cc
+++ b/chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.cc
@@ -255,15 +255,6 @@
     media_router_->OnSinksReceived(kProviderId, media_source, GetSinks(), {});
 }
 
-void WiredDisplayMediaRouteProvider::SearchSinks(
-    const std::string& sink_id,
-    const std::string& media_source,
-    mojom::SinkSearchCriteriaPtr search_criteria,
-    SearchSinksCallback callback) {
-  // The use of this method is not required by this MRP.
-  std::move(callback).Run("");
-}
-
 void WiredDisplayMediaRouteProvider::ProvideSinks(
     const std::string& provider_name,
     const std::vector<media_router::MediaSinkInternal>& sinks) {
diff --git a/chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.h b/chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.h
index 00e9d6be..d15808e 100644
--- a/chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.h
+++ b/chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.h
@@ -88,10 +88,6 @@
   void DetachRoute(const std::string& route_id) override;
   void EnableMdnsDiscovery() override;
   void UpdateMediaSinks(const std::string& media_source) override;
-  void SearchSinks(const std::string& sink_id,
-                   const std::string& media_source,
-                   mojom::SinkSearchCriteriaPtr search_criteria,
-                   SearchSinksCallback callback) override;
   void ProvideSinks(
       const std::string& provider_name,
       const std::vector<media_router::MediaSinkInternal>& sinks) override;
diff --git a/chrome/browser/media/router/test/media_router_mojo_test.cc b/chrome/browser/media/router/test/media_router_mojo_test.cc
index 2a1a844..7c8c9d0 100644
--- a/chrome/browser/media/router/test/media_router_mojo_test.cc
+++ b/chrome/browser/media/router/test/media_router_mojo_test.cc
@@ -30,7 +30,6 @@
 const char kRouteId[] = "routeId";
 const char kSource[] = "source1";
 const char kSinkId[] = "sink";
-const char kSinkId2[] = "sink2";
 const int kInvalidTabId = -1;
 const int kTimeoutMillis = 5 * 1000;
 const uint8_t kBinaryMessage[] = {0x01, 0x02, 0x03, 0x04};
@@ -79,11 +78,6 @@
   std::move(cb).Run(std::string(), RouteRequestResult::OK);
 }
 
-void MockMediaRouteProvider::SearchSinksSuccess(SearchSinksCallback& cb) const {
-  std::string sink_id = route_ ? route_->media_sink_id() : std::string();
-  std::move(cb).Run(sink_id);
-}
-
 void MockMediaRouteProvider::CreateMediaRouteControllerSuccess(
     CreateMediaRouteControllerCallback& cb) const {
   std::move(cb).Run(true);
@@ -364,34 +358,6 @@
   base::RunLoop().RunUntilIdle();
 }
 
-void MediaRouterMojoTest::TestSearchSinks() {
-  std::string search_input("input");
-  std::string domain("google.com");
-  MediaSource media_source(kSource);
-  ProvideTestSink(MediaRouteProviderId::EXTENSION, kSinkId);
-
-  EXPECT_CALL(mock_extension_provider_,
-              SearchSinksInternal(kSinkId, kSource, _, _))
-      .WillOnce(
-          Invoke([&search_input, &domain](
-                     const std::string& sink_id, const std::string& source,
-                     const mojom::SinkSearchCriteriaPtr& search_criteria,
-                     mojom::MediaRouteProvider::SearchSinksCallback& cb) {
-            EXPECT_EQ(search_input, search_criteria->input);
-            EXPECT_EQ(domain, search_criteria->domain);
-            std::move(cb).Run(kSinkId2);
-          }));
-
-  SinkResponseCallbackHandler sink_handler;
-  EXPECT_CALL(sink_handler, Invoke(kSinkId2)).Times(1);
-  MediaSinkSearchResponseCallback sink_callback = base::BindOnce(
-      &SinkResponseCallbackHandler::Invoke, base::Unretained(&sink_handler));
-
-  router()->SearchSinks(kSinkId, kSource, search_input, domain,
-                        std::move(sink_callback));
-  base::RunLoop().RunUntilIdle();
-}
-
 void MediaRouterMojoTest::RegisterMediaRouteProvider(
     mojom::MediaRouteProvider* provider,
     MediaRouteProviderId provider_id) {
diff --git a/chrome/browser/media/router/test/media_router_mojo_test.h b/chrome/browser/media/router/test/media_router_mojo_test.h
index 9aaade6..c2d699a 100644
--- a/chrome/browser/media/router/test/media_router_mojo_test.h
+++ b/chrome/browser/media/router/test/media_router_mojo_test.h
@@ -128,17 +128,6 @@
   MOCK_METHOD1(StopObservingMediaRoutes, void(const std::string& source));
   MOCK_METHOD0(EnableMdnsDiscovery, void());
   MOCK_METHOD1(UpdateMediaSinks, void(const std::string& source));
-  void SearchSinks(const std::string& sink_id,
-                   const std::string& media_source,
-                   mojom::SinkSearchCriteriaPtr search_criteria,
-                   SearchSinksCallback callback) override {
-    SearchSinksInternal(sink_id, media_source, search_criteria, callback);
-  }
-  MOCK_METHOD4(SearchSinksInternal,
-               void(const std::string& sink_id,
-                    const std::string& media_source,
-                    mojom::SinkSearchCriteriaPtr& search_criteria,
-                    SearchSinksCallback& callback));
   MOCK_METHOD2(ProvideSinks,
                void(const std::string&, const std::vector<MediaSinkInternal>&));
   void CreateMediaRouteController(
@@ -166,7 +155,6 @@
   void RouteRequestSuccess(RouteCallback& cb) const;
   void RouteRequestTimeout(RouteCallback& cb) const;
   void TerminateRouteSuccess(TerminateRouteCallback& cb) const;
-  void SearchSinksSuccess(SearchSinksCallback& cb) const;
   void CreateMediaRouteControllerSuccess(
       CreateMediaRouteControllerCallback& cb) const;
 
@@ -279,7 +267,6 @@
   void TestSendRouteMessage();
   void TestSendRouteBinaryMessage();
   void TestDetachRoute();
-  void TestSearchSinks();
 
   const std::string& extension_id() const { return extension_->id(); }
 
diff --git a/chrome/browser/media/router/test/mock_media_router.h b/chrome/browser/media/router/test/mock_media_router.h
index 495a9c2c..01744cc 100644
--- a/chrome/browser/media/router/test/mock_media_router.h
+++ b/chrome/browser/media/router/test/mock_media_router.h
@@ -104,22 +104,6 @@
                void(const MediaRoute::Id& route_id,
                     std::unique_ptr<std::vector<uint8_t>> data));
   MOCK_METHOD0(OnUserGesture, void());
-
-  void SearchSinks(const MediaSink::Id& sink_id,
-                   const MediaSource::Id& source_id,
-                   const std::string& search_input,
-                   const std::string& domain,
-                   MediaSinkSearchResponseCallback sink_callback) override {
-    SearchSinksInternal(sink_id, source_id, search_input, domain,
-                        sink_callback);
-  }
-  MOCK_METHOD5(SearchSinksInternal,
-               void(const MediaSink::Id& sink_id,
-                    const MediaSource::Id& source_id,
-                    const std::string& search_input,
-                    const std::string& domain,
-                    MediaSinkSearchResponseCallback& sink_callback));
-
   MOCK_METHOD1(OnPresentationSessionDetached,
                void(const MediaRoute::Id& route_id));
   std::unique_ptr<PresentationConnectionStateSubscription>
diff --git a/chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc b/chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc
index d7597d4..b63b10e 100644
--- a/chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc
+++ b/chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc
@@ -51,10 +51,12 @@
   }
 
   // Drop fullscreen mode so that the user sees the URL bar.
-  web_contents->ForSecurityDropFullscreen();
+  base::ScopedClosureRunner fullscreen_block =
+      web_contents->ForSecurityDropFullscreen();
 
   ShowNativeFileSystemDirectoryAccessConfirmationDialog(
-      origin, path, std::move(callback), web_contents);
+      origin, path, std::move(callback), web_contents,
+      std::move(fullscreen_block));
 }
 
 void ShowNativeFileSystemRestrictedDirectoryDialogOnUIThread(
diff --git a/chrome/browser/native_file_system/native_file_system_permission_request_manager.cc b/chrome/browser/native_file_system/native_file_system_permission_request_manager.cc
index d7c4492..98892839 100644
--- a/chrome/browser/native_file_system/native_file_system_permission_request_manager.cc
+++ b/chrome/browser/native_file_system/native_file_system_permission_request_manager.cc
@@ -32,14 +32,17 @@
 struct NativeFileSystemPermissionRequestManager::Request {
   Request(
       RequestData data,
-      base::OnceCallback<void(permissions::PermissionAction result)> callback)
+      base::OnceCallback<void(permissions::PermissionAction result)> callback,
+      base::ScopedClosureRunner fullscreen_block)
       : data(std::move(data)) {
     callbacks.push_back(std::move(callback));
+    fullscreen_blocks.push_back(std::move(fullscreen_block));
   }
 
   RequestData data;
   std::vector<base::OnceCallback<void(permissions::PermissionAction result)>>
       callbacks;
+  std::vector<base::ScopedClosureRunner> fullscreen_blocks;
 };
 
 NativeFileSystemPermissionRequestManager::
@@ -47,7 +50,8 @@
 
 void NativeFileSystemPermissionRequestManager::AddRequest(
     RequestData data,
-    base::OnceCallback<void(permissions::PermissionAction result)> callback) {
+    base::OnceCallback<void(permissions::PermissionAction result)> callback,
+    base::ScopedClosureRunner fullscreen_block) {
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
           permissions::switches::kDenyPermissionPrompts)) {
     std::move(callback).Run(permissions::PermissionAction::DENIED);
@@ -57,11 +61,13 @@
   // Check if any pending requests are identical to the new request.
   if (current_request_ && RequestsAreIdentical(current_request_->data, data)) {
     current_request_->callbacks.push_back(std::move(callback));
+    current_request_->fullscreen_blocks.push_back(std::move(fullscreen_block));
     return;
   }
   for (const auto& request : queued_requests_) {
     if (RequestsAreIdentical(request->data, data)) {
       request->callbacks.push_back(std::move(callback));
+      request->fullscreen_blocks.push_back(std::move(fullscreen_block));
       return;
     }
     if (RequestsAreForSamePath(request->data, data)) {
@@ -69,12 +75,13 @@
       // to kReadWrite, and add the new callback.
       request->data.access = Access::kReadWrite;
       request->callbacks.push_back(std::move(callback));
+      request->fullscreen_blocks.push_back(std::move(fullscreen_block));
       return;
     }
   }
 
-  queued_requests_.push_back(
-      std::make_unique<Request>(std::move(data), std::move(callback)));
+  queued_requests_.push_back(std::make_unique<Request>(
+      std::move(data), std::move(callback), std::move(fullscreen_block)));
   if (!IsShowingRequest())
     ScheduleShowRequest();
 }
diff --git a/chrome/browser/native_file_system/native_file_system_permission_request_manager.h b/chrome/browser/native_file_system/native_file_system_permission_request_manager.h
index b3efb12..e66be8e 100644
--- a/chrome/browser/native_file_system/native_file_system_permission_request_manager.h
+++ b/chrome/browser/native_file_system/native_file_system_permission_request_manager.h
@@ -5,6 +5,7 @@
 #ifndef CHROME_BROWSER_NATIVE_FILE_SYSTEM_NATIVE_FILE_SYSTEM_PERMISSION_REQUEST_MANAGER_H_
 #define CHROME_BROWSER_NATIVE_FILE_SYSTEM_NATIVE_FILE_SYSTEM_PERMISSION_REQUEST_MANAGER_H_
 
+#include "base/callback_helpers.h"
 #include "base/containers/circular_deque.h"
 #include "base/files/file_path.h"
 #include "base/memory/weak_ptr.h"
@@ -64,7 +65,8 @@
 
   void AddRequest(
       RequestData request,
-      base::OnceCallback<void(permissions::PermissionAction result)> callback);
+      base::OnceCallback<void(permissions::PermissionAction result)> callback,
+      base::ScopedClosureRunner fullscreen_block);
 
   // Do NOT use this method in production code. Use this method in browser
   // tests that need to accept or deny permissions when requested in
diff --git a/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.cc b/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.cc
index abab55ee..b49e2c9 100644
--- a/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.cc
+++ b/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.h"
 
 #include "base/bind.h"
+#include "base/callback_helpers.h"
 #include "base/metrics/histogram_functions.h"
 #include "build/build_config.h"
 #include "chrome/browser/native_file_system/native_file_system_permission_request_manager.h"
@@ -136,7 +137,8 @@
     }
 
     // Drop fullscreen mode so that the user sees the URL bar.
-    web_contents->ForSecurityDropFullscreen();
+    base::ScopedClosureRunner fullscreen_block =
+        web_contents->ForSecurityDropFullscreen();
 
     NativeFileSystemPermissionRequestManager::Access access =
         type_ == GrantType::kRead
@@ -151,7 +153,8 @@
     request_manager->AddRequest(
         {origin_, path_, is_directory_, access},
         base::BindOnce(&PermissionGrantImpl::OnPermissionRequestResult, this,
-                       std::move(callback)));
+                       std::move(callback)),
+        std::move(fullscreen_block));
   }
 
   const url::Origin& origin() const {
diff --git a/chrome/browser/native_file_system/tab_scoped_native_file_system_permission_context.cc b/chrome/browser/native_file_system/tab_scoped_native_file_system_permission_context.cc
index 560c479..7030e4a 100644
--- a/chrome/browser/native_file_system/tab_scoped_native_file_system_permission_context.cc
+++ b/chrome/browser/native_file_system/tab_scoped_native_file_system_permission_context.cc
@@ -9,6 +9,7 @@
 
 #include "base/base_paths.h"
 #include "base/bind.h"
+#include "base/callback_helpers.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/path_service.h"
 #include "base/task/post_task.h"
@@ -86,7 +87,8 @@
   }
 
   // Drop fullscreen mode so that the user sees the URL bar.
-  web_contents->ForSecurityDropFullscreen();
+  base::ScopedClosureRunner fullscreen_block =
+      web_contents->ForSecurityDropFullscreen();
 
   request_manager->AddRequest(
       {origin, path, is_directory,
@@ -116,7 +118,8 @@
                 break;
             }
           },
-          std::move(callback)));
+          std::move(callback)),
+      std::move(fullscreen_block));
 }
 
 // Returns a callback that calls the passed in |callback| by posting a task to
diff --git a/chrome/browser/pdf/pdf_extension_test.cc b/chrome/browser/pdf/pdf_extension_test.cc
index 8dac1cf..4f46584 100644
--- a/chrome/browser/pdf/pdf_extension_test.cc
+++ b/chrome/browser/pdf/pdf_extension_test.cc
@@ -803,6 +803,10 @@
 }
 #endif
 
+IN_PROC_BROWSER_TEST_F(PDFExtensionTest, TwoUpViewFeature) {
+  RunTestsInJsModule("two_up_view_feature_test.js", "test.pdf");
+}
+
 // TODO(tsepez): See https://crbug.com/696650.
 IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DISABLED_NoBeep) {
   // Block the exact query from pdf/main.js while still allowing enough
diff --git a/chrome/browser/performance_manager/tab_properties_decorator_browsertest.cc b/chrome/browser/performance_manager/tab_properties_decorator_browsertest.cc
new file mode 100644
index 0000000..29ab4834
--- /dev/null
+++ b/chrome/browser/performance_manager/tab_properties_decorator_browsertest.cc
@@ -0,0 +1,40 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/performance_manager/public/decorators/tab_properties_decorator.h"
+
+#include "base/test/bind_test_util.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "components/performance_manager/graph/page_node_impl.h"
+#include "components/performance_manager/public/performance_manager.h"
+
+namespace performance_manager {
+
+using TabPropertiesDecoratorBrowserTest = InProcessBrowserTest;
+
+// Integration test verifying that when a PageNode is created for a tab, the
+// corresponding tab properties is set.
+IN_PROC_BROWSER_TEST_F(TabPropertiesDecoratorBrowserTest, SetIsTab) {
+  EXPECT_EQ(1, browser()->tab_strip_model()->count());
+
+  // Get PageNode associated with the current tab.
+  base::WeakPtr<PageNode> page_node =
+      PerformanceManager::GetPageNodeForWebContents(
+          browser()->tab_strip_model()->GetActiveWebContents());
+
+  // Get data from the PageNode and verify the tab properties.
+  base::RunLoop run_loop;
+  auto call_on_graph_cb = base::BindLambdaForTesting([&](Graph* unused) {
+    EXPECT_TRUE(page_node);
+    EXPECT_TRUE(TabPropertiesDecorator::Data::FromPageNode(page_node.get())
+                    ->IsInTabStrip());
+    run_loop.Quit();
+  });
+  PerformanceManager::CallOnGraph(FROM_HERE, call_on_graph_cb);
+  run_loop.Run();
+}
+
+}  // namespace performance_manager
diff --git a/chrome/browser/permissions/permission_request_manager_browsertest.cc b/chrome/browser/permissions/permission_request_manager_browsertest.cc
index c717991..91fe557 100644
--- a/chrome/browser/permissions/permission_request_manager_browsertest.cc
+++ b/chrome/browser/permissions/permission_request_manager_browsertest.cc
@@ -207,8 +207,8 @@
       ProtocolHandlerRegistryFactory::GetForBrowserContext(
           browser()->profile());
   // Deleted in RegisterProtocolHandlerPermissionRequest::RequestFinished().
-  return new RegisterProtocolHandlerPermissionRequest(registry, handler,
-                                                      GetUrl(), user_gesture);
+  return new RegisterProtocolHandlerPermissionRequest(
+      registry, handler, GetUrl(), user_gesture, base::ScopedClosureRunner());
 }
 
 permissions::PermissionRequest* PermissionDialogTest::MakePermissionRequest(
diff --git a/chrome/browser/predictors/loading_predictor_browsertest.cc b/chrome/browser/predictors/loading_predictor_browsertest.cc
index 275a3a8..4080a11 100644
--- a/chrome/browser/predictors/loading_predictor_browsertest.cc
+++ b/chrome/browser/predictors/loading_predictor_browsertest.cc
@@ -27,6 +27,7 @@
 #include "chrome/browser/predictors/loading_predictor_factory.h"
 #include "chrome/browser/predictors/loading_test_util.h"
 #include "chrome/browser/predictors/preconnect_manager.h"
+#include "chrome/browser/predictors/predictors_enums.h"
 #include "chrome/browser/predictors/predictors_features.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
@@ -1596,6 +1597,8 @@
   ui_test_utils::NavigateToURL(browser(), url);
   ResetNetworkState();
 
+  base::HistogramTester histogram_tester;
+
   auto observer = NavigateToURLAsync(url);
   EXPECT_TRUE(observer->WaitForRequestStart());
   for (auto* const host : kHtmlSubresourcesHosts) {
@@ -1622,6 +1625,14 @@
             connection_tracker()->GetAcceptedSocketCount());
   // No reads since all resources should be cached.
   EXPECT_EQ(0u, connection_tracker()->GetReadSocketCount());
+
+  if (IsLocalPredictionEnabled()) {
+    histogram_tester.ExpectTotalCount(
+        "LoadingPredictor.OptimizationHintsReceiveStatus", 0);
+  } else {
+    histogram_tester.ExpectTotalCount(
+        "LoadingPredictor.OptimizationHintsReceiveStatus", 1);
+  }
 }
 
 // https://crbug.com/1056693
@@ -1684,72 +1695,119 @@
     EXPECT_TRUE(preconnect_manager_observer()->HasOriginAttemptedToPreconnect(
         expected_origin));
   }
+
+  if (IsLocalPredictionEnabled()) {
+    histogram_tester.ExpectUniqueSample(
+        "LoadingPredictor.OptimizationHintsReceiveStatus",
+        OptimizationHintsReceiveStatus::kAfterNavigationFinish, 1);
+  } else {
+    // We expect one for the setup navigation and one for the navigation we care
+    // about.
+    histogram_tester.ExpectTotalCount(
+        "LoadingPredictor.OptimizationHintsReceiveStatus", 2);
+    // We expect the hints to arrive before navigation for the navigation we
+    // care about.
+    histogram_tester.ExpectBucketCount(
+        "LoadingPredictor.OptimizationHintsReceiveStatus",
+        OptimizationHintsReceiveStatus::kBeforeNavigationFinish, 1);
+    // We expect the decision to arrive at finish for the setup navigation.
+    histogram_tester.ExpectBucketCount(
+        "LoadingPredictor.OptimizationHintsReceiveStatus",
+        OptimizationHintsReceiveStatus::kAfterNavigationFinish, 1);
+  }
 }
 
 IN_PROC_BROWSER_TEST_P(
     LoadingPredictorBrowserTestWithOptimizationGuide,
     DISABLE_ON_WIN_MAC_CHROMEOS(
         NavigationWithNoLocalPredictionsButHasOptimizationHint)) {
-  base::HistogramTester histogram_tester;
+  {
+    base::HistogramTester histogram_tester;
 
-  GURL url = embedded_test_server()->GetURL("m.hints.com", "/simple.html");
-  url::Origin origin = url::Origin::Create(url);
-  net::NetworkIsolationKey network_isolation_key(origin, origin);
-  // Navigate to a setup URL with the same host suffix as |url| to guarantee
-  // that the optimization guide hints are available for |url| when we navigate
-  // to it. We also make sure that the setup URL is not of the same origin as
-  // |url| to guarantee that the ResourcePrefetchPredictor does not have any
-  // predictions available for |url|'s origin since local predictions are used
-  // instead of optimization hints if available.
-  ui_test_utils::NavigateToURL(
-      browser(), embedded_test_server()->GetURL("setup.hints.com", "/"));
-  RetryForHistogramUntilCountReached(
-      histogram_tester, optimization_guide::kLoadedHintLocalHistogramString, 1);
-  ResetNetworkState();
-
-  auto observer = NavigateToURLAsync(url);
-  EXPECT_TRUE(observer->WaitForRequestStart());
-
-  // The initial URL should be preconnected to.
-  preconnect_manager_observer()->WaitUntilHostLookedUp(url.host(),
-                                                       network_isolation_key);
-  EXPECT_TRUE(preconnect_manager_observer()->HostFound(url.host(),
-                                                       network_isolation_key));
-  EXPECT_TRUE(preconnect_manager_observer()->HasOriginAttemptedToPreconnect(
-      origin.GetURL()));
-
-  // Both subresource hosts should be preconnected to.
-  for (auto* const host : {"subresource.com", "otherresource.com"}) {
-    preconnect_manager_observer()->WaitUntilHostLookedUp(host,
-                                                         network_isolation_key);
-    EXPECT_TRUE(
-        preconnect_manager_observer()->HostFound(host, network_isolation_key));
-
-    EXPECT_TRUE(preconnect_manager_observer()->HasOriginAttemptedToPreconnect(
-        GURL(base::StringPrintf("http://%s/", host))));
+    // Navigate to a setup URL with the same host suffix as |url| to guarantee
+    // that the optimization guide hints are available for |url| when we
+    // navigate to it. We also make sure that the setup URL is not of the same
+    // origin as |url| to guarantee that the ResourcePrefetchPredictor does not
+    // have any predictions available for |url|'s origin since local predictions
+    // are used instead of optimization hints if available.
+    ui_test_utils::NavigateToURL(
+        browser(),
+        embedded_test_server()->GetURL("setup.hints.com", "/simple.html"));
+    RetryForHistogramUntilCountReached(
+        histogram_tester, optimization_guide::kLoadedHintLocalHistogramString,
+        1);
+    ResetNetworkState();
   }
-  EXPECT_TRUE(observer->WaitForResponse());
-  observer->ResumeNavigation();
-  content::AwaitDocumentOnLoadCompleted(observer->web_contents());
-  observer->WaitForNavigationFinished();
 
-  // Navigate to another URL - make sure optimization guide prediction is
-  // cleared.
-  ui_test_utils::NavigateToURL(
-      browser(), embedded_test_server()->GetURL("nohints.com", "/"));
+  {
+    base::HistogramTester histogram_tester;
 
-  histogram_tester.ExpectUniqueSample(
-      "LoadingPredictor.PreconnectLearningRecall.OptimizationGuide", 0, 1);
-  histogram_tester.ExpectUniqueSample(
-      "LoadingPredictor.PreconnectLearningPrecision.OptimizationGuide", 0, 1);
-  histogram_tester.ExpectUniqueSample(
-      "LoadingPredictor.PreconnectLearningCount.OptimizationGuide", 2, 1);
+    GURL url = embedded_test_server()->GetURL("m.hints.com", "/simple.html");
+    url::Origin origin = url::Origin::Create(url);
+    net::NetworkIsolationKey network_isolation_key(origin, origin);
+
+    auto observer = NavigateToURLAsync(url);
+    EXPECT_TRUE(observer->WaitForRequestStart());
+
+    // The initial URL should be preconnected to.
+    preconnect_manager_observer()->WaitUntilHostLookedUp(url.host(),
+                                                         network_isolation_key);
+    EXPECT_TRUE(preconnect_manager_observer()->HostFound(
+        url.host(), network_isolation_key));
+    EXPECT_TRUE(preconnect_manager_observer()->HasOriginAttemptedToPreconnect(
+        origin.GetURL()));
+
+    // Both subresource hosts should be preconnected to.
+    for (auto* const host : {"subresource.com", "otherresource.com"}) {
+      preconnect_manager_observer()->WaitUntilHostLookedUp(
+          host, network_isolation_key);
+      EXPECT_TRUE(preconnect_manager_observer()->HostFound(
+          host, network_isolation_key));
+
+      EXPECT_TRUE(preconnect_manager_observer()->HasOriginAttemptedToPreconnect(
+          GURL(base::StringPrintf("http://%s/", host))));
+    }
+
+    EXPECT_TRUE(observer->WaitForResponse());
+    observer->ResumeNavigation();
+    content::AwaitDocumentOnLoadCompleted(observer->web_contents());
+    observer->WaitForNavigationFinished();
+
+    // Navigate to another URL - make sure optimization guide prediction is
+    // cleared.
+    ui_test_utils::NavigateToURL(
+        browser(), embedded_test_server()->GetURL("nohints.com", "/"));
+
+    histogram_tester.ExpectUniqueSample(
+        "LoadingPredictor.PreconnectLearningRecall.OptimizationGuide", 0, 1);
+    histogram_tester.ExpectUniqueSample(
+        "LoadingPredictor.PreconnectLearningPrecision.OptimizationGuide", 0, 1);
+    histogram_tester.ExpectUniqueSample(
+        "LoadingPredictor.PreconnectLearningCount.OptimizationGuide", 2, 1);
+
+    // We expect one for the final navigation and one for the navigation we care
+    // about.
+    histogram_tester.ExpectTotalCount(
+        "LoadingPredictor.OptimizationHintsReceiveStatus", 2);
+    // We expect the hints to arrive before navigation for the navigation we
+    // care about.
+    histogram_tester.ExpectBucketCount(
+        "LoadingPredictor.OptimizationHintsReceiveStatus",
+        OptimizationHintsReceiveStatus::kBeforeNavigationFinish, 1);
+    // We expect the decision to arrive at finish for the navigation we do not
+    // have hints for.
+    histogram_tester.ExpectBucketCount(
+        "LoadingPredictor.OptimizationHintsReceiveStatus",
+        OptimizationHintsReceiveStatus::kAfterNavigationFinish, 1);
+  }
 }
 
 IN_PROC_BROWSER_TEST_P(
     LoadingPredictorBrowserTestWithOptimizationGuide,
     OptimizationGuidePredictionsNotAppliedForAlreadyCommittedNavigation) {
-  GURL url = embedded_test_server()->GetURL("hints.com", "/");
+  base::HistogramTester histogram_tester;
+
+  GURL url = embedded_test_server()->GetURL("hints.com", "/simple.html");
   url::Origin origin = url::Origin::Create(url);
   net::NetworkIsolationKey network_isolation_key(origin, origin);
   // Navigate to URL with hints, the hints will come back eventually but
@@ -1760,24 +1818,36 @@
       "subresource.com", network_isolation_key));
   EXPECT_FALSE(preconnect_manager_observer()->HasHostBeenLookedUp(
       "otheresource.com", network_isolation_key));
+
+  histogram_tester.ExpectUniqueSample(
+      "LoadingPredictor.OptimizationHintsReceiveStatus",
+      OptimizationHintsReceiveStatus::kAfterNavigationFinish, 1);
 }
 
 IN_PROC_BROWSER_TEST_P(LoadingPredictorBrowserTestWithOptimizationGuide,
                        OptimizationGuidePredictionsNotAppliedForRedirect) {
+  base::HistogramTester histogram_tester;
+
   GURL destination_url =
-      embedded_test_server()->GetURL("hints.com", "/cachetime");
+      embedded_test_server()->GetURL("otherhost.com", "/cachetime");
   GURL redirecting_url = embedded_test_server()->GetURL(
       "hints.com", "/cached-redirect?" + destination_url.spec());
 
   url::Origin origin = url::Origin::Create(redirecting_url);
   net::NetworkIsolationKey network_isolation_key(origin, origin);
-  // Navigate to URL with hints but is redirected, hints should not be applied.
+  // Navigate to URL with hints but is redirected, hints should not be
+  // applied.
   ui_test_utils::NavigateToURL(browser(), redirecting_url);
 
   EXPECT_FALSE(preconnect_manager_observer()->HasHostBeenLookedUp(
       "subresource.com", network_isolation_key));
   EXPECT_FALSE(preconnect_manager_observer()->HasHostBeenLookedUp(
       "otheresource.com", network_isolation_key));
+
+  // We cannot force when the hint comes back, so we make sure that we at least
+  // received something back from the optimization guide instead.
+  histogram_tester.ExpectTotalCount(
+      "LoadingPredictor.OptimizationHintsReceiveStatus", 1);
 }
 
 class LoadingPredictorBrowserTestWithNoLocalPredictions
diff --git a/chrome/browser/predictors/loading_predictor_tab_helper.cc b/chrome/browser/predictors/loading_predictor_tab_helper.cc
index 69e571d9..57ac2586 100644
--- a/chrome/browser/predictors/loading_predictor_tab_helper.cc
+++ b/chrome/browser/predictors/loading_predictor_tab_helper.cc
@@ -7,10 +7,12 @@
 #include <set>
 #include <string>
 
+#include "base/metrics/histogram_macros.h"
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h"
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
 #include "chrome/browser/predictors/loading_predictor.h"
 #include "chrome/browser/predictors/loading_predictor_factory.h"
+#include "chrome/browser/predictors/predictors_enums.h"
 #include "chrome/browser/predictors/predictors_features.h"
 #include "chrome/browser/profiles/profile.h"
 #include "components/optimization_guide/optimization_guide_decider.h"
@@ -27,6 +29,9 @@
 
 namespace {
 
+constexpr char kLoadingPredictorOptimizationHintsReceiveStatusHistogram[] =
+    "LoadingPredictor.OptimizationHintsReceiveStatus";
+
 // Called only for subresources.
 net::RequestPriority GetRequestPriority(
     network::mojom::RequestDestination request_destination) {
@@ -66,6 +71,24 @@
          navigation_handle->GetURL().SchemeIsHTTPOrHTTPS();
 }
 
+// Util class for recording the status for when we received optimization hints
+// for navigations that we requested them for.
+class ScopedOptimizationHintsReceiveStatusRecorder {
+ public:
+  ScopedOptimizationHintsReceiveStatusRecorder()
+      : status_(OptimizationHintsReceiveStatus::kUnknown) {}
+  ~ScopedOptimizationHintsReceiveStatusRecorder() {
+    DCHECK_NE(status_, OptimizationHintsReceiveStatus::kUnknown);
+    UMA_HISTOGRAM_ENUMERATION(
+        kLoadingPredictorOptimizationHintsReceiveStatusHistogram, status_);
+  }
+
+  void set_status(OptimizationHintsReceiveStatus status) { status_ = status; }
+
+ private:
+  OptimizationHintsReceiveStatus status_;
+};
+
 }  // namespace
 
 LoadingPredictorTabHelper::LoadingPredictorTabHelper(
@@ -230,28 +253,28 @@
   if (!predictor_)
     return;
 
-  if (decision != optimization_guide::OptimizationGuideDecision::kTrue)
-    return;
-
-  if (!metadata.loading_predictor_metadata())
-    return;
+  ScopedOptimizationHintsReceiveStatusRecorder recorder;
 
   if (!current_navigation_id_.is_valid()) {
     // There is not a pending navigation, so return.
+    recorder.set_status(OptimizationHintsReceiveStatus::kAfterNavigationFinish);
     return;
   }
   if (current_navigation_id_ != navigation_id) {
     // The current navigation has either redirected or a new one has started, so
     // return.
+    recorder.set_status(
+        OptimizationHintsReceiveStatus::kAfterRedirectOrNextNavigationStart);
     return;
   }
-  auto last_committed_navigation_id = NavigationID(web_contents());
-  if (last_committed_navigation_id.is_valid() &&
-      navigation_id == last_committed_navigation_id) {
-    // The navigation has already committed, so all the connections have already
-    // started.
+
+  recorder.set_status(OptimizationHintsReceiveStatus::kBeforeNavigationFinish);
+
+  if (decision != optimization_guide::OptimizationGuideDecision::kTrue)
     return;
-  }
+
+  if (!metadata.loading_predictor_metadata())
+    return;
 
   PreconnectPrediction prediction;
   url::Origin main_frame_origin =
diff --git a/chrome/browser/predictors/predictors_enums.h b/chrome/browser/predictors/predictors_enums.h
new file mode 100644
index 0000000..e2d0a40
--- /dev/null
+++ b/chrome/browser/predictors/predictors_enums.h
@@ -0,0 +1,27 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PREDICTORS_PREDICTORS_ENUMS_H_
+#define CHROME_BROWSER_PREDICTORS_PREDICTORS_ENUMS_H_
+
+namespace predictors {
+
+// Enumerates the states for when optimization hints were received by the
+// loading predictor if predictions were requested from the Optimization Guide
+// for the navigation.
+// This should be kept in sync with
+// LoadingPredictorOptimizationHintsReceiveStatus in enums.xml.
+enum class OptimizationHintsReceiveStatus {
+  kUnknown,
+  kBeforeNavigationFinish,
+  kAfterNavigationFinish,
+  kAfterRedirectOrNextNavigationStart,
+
+  // Add new values above this line.
+  kMaxValue = kAfterRedirectOrNextNavigationStart,
+};
+
+}  // namespace predictors
+
+#endif  // CHROME_BROWSER_PREDICTORS_PREDICTORS_ENUMS_H_
diff --git a/chrome/browser/prerender/isolated/isolated_prerender_tab_helper.cc b/chrome/browser/prerender/isolated/isolated_prerender_tab_helper.cc
index 82c94db4..773ee0a7 100644
--- a/chrome/browser/prerender/isolated/isolated_prerender_tab_helper.cc
+++ b/chrome/browser/prerender/isolated/isolated_prerender_tab_helper.cc
@@ -35,9 +35,13 @@
 #include "services/network/public/mojom/cookie_manager.mojom.h"
 #include "url/origin.h"
 
+IsolatedPrerenderTabHelper::CurrentPageLoad::CurrentPageLoad() = default;
+IsolatedPrerenderTabHelper::CurrentPageLoad::~CurrentPageLoad() = default;
+
 IsolatedPrerenderTabHelper::IsolatedPrerenderTabHelper(
     content::WebContents* web_contents)
     : content::WebContentsObserver(web_contents) {
+  page_ = std::make_unique<CurrentPageLoad>();
   profile_ = Profile::FromBrowserContext(web_contents->GetBrowserContext());
   url_loader_factory_ =
       content::BrowserContext::GetDefaultStoragePartition(profile_)
@@ -75,7 +79,7 @@
   }
 
   // User is navigating, don't bother prefetching further.
-  url_loader_.reset();
+  page_->url_loader.reset();
 }
 
 void IsolatedPrerenderTabHelper::DidFinishNavigation(
@@ -92,26 +96,24 @@
   }
 
   DCHECK(!PrefetchingActive());
-  urls_to_prefetch_.clear();
-  prefetched_responses_.clear();
-  num_prefetches_attempted_ = 0;
+  page_ = std::make_unique<CurrentPageLoad>();
 }
 
 std::unique_ptr<PrefetchedMainframeResponseContainer>
 IsolatedPrerenderTabHelper::TakePrefetchResponse(const GURL& url) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  auto it = prefetched_responses_.find(url);
-  if (it == prefetched_responses_.end())
+  auto it = page_->prefetched_responses.find(url);
+  if (it == page_->prefetched_responses.end())
     return nullptr;
 
   std::unique_ptr<PrefetchedMainframeResponseContainer> response =
       std::move(it->second);
-  prefetched_responses_.erase(it);
+  page_->prefetched_responses.erase(it);
   return response;
 }
 
 bool IsolatedPrerenderTabHelper::PrefetchingActive() const {
-  return !!url_loader_;
+  return page_ && page_->url_loader;
 }
 
 void IsolatedPrerenderTabHelper::Prefetch() {
@@ -119,20 +121,20 @@
   DCHECK(base::FeatureList::IsEnabled(
       features::kPrefetchSRPNavigationPredictions_HTMLOnly));
 
-  url_loader_.reset();
-  if (urls_to_prefetch_.empty()) {
+  page_->url_loader.reset();
+  if (page_->urls_to_prefetch.empty()) {
     return;
   }
 
   if (IsolatedPrerenderMaximumNumberOfPrefetches().has_value() &&
-      num_prefetches_attempted_ >=
+      page_->num_prefetches_attempted >=
           IsolatedPrerenderMaximumNumberOfPrefetches().value()) {
     return;
   }
-  num_prefetches_attempted_++;
+  page_->num_prefetches_attempted++;
 
-  GURL url = urls_to_prefetch_[0];
-  urls_to_prefetch_.erase(urls_to_prefetch_.begin());
+  GURL url = page_->urls_to_prefetch[0];
+  page_->urls_to_prefetch.erase(page_->urls_to_prefetch.begin());
 
   std::unique_ptr<network::ResourceRequest> request =
       std::make_unique<network::ResourceRequest>();
@@ -169,14 +171,14 @@
 
   // TODO(crbug/1023485): Disallow auth challenges.
 
-  url_loader_ =
+  page_->url_loader =
       network::SimpleURLLoader::Create(std::move(request), traffic_annotation);
 
-  // base::Unretained is safe because |url_loader_| is owned by |this|.
-  url_loader_->SetOnRedirectCallback(base::BindRepeating(
+  // base::Unretained is safe because |page_->url_loader| is owned by |this|.
+  page_->url_loader->SetOnRedirectCallback(base::BindRepeating(
       &IsolatedPrerenderTabHelper::OnPrefetchRedirect, base::Unretained(this)));
-  url_loader_->SetAllowHttpErrorResults(true);
-  url_loader_->DownloadToString(
+  page_->url_loader->SetAllowHttpErrorResults(true);
+  page_->url_loader->DownloadToString(
       url_loader_factory_.get(),
       base::BindOnce(&IsolatedPrerenderTabHelper::OnPrefetchComplete,
                      base::Unretained(this), url),
@@ -193,7 +195,7 @@
   if (CheckAndMaybePrefetchURL(redirect_info.new_url)) {
     // The redirect shouldn't count against our prefetch limit if the redirect
     // was followed.
-    num_prefetches_attempted_--;
+    page_->num_prefetches_attempted--;
   }
   // Cancels the current request.
   Prefetch();
@@ -205,10 +207,10 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(PrefetchingActive());
 
-  if (url_loader_->NetError() == net::OK && body &&
-      url_loader_->ResponseInfo()) {
+  if (page_->url_loader->NetError() == net::OK && body &&
+      page_->url_loader->ResponseInfo()) {
     network::mojom::URLResponseHeadPtr head =
-        url_loader_->ResponseInfo()->Clone();
+        page_->url_loader->ResponseInfo()->Clone();
     HandlePrefetchResponse(url, std::move(head), std::move(body));
   }
   Prefetch();
@@ -232,7 +234,7 @@
   std::unique_ptr<PrefetchedMainframeResponseContainer> response =
       std::make_unique<PrefetchedMainframeResponseContainer>(std::move(head),
                                                              std::move(body));
-  prefetched_responses_.emplace(url, std::move(response));
+  page_->prefetched_responses.emplace(url, std::move(response));
 }
 
 void IsolatedPrerenderTabHelper::OnPredictionUpdated(
@@ -260,7 +262,7 @@
   // again here allows us to skip querying for cookies if we won't be
   // prefetching the url anyways.
   if (IsolatedPrerenderMaximumNumberOfPrefetches().has_value() &&
-      num_prefetches_attempted_ >=
+      page_->num_prefetches_attempted >=
           IsolatedPrerenderMaximumNumberOfPrefetches().value()) {
     return;
   }
@@ -343,7 +345,7 @@
     return;
 
   // TODO(robertogden): Consider adding redirect URLs to the front of the list.
-  urls_to_prefetch_.push_back(url);
+  page_->urls_to_prefetch.push_back(url);
 
   if (!PrefetchingActive()) {
     Prefetch();
diff --git a/chrome/browser/prerender/isolated/isolated_prerender_tab_helper.h b/chrome/browser/prerender/isolated/isolated_prerender_tab_helper.h
index a468bf8a..40de2dc 100644
--- a/chrome/browser/prerender/isolated/isolated_prerender_tab_helper.h
+++ b/chrome/browser/prerender/isolated/isolated_prerender_tab_helper.h
@@ -39,7 +39,7 @@
   void SetURLLoaderFactoryForTesting(
       scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory);
   size_t prefetched_responses_size_for_testing() const {
-    return prefetched_responses_.size();
+    return page_ ? page_->prefetched_responses.size() : 0;
   }
 
   // content::WebContentsObserver implementation.
@@ -56,6 +56,28 @@
   explicit IsolatedPrerenderTabHelper(content::WebContents* web_contents);
   friend class content::WebContentsUserData<IsolatedPrerenderTabHelper>;
 
+  // Owns all per-pageload state in the tab helper so that new navigations only
+  // need to reset an instance of this class to clean up previous state.
+  class CurrentPageLoad {
+   public:
+    CurrentPageLoad();
+    ~CurrentPageLoad();
+
+    // The url loader that does all the prefetches. Set only when active.
+    std::unique_ptr<network::SimpleURLLoader> url_loader;
+
+    // An ordered list of the URLs to prefetch.
+    std::vector<GURL> urls_to_prefetch;
+
+    // The number of prefetches that have been attempted on this page.
+    size_t num_prefetches_attempted = 0;
+
+    // All prefetched responses by URL. This is cleared every time a mainframe
+    // navigation commits.
+    std::map<GURL, std::unique_ptr<PrefetchedMainframeResponseContainer>>
+        prefetched_responses;
+  };
+
   // A helper method to make it easier to tell when prefetching is already
   // active.
   bool PrefetchingActive() const;
@@ -94,21 +116,8 @@
 
   scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
 
-  // TODO(robertogden): Consider encapsulating the per-page-load members below
-  // into a separate object.
-
-  std::unique_ptr<network::SimpleURLLoader> url_loader_;
-
-  // An ordered list of the URLs to prefetch.
-  std::vector<GURL> urls_to_prefetch_;
-
-  // The number of prefetches that have been attempted on this page.
-  size_t num_prefetches_attempted_ = 0;
-
-  // All prefetched responses by URL. This is cleared every time a mainframe
-  // navigation commits.
-  std::map<GURL, std::unique_ptr<PrefetchedMainframeResponseContainer>>
-      prefetched_responses_;
+  // Owns all members which need to be reset on a new page load.
+  std::unique_ptr<CurrentPageLoad> page_;
 
   SEQUENCE_CHECKER(sequence_checker_);
 
diff --git a/chrome/browser/renderer_context_menu/quick_answers_menu_observer.cc b/chrome/browser/renderer_context_menu/quick_answers_menu_observer.cc
index e530b481..b9db1a11 100644
--- a/chrome/browser/renderer_context_menu/quick_answers_menu_observer.cc
+++ b/chrome/browser/renderer_context_menu/quick_answers_menu_observer.cc
@@ -173,22 +173,8 @@
   if (command_id == IDC_CONTENT_CONTEXT_QUICK_ANSWERS_INLINE_QUERY) {
     SendAssistantQuery(query_);
 
-    if (quick_answer_) {
-      base::TimeDelta duration =
-          base::TimeTicks::Now() - quick_answer_received_time_;
-      RecordClick(quick_answer_->result_type, duration);
-    } else {
-      // No result is available.
-
-      // Use default 0 duration for clicks before fetch finish.
-      base::TimeDelta duration;
-      if (!quick_answer_received_time_.is_null()) {
-        // Fetch finish with no result, set the duration to be between fetch
-        // finish and user clicks.
-        duration = base::TimeTicks::Now() - quick_answer_received_time_;
-      }
-      RecordClick(ResultType::kNoResult, duration);
-    }
+    quick_answers_client_->OnQuickAnswerClick(
+        quick_answer_ ? quick_answer_->result_type : ResultType::kNoResult);
   }
 }
 
@@ -216,7 +202,6 @@
                            /*hidden=*/false,
                            /*title=*/TruncateString(kNoResult));
   }
-  quick_answer_received_time_ = base::TimeTicks::Now();
   quick_answer_ = std::move(quick_answer);
 }
 
@@ -225,7 +210,6 @@
                          /*enabled=*/false,
                          /*hidden=*/false,
                          /*title=*/TruncateString(kNetworkError));
-  quick_answer_received_time_ = base::TimeTicks::Now();
 }
 
 void QuickAnswersMenuObserver::OnEligibilityChanged(bool eligible) {
diff --git a/chrome/browser/renderer_context_menu/quick_answers_menu_observer.h b/chrome/browser/renderer_context_menu/quick_answers_menu_observer.h
index 0977444..24d926b 100644
--- a/chrome/browser/renderer_context_menu/quick_answers_menu_observer.h
+++ b/chrome/browser/renderer_context_menu/quick_answers_menu_observer.h
@@ -16,10 +16,6 @@
 class QuickAnswersController;
 }
 
-namespace base {
-class TimeTicks;
-}
-
 class RenderViewContextMenuProxy;
 
 // A class that implements the quick answers menu.
@@ -73,9 +69,6 @@
   std::unique_ptr<chromeos::quick_answers::QuickAnswer> quick_answer_;
 
   ash::QuickAnswersController* quick_answers_controller_ = nullptr;
-
-  // Time when the quick answer is received.
-  base::TimeTicks quick_answer_received_time_;
 };
 
 #endif  // CHROME_BROWSER_RENDERER_CONTEXT_MENU_QUICK_ANSWERS_MENU_OBSERVER_H_
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn
index 24e11e9..0e6fba3 100644
--- a/chrome/browser/resources/BUILD.gn
+++ b/chrome/browser/resources/BUILD.gn
@@ -17,6 +17,7 @@
       "components:closure_compile",
       "engagement:closure_compile",
       "interventions_internals:closure_compile",
+      "media:closure_compile",
       "reset_password:closure_compile",
     ]
     if (is_linux || is_win || is_mac) {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/annotation/user_annotation_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/annotation/user_annotation_handler.js
index ac509e0e..b67218c 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/annotation/user_annotation_handler.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/annotation/user_annotation_handler.js
@@ -94,6 +94,9 @@
    * @return {?string}
    */
   static getAnnotationForNode(node) {
+    if (!node.root) {
+      return null;
+    }
     const url = node.root.docUrl || '';
     if (!UserAnnotationHandler.instance ||
         !UserAnnotationHandler.instance.enabled || !url) {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background.js b/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background.js
index 937703c..5431ea1 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background.js
@@ -260,19 +260,55 @@
    * @private
    */
   speakSplittingText_(textString, queueMode, properties) {
-    const lines = textString.split(/\r\n|\r|\n/);
-    for (const line of lines) {
-      if (line.length > constants.OBJECT_MAX_CHARCOUNT) {
-        // Skip the paragraph when it's really a large paragraph.
-        // TODO(1057904): Try splitting based on spaces.
-        continue;
-      }
-      this.speak(line, queueMode, properties);
+    const chunks = TtsBackground.splitUntilSmall(textString, '\n\r ');
+    for (const chunk of chunks) {
+      this.speak(chunk, queueMode, properties);
       queueMode = QueueMode.QUEUE;
     }
   }
 
   /**
+   * Splits |text| until each substring's length is smaller than or equal to
+   * constants.OBJECT_MAX_CHARCOUNT.
+   * @param {string} text
+   * @param {string} delimiters
+   * @return {!Array<string>}
+   */
+  static splitUntilSmall(text, delimiters) {
+    if (text.length == 0) {
+      return [];
+    }
+
+    if (text.length <= constants.OBJECT_MAX_CHARCOUNT) {
+      return [text];
+    }
+
+    const midIndex = text.length / 2;
+    if (!delimiters) {
+      return TtsBackground
+          .splitUntilSmall(text.substring(0, midIndex), delimiters)
+          .concat(TtsBackground.splitUntilSmall(
+              text.substring(midIndex, text.length), delimiters));
+    }
+
+    const delimiter = delimiters[0];
+    let splitIndex = text.lastIndexOf(delimiter, midIndex);
+    if (splitIndex == -1) {
+      splitIndex = text.indexOf(delimiter, midIndex);
+    }
+
+    if (splitIndex == -1) {
+      delimiters = delimiters.slice(1);
+      return TtsBackground.splitUntilSmall(text, delimiters);
+    }
+
+    return TtsBackground
+        .splitUntilSmall(text.substring(0, splitIndex), delimiters)
+        .concat(TtsBackground.splitUntilSmall(
+            text.substring(splitIndex + 1, text.length), delimiters));
+  }
+
+  /**
    * Use the speech queue to handle the given speech request.
    * @param {Utterance} utterance The utterance to speak.
    * @param {QueueMode} queueMode The queue mode.
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background_test.js
index 3c7e754..0da574e5 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background_test.js
@@ -199,11 +199,52 @@
     spokenTextStrings.push(utterance.textString);
   };
 
-  const baseText = 'This is a very long text.\n';
-  const numRepeats =
-      Math.floor(constants.OBJECT_MAX_CHARCOUNT / baseText.length);
-  const text = baseText + baseText.repeat(numRepeats);
-
+  // There are three new lines, but only the first chunk exceeds the max
+  // character count.
+  const text = 'a'.repeat(constants.OBJECT_MAX_CHARCOUNT) + '\n' +
+      'a'.repeat(10) + '\n' +
+      'a'.repeat(10);
   tts.speak(text);
-  assertEquals(1 + numRepeats, spokenTextStrings.length);
+  assertEquals(2, spokenTextStrings.length);
+});
+
+SYNC_TEST_F('ChromeVoxTtsBackgroundTest', 'SplitUntilSmall', function() {
+  const split = TtsBackground.splitUntilSmall;
+
+  // A single delimiter.
+  constants.OBJECT_MAX_CHARCOUNT = 3;
+  assertEqualsJSON(['12', '345', '789'], split('12345a789', 'a'));
+
+  constants.OBJECT_MAX_CHARCOUNT = 4;
+  assertEqualsJSON(['12', '345', '789'], split('12345a789', 'a'));
+
+  constants.OBJECT_MAX_CHARCOUNT = 7;
+  assertEqualsJSON(['12345', '789'], split('12345a789', 'a'));
+
+  constants.OBJECT_MAX_CHARCOUNT = 10;
+  assertEqualsJSON(['12345a789'], split('12345a789', 'a'));
+
+  // Multiple delimiters.
+  constants.OBJECT_MAX_CHARCOUNT = 3;
+  assertEqualsJSON(['12', '34', '57', '89'], split('1234b57a89', 'ab'));
+
+  constants.OBJECT_MAX_CHARCOUNT = 4;
+  assertEqualsJSON(['1234', '57', '89'], split('1234b57a89', 'ab'));
+
+  constants.OBJECT_MAX_CHARCOUNT = 5;
+  assertEqualsJSON(['12345', '789'], split('12345b789a', 'ab'));
+  assertEqualsJSON(['12345', '789a'], split('12345b789a', 'ba'));
+
+  // No delimiters.
+  constants.OBJECT_MAX_CHARCOUNT = 3;
+  assertEqualsJSON(['12', '34', '57', '89'], split('12345789', ''));
+
+  constants.OBJECT_MAX_CHARCOUNT = 4;
+  assertEqualsJSON(['1234', '5789'], split('12345789', ''));
+
+  // Some corner cases.
+  assertEqualsJSON([], split('', ''));
+  assertEqualsJSON(['a'], split('a', ''));
+  assertEqualsJSON(['a'], split('a', 'a'));
+  assertEqualsJSON(['a'], split('a', 'b'));
 });
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_am.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_am.xtb
index 1a9ccf9..9a3930a 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_am.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_am.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">ምርጫው</translation>
 <translation id="8066678206530322333">ሰንደቅ</translation>
 <translation id="8076492880354921740">ትሮች</translation>
+<translation id="8083115023881784332">የአሁን የChromeVox ትኩረት የለም። ወደ አስጀማሪው ለመሄድ Alt+Shift+L ይጫኑ።</translation>
 <translation id="8091452896542422286">ክፍተት</translation>
 <translation id="8096975275316362544">ሚንት ክሬም</translation>
 <translation id="8098587210054821856">መከለያ ግራጫ</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_az.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_az.xtb
index 296a53f..dea835f 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_az.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_az.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">Seçim:</translation>
 <translation id="8066678206530322333">Banner</translation>
 <translation id="8076492880354921740">Tablar</translation>
+<translation id="8083115023881784332">Hazırda seçilmiş ChromeVox yoxdur. Başladıcıya keçmək üçün Alt+Shift+L düymələrinə basın.</translation>
 <translation id="8091452896542422286">Boşluq</translation>
 <translation id="8096975275316362544">Nanə Rəngi</translation>
 <translation id="8098587210054821856">Barıt rəngi</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_be.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_be.xtb
index 469a5a5..46e048c 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_be.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_be.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">Выбрана:</translation>
 <translation id="8066678206530322333">Банер</translation>
 <translation id="8076492880354921740">Укладкі</translation>
+<translation id="8083115023881784332">Няма бягучага фокуса ChromeVox. Націсніце Alt+Shift+L, каб перайсці на панэль запуску.</translation>
 <translation id="8091452896542422286">Прабел</translation>
 <translation id="8096975275316362544">Мятна-крэмавы</translation>
 <translation id="8098587210054821856">Шыферна-шэры</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cs.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cs.xtb
index 2a3fdd7..7ec68a1 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cs.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cs.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">Výběr je</translation>
 <translation id="8066678206530322333">Banner</translation>
 <translation id="8076492880354921740">Karty</translation>
+<translation id="8083115023881784332">ChromeVox nemá žádný aktuální výběr. Stisknutím kláves Alt+Shift+L přejdete do spouštěče.</translation>
 <translation id="8091452896542422286">Mezera</translation>
 <translation id="8096975275316362544">Mentolová</translation>
 <translation id="8098587210054821856">Břidlicová šedá</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb
index 8f47f6f..3f1258bed 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">Ausgewählt ist</translation>
 <translation id="8066678206530322333">Banner</translation>
 <translation id="8076492880354921740">Tabs</translation>
+<translation id="8083115023881784332">Kein aktueller ChromeVox-Fokus. Sie können mit Alt + Umschalttaste + L zum Launcher gehen.</translation>
 <translation id="8091452896542422286">Leertaste</translation>
 <translation id="8096975275316362544">Cremige Minze</translation>
 <translation id="8098587210054821856">Schiefergrau</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb
index e2010cb..ea3aeee 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">La selección es</translation>
 <translation id="8066678206530322333">Banner</translation>
 <translation id="8076492880354921740">Pestañas</translation>
+<translation id="8083115023881784332">No hay un enfoque actual de ChromeVox. Presiona Alt + mayúscula + L para ir al Selector.</translation>
 <translation id="8091452896542422286">Espacio</translation>
 <translation id="8096975275316362544">Crema de menta</translation>
 <translation id="8098587210054821856">Gris pizarra</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_eu.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_eu.xtb
index 826d5d5..4d860b3 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_eu.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_eu.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">Hautapena hau da</translation>
 <translation id="8066678206530322333">Iragarki-banda</translation>
 <translation id="8076492880354921740">Fitxak</translation>
+<translation id="8083115023881784332">Ez dago ezer fokuratuta ChromeVox-en. Sakatu Alt + Maius + L abiarazlera joateko.</translation>
 <translation id="8091452896542422286">Zuriunea</translation>
 <translation id="8096975275316362544">Menda-kolore oso argikoa</translation>
 <translation id="8098587210054821856">Arbel-grisa</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb
index 94a6b32..382e4d8 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">مورد انتخابی عبارتست از</translation>
 <translation id="8066678206530322333">بنر</translation>
 <translation id="8076492880354921740">برگه‌ها</translation>
+<translation id="8083115023881784332">‏درحال حاضر تمرکزی در ChromeVox وجود ندارد. برای رفتن به راه‌انداز، Alt+Shift+L را فشار دهید.</translation>
 <translation id="8091452896542422286">فاصله</translation>
 <translation id="8096975275316362544">کرم نعنایی</translation>
 <translation id="8098587210054821856">سربی</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fil.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fil.xtb
index 389f7940..3ededfe 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fil.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fil.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">Ang pagpipilian ay</translation>
 <translation id="8066678206530322333">Banner</translation>
 <translation id="8076492880354921740">Mga Tab</translation>
+<translation id="8083115023881784332">Walang fino-focus sa kasalukuyan ang ChromeVox. Pindutin ang Alt+Shift+L para pumunta sa launcher.</translation>
 <translation id="8091452896542422286">Puwang</translation>
 <translation id="8096975275316362544">Mint Cream</translation>
 <translation id="8098587210054821856">Slate Grey</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr-CA.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr-CA.xtb
index 84f5476..0cf481d73 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr-CA.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr-CA.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">La sélection est</translation>
 <translation id="8066678206530322333">Bannière</translation>
 <translation id="8076492880354921740">Onglets</translation>
+<translation id="8083115023881784332">ChromeVox ne met en évidence aucun texte à l'écran en ce moment. Appuyez sur Alt+Majuscule+L pour accéder au lanceur.</translation>
 <translation id="8091452896542422286">Espace</translation>
 <translation id="8096975275316362544">Crême de menthe</translation>
 <translation id="8098587210054821856">Gris ardoise</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr.xtb
index 5346a86..da11ead 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">La sélection est la suivante :</translation>
 <translation id="8066678206530322333">Bannière</translation>
 <translation id="8076492880354921740">Onglets</translation>
+<translation id="8083115023881784332">Aucun élément actuellement sélectionné dans ChromeVox. Appuyez sur Alt+Maj+L pour accéder au lanceur d'applications.</translation>
 <translation id="8091452896542422286">Espace</translation>
 <translation id="8096975275316362544">Crème de menthe</translation>
 <translation id="8098587210054821856">Gris ardoise</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb
index 0fd521b..910a7c4 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">Pemilihannya adalah</translation>
 <translation id="8066678206530322333">Spanduk</translation>
 <translation id="8076492880354921740">Tab</translation>
+<translation id="8083115023881784332">Saat ini tidak ditemukan fokus ChromeVox. Tekan Alt+Shift+L untuk membuka peluncur.</translation>
 <translation id="8091452896542422286">Spasi</translation>
 <translation id="8096975275316362544">Mint Cream</translation>
 <translation id="8098587210054821856">Slate Grey</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ja.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ja.xtb
index 8e45574..c24e736 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ja.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ja.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">現在選択しているのは、</translation>
 <translation id="8066678206530322333">バナー</translation>
 <translation id="8076492880354921740">タブ</translation>
+<translation id="8083115023881784332">ChromeVox のフォーカスが定義されていません。Alt+Shift+L キーを押してランチャーに移動してください。</translation>
 <translation id="8091452896542422286">スペース</translation>
 <translation id="8096975275316362544">ミントクリーム</translation>
 <translation id="8098587210054821856">スレートグレー</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ka.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ka.xtb
index bcaa4438..a273624 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ka.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ka.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">არჩეულია</translation>
 <translation id="8066678206530322333">ბანერი</translation>
 <translation id="8076492880354921740">ჩანართები</translation>
+<translation id="8083115023881784332">ChromeVox-ის ფოკუსში ამჟამად არაფერია მოქცეული. გამშვებზე გადასასვლელად დააჭირეთ კლავიშთა შემდეგ კომბინაციას: Alt+Shift+L.</translation>
 <translation id="8091452896542422286">შორისი</translation>
 <translation id="8096975275316362544">პიტნის კრემისფერი</translation>
 <translation id="8098587210054821856">ასპიდისფერი ნაცრისფერი</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb
index 91e7dd5..282bf34 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">Таңдау</translation>
 <translation id="8066678206530322333">Баннер</translation>
 <translation id="8076492880354921740">Қойындылар</translation>
+<translation id="8083115023881784332">Ағымдағы ChromeVox фокусы жоқ. Іске қосу панеліне өту үшін Alt+Shift+L пернелерін басыңыз.</translation>
 <translation id="8091452896542422286">Бос орын</translation>
 <translation id="8096975275316362544">Көкшіл жасыл</translation>
 <translation id="8098587210054821856">Көкшіл сұр</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb
index b517c41..7e99aa84 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">ការជ្រើសរើសគឺ</translation>
 <translation id="8066678206530322333">បដា</translation>
 <translation id="8076492880354921740">ផ្ទាំង</translation>
+<translation id="8083115023881784332">គ្មានការផ្ដោត ChromeVox បច្ចុប្បន្នទេ។ ចុច Alt+Shift+L ដើម្បីចូលទៅកាន់កម្មវិធីចាប់ផ្ដើម។</translation>
 <translation id="8091452896542422286">ដកឃ្លា</translation>
 <translation id="8096975275316362544">បៃតងចាស់</translation>
 <translation id="8098587210054821856">ប្រផេះ</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb
index 1493a04..059c67d 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">ಆಯ್ಕೆಯು</translation>
 <translation id="8066678206530322333">ಬ್ಯಾನರ್</translation>
 <translation id="8076492880354921740">ಟ್ಯಾಬ್‌ಗಳು</translation>
+<translation id="8083115023881784332">ಪ್ರಸ್ತುತ, ChromeVox ಫೋಕಸ್ ಇಲ್ಲ. ಲಾಂಚರ್‌ಗೆ ಹೋಗಲು, Alt+Shift+L ಒತ್ತಿ.</translation>
 <translation id="8091452896542422286">ಸ್ಪೇಸ್</translation>
 <translation id="8096975275316362544">ಮಿಂಟ್ ಕ್ರೀಮ್</translation>
 <translation id="8098587210054821856">ಸ್ಲೇಟ್ ಬೂದು</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ko.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ko.xtb
index 7d0304d..2cbb682 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ko.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ko.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">현재 선택</translation>
 <translation id="8066678206530322333">배너</translation>
 <translation id="8076492880354921740">탭</translation>
+<translation id="8083115023881784332">현재 ChromeVox 포커스가 없습니다. Alt+Shift+L을 눌러 런처로 이동하세요.</translation>
 <translation id="8091452896542422286">공백</translation>
 <translation id="8096975275316362544">민트 크림</translation>
 <translation id="8098587210054821856">슬레이트 그레이</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb
index 3a90245..248bd00 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">Тандалды –</translation>
 <translation id="8066678206530322333">Баннер</translation>
 <translation id="8076492880354921740">Өтмөктөр</translation>
+<translation id="8083115023881784332">Учурда ChromeVox фокусу жок. Alt+Shift+L баскычтарын басып, Жүргүзгүчкө өтүңүз.</translation>
 <translation id="8091452896542422286">Боштук</translation>
 <translation id="8096975275316362544">Ач көгүш-жашыл</translation>
 <translation id="8098587210054821856">Көгүш боз</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lo.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lo.xtb
index 9eb69730..2fc2715e 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lo.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lo.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">ການ​​ເລືອກ​ແມ່ນ</translation>
 <translation id="8066678206530322333">ປ້າຍ​ໂຄ​ສະ​ນາ</translation>
 <translation id="8076492880354921740">ແຖບ</translation>
+<translation id="8083115023881784332">ບໍ່ມີໂຟກັສ ChromeVox ໃນຕອນນີ້. ກົດ Alt+Shift+L ເພື່ອໄປຫາຕົວເປີດໃຊ້.</translation>
 <translation id="8091452896542422286">ຍະຫວ່າງ</translation>
 <translation id="8096975275316362544">ສີຂຽວຄຣີມ</translation>
 <translation id="8098587210054821856">ສີເທົາອົມຟ້າ</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mk.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mk.xtb
index 7c0970c..e5164dd2 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mk.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mk.xtb
@@ -1140,6 +1140,7 @@
 <translation id="8065607967589909823">Изборот е</translation>
 <translation id="8066678206530322333">Банер</translation>
 <translation id="8076492880354921740">Картички</translation>
+<translation id="8083115023881784332">Ништо не е нагласено на ChromeVox во моментов. Притиснете Alt + Shift + L за да отидете на стартерот.</translation>
 <translation id="8091452896542422286">Празно место</translation>
 <translation id="8096975275316362544">Боја на шлаг од нане</translation>
 <translation id="8098587210054821856">Сива како шкрилец</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb
index ab51a60f..5dc1ed28 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">തിരഞ്ഞെടുത്തത് ഇതാണ്</translation>
 <translation id="8066678206530322333">ബാനർ</translation>
 <translation id="8076492880354921740">ടാബുകള്‍‌</translation>
+<translation id="8083115023881784332">നിലവിൽ ChromeVox-ന് ഫോക്കസൊന്നുമില്ല. ലോഞ്ചറിലേക്ക് പോകാൻ Alt+Shift+L അമർത്തുക.</translation>
 <translation id="8091452896542422286">സ്‌പെയ്‌സ്</translation>
 <translation id="8096975275316362544">മിൻ്റ് ക്രീം</translation>
 <translation id="8098587210054821856">സ്ലേറ്റ് ഗ്രേ</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mr.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mr.xtb
index 5e806b8..f006d8d4 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mr.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mr.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">निवड ही आहे</translation>
 <translation id="8066678206530322333">बॅनर</translation>
 <translation id="8076492880354921740">टॅब</translation>
+<translation id="8083115023881784332">सद्य ChromeVox फोकस नाही. लाँचरवर जाण्यासाठी Alt+Shift+L दाबा.</translation>
 <translation id="8091452896542422286">मोकळी जागा</translation>
 <translation id="8096975275316362544">दुधाळ</translation>
 <translation id="8098587210054821856">भडक राखाडी</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb
index 321eb49..42d01cd 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">Pilihannya ialah</translation>
 <translation id="8066678206530322333">Sepanduk</translation>
 <translation id="8076492880354921740">Tab</translation>
+<translation id="8083115023881784332">Tiada fokus ChromeVox semasa. Tekan Alt+Shift+L untuk mendapatkan pelancar.</translation>
 <translation id="8091452896542422286">Ruang</translation>
 <translation id="8096975275316362544">Krim Pudina</translation>
 <translation id="8098587210054821856">Kelabu Loh</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ru.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ru.xtb
index 97687f2..5d3afc6 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ru.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ru.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">Выбранный фрагмент.</translation>
 <translation id="8066678206530322333">Баннер</translation>
 <translation id="8076492880354921740">Вкладки</translation>
+<translation id="8083115023881784332">Нет элементов, выделенных программой ChromeVox. Чтобы открыть панель запуска, нажмите Alt + Shift + L.</translation>
 <translation id="8091452896542422286">Пробел</translation>
 <translation id="8096975275316362544">Мятные сливки</translation>
 <translation id="8098587210054821856">Аспидно-серый</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb
index fcd251f7..9ef99c21 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb
@@ -34,6 +34,13 @@
 <translation id="1201402288615127009">அடுத்து</translation>
 <translation id="1206619573307042055">மார்கியூ</translation>
 <translation id="1207086294218137981">அடுத்த 4ம் நிலை தலைப்பு எதுவும் இல்லை</translation>
+<translation id="1212770441379271564">அடுத்துவரும் சில ஷார்ட்கட்கள் ChromeVox கட்டளைகள் இல்லை, எனினும் அவை Chromeமைச் சிறப்பாகப் பயன்படுத்த உதவியாக இருக்கும்.
+    பட்டன்கள், இணைப்புகள் போன்ற செயல்படக்கூடியவற்றில் அடுத்தடுத்து செல்ல Tab விசையை அழுத்தவும். பின்செல்ல Shift+Tab விசைகளை அழுத்தவும்.
+    ஆம்னிபாக்ஸ் என்றழைக்கப்படும் Chrome உலாவியின் முகவரிப் பட்டிக்குச் செல்ல Control+L விசைகளை அழுத்தவும்.
+    தானாகவே புதிய தாவலைத் திறந்து, அதற்குச் செல்ல Control+T விசைகளை அழுத்தவும். உங்கள் கர்சர் ஆம்னிபாக்ஸில் இருக்கும்.
+    தாவலை மூட, Control+W விசைகளை அழுத்தவும்.
+    திறந்துள்ள தாவல்களில் அடுத்தடுத்து செல்ல, Control+Tab விசைகளை அழுத்தவும்.
+    Chrome உலாவி மெனுவைத் திறக்க, Alt+F விசைகளை அழுத்தவும்.</translation>
 <translation id="1213216066620407844">ChromeVox - Chrome க்கு குரல் கொடுக்கிறது</translation>
 <translation id="1225969361094801578">டார்க் ஸ்லேட் கிரே</translation>
 <translation id="1229276918471378188">முந்தைய தாவல்</translation>
@@ -316,7 +323,7 @@
 <translation id="3104705064753753826">alrt dlg</translation>
 <translation id="3109724472072898302">சுருக்கப்பட்டது</translation>
 <translation id="3112457281078985179">ChromeVoxஐ இயக்க அல்லது முடக்க, கன்ட்ரோல்+ஆல்ட்+Z விசைகளை அழுத்தவும்.</translation>
-<translation id="3128896337293924532">அடுத்த தொகுப்பு ஒதுக்கீடு எதுவும் இல்லை</translation>
+<translation id="3128896337293924532">அடுத்த பிளாக்கோட் எதுவும் இல்லை</translation>
 <translation id="3134461040845705080">rdonly</translation>
 <translation id="3137663468179739624">ஆலிவ்</translation>
 <translation id="3138767756593758860">லேண்ட்மார்க்குகளின் பட்டியலைக் காட்டு</translation>
@@ -344,7 +351,7 @@
 <translation id="3244209481693235975"><ph name="LANGUAGE" />: <ph name="CONTENT" /></translation>
 <translation id="3260949043575829030">இதேபோன்ற முந்தைய கட்டளை</translation>
 <translation id="3270069636408109001">அடுத்த அட்டவணை எதுவும் இல்லை</translation>
-<translation id="3273791280096244679">லேபிளைச் சேமி</translation>
+<translation id="3273791280096244679">சேமி லேபிள்</translation>
 <translation id="3283583562490372694">தேர்வுசெய்யப்படவில்லை</translation>
 <translation id="3286372614333682499">போர்ட்ரெயிட்</translation>
 <translation id="3286390186030710347">ஸ்லைடர்</translation>
@@ -360,7 +367,7 @@
 <translation id="3324983252691184275">அடர்சிவப்பு</translation>
 <translation id="3338224621010291843"><ph name="VALUE" /> <ph name="NAME" /> ஸ்லைடர்</translation>
 <translation id="3345360775039279114">ChromeVox இப்போது செயலில் இல்லை</translation>
-<translation id="3346780868293545834">ஃபோகஸை மாற்ற மவுஸைப் பயன்படுத்து</translation>
+<translation id="3346780868293545834">ஃபோகஸை மாற்ற, மவுஸைப் பயன்படுத்து</translation>
 <translation id="335581015389089642">பேச்சு</translation>
 <translation id="3356951775008366684">வார்த்தையின் ஒலியியல் உச்சரிப்பைத் தெரிவிக்கும்</translation>
 <translation id="3359142382821736686">seprtr</translation>
@@ -369,7 +376,7 @@
 <translation id="3389259863310851658">முந்தைய வடிவப் புலம்</translation>
 <translation id="3392045790598181549"><ph name="NAME" />, மெனு உருப்படி</translation>
 <translation id="3393605254399152980">நீங்கள் தொடுவதைப் பேச்சுவடிவில் கேட்க, ஒரு விரலை இழுக்கவும்</translation>
-<translation id="3399215457750029150">ஒத்த கூறுகள் எதுவும் இல்லை</translation>
+<translation id="3399215457750029150">ஒத்த உறுப்புகள் எதுவும் இல்லை</translation>
 <translation id="3406283310380167331">படிவங்கள் பட்டியலைக் காட்டு</translation>
 <translation id="3414400929511680526">ஆலிஸ் புளூ</translation>
 <translation id="3418936350470374046">கீழே கலம் எதுவும் இல்லை</translation>
@@ -432,7 +439,7 @@
 <translation id="3857141338659865495">மீடியம் டெர்க்காய்ஸ்</translation>
 <translation id="3870295413168340326">முந்தைய 3ம் நிலை தலைப்பு எதுவும் இல்லை</translation>
 <translation id="3887576927692165210">ed</translation>
-<translation id="3888566098798982329">வேறுபட்ட கூறுகள் எதுவும் இல்லை</translation>
+<translation id="3888566098798982329">வேறுபட்ட உறுப்புகள் எதுவும் இல்லை</translation>
 <translation id="3897092660631435901">மெனு</translation>
 <translation id="3907138069015388678">lstgrd</translation>
 <translation id="3909320334364316587">முந்தைய 6 ஆம் படிநிலை தலைப்பு</translation>
@@ -487,6 +494,7 @@
 <translation id="421884353938374759">வண்ணத் தேர்வுக் கருவி</translation>
 <translation id="4221012616705981690">முந்தைய பட்டியல் எதுவும் இல்லை</translation>
 <translation id="4221071177874897997">தடிமனானவற்றைக் குறி:</translation>
+<translation id="4225355998815256469">படிவக் கட்டுப்பாடுகள்</translation>
 <translation id="4229646983878045487">date time</translation>
 <translation id="4230834257931120629">லைட் ஸ்லேட் கிரே</translation>
 <translation id="4231102694147661229">‘டெவெலப்பர் விருப்பங்களை’ இயக்கு</translation>
@@ -522,7 +530,7 @@
 <translation id="4479068155583208887">ஃபயர் பிரிக்</translation>
 <translation id="4482330759234983253">முந்தைய அட்டவணை</translation>
 <translation id="4491109536499578614">படம்</translation>
-<translation id="4493933053716737069">முந்தைய உறுப்பு எதுவும் இல்லை</translation>
+<translation id="4493933053716737069">முந்தைய கட்டுரை எதுவும் இல்லை</translation>
 <translation id="4505167975768625962">செருகும்</translation>
 <translation id="4511186779140817916">பிலாஞ்ச்டு ஆல்மண்ட்</translation>
 <translation id="451510441928265982">முந்தைய 2ம் நிலை தலைப்பு எதுவும் இல்லை</translation>
@@ -541,6 +549,89 @@
 <translation id="461613135510474570">வாக்கியம்</translation>
 <translation id="4623097797855662355">முத்திரை</translation>
 <translation id="463135993322337640">புதிய அம்சங்களைப் பார்க்க, ChromeVox o, n ஆகியவற்றை அழுத்தவும்</translation>
+<translation id="4646606380313237501">{"ar": "அரபிக்",
+    "as": "அசாமீஸ்",
+    "aw": "அவாதி",
+    "be": "பெங்காலி",
+    "bg": "பல்கேரியன்",
+    "bh": "பீஹாரி",
+    "bo": "திபெத்தியன்",
+    "br": "பிராஜ்",
+    "ca": "கேட்டலன்",
+    "ckb": "சொரானி ",
+    "cs": "செக்",
+    "cy": "வெல்ஷ்",
+    "da": "டேனிஷ்",
+    "de": "ஜெர்மன்",
+    "de_CH": "ஜெர்மன் (சுவிட்சர்லாந்து)",
+    "de_DE": "ஜெர்மன் (ஜெர்மனி)",
+    "dra": "திராவிடம்",
+    "el": "கிரேக்கம்",
+    "en": "ஆங்கிலம்",
+    "en_CA": "ஆங்கிலம் (கனடா)",
+    "en_GB": "ஆங்கிலம் (யுனைடட் கிங்டம்)
+    "en_US": "ஆங்கிலம் (அமெரிக்கா)",
+    "eo": "எஸ்பெரன்டோ",
+    "es": "ஸ்பானிஷ்",
+    "et": "எஸ்தோனியன்",
+    "fa": "பெர்சியன்",
+    "fr": "பிரெஞ்சு",
+    "fr_CA": "பிரெஞ்சு (கனடா)",
+    "fr_FR": "பிரெஞ்சு (பிரான்ஸ்)",
+    "fi": "ஃபின்னிஷ்",
+    "ga": "ஐரிஷ்",
+    "gd": "கேலிக்",
+    "gon": "கோண்டி",
+    "gu": "குஜராத்தி",
+    "he": "ஹீப்ரு",
+    "hi": "இந்தி",
+    "hr": "குரோஷியன்",
+    "hu": "ஹங்கேரியன்",
+    "hy": "ஆர்மீனியன்",
+    "is": "ஐஸ்லாண்டிக்",
+    "it": "இத்தாலியன்",
+    "iu": "இனுக்டிடுட்",
+    "ka": "கன்னடம்",
+    "kh": "காசி",
+    "ko": "கொரியன்",
+    "kok": "கொங்கனி",
+    "kru": "குருக்",
+    "ks": "காஷ்மீரி",
+    "lt": "லிதுவேனியன்",
+    "lv": "லத்வியன்",
+    "mao": "மாவோரி",
+    "ml": "மலையாளம்",
+    "mt": "மால்டீஸ்",
+    "mwr": "மார்வாரி",
+    "mn": "மங்கோலியன்",
+    "mun": "முண்டா",
+    "nb": "நார்வேஜியன் பொக்மால்",
+    "ne": "நேபாளி",
+    "nl": "டச்சு",
+    "no": "நார்வேஜியன்",
+    "or": "ஒரியா",
+    "pi": "பாலி",
+    "pl": "போலிஷ்",
+    "pt": "போர்ச்சுகீஸ்",
+    "pu": "பஞ்சாபி",
+    "ro": "ரோமானியன்",
+    "ru": "ரஷ்யன்",
+    "sa": "சமஸ்கிருதம்",
+    "si": "சிந்தி ",
+    "sin": "சிங்களம்",
+    "sk": "ஸ்லோவாக்",
+    "sl": "ஸ்லோவேனியன்",
+    "sr": "செர்பியன்",
+    "sv": "ஸ்வீடிஷ்",
+    "ta": "தமிழ்",
+    "te": "தெலுங்கு",
+    "tr": "டர்கிஷ்",
+    "tsn": "ஆஃப்ரிகான்ஸ்",
+    "uk": "உக்ரைனியன்",
+    "ur": "உருது",
+    "vi": "வியட்னாமீஸ்",
+    "zh": "சீனம்",
+    "zh_TW": "சீனம் (பாரம்பரிய ஹான்)"}</translation>
 <translation id="4647836961514597010">வண்ணத் தேர்வுக் கருவி</translation>
 <translation id="4660783501463101648">கிளாசிக் அகற்றப்பட்டது. ChromeVox கிளாசிக்கிற்கு மீண்டும் மாறுவதற்கான விசைப்பலகை நிலைமாற்றி அகற்றப்பட்டது.</translation>
 <translation id="4661075872484491155">tree</translation>
@@ -590,7 +681,7 @@
 <translation id="495170559598752135">செயல்கள்</translation>
 <translation id="4953585991029886728">உரையைத் திருத்து</translation>
 <translation id="4954534434583049121">முந்தைய மேற்கோள் குறி</translation>
-<translation id="4967543208652787610">ஏற்றுக்கொள்ள enterரும், ரத்துசெய்ய escapeபும் அழுத்தவும், அடுத்ததற்குச் செல்ல down என்பதையும் முந்தையதற்குச் செல்ல up என்பதையும் அழுத்தவும்</translation>
+<translation id="4967543208652787610">ஏற்றுக்கொள்ள enter, ரத்துசெய்ய escape, அடுத்ததற்குச் செல்ல down, முந்தையதற்குச் செல்ல up என்பதை அழுத்தவும்</translation>
 <translation id="4973717656530883744">குறைந்தபட்சம் <ph name="X" /></translation>
 <translation id="4973762002207131920"><ph name="KEY" /> க்கு மாற்றப்பட்டது.</translation>
 <translation id="4974612477719259470">முந்தைய பட்டன் எதுவும் இல்லை</translation>
@@ -626,7 +717,7 @@
 <translation id="5138912041966667164">மீடியம் சிலேட்டு புளூ</translation>
 <translation id="5140016802771803559">ரிபெக்கா பர்ப்பிள்</translation>
 <translation id="5158275234811857234">அட்டை</translation>
-<translation id="5170206230005240598">பிரெய்ல் தலைப்புகள் இயக்கப்பட்டுள்ளன</translation>
+<translation id="5170206230005240598">பிரெய்ல் வசனங்கள் இயக்கப்பட்டுள்ளது</translation>
 <translation id="517143700877085897">, தேர்வுநீக்கப்பட்டது</translation>
 <translation id="5177546608148437145">கீழே தொடர்புடைய புலங்களில் விசைப்பலகை குறுக்குவழிகளை உள்ளிடுவதன் மூலம் அடிக்கடி பயன்படுத்தப்படும் கட்டளைகளுக்கு அவற்றைப் பிரத்தியேகமாக்கலாம்</translation>
 <translation id="5183440668879371625">பிரெய்ல் முந்தைய வரி</translation>
@@ -646,6 +737,14 @@
 <translation id="5320727453979144100">ஸ்டிக்கி முறை இயக்கப்பட்டது</translation>
 <translation id="5321085947096604457">{COUNT,plural, =1{காற்புள்ளி}other{# காற்புள்ளிகள்}}</translation>
 <translation id="532371086589123547"><ph name="VALUE" />, உரைப் பெட்டி</translation>
+<translation id="532485153932049746">உரை வடிவமைப்பு
+    <ph name="FONT_SIZE_STRING" />
+    <ph name="COLOR_STRING" />
+    <ph name="BOLD_STRING" />
+    <ph name="ITALIC_STRING" />
+    <ph name="UNDERLINE_STRING" />
+    <ph name="LINE_THROUGH_STRING" />
+    <ph name="FONT_FAMILY_STRING" /></translation>
 <translation id="5330443287809544590"><ph name="NAME" />, இணைப்பு</translation>
 <translation id="5331522683003474486">ஒன்றிரண்டு சுவிட்சுகளைக் கொண்டு சாதனத்தை நிர்வகிக்கும்.</translation>
 <translation id="5336381510091010269">autoinl+lst</translation>
@@ -658,6 +757,7 @@
 <translation id="5402367795255837559">பிரெய்ல்</translation>
 <translation id="5402791055281059602">கட்டாய விழிப்பூட்டல்</translation>
 <translation id="5407530583102765689">{COUNT,plural, =1{அரைப்புள்ளி}other{# அரைப்புள்ளிகள்}}</translation>
+<translation id="5420259671171615858">மெனுக்களில் தேடுக</translation>
 <translation id="5435274640623994081">ஆடியோ செய்திகள் பதிவிடலை இயக்கு</translation>
 <translation id="5436105723448703439">{COUNT,plural, =1{குறைவிற்கான குறி}other{# குறைவிற்கான குறிகள்}}</translation>
 <translation id="5444587279251314700">(செயலில்)</translation>
@@ -700,7 +800,7 @@
 <translation id="5682113568322255809">லேண்ட்மார்க்</translation>
 <translation id="5683155931978483559">முந்தைய செக் பாக்ஸ்</translation>
 <translation id="5684277895745049190">பட்டியல்</translation>
-<translation id="570138335948847274">ChromeVoxஸை செயலில் அல்லது செயலற்ற நிலைக்கு மாற்று</translation>
+<translation id="570138335948847274">ChromeVoxஸை செயல் நிலைக்கு அல்லது செயலற்ற நிலைக்கு மாற்று</translation>
 <translation id="5703716265115423771">ஒலியளவைக் குறைக்கும்</translation>
 <translation id="5704453877234251104">தானாக நிரப்ப, மேல்நோக்கிய அல்லது கீழ்நோக்கிய அம்புக்குறி விசையை அழுத்தவும்</translation>
 <translation id="5709192780268610569">நீண்ட விளக்கம் இல்லை</translation>
@@ -717,7 +817,7 @@
 <translation id="5805940204952508776">இரண்டு விரல்களால் தட்டவும்</translation>
 <translation id="5819072574982403430">ட்ரீ உருப்படி</translation>
 <translation id="5822819874379903994">டார்க் டெர்க்காய்ஸ்</translation>
-<translation id="5824976764713185207">பக்கம் ஏற்றப்பட்டதும், அதைத் தானாகவே ரீட் செய்</translation>
+<translation id="5824976764713185207">பக்கம் ஏற்றப்பட்டதும், அதைத் தானாகவே வாசி</translation>
 <translation id="5826479389509458994"><ph name="ROW" /> வரிசை <ph name="COL" /> நெடுவரிசை</translation>
 <translation id="5833044594931167190">ARIA லேண்ட்மார்க்குகள் எதுவும் இல்லை</translation>
 <translation id="5842625257683688671">அடுத்த கிராஃபிக் எதுவும் இல்லை</translation>
@@ -729,7 +829,7 @@
 <translation id="5869546221129391014">கட்டம்</translation>
 <translation id="5876817486144482042">பேச்சு ஒலியளவைக் குறை</translation>
 <translation id="5878908838135392163">பவுடர் புளூ</translation>
-<translation id="588108970619830498">’உரையிலிருந்து பேச்சு’ அமைப்புகளை இயல்பு மதிப்புகளுக்கு மீட்டமைக்கப்பட்டது</translation>
+<translation id="588108970619830498">’உரையிலிருந்து பேச்சு’ அமைப்புகள் இயல்பு மதிப்புகளுக்கு மீட்டமைக்கப்பட்டன</translation>
 <translation id="5891934789323004067">அட்டவணை</translation>
 <translation id="5899860758576822363">ChromeVox பேசும் போது, குறைந்த ஒலியளவில் இயக்கு</translation>
 <translation id="5901630391730855834">மஞ்சள்</translation>
@@ -769,7 +869,7 @@
 <translation id="6156755592608846750">கலத்தின் இறுதிப்பகுதி</translation>
 <translation id="6158882249329863701"><ph name="TABLECELLROWINDEX" /> வரிசை <ph name="TABLECELLCOLUMNINDEX" /> நெடுவரிசை</translation>
 <translation id="6164829606128959761">மீட்டர்</translation>
-<translation id="6166362019018438352">பிரெய்ல் தலைப்புகள் முடக்கப்பட்டுள்ளன</translation>
+<translation id="6166362019018438352">பிரெய்ல் வசனங்கள் முடக்கப்பட்டுள்ளது</translation>
 <translation id="6169420925157477918">நீண்ட விளக்கத்துடன் உள்ள படம்</translation>
 <translation id="6186305613600865047">பக்கத்தின் கீழ்பகுதிக்குச் செல்லவும்</translation>
 <translation id="6187190722927752226">அக்வாமெரைன்</translation>
@@ -780,7 +880,7 @@
 <translation id="6254901459154107917">அடுத்த திருத்தக்கூடிய உரைப் பகுதி</translation>
 <translation id="6259464875943891919"><ph name="TYPE" /> இலிருந்து வெளியேறினார்.</translation>
 <translation id="6282062888058716985">nav</translation>
-<translation id="6304851457627491382">செய்தியில் இருந்து வெளியேறினார்</translation>
+<translation id="6304851457627491382">உரையாடலில் இருந்து வெளியேறினீர்கள்</translation>
 <translation id="6305702903308659374">ChromeVox பேசும் போது, இயல்பான ஒலியளவில் இயக்கு</translation>
 <translation id="6307969636681130414">அழுத்தப்பட்டது</translation>
 <translation id="6315652249189065725">கீபோர்டு ஷார்ட்கட்கள் மெனுவைத் திறக்கும்</translation>
@@ -791,7 +891,7 @@
 <translation id="6348657800373377022">தொகுப்பு பெட்டி</translation>
 <translation id="6348869651006731065">டிம் கிரே</translation>
 <translation id="6350358010104919766">{COUNT,plural, =1{பொட்டுக்குறி}other{# பொட்டுக்குறிகள்}}</translation>
-<translation id="6357433033180746873">கல உரிமை எதுவும் இல்லை</translation>
+<translation id="6357433033180746873">வலதுபக்கக் கலம் எதுவும் இல்லை</translation>
 <translation id="6364795331201459219">h6</translation>
 <translation id="6368143427468974988">முந்தைய தலைப்பு</translation>
 <translation id="6376999910001533545">மரூன்</translation>
@@ -941,6 +1041,8 @@
 <translation id="7400575256015741911">எழுத்துப் பிழை கண்டுபிடிக்கப்பட்டது</translation>
 <translation id="7408482676469142474">tbl</translation>
 <translation id="7425395583360211003">வரியின் தொடக்கம்</translation>
+<translation id="7429415133937917139">திரையின் மேலிருக்கும் ChromeVox பேனலில், புதுப்பிக்கக்கூடிய பிரெய்ல் காட்சியின்
+    வெளியீட்டை உருவகப்படுத்தும்</translation>
 <translation id="7434509671034404296">டெவலப்பர்</translation>
 <translation id="743783356331413498">உதாரணம்</translation>
 <translation id="7439060726180460871">கோப்பகம்</translation>
@@ -951,7 +1053,7 @@
 <translation id="7518543783849163354">ChromeVox ஆடியோவைத் தற்காலிகமாக நிறுத்த, கன்ட்ரோல் விசையை அழுத்தவும்.</translation>
 <translation id="7532613204005497612">ஜூன்</translation>
 <translation id="7533226154149229506">லைட் கோல்டன் ராட் எல்லோ</translation>
-<translation id="7543255924852002459">லேபிளை நிராகரி</translation>
+<translation id="7543255924852002459">நிராகரி லேபிள்</translation>
 <translation id="7552432549459840808">உதவிகரமான Chrome ஷார்ட்கட்கள்</translation>
 <translation id="7569983096843329377">கருப்பு</translation>
 <translation id="7579911500627256166">புள்ளி <ph name="DOT" /></translation>
@@ -979,6 +1081,8 @@
 <translation id="7693840228159394336">முந்தைய ரேடியோ பட்டன்</translation>
 <translation id="7701196182766842984">autolst</translation>
 <translation id="7714340021005120797">அடுத்த உரை &amp; பட்டியல் பெட்டி எதுவும் இல்லை</translation>
+<translation id="772146615414628379">வாழ்த்துகள்! ChromeVoxஸைப் பயன்படுத்தத் தேவையானவற்றைத் தெரிந்துகொண்டீர்கள். எப்போது வேண்டுமானாலும் Search+Period விசைகளை அழுத்தி ChromeVox கட்டளை மெனுவை நீங்கள் திறக்க முடியும் என்பதை நினைவில் கொள்ளவும். ChromeVox மற்றும் Chrome OS தொடர்பாக மேலும் தெரிந்துகொள்ள பின்வரும் கட்டுரைகளைப் படிக்கவும்.
+    பயிற்சிகளை முடித்த பிறகு, ChromeVoxஸைப் பயன்படுத்தி மூடு பட்டனுக்குச் சென்று அதைக் கிளிக் செய்யவும்.</translation>
 <translation id="7724603315864178912">வெட்டு</translation>
 <translation id="7731785449856576010">அடுத்த ஊடக விட்ஜெட் எதுவும் இல்லை</translation>
 <translation id="773906353055481349">ஒவ்வொரு கலத்திற்கும் செல்ல Search+Ctrl+Alt விசைகளையும் அம்புக்குறி விசைகளையும் அழுத்தவும்</translation>
@@ -997,7 +1101,7 @@
 <translation id="7828956995407538686">அக்டோபர்</translation>
 <translation id="7839679365527550018">முந்தைய வார்த்தை</translation>
 <translation id="7846634333498149051">விசைப்பலகை</translation>
-<translation id="7851132556376253786">அடுத்த உறுப்பு எதுவும் இல்லை</translation>
+<translation id="7851132556376253786">அடுத்த கட்டுரை எதுவும் இல்லை</translation>
 <translation id="7851816175263618915">சில நிறுத்தற்குறிகள் இருக்கலாம்</translation>
 <translation id="7870596830398826354">கணித ML ட்ரீ</translation>
 <translation id="7871691770940645922">விர்ச்சுவல் பிரெய்ல் காட்சி</translation>
@@ -1042,7 +1146,7 @@
 <translation id="8138880386467279117">தொடுதல்</translation>
 <translation id="817440585505441544">{COUNT,plural, =1{அடிக்கோடு}other{# அடிக்கோடுகள்}}</translation>
 <translation id="8179976553408161302">Enter</translation>
-<translation id="8182552736960088316">முந்தைய தொகுப்பு ஒதுக்கீடு எதுவும் இல்லை</translation>
+<translation id="8182552736960088316">முந்தைய பிளாக்கோட் எதுவும் இல்லை</translation>
 <translation id="8184828902145951186">வரிசை</translation>
 <translation id="8186185314313222077">முழுத்திரை நிலையை மாற்றும்</translation>
 <translation id="8199231515320852133">நடப்புக் கலத்தின் தலைப்புகளை அறிவிக்கும்</translation>
@@ -1142,7 +1246,7 @@
 <translation id="8946628535652548639"><ph name="TABLECELLROWINDEX" />வரி.<ph name="TABLECELLCOLUMNINDEX" />நெடு.</translation>
 <translation id="8952400011684167587">முந்தைய ரேடியோ பட்டன் எதுவும் இல்லை</translation>
 <translation id="8957142051395645063">அறிவி</translation>
-<translation id="896035116006462153">நீட்டிக்கப்பட்ட பிரெய்லிக் கட்டளைகளைப் பயன்படுத்த, அணுகல்தன்மை &gt; நிலைத் தட்டு என்பதற்குக் கீழ் உள்ள ஆன்ஸ்க்ரீன் விசைப்பலகையை இயக்கவும்</translation>
+<translation id="896035116006462153">நீட்டிக்கப்பட்ட பிரெய்ல் கட்டளைகளைப் பயன்படுத்த, நிலைத் தட்டு &gt; அணுகல்தன்மை என்பதற்குக் கீழ் உள்ள ஆன்ஸ்க்ரீன் விசைப்பலகையை இயக்கவும்</translation>
 <translation id="8970172509886453271">முந்தைய பிரிவு எதுவும் இல்லை</translation>
 <translation id="8978496506222343566">tltip</translation>
 <translation id="8986362086234534611">மற</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_th.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_th.xtb
index 97506b6..c204e09 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_th.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_th.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">รายการที่เลือกคือ</translation>
 <translation id="8066678206530322333">แบนเนอร์</translation>
 <translation id="8076492880354921740">แท็บ</translation>
+<translation id="8083115023881784332">ไม่มีการโฟกัส ChromeVox ในตอนนี้ กด Alt+Shift+L เพื่อไปที่ Launcher</translation>
 <translation id="8091452896542422286">ช่องว่าง</translation>
 <translation id="8096975275316362544">สีเขียวมิ้นต์ครีม</translation>
 <translation id="8098587210054821856">สีเทาอมฟ้า</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb
index 8f32350a..16796e4d 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">Yapılan seçim:</translation>
 <translation id="8066678206530322333">Banner</translation>
 <translation id="8076492880354921740">Sekmeler</translation>
+<translation id="8083115023881784332">Geçerli ChromeVox odağı yok. Başlatıcıya gitmek için Alt+Üst Karakter+L tuşlarına basın.</translation>
 <translation id="8091452896542422286">Boşluk</translation>
 <translation id="8096975275316362544">Nane Yeşili</translation>
 <translation id="8098587210054821856">Kurşun Grisi</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb
index 23f86b3..68cf5f4 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">Lựa chọn hiện tại là</translation>
 <translation id="8066678206530322333">Biểu ngữ</translation>
 <translation id="8076492880354921740">Tab</translation>
+<translation id="8083115023881784332">Hiện bạn chưa đặt tiêu điểm nào trên ChromeVox. Hãy nhấn tổ hợp phím Alt+Shift+L để chuyển đến trình chạy.</translation>
 <translation id="8091452896542422286">Dấu cách</translation>
 <translation id="8096975275316362544">Màu kem bạc hà</translation>
 <translation id="8098587210054821856">Màu xám đen</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb
index 03e86e72..e4be318 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">当前选择为</translation>
 <translation id="8066678206530322333">横幅</translation>
 <translation id="8076492880354921740">标签页</translation>
+<translation id="8083115023881784332">ChromeVox 当前未聚焦于任何内容。按 Alt+Shift+L 组合键即可转到启动器。</translation>
 <translation id="8091452896542422286">空格</translation>
 <translation id="8096975275316362544">薄荷奶油色</translation>
 <translation id="8098587210054821856">岩灰色</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-HK.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-HK.xtb
index f55b900..198b2a64 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-HK.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-HK.xtb
@@ -1138,6 +1138,7 @@
 <translation id="8065607967589909823">選取內容</translation>
 <translation id="8066678206530322333">橫額</translation>
 <translation id="8076492880354921740">分頁</translation>
+<translation id="8083115023881784332">ChromeVox 目前未突顯任何內容。請㩒 Alt + Shift + L 鍵去啟動器。</translation>
 <translation id="8091452896542422286">空格</translation>
 <translation id="8096975275316362544">薄荷奶油色</translation>
 <translation id="8098587210054821856">岩灰色</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb
index 60a5e6b..7994fbd 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb
@@ -1139,6 +1139,7 @@
 <translation id="8065607967589909823">所選項目是</translation>
 <translation id="8066678206530322333">橫幅</translation>
 <translation id="8076492880354921740">分頁</translation>
+<translation id="8083115023881784332">ChromeVox 目前未聚焦於任何內容。按下 Alt + Shift + L 鍵即可前往啟動器。</translation>
 <translation id="8091452896542422286">空格</translation>
 <translation id="8096975275316362544">薄荷奶油色</translation>
 <translation id="8098587210054821856">岩灰</translation>
diff --git a/ui/chromeos/resources/vector/gesture_go_back.json b/chrome/browser/resources/chromeos/login/images/gesture_go_back.json
similarity index 100%
rename from ui/chromeos/resources/vector/gesture_go_back.json
rename to chrome/browser/resources/chromeos/login/images/gesture_go_back.json
diff --git a/ui/chromeos/resources/vector/gesture_go_home.json b/chrome/browser/resources/chromeos/login/images/gesture_go_home.json
similarity index 100%
rename from ui/chromeos/resources/vector/gesture_go_home.json
rename to chrome/browser/resources/chromeos/login/images/gesture_go_home.json
diff --git a/ui/chromeos/resources/vector/gesture_hotseat_overview.json b/chrome/browser/resources/chromeos/login/images/gesture_hotseat_overview.json
similarity index 100%
rename from ui/chromeos/resources/vector/gesture_hotseat_overview.json
rename to chrome/browser/resources/chromeos/login/images/gesture_hotseat_overview.json
diff --git a/chrome/browser/resources/media/BUILD.gn b/chrome/browser/resources/media/BUILD.gn
index bc1c8c6..cbdacbaa 100644
--- a/chrome/browser/resources/media/BUILD.gn
+++ b/chrome/browser/resources/media/BUILD.gn
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//third_party/closure_compiler/compile_js.gni")
 import("//tools/grit/grit_rule.gni")
 
 grit("webrtc_logs_resources") {
@@ -18,3 +19,15 @@
     "root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir),
   ]
 }
+
+js_type_check("closure_compile") {
+  deps = [ ":media_feeds" ]
+}
+
+js_library("media_feeds") {
+  deps = [
+    "//chrome/browser/media/feeds:mojo_bindings_js_library_for_compile",
+    "//ui/webui/resources/js:assert",
+    "//ui/webui/resources/js:util",
+  ]
+}
diff --git a/chrome/browser/resources/media/media_feeds.html b/chrome/browser/resources/media/media_feeds.html
new file mode 100644
index 0000000..20df2ac
--- /dev/null
+++ b/chrome/browser/resources/media/media_feeds.html
@@ -0,0 +1,99 @@
+<!doctype html>
+<html lang="en">
+<head>
+  <title>Media Feeds</title>
+  <meta charset="utf-8">
+  <link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
+  <script src="chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js"></script>
+  <script src="chrome://resources/js/promise_resolver.js"></script>
+  <script src="chrome://resources/mojo/url/mojom/url.mojom-lite.js"></script>
+  <script src="chrome://resources/js/util.js"></script>
+
+  <script src="chrome/browser/media/feeds/media_feeds_store.mojom-lite.js">
+  </script>
+
+  <script src="chrome://media-feeds/media-feeds.js"></script>
+  <style>
+    body {
+      font-family: 'Roboto', 'Noto', sans-serif;
+      font-size: 14px;
+    }
+
+    button {
+      margin-bottom: 20px;
+    }
+
+    table {
+      border-collapse: collapse;
+      margin-bottom: 20px;
+    }
+
+    table td,
+    table th {
+      border: 1px solid #777;
+      padding-inline-end: 4px;
+      padding-inline-start: 4px;
+    }
+
+    table th {
+      background: rgb(224, 236, 255);
+      cursor: pointer;
+      padding-bottom: 4px;
+      padding-inline-end: 4px;
+      padding-top: 4px;
+      white-space: nowrap;
+    }
+
+    .url-cell {
+      background-color: rgba(230, 230, 230, 0.5);
+    }
+
+    .name-cell {
+      background-color: rgba(230, 230, 230, 0.5);
+    }
+
+    table tr:hover {
+      background: rgb(255, 255, 187);
+    }
+
+    th.sort-column {
+      padding-inline-end: 16px;
+    }
+
+    th.sort-column::after {
+      content: '▲';
+      position: absolute;
+    }
+
+    th[sort-reverse].sort-column::after {
+      content: '▼';
+      position: absolute;
+    }
+  </style>
+</head>
+<body>
+  <h1>Media Feeds</h1>
+  <button id="copy-all-to-clipboard">Copy all to clipboard</button>
+  <table>
+    <thead>
+      <tr id="feed-table-header">
+        <th sort-key="id" class="sort-column" sort-reverse>
+          ID
+        </th>
+        <th sort-key="url">
+          Url
+        </th>
+      </tr>
+    </thead>
+    <tbody id="feed-table-body">
+    </tbody>
+  </table>
+
+  <template id="datarow">
+    <tr>
+      <td class="id-cell"></td>
+      <td class="url-cell"></td>
+    </tr>
+  </template>
+</body>
+</html>
diff --git a/chrome/browser/resources/media/media_feeds.js b/chrome/browser/resources/media/media_feeds.js
new file mode 100644
index 0000000..e174ec5
--- /dev/null
+++ b/chrome/browser/resources/media/media_feeds.js
@@ -0,0 +1,137 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// TODO(https://crbug.com/1059352): Factor out the sortable table.
+
+'use strict';
+
+// Allow a function to be provided by tests, which will be called when
+// the page has been populated with media feeds details.
+const pageIsPopulatedResolver = new PromiseResolver();
+function whenPageIsPopulatedForTest() {
+  return pageIsPopulatedResolver.promise;
+}
+
+(function() {
+
+let detailsProvider = null;
+let info = null;
+let feedTableBody = null;
+let sortReverse = true;
+let sortKey = 'id';
+
+/**
+ * Creates a single row in the feeds table.
+ * @param {!mediaFeeds.mojom.MediaFeed} rowInfo The info to create the row.
+ * @return {!Node}
+ */
+function createRow(rowInfo) {
+  const template = $('datarow');
+  const td = template.content.querySelectorAll('td');
+
+  td[0].textContent = rowInfo.id;
+  td[1].textContent = rowInfo.url.url;
+
+  return document.importNode(template.content, true);
+}
+
+/**
+ * Remove all rows from the feeds table.
+ */
+function clearTable() {
+  feedTableBody.innerHTML = '';
+}
+
+/**
+ * Sort the feed info based on |sortKey| and |sortReverse|.
+ */
+function sortInfo() {
+  info.sort((a, b) => {
+    return (sortReverse ? -1 : 1) * compareTableItem(sortKey, a, b);
+  });
+}
+
+/**
+ * Compares two MediaFeed objects based on |sortKey|.
+ * @param {string} sortKey The name of the property to sort by.
+ * @param {mediaFeeds.mojom.MediaFeed} a First object to compare.
+ * @param {mediaFeeds.mojom.MediaFeed} b Second object to compare.
+ * @return {number|boolean} A negative number if |a| should be ordered before
+ *     |b|, a positive number otherwise.
+ */
+function compareTableItem(sortKey, a, b) {
+  if (sortKey == 'url') {
+    return a.url.url > b.url.url ? 1 : -1;
+  } else if (sortKey == 'id') {
+    return a.id > b.id;
+  }
+
+  assertNotReached('Unsupported sort key: ' + sortKey);
+  return 0;
+}
+
+/**
+ * Regenerates the feed table from |info|.
+ */
+function renderTable() {
+  clearTable();
+  sortInfo();
+  info.forEach(rowInfo => feedTableBody.appendChild(createRow(rowInfo)));
+}
+
+/**
+ * Retrieve feed info and render the feed table.
+ */
+function updateFeedTable() {
+  detailsProvider.getMediaFeeds().then(response => {
+    info = response.feeds;
+    renderTable();
+    pageIsPopulatedResolver.resolve();
+  });
+}
+
+document.addEventListener('DOMContentLoaded', () => {
+  detailsProvider = mediaFeeds.mojom.MediaFeedsStore.getRemote();
+
+  feedTableBody = $('feed-table-body');
+  updateFeedTable();
+
+  // Set table header sort handlers.
+  const feedTableHeader = $('feed-table-header');
+  const headers = feedTableHeader.children;
+  for (let i = 0; i < headers.length; i++) {
+    headers[i].addEventListener('click', (e) => {
+      const newSortKey = e.target.getAttribute('sort-key');
+      if (sortKey == newSortKey) {
+        sortReverse = !sortReverse;
+      } else {
+        sortKey = newSortKey;
+        sortReverse = false;
+      }
+      const oldSortColumn = document.querySelector('.sort-column');
+      oldSortColumn.classList.remove('sort-column');
+      e.target.classList.add('sort-column');
+      if (sortReverse) {
+        e.target.setAttribute('sort-reverse', '');
+      } else {
+        e.target.removeAttribute('sort-reverse');
+      }
+      renderTable();
+    });
+  }
+
+  // Add handler to 'copy all to clipboard' button
+  const copyAllToClipboardButton = $('copy-all-to-clipboard');
+  copyAllToClipboardButton.addEventListener('click', (e) => {
+    // Make sure nothing is selected
+    window.getSelection().removeAllRanges();
+
+    document.execCommand('selectAll');
+    document.execCommand('copy');
+
+    // And deselect everything at the end.
+    window.getSelection().removeAllRanges();
+  });
+});
+})();
diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html
index a6ad7cda..312a3e47 100644
--- a/chrome/browser/resources/new_tab_page/app.html
+++ b/chrome/browser/resources/new_tab_page/app.html
@@ -1,10 +1,46 @@
 <style include="cr-shared-style">
+  :host {
+    --ntp-theme-shortcut-background-color: rgb(229, 231, 232);
+    --ntp-theme-text-color: var(--google-grey-800);
+    --ntp-theme-text-shadow: none;
+  }
+
+  @media (prefers-color-scheme: dark) {
+    :host {
+      --ntp-theme-shortcut-background-color: var(--google-grey-refresh-100);
+      --ntp-theme-text-color: white;
+    }
+  }
+
+  :host([show-background-image_]) {
+    --ntp-theme-text-shadow: 0 0 16px rgba(0, 0, 0, .3);
+  }
+
   #background {
+    height: 100%;
+    position: relative;
+    width: 100%;
+  }
+
+  #background > * {
+    height: 100%;
+    position: absolute;
+    top: 0;
+    width: 100%;
+  }
+
+  #backgroundImage {
+    border: none;
+  }
+
+  #backgroundGradient {
+    background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.3));
+  }
+
+  #content {
     align-items: center;
     display: flex;
     flex-direction: column;
-    height: 100%;
-    width: 100%;
   }
 
   #voiceSearchButton {
@@ -31,27 +67,28 @@
     width: 100%;
   }
 
-  #customizeButton {
-    border: none;
+  #customizeButtonContainer {
+    background-color: var(--ntp-background-override-color);
     border-radius: calc(0.5 * var(--cr-button-height));
     bottom: 16px;
-    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 1px 2px rgba(0, 0, 0, 0.23);
-    font-weight: 400;
     position: absolute;
   }
 
-  #customizeButton:not(:hover) {
-    background-color: var(--ntp-background-override-color);
-  }
-
-  :host-context([dir='ltr']) #customizeButton {
+  :host-context([dir='ltr']) #customizeButtonContainer {
     right: 16px;
   }
 
-  :host-context([dir='rtl']) #customizeButton {
+  :host-context([dir='rtl']) #customizeButtonContainer {
     left: 16px;
   }
 
+  #customizeButton {
+    border: none;
+    border-radius: calc(0.5 * var(--cr-button-height));
+    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 1px 2px rgba(0, 0, 0, 0.23);
+    font-weight: 400;
+  }
+
   #customizeIcon {
     -webkit-mask-image: url(icons/icon_pencil.svg);
     -webkit-mask-repeat: no-repeat;
@@ -62,6 +99,60 @@
     width: 16px;
   }
 
+  #backgroundImageAttribution {
+    border-radius: 8px;
+    bottom: 16px;
+    color: var(--ntp-theme-text-color);
+    line-height: 20px;
+    max-width: 50vw;
+    padding: 8px;
+    position: absolute;
+    text-shadow: var(--ntp-theme-text-shadow);
+  }
+
+  :host-context([dir='ltr']) #backgroundImageAttribution {
+    left: 16px;
+  }
+
+  :host-context([dir='rtl']) #backgroundImageAttribution {
+    right: 16px;
+  }
+
+  #backgroundImageAttribution:hover {
+    background: rgba(var(--google-grey-900-rgb), .1);
+  }
+
+  #backgroundImageAttribution1Container {
+    align-items: center;
+    display: flex;
+    flex-direction: row;
+  }
+
+  #linkIcon {
+    -webkit-mask-image: url(icons/link.svg);
+    -webkit-mask-repeat: no-repeat;
+    -webkit-mask-size: 100%;
+    background-color: var(--ntp-theme-text-color);
+    height: 16px;
+    margin-inline-end: 8px;
+    width: 16px;
+  }
+
+  #backgroundImageAttribution1,
+  #backgroundImageAttribution2 {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+
+  #backgroundImageAttribution1 {
+    font-size: 0.875rem;
+  }
+
+  #backgroundImageAttribution2 {
+    font-size: 0.75rem;
+  }
+
   ntp-most-visited[dark] {
     --icon-button-color-active: var(--google-grey-refresh-300);
     --icon-button-color: white;
@@ -69,33 +160,57 @@
   }
 </style>
 <div id="background"
-    style="background-color: [[rgbOrInherit_(theme_.backgroundColor)]];">
-  <button id="voiceSearchButton" on-click="onVoiceSearchClick_"
-      title="$i18n{voiceSearchButtonLabel}">
-  </button>
-  <ntp-most-visited id="mostVisited" dark$="[[theme_.isDark]]"
-      style="--icon-background-color:
-            [[rgbOrInherit_(theme_.shortcutBackgroundColor)]];
-          --tile-title-color:
-            [[rgbOrInherit_(theme_.shortcutTextColor)]];">
-  </ntp-most-visited>
-  <dom-if if="[[showCustomizeDialog_]]" restamp>
-    <template>
-      <ntp-customize-dialog on-close="onCustomizeDialogClose_"
-          theme="[[theme_]]">
-      </ntp-customize-dialog>
-    </template>
-  </dom-if>
-  <dom-if if="[[showVoiceSearchOverlay_]]" restamp>
-    <template>
-      <ntp-voice-search-overlay on-close="onVoiceSearchOverlayClose_">
-      </ntp-voice-search-overlay>
-    </template>
-  </dom-if>
-  <ntp-untrusted-iframe id="promo" path="promo" hidden$="[[!promoLoaded_]]">
+    style="background-color: [[rgbOrInherit_(theme_.backgroundColor)]];
+        --ntp-theme-text-color: [[rgbOrInherit_(theme_.shortcutTextColor)]];
+        --ntp-theme-shortcut-background-color:
+              [[rgbOrInherit_(theme_.shortcutBackgroundColor)]];">
+  <ntp-untrusted-iframe id="backgroundImage" path="[[backgroundImagePath_]]"
+      hidden="[[!showBackgroundImage_]]">
   </ntp-untrusted-iframe>
-  <cr-button id="customizeButton" on-click="onCustomizeClick_">
-    <div id="customizeIcon"></div>
-    $i18n{customizeButton}
-  </cr-button>
+  <div id="backgroundGradient" hidden="[[!showBackgroundImage_]]"></div>
+  <div id="content">
+    <button id="voiceSearchButton" on-click="onVoiceSearchClick_"
+        title="$i18n{voiceSearchButtonLabel}">
+    </button>
+    <ntp-most-visited id="mostVisited" dark$="[[theme_.isDark]]">
+    </ntp-most-visited>
+    <dom-if if="[[showCustomizeDialog_]]" restamp>
+      <template>
+        <ntp-customize-dialog on-close="onCustomizeDialogClose_"
+            theme="[[theme_]]">
+        </ntp-customize-dialog>
+      </template>
+    </dom-if>
+    <dom-if if="[[showVoiceSearchOverlay_]]" restamp>
+      <template>
+        <ntp-voice-search-overlay on-close="onVoiceSearchOverlayClose_">
+        </ntp-voice-search-overlay>
+      </template>
+    </dom-if>
+    <ntp-untrusted-iframe id="promo" path="promo" hidden$="[[!promoLoaded_]]">
+    </ntp-untrusted-iframe>
+    <!-- cr-button is transparent on hover. This leads to incorrect results when
+         a custom background is set. Therefore, wrap customize button in
+         container to enfore solid background color. -->
+    <div id="customizeButtonContainer">
+      <cr-button id="customizeButton" on-click="onCustomizeClick_">
+        <div id="customizeIcon"></div>
+        $i18n{customizeButton}
+      </cr-button>
+    </div>
+    <a id="backgroundImageAttribution"
+        href="[[theme_.backgroundImageAttributionUrl.url]]"
+        hidden="[[!theme_.backgroundImageAttribution1]]">
+      <div id="backgroundImageAttribution1Container">
+        <div id="linkIcon"></div>
+        <div id="backgroundImageAttribution1">
+          [[theme_.backgroundImageAttribution1]]
+        </div>
+      </div>
+      <div id="backgroundImageAttribution2"
+          hidden="[[!theme_.backgroundImageAttribution2]]">
+        [[theme_.backgroundImageAttribution2]]
+      </div>
+    </a>
+  </div>
 </div>
diff --git a/chrome/browser/resources/new_tab_page/app.js b/chrome/browser/resources/new_tab_page/app.js
index d82acda..dc51852 100644
--- a/chrome/browser/resources/new_tab_page/app.js
+++ b/chrome/browser/resources/new_tab_page/app.js
@@ -42,6 +42,19 @@
 
       /** @private */
       showVoiceSearchOverlay_: Boolean,
+
+      /** @private */
+      showBackgroundImage_: {
+        computed: 'computeShowBackgroundImage_(theme_)',
+        reflectToAttribute: true,
+        type: Boolean,
+      },
+
+      /** @private */
+      backgroundImagePath_: {
+        computed: 'computeBackgroundImagePath_(theme_)',
+        type: String,
+      },
     };
   }
 
@@ -112,6 +125,25 @@
   rgbOrInherit_(skColor) {
     return skColor ? skColorToRgb(skColor) : 'inherit';
   }
+
+  /**
+   * @return {boolean}
+   * @private
+   */
+  computeShowBackgroundImage_() {
+    return !!this.theme_ && !!this.theme_.backgroundImageUrl;
+  }
+
+  /**
+   * @return {string}
+   * @private
+   */
+  computeBackgroundImagePath_() {
+    if (!this.theme_ || !this.theme_.backgroundImageUrl) {
+      return '';
+    }
+    return `image?${this.theme_.backgroundImageUrl.url}`;
+  }
 }
 
 customElements.define(AppElement.is, AppElement);
diff --git a/chrome/browser/resources/new_tab_page/most_visited.html b/chrome/browser/resources/new_tab_page/most_visited.html
index 2ccce131..42beb93 100644
--- a/chrome/browser/resources/new_tab_page/most_visited.html
+++ b/chrome/browser/resources/new_tab_page/most_visited.html
@@ -2,12 +2,10 @@
   :host {
     --icon-size: 48px;
     --tile-size: 112px;
-    --tile-margin:  16px;
-    --icon-background-color: rgb(229, 231, 232);
+    --tile-margin: 16px;
     --icon-button-color: var(--google-grey-600);
     --icon-button-color-active: var(--google-grey-refresh-700);
     --tile-hover-color: rgba(var(--google-grey-900-rgb), .1);
-    --tile-title-color: var(--google-grey-800);
   }
 
   #container {
@@ -28,7 +26,7 @@
     -webkit-mask-image: url(chrome://resources/images/add.svg);
     -webkit-mask-repeat: no-repeat;
     -webkit-mask-size: 100%;
-    background-color: var(--tile-title-color);
+    background-color: var(--ntp-theme-text-color);
     height: 24px;
     width: 24px;
   }
@@ -68,7 +66,7 @@
 
   .tile-icon {
     align-items: center;
-    background-color: var(--icon-background-color);
+    background-color: var(--ntp-theme-shortcut-background-color);
     border-radius: 50%;
     display: flex;
     height: var(--icon-size);
@@ -82,11 +80,12 @@
   }
 
   .tile-title {
-    color: var(--tile-title-color);
+    color: var(--ntp-theme-text-color);
     margin-top:  16px;
     overflow: hidden;
     text-align: center;
     text-overflow: ellipsis;
+    text-shadow: var(--ntp-theme-text-shadow);
     white-space: nowrap;
     width: 88px;
   }
@@ -138,11 +137,9 @@
 
   @media (prefers-color-scheme: dark) {
     :host {
-      --icon-background-color: var(--google-grey-refresh-100);
       --icon-button-color: var(--google-grey-400);
       --icon-button-color-active: var(--google-grey-200);
       --tile-hover-color: rgba(255, 255, 255, .1);
-      --tile-title-color: white;
     }
   }
 </style>
diff --git a/chrome/browser/resources/new_tab_page/new_tab_page_resources.grd b/chrome/browser/resources/new_tab_page/new_tab_page_resources.grd
index c29aa86..4f9bffb 100644
--- a/chrome/browser/resources/new_tab_page/new_tab_page_resources.grd
+++ b/chrome/browser/resources/new_tab_page/new_tab_page_resources.grd
@@ -74,6 +74,8 @@
           file="icons/googlemic_clr_24px.svg" type="BINDATA" compress="gzip" />
       <include name="IDR_NEW_TAB_PAGE_MIC_SVG"
           file="icons/mic.svg" type="BINDATA" compress="gzip" />
+      <include name="IDR_NEW_TAB_PAGE_LINK_SVG"
+          file="icons/link.svg" type="BINDATA" compress="gzip" />
       <include name="IDR_NEW_TAB_PAGE_MINI_PAGE_JS"
           file="${root_gen_dir}/chrome/browser/resources/new_tab_page/mini_page.js"
           use_base_dir="false" type="BINDATA" compress="gzip" />
diff --git a/chrome/browser/resources/pdf/BUILD.gn b/chrome/browser/resources/pdf/BUILD.gn
index b22ef90..f93045f 100644
--- a/chrome/browser/resources/pdf/BUILD.gn
+++ b/chrome/browser/resources/pdf/BUILD.gn
@@ -95,6 +95,7 @@
 
 js_library("pdf_viewer") {
   deps = [
+    ":constants",
     ":controller",
     ":metrics",
     ":navigator",
diff --git a/chrome/browser/resources/pdf/constants.js b/chrome/browser/resources/pdf/constants.js
index 6131aa1a..70da3e82 100644
--- a/chrome/browser/resources/pdf/constants.js
+++ b/chrome/browser/resources/pdf/constants.js
@@ -12,3 +12,12 @@
   FIT_TO_WIDTH: 'fit-to-width',
   FIT_TO_HEIGHT: 'fit-to-height',
 };
+
+/**
+ * Enumeration of two up view actions.
+ * @enum {string}
+ */
+export const TwoUpViewAction = {
+  TWO_UP_VIEW_ENABLE: 'two-up-view-enable',
+  TWO_UP_VIEW_DISABLE: 'two-up-view-disable',
+};
diff --git a/chrome/browser/resources/pdf/controller.js b/chrome/browser/resources/pdf/controller.js
index 5f6d2de..9eccd835 100644
--- a/chrome/browser/resources/pdf/controller.js
+++ b/chrome/browser/resources/pdf/controller.js
@@ -91,6 +91,9 @@
   /** @abstract */
   rotateCounterclockwise() {}
 
+  /** @abstract */
+  setTwoUpView(enableTwoUpView) {}
+
   /** Triggers printing of the current document. */
   print() {}
 
@@ -175,6 +178,11 @@
   }
 
   /** @override */
+  setTwoUpView(enableTwoUpView) {
+    // TODO(dstockwell): Implement two up view.
+  }
+
+  /** @override */
   viewportChanged() {
     this.inkHost_.viewportChanged();
   }
@@ -334,6 +342,14 @@
   }
 
   /** @override */
+  setTwoUpView(enableTwoUpView) {
+    this.postMessage_({
+      type: 'setTwoUpView',
+      enableTwoUpView: enableTwoUpView,
+    });
+  }
+
+  /** @override */
   print() {
     this.postMessage_({type: 'print'});
   }
diff --git a/chrome/browser/resources/pdf/elements/viewer-zoom-button.html b/chrome/browser/resources/pdf/elements/viewer-zoom-button.html
index 6eab6174..f51075c 100644
--- a/chrome/browser/resources/pdf/elements/viewer-zoom-button.html
+++ b/chrome/browser/resources/pdf/elements/viewer-zoom-button.html
@@ -77,6 +77,7 @@
     </style>
     <div id="wrapper">
       <cr-icon-button iron-icon="[[visibleIcon_]]" on-click="fireClick_"
-          aria-label$="[[visibleTooltip_]]" title="[[visibleTooltip_]]">
+          aria-label$="[[visibleTooltip_]]" title="[[visibleTooltip_]]"
+          disabled="[[disabled]]">
       </cr-icon-button>
     </div>
diff --git a/chrome/browser/resources/pdf/elements/viewer-zoom-button.js b/chrome/browser/resources/pdf/elements/viewer-zoom-button.js
index 306ba40..3182b90 100644
--- a/chrome/browser/resources/pdf/elements/viewer-zoom-button.js
+++ b/chrome/browser/resources/pdf/elements/viewer-zoom-button.js
@@ -25,6 +25,11 @@
       observer: 'delayChanged_',
     },
 
+    disabled: {
+      type: Boolean,
+      value: false,
+    },
+
     /**
      * Icons to be displayed on the FAB. Multiple icons should be separated with
      * spaces, and will be cycled through every time the FAB is clicked.
diff --git a/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar.html b/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar.html
index 887999ea..ab6a4d4 100644
--- a/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar.html
+++ b/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar.html
@@ -1,4 +1,4 @@
-    <style>
+    <style include="cr-hidden-style">
       :host {
         --button-position-offset: 48px;
         bottom: 0;
@@ -44,21 +44,33 @@
         display: block;
       }
 
+      /*
+       * A larger gap between the fit button and the two-up view button
+       * and above the bottom two zoom buttons.
+       */
+      #two-up-view-button,
+      #zoom-in-button {
+        margin-top: 24px;
+      }
+
       /* A small gap between the zoom in/zoom out buttons. */
       #zoom-out-button {
         margin-top: 10px;
       }
-
-      /* A larger gap between the fit button and bottom two buttons. */
-      #zoom-in-button {
-        margin-top: 24px;
-      }
     </style>
     <div id="zoom-buttons">
-      <viewer-zoom-button id="fit-button" on-fabclick="fitToggle" delay="100"
+      <viewer-zoom-button id="fit-button" on-fabclick="fitToggle"
+          delay="[[fitButtonDelay_]]"
           keyboard-navigation-active="[[keyboardNavigationActive_]]"
           icons="pdf:fullscreen-exit cr:fullscreen">
       </viewer-zoom-button>
+      <!-- TODO(crbug.com/51472): Change icons for two-up-view-button -->
+      <!-- once they are finalized. -->
+      <viewer-zoom-button id="two-up-view-button" delay="100"
+          disabled="[[annotationMode]]" hidden$="[[!twoUpViewEnabled]]"
+          on-fabclick="twoUpViewToggle_"
+          keyboard-navigation-active="[[keyboardNavigationActive_]]"
+          icons="pdf:create pdf:eraser"></viewer-zoom-button>
       <viewer-zoom-button id="zoom-in-button" icons="pdf:add"
           keyboard-navigation-active="[[keyboardNavigationActive_]]"
           on-fabclick="zoomIn" delay="50"></viewer-zoom-button>
diff --git a/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar.js b/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar.js
index 47e8fef2..ec5e991 100644
--- a/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar.js
+++ b/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar.js
@@ -8,7 +8,7 @@
 
 import {assert} from 'chrome://resources/js/assert.m.js';
 import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
-import {FittingType} from '../constants.js';
+import {FittingType, TwoUpViewAction} from '../constants.js';
 
 /**
  * @typedef {{
@@ -21,14 +21,31 @@
 const FIT_TO_PAGE_BUTTON_STATE = 0;
 const FIT_TO_WIDTH_BUTTON_STATE = 1;
 
+const TWO_UP_VIEW_DISABLED_STATE = 0;
+const TWO_UP_VIEW_ENABLED_STATE = 1;
+
 Polymer({
   is: 'viewer-zoom-toolbar',
 
   _template: html`{__html_template__}`,
 
   properties: {
+    /** Whether the viewer is currently in annotation mode. */
+    annotationMode: {
+      type: Boolean,
+      value: false,
+    },
+
     isPrintPreview: Boolean,
 
+    twoUpViewEnabled: Boolean,
+
+    /** @private */
+    fitButtonDelay_: {
+      type: Number,
+      computed: 'computeFitButtonDelay_(twoUpViewEnabled)',
+    },
+
     /** @private */
     keyboardNavigationActive_: {
       type: Boolean,
@@ -36,6 +53,15 @@
     },
   },
 
+  /**
+   * @param {boolean} twoUpViewEnabled Whether two-up view button is enabled.
+   * @return {number} Delay for :qthe fit button.
+   * @private
+   */
+  computeFitButtonDelay_(twoUpViewEnabled) {
+    return twoUpViewEnabled ? 150 : 100;
+  },
+
   listeners: {
     'focus': 'onFocus_',
     'keyup': 'onKeyUp_',
@@ -81,12 +107,16 @@
    * Change button tooltips to match any changes to localized strings.
    * @param {!{tooltipFitToPage: string,
    *           tooltipFitToWidth: string,
+   *           tooltipTwoUpViewEnable: string,
+   *           tooltipTwoUpViewDisable: string,
    *           tooltipZoomIn: string,
    *           tooltipZoomOut: string}} strings
    */
   setStrings(strings) {
     this.$['fit-button'].tooltips =
         [strings.tooltipFitToPage, strings.tooltipFitToWidth];
+    this.$['two-up-view-button'].tooltips =
+        [strings.tooltipTwoUpViewEnable, strings.tooltipTwoUpViewDisable];
     this.$['zoom-in-button'].tooltips = [strings.tooltipZoomIn];
     this.$['zoom-out-button'].tooltips = [strings.tooltipZoomOut];
   },
@@ -140,6 +170,20 @@
   },
 
   /**
+   * Handle clicks of the two-up-view button.
+   * @private
+   */
+  twoUpViewToggle_: function() {
+    assert(this.twoUpViewEnabled);
+    const twoUpViewAction = this.$['two-up-view-button'].activeIndex ===
+            TWO_UP_VIEW_DISABLED_STATE ?
+        TwoUpViewAction.TWO_UP_VIEW_ENABLE :
+        TwoUpViewAction.TWO_UP_VIEW_DISABLE;
+
+    this.fire('two-up-view-changed', twoUpViewAction);
+  },
+
+  /**
    * Handle clicks of the zoom-in-button.
    */
   zoomIn() {
@@ -157,6 +201,7 @@
     if (!this.visible_) {
       this.visible_ = true;
       this.$['fit-button'].show();
+      this.$['two-up-view-button'].show();
       this.$['zoom-in-button'].show();
       this.$['zoom-out-button'].show();
     }
@@ -166,6 +211,7 @@
     if (this.visible_) {
       this.visible_ = false;
       this.$['fit-button'].hide();
+      this.$['two-up-view-button'].hide();
       this.$['zoom-in-button'].hide();
       this.$['zoom-out-button'].hide();
     }
diff --git a/chrome/browser/resources/pdf/pdf_viewer.js b/chrome/browser/resources/pdf/pdf_viewer.js
index 633aa5d..7e5593a 100644
--- a/chrome/browser/resources/pdf/pdf_viewer.js
+++ b/chrome/browser/resources/pdf/pdf_viewer.js
@@ -9,7 +9,7 @@
 import {$, hasKeyModifiers, isRTL} from 'chrome://resources/js/util.m.js';
 
 import {BrowserApi} from './browser_api.js';
-import {FittingType} from './constants.js';
+import {FittingType, TwoUpViewAction} from './constants.js';
 import {ContentController, InkController, MessageData, PluginController, PrintPreviewParams} from './controller.js';
 import {Bookmark} from './elements/viewer-bookmark.js';
 import {FitToChangedEvent} from './elements/viewer-zoom-toolbar.js';
@@ -334,6 +334,10 @@
         e => this.fitToChanged_(
             /** @type {!CustomEvent<FitToChangedEvent>} */ (e)));
     this.zoomToolbar_.addEventListener(
+        'two-up-view-changed',
+        e => this.twoUpViewChanged_(
+            /** @type {!CustomEvent<!TwoUpViewAction>} */ (e)));
+    this.zoomToolbar_.addEventListener(
         'zoom-in', () => this.viewport_.zoomIn());
     this.zoomToolbar_.addEventListener(
         'zoom-out', () => this.viewport_.zoomOut());
@@ -641,6 +645,7 @@
    */
   async annotationModeToggled_(e) {
     const annotationMode = e.detail.value;
+    this.zoomToolbar_.annotationMode = annotationMode;
     if (annotationMode) {
       // Enter annotation mode.
       assert(this.currentController_ === this.pluginController_);
@@ -657,6 +662,7 @@
         } catch (e) {
           // The user aborted entering annotation mode. Revert to the plugin.
           this.toolbar_.annotationMode = false;
+          this.zoomToolbar_.annotationMode = false;
           this.updateProgress_(100);
           return;
         }
@@ -702,6 +708,7 @@
       return;
     }
     this.toolbar_.toggleAnnotation();
+    this.zoomToolbar_.annotationMode = false;
     await this.loaded;
   }
 
@@ -727,6 +734,22 @@
   }
 
   /**
+   * Changes two up view mode for the controller. Controller will trigger
+   * layout update later, which will update the viewport accordingly.
+   * @param {!CustomEvent<!TwoUpViewAction>} e
+   * @private
+   */
+  twoUpViewChanged_(e) {
+    this.currentController_.setTwoUpView(
+        e.detail === TwoUpViewAction.TWO_UP_VIEW_ENABLE);
+    this.toolbarManager_.forceHideTopToolbar();
+    this.toolbar_.annotationAvailable =
+        (e.detail !== TwoUpViewAction.TWO_UP_VIEW_ENABLE);
+
+    // TODO(crbug.com/51472): Record to metrics.
+  }
+
+  /**
    * Sends a 'documentLoaded' message to the PDFScriptingAPI if the document has
    * finished loading.
    * @private
@@ -918,6 +941,8 @@
         loadTimeData.getBoolean('pdfAnnotationsEnabled');
     $('toolbar').printingEnabled = loadTimeData.getBoolean('printingEnabled');
     $('zoom-toolbar').setStrings(strings);
+    $('zoom-toolbar').twoUpViewEnabled =
+        loadTimeData.getBoolean('pdfTwoUpViewEnabled') && !this.isPrintPreview_;
     // Display the zoom toolbar after the UI text direction is set, to ensure it
     // appears on the correct side of the PDF viewer.
     $('zoom-toolbar').hidden = false;
diff --git a/chrome/browser/resources/pdf/viewport.js b/chrome/browser/resources/pdf/viewport.js
index 26733b04..3796717 100644
--- a/chrome/browser/resources/pdf/viewport.js
+++ b/chrome/browser/resources/pdf/viewport.js
@@ -19,7 +19,12 @@
  */
 let DocumentDimensions;
 
-/** @typedef {{defaultPageOrientation: number}} */
+/**
+ * @typedef {{
+ *   defaultPageOrientation: number,
+ *   twoUpViewEnabled: boolean,
+ * }}
+ */
 export let LayoutOptions;
 
 /** @typedef {{x: number, y: number}} */
@@ -136,12 +141,6 @@
     /** @private {!FittingType} */
     this.fittingType_ = FittingType.NONE;
 
-    /**
-     * |twoUpView_| should be in sync with |two_up_view_| in PDFiumEngine.
-     * @private {boolean}
-     */
-    this.twoUpView_ = false;
-
     /** @private {number} */
     this.prevScale_ = 1;
 
@@ -220,9 +219,13 @@
     return this.rotations_;
   }
 
-  /** @param {boolean} twoUpView The new two up view state to set. */
-  setTwoUpView(twoUpView) {
-    this.twoUpView_ = twoUpView;
+  /** @return {boolean} Whether viewport is in two-up view mode. */
+  twoUpViewEnabled() {
+    const options = this.getLayoutOptions();
+    if (options === undefined) {
+      return false;
+    }
+    return options.twoUpViewEnabled;
   }
 
   /**
@@ -677,7 +680,7 @@
   getLastPageInViewport_(viewportRect) {
     const pageAtY = this.getPageAtY_(viewportRect.y + viewportRect.height);
 
-    if (!this.twoUpView_ || pageAtY % 2 === 1 ||
+    if (!this.twoUpViewEnabled() || pageAtY % 2 === 1 ||
         pageAtY + 1 >= this.pageDimensions_.length) {
       return pageAtY;
     }
@@ -1070,7 +1073,8 @@
    */
   goToNextPage() {
     const currentPage = this.getMostVisiblePage();
-    const nextPageOffset = (this.twoUpView_ && currentPage % 2 === 0) ? 2 : 1;
+    const nextPageOffset =
+        (this.twoUpViewEnabled() && currentPage % 2 === 0) ? 2 : 1;
     this.goToPage(currentPage + nextPageOffset);
   }
 
@@ -1082,7 +1086,7 @@
     const currentPage = this.getMostVisiblePage();
     let previousPageOffset = -1;
 
-    if (this.twoUpView_) {
+    if (this.twoUpViewEnabled()) {
       previousPageOffset = (currentPage % 2 === 0) ? -2 : -3;
     }
 
diff --git a/chrome/browser/resources/settings/a11y_page/a11y_page.html b/chrome/browser/resources/settings/a11y_page/a11y_page.html
index 74145e6c..4f76468 100644
--- a/chrome/browser/resources/settings/a11y_page/a11y_page.html
+++ b/chrome/browser/resources/settings/a11y_page/a11y_page.html
@@ -61,6 +61,13 @@
           <settings-captions prefs="{{prefs}}"></settings-captions>
         </settings-subpage>
       </template>
+      <template is="dom-if" if="[[enableLiveCaption_]]">
+        <settings-toggle-button
+            pref="{{prefs.accessibility.captions.live_caption_enabled}}"
+            label="$i18n{captionsEnableLiveCaptionTitle}"
+            sub-label="$i18n{captionsEnableLiveCaptionSubtitle}">
+        </settings-toggle-button>
+      </template>
 </if>
     </settings-animated-pages>
   </template>
diff --git a/chrome/browser/resources/settings/a11y_page/a11y_page.js b/chrome/browser/resources/settings/a11y_page/a11y_page.js
index 646a9dd..4742478 100644
--- a/chrome/browser/resources/settings/a11y_page/a11y_page.js
+++ b/chrome/browser/resources/settings/a11y_page/a11y_page.js
@@ -31,6 +31,16 @@
     },
 
     /**
+     * Returns true if the 'LiveCaption' media switch is enabled.
+     */
+    enableLiveCaption_: {
+      type: Boolean,
+      value: function() {
+        return loadTimeData.getBoolean('enableLiveCaption');
+      },
+    },
+
+    /**
      * Whether to show accessibility labels settings.
      */
     showAccessibilityLabelsSetting_: {
diff --git a/chrome/browser/resources/settings/a11y_page/captions_subpage.html b/chrome/browser/resources/settings/a11y_page/captions_subpage.html
index cf9e73d..7739e9b 100644
--- a/chrome/browser/resources/settings/a11y_page/captions_subpage.html
+++ b/chrome/browser/resources/settings/a11y_page/captions_subpage.html
@@ -122,12 +122,6 @@
         </settings-dropdown-menu>
       </div>
     </div>
-    <template is="dom-if" if="[[enableLiveCaption_]]">
-      <settings-toggle-button
-          pref="{{prefs.accessibility.captions.live_caption_enabled}}"
-          label="$i18n{captionsEnableLiveCaption}">
-      </settings-toggle-button>
-    </template>
   </template>
   <script src="captions_subpage.js"></script>
 </dom-module>
diff --git a/chrome/browser/resources/settings/a11y_page/captions_subpage.js b/chrome/browser/resources/settings/a11y_page/captions_subpage.js
index e1c0c3b..de7c68a3a 100644
--- a/chrome/browser/resources/settings/a11y_page/captions_subpage.js
+++ b/chrome/browser/resources/settings/a11y_page/captions_subpage.js
@@ -24,16 +24,6 @@
     },
 
     /**
-     * Returns true if the 'LiveCaption' media switch is enabled.
-     */
-    enableLiveCaption_: {
-      type: Boolean,
-      value: function() {
-        return loadTimeData.getBoolean('enableLiveCaption');
-      },
-    },
-
-    /**
      * List of options for the background opacity drop-down menu.
      * @type {!DropdownMenuOptionList}
      */
diff --git a/chrome/browser/resources/settings/autofill_page/password_check.html b/chrome/browser/resources/settings/autofill_page/password_check.html
index d23b72f..990e687 100644
--- a/chrome/browser/resources/settings/autofill_page/password_check.html
+++ b/chrome/browser/resources/settings/autofill_page/password_check.html
@@ -17,15 +17,27 @@
     <style include="settings-shared">
       iron-icon,
       #progressSpinner {
+        --paper-spinner-stroke-width: 2px;
+        height: 16px;
         padding-inline-end: 20px;
+        width: 16px;
       }
 
       iron-icon.has-leaks {
         --iron-icon-fill-color: var(--google-red-600);
+        background: radial-gradient(circle 12px at 12px,
+                                    #FCE8E6 100%,
+                                    transparent 100%);
+        margin-inline-start: -4px;
+        padding-bottom: 4px;
+        padding-inline-end: 20px;
+        padding-inline-start: 4px;
+        padding-top: 4px;
       }
 
       iron-icon.no-leaks {
         --iron-icon-fill-color: var(--google-blue-600);
+        background-size: 16px 16px;
       }
 
     </style>
@@ -47,6 +59,12 @@
       <div class="start settings-box-text">
         <div id="title">
           [[getTitle_(status_)]]
+          <a class="secondary inline" id="linkToGoogleAccount"
+             href="[[passwordCheckUrl_]]"
+             target="_blank"
+             hidden$="[[!hasTooManyPasswords_(status_)]]">
+            $i18n{checkPasswordsAgainInAccount}
+          </a>
           <span class="secondary inline" id="lastCompletedCheck"
               hidden$="[[!showsTimestamp_(status_)]]">
             &bull; [[lastCompletedCheck_]]
@@ -58,8 +76,9 @@
         </div>
       </div>
       <cr-button id="controlPasswordCheckButton"
-          on-click="onPasswordCheckButtonClick_">
-        $i18n{checkPasswordsAgain}
+          on-click="onPasswordCheckButtonClick_"
+          hidden$="[[isButtonHidden_(status_)]]">
+        [[getButtonText_(status_)]]
       </cr-button>
     </div>
     <div id="noCompromisedCredentials"
diff --git a/chrome/browser/resources/settings/autofill_page/password_check.js b/chrome/browser/resources/settings/autofill_page/password_check.js
index 97536513..6510f31 100644
--- a/chrome/browser/resources/settings/autofill_page/password_check.js
+++ b/chrome/browser/resources/settings/autofill_page/password_check.js
@@ -13,6 +13,17 @@
   behaviors: [I18nBehavior],
 
   properties: {
+    /**
+     * This URL redirects to the passwords check for sync users.
+     * @type {!string}
+     * @private
+     */
+    passwordCheckUrl_: {
+      type: String,
+      value:
+          'https://passwords.google.com/checkup/start?utm_source=chrome&utm_medium=desktop&utm_campaign=leak_dialog&hideExplanation=true',
+    },
+
     /** @private */
     lastCompletedCheck_: String,
 
@@ -119,9 +130,22 @@
    * @private
    */
   onPasswordCheckButtonClick_() {
-    // TODO(https://crbug.com/1047726): By click on this button user should be
-    // able to 'Cancel' current check.
-    this.passwordManager_.startBulkPasswordCheck();
+    switch (this.status_.state) {
+      case CheckState.RUNNING:
+        this.passwordManager_.stopBulkPasswordCheck();
+        return;
+      case CheckState.IDLE:
+      case CheckState.CANCELED:
+      case CheckState.OFFLINE:
+      case CheckState.SIGNED_OUT:
+      case CheckState.NO_PASSWORDS:
+      case CheckState.OTHER_ERROR:
+        this.passwordManager_.startBulkPasswordCheck();
+        return;
+      case CheckState.TOO_MANY_PASSWORDS:
+      case CheckState.QUOTA_LIMIT:
+    }
+    throw 'Can\'t trigger an action for state: ' + this.status_.state;
   },
 
   /**
@@ -175,7 +199,7 @@
    */
   getStatusIcon_(status, leakedPasswords) {
     if (!this.hasLeaksOrErrors_(status, leakedPasswords)) {
-      return 'cr:check';
+      return 'settings:check-circle';
     }
     if (this.hasLeakedCredentials_(leakedPasswords)) {
       return 'cr:warning';
@@ -253,6 +277,64 @@
     return status.state == CheckState.IDLE;
   },
 
+  /**
+   * Returns the button caption indicating it's current functionality.
+   * @param {!PasswordManagerProxy.PasswordCheckStatus} status
+   * @return {string}
+   * @private
+   */
+  getButtonText_(status) {
+    switch (status.state) {
+      case CheckState.IDLE:
+      case CheckState.CANCELED:
+        return this.i18n('checkPasswordsAgain');
+      case CheckState.RUNNING:
+        return this.i18n('checkPasswordsStop');
+      case CheckState.OFFLINE:
+      case CheckState.SIGNED_OUT:
+      case CheckState.NO_PASSWORDS:
+      case CheckState.OTHER_ERROR:
+        return this.i18n('checkPasswordsAgainAfterError');
+      case CheckState.QUOTA_LIMIT:
+      case CheckState.TOO_MANY_PASSWORDS:
+        return '';  // Undefined behavior. Don't show any misleading text.
+    }
+    throw 'Can\'t find a button text for state: ' + status.state;
+  },
+
+  /**
+   * Returns true iff the check/stop button should be visible for a given state.
+   * @param {!PasswordManagerProxy.PasswordCheckStatus} status
+   * @return {!boolean}
+   * @private
+   */
+  isButtonHidden_(status) {
+    switch (status.state) {
+      case CheckState.IDLE:
+      case CheckState.CANCELED:
+      case CheckState.RUNNING:
+      case CheckState.OFFLINE:
+      case CheckState.SIGNED_OUT:
+      case CheckState.NO_PASSWORDS:
+      case CheckState.OTHER_ERROR:
+        return false;
+      case CheckState.TOO_MANY_PASSWORDS:
+      case CheckState.QUOTA_LIMIT:
+        return true;
+    }
+    throw 'Can\'t determine button visibility for state: ' + status.state;
+  },
+
+  /**
+   * Returns true iff the backend communicated that there are too many saved
+   * passwords to check them locally.
+   * @param {!PasswordManagerProxy.PasswordCheckStatus} status
+   * @return {boolean}
+   * @private
+   */
+  hasTooManyPasswords_(status) {
+    return status.state == CheckState.TOO_MANY_PASSWORDS;
+  },
 
   /**
    * Returns true if there are leaked credentials or the status is unexpected
diff --git a/chrome/browser/resources/settings/autofill_page/password_manager_proxy.js b/chrome/browser/resources/settings/autofill_page/password_manager_proxy.js
index 503c919..a809bb4 100644
--- a/chrome/browser/resources/settings/autofill_page/password_manager_proxy.js
+++ b/chrome/browser/resources/settings/autofill_page/password_manager_proxy.js
@@ -155,6 +155,11 @@
   startBulkPasswordCheck() {}
 
   /**
+   * Requests to interrupt an ongoing bulk password check.
+   */
+  stopBulkPasswordCheck() {}
+
+  /**
    * Requests the latest information about compromised credentials.
    * @return {!Promise<(PasswordManagerProxy.CompromisedCredentialsInfo)>}
    */
@@ -355,6 +360,11 @@
   }
 
   /** @override */
+  stopBulkPasswordCheck() {
+    chrome.passwordsPrivate.stopPasswordCheck();
+  }
+
+  /** @override */
   getCompromisedCredentialsInfo() {
     return new Promise(resolve => {
       chrome.passwordsPrivate.getCompromisedCredentialsInfo(resolve);
diff --git a/chrome/browser/resources/settings/people_page/sync_account_control.html b/chrome/browser/resources/settings/people_page/sync_account_control.html
index 512f7157..9124bb5 100644
--- a/chrome/browser/resources/settings/people_page/sync_account_control.html
+++ b/chrome/browser/resources/settings/people_page/sync_account_control.html
@@ -119,7 +119,7 @@
       }
 
       #banner {
-        background: url(../images/sync_banner.svg) no-repeat;
+        background: url(chrome://settings/images/sync_banner.svg) no-repeat;
         background-size: 100% auto;
         display: none;
         padding-top: calc(120 / 680 * 100%); /* Keep background ratio. */
@@ -127,7 +127,7 @@
 
       @media (prefers-color-scheme: dark) {
         #banner {
-          background-image: url(../images/sync_banner_dark.svg);
+          background-image: url(chrome://settings/images/sync_banner_dark.svg);
         }
       }
 
diff --git a/chrome/browser/resources/settings/privacy_page/cookies_page.html b/chrome/browser/resources/settings/privacy_page/cookies_page.html
index 74ef1b36..3c0477a 100644
--- a/chrome/browser/resources/settings/privacy_page/cookies_page.html
+++ b/chrome/browser/resources/settings/privacy_page/cookies_page.html
@@ -35,7 +35,7 @@
         padding-inline-start: var(--cr-button-edge-spacing);
       }
     </style>
-    <img src="../images/cookies_banner.svg">
+    <img src="chrome://settings/images/cookies_banner.svg">
     <div class="settings-box block first">
       <h2>$i18n{cookiePageGeneralControls}</h2>
       <cr-radio-group selected="[[selectCookiesControlRadio_]]"
diff --git a/chrome/browser/resources/settings/settings_resources.grd b/chrome/browser/resources/settings/settings_resources.grd
index 7c3c7bf..c29249e 100644
--- a/chrome/browser/resources/settings/settings_resources.grd
+++ b/chrome/browser/resources/settings/settings_resources.grd
@@ -500,6 +500,18 @@
                  file="icons.html"
                  type="chrome_html"
                  preprocess="true" />
+      <structure name="IDR_SETTINGS_IMAGES_COOKIES_BANNER_SVG"
+                 file="images/cookies_banner.svg"
+                 type="chrome_html" />
+      <structure name="IDR_SETTINGS_IMAGES_SAFE_BROWSING_BANNER_SVG"
+                 file="images/safe_browsing_banner.svg"
+                 type="chrome_html" />
+      <structure name="IDR_SETTINGS_IMAGES_SYNC_BANNER_SVG"
+                 file="images/sync_banner.svg"
+                 type="chrome_html" />
+      <structure name="IDR_SETTINGS_IMAGES_SYNC_BANNER_DARK_SVG"
+                 file="images/sync_banner_dark.svg"
+                 type="chrome_html" />
       <structure name="IDR_SETTINGS_RESET_PAGE_HTML"
                  file="reset_page/reset_page.html"
                  type="chrome_html"
@@ -693,21 +705,19 @@
       <structure name="IDR_SETTINGS_PEOPLE_PAGE_HTML"
                  file="people_page/people_page.html"
                  type="chrome_html"
-                 flattenhtml="true"
-                 allowexternalscript="true" />
+                 preprocess="true" />
       <structure name="IDR_SETTINGS_PEOPLE_PAGE_JS"
                  file="people_page/people_page.js"
                  type="chrome_html"
                  preprocess="true" />
       <structure name="IDR_SETTINGS_PEOPLE_PAGE_SYNC_ACCOUNT_CONTROL_HTML"
-                  file="people_page/sync_account_control.html"
-                  type="chrome_html"
-                  flattenhtml="true"
-                  allowexternalscript="true" />
+                 file="people_page/sync_account_control.html"
+                 type="chrome_html"
+                 preprocess="true" />
       <structure name="IDR_SETTINGS_PEOPLE_PAGE_SYNC_ACCOUNT_CONTROL_JS"
-                  file="people_page/sync_account_control.js"
-                  type="chrome_html"
-                  preprocess="true" />
+                 file="people_page/sync_account_control.js"
+                 type="chrome_html"
+                 preprocess="true" />
       <if expr="not chromeos">
         <structure name="IDR_SETTINGS_PEOPLE_PAGE_IMPORT_DATA_DIALOG_HTML"
                    file="people_page/import_data_dialog.html"
@@ -836,12 +846,10 @@
       <structure name="IDR_SETTINGS_COOKIES_PAGE_HTML"
                  file="privacy_page/cookies_page.html"
                  type="chrome_html"
-                 flattenhtml= "true"
-                 allowexternalscript= "true" />
+                 preprocess="true" />
       <structure name="IDR_SETTINGS_COOKIES_PAGE_JS"
                  file="privacy_page/cookies_page.js"
-                 type="chrome_html"
-                 preprocess="true" />
+                 type="chrome_html" />
       <structure name="IDR_SETTINGS_DO_NOT_TRACK_TOGGLE_HTML"
                  file="privacy_page/do_not_track_toggle.html"
                  type="chrome_html" />
@@ -884,17 +892,16 @@
                  type="chrome_html" />
       <structure name="IDR_SETTINGS_SECURITY_PAGE_HTML"
                  file="privacy_page/security_page.html"
-                 type="chrome_html"
-                 preprocess="true" />
+                 preprocess="true"
+                 type="chrome_html" />
       <structure name="IDR_SETTINGS_SECURITY_PAGE_JS"
                  file="privacy_page/security_page.js"
                  type="chrome_html"
                  preprocess="true" />
       <structure name="IDR_SETTINGS_PRIVACY_PAGE_HTML"
                  file="privacy_page/privacy_page.html"
-                 type="chrome_html"
-                 flattenhtml="true"
-                 allowexternalscript="true" />
+                 preprocess="true"
+                 type="chrome_html" />
       <structure name="IDR_SETTINGS_PRIVACY_PAGE_JS"
                  file="privacy_page/privacy_page.js"
                  preprocess="true"
diff --git a/chrome/browser/resources/settings/settings_resources_vulcanized.grd b/chrome/browser/resources/settings/settings_resources_vulcanized.grd
index 7aa12adc..19e6cbed 100644
--- a/chrome/browser/resources/settings/settings_resources_vulcanized.grd
+++ b/chrome/browser/resources/settings/settings_resources_vulcanized.grd
@@ -15,27 +15,41 @@
       <include name="IDR_SETTINGS_VULCANIZED_HTML"
                file="${root_gen_dir}\chrome\browser\resources\settings\vulcanized.html"
                use_base_dir="false"
-               flattenhtml="true"
-               allowexternalscript="true"
+               preprocess="true"
                type="BINDATA"
                compress="gzip" />
       <include name="IDR_SETTINGS_CRISPER_JS"
                file="${root_gen_dir}\chrome\browser\resources\settings\crisper.js"
                use_base_dir="false"
-               flattenhtml="true"
+               preprocess="true"
                type="BINDATA"
                compress="gzip" />
       <include name="IDR_SETTINGS_LAZY_LOAD_VULCANIZED_HTML"
                file="${root_gen_dir}\chrome\browser\resources\settings\lazy_load.vulcanized.html"
                use_base_dir="false"
-               flattenhtml="true"
-               allowexternalscript="true"
+               preprocess="true"
                type="BINDATA"
                compress="gzip" />
       <include name="IDR_SETTINGS_LAZY_LOAD_CRISPER_JS"
                file="${root_gen_dir}\chrome\browser\resources\settings\lazy_load.crisper.js"
                use_base_dir="false"
-               flattenhtml="true"
+               preprocess="true"
+               type="BINDATA"
+               compress="gzip" />
+      <include name="IDR_SETTINGS_IMAGES_COOKIES_BANNER_SVG"
+               file="images/cookies_banner.svg"
+               type="BINDATA"
+               compress="gzip" />
+      <include name="IDR_SETTINGS_IMAGES_SAFE_BROWSING_BANNER_SVG"
+               file="images/safe_browsing_banner.svg"
+               type="BINDATA"
+               compress="gzip" />
+      <include name="IDR_SETTINGS_IMAGES_SYNC_BANNER_SVG"
+               file="images/sync_banner.svg"
+               type="BINDATA"
+               compress="gzip" />
+      <include name="IDR_SETTINGS_IMAGES_SYNC_BANNER_DARK_SVG"
+               file="images/sync_banner_dark.svg"
                type="BINDATA"
                compress="gzip" />
       <include name="IDR_SETTINGS_IMAGES_PASSWORD_CHECK_NEUTRAL_SVG"
diff --git a/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.html b/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.html
index d1610ef..062af657 100644
--- a/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.html
+++ b/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.html
@@ -54,7 +54,7 @@
       <div class="list-item secondary">$i18n{noRecentPermissions}</div>
     </div>
     <template is="dom-repeat" id="recentPermissionsList"
-        items="[[recentSitePermissionsList_]]">
+        items="[[recentSitePermissionsList_]]" on-dom-change="onDomChange_">
       <div class$="settings-box [[getClassForIndex_(index)]]">
         <div class="start row-aligned link-button"
             on-click="onRecentSitePermissionClick_" actionable
@@ -76,12 +76,13 @@
                 [[getPermissionsText_(item)]]
             </div>
           </div>
-          <cr-icon-button class="subpage-arrow"
+          <cr-icon-button id="siteEntryButton_[[index]]" class="subpage-arrow"
               hidden$="[[item.incognito]]"
               aria-label$="[[getDisplayName_(item)]]"
               aria-describedby$="displayName_[[index]]"
               focus-row-control focus-type="show-detail"></cr-icon-button>
-          <cr-tooltip-icon class="incognito-icon"
+          <cr-tooltip-icon id="incognitoInfoIcon_[[index]]"
+              class="incognito-icon"
               hidden$="[[!item.incognito]]"
               disabled$="[[item.incognito]]"
               icon-aria-label="$i18n{incognitoSiteExceptionDesc}"
diff --git a/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js b/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js
index 9bc2189..a52da2c7 100644
--- a/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js
+++ b/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js
@@ -16,11 +16,16 @@
     /** @type boolean */
     noRecentPermissions: {
       type: Boolean,
-      computed: 'noRecentPermissions_(recentSitePermissionsList_)',
+      computed: 'computeNoRecentPermissions_(recentSitePermissionsList_)',
       notify: true,
     },
 
     /**
+     * @private {boolean}
+     */
+    shouldFocusAfterPopulation_: Boolean,
+
+    /**
      * List of recent site permissions grouped by source.
      * @type {!Array<RecentSitePermissions>}
      * @private
@@ -29,6 +34,37 @@
       type: Array,
       value: () => [],
     },
+
+    /** @type {!Map<string, (string|Function)>} */
+    focusConfig: {
+      type: Object,
+      observer: 'focusConfigChanged_',
+    },
+  },
+
+  /**
+   * When navigating to a site details sub-page, |lastSelected_| holds the
+   * origin and incognito bit associated with the link that sent the user there,
+   * as well as the index in recent permission list for that entry. This allows
+   * for an intelligent re-focus upon a back navigation.
+   * @private {!{origin: string, incognito: boolean, index: number}|null}
+   */
+  lastSelected_: null,
+
+  /**
+   * @param {!Map<string, string>} newConfig
+   * @param {?Map<string, string>} oldConfig
+   * @private
+   */
+  focusConfigChanged_(newConfig, oldConfig) {
+    // focusConfig is set only once on the parent, so this observer should
+    // only fire once.
+    assert(!oldConfig);
+
+    this.focusConfig.set(
+        settings.routes.SITE_SETTINGS_SITE_DETAILS.path, () => {
+          this.shouldFocusAfterPopulation_ = true;
+        });
   },
 
   /**
@@ -52,6 +88,7 @@
 
   /**
    * Perform internationalization for the given content settings type.
+   * @param {string} contentSettingsType
    * @return {string} The localised content setting type string
    * @private
    */
@@ -212,7 +249,7 @@
    * @return {boolean}
    * @private
    */
-  noRecentPermissions_() {
+  computeNoRecentPermissions_() {
     return this.recentSitePermissionsList_.length === 0;
   },
 
@@ -220,6 +257,7 @@
    * Called for when incognito is enabled or disabled. Only called on change
    * (opening N incognito windows only fires one message). Another message is
    * sent when the *last* incognito window closes.
+   * @param {boolean} hasIncognito
    * @private
    */
   onIncognitoStatusChanged_(hasIncognito) {
@@ -233,7 +271,7 @@
 
   /**
    * A handler for selecting a recent site permissions entry.
-   * @param {!{model: !{index: number}}} e
+   * @param {!{model: !{item: !RecentSitePermissions, index: number}}} e
    * @private
    */
   onRecentSitePermissionClick_(e) {
@@ -242,6 +280,11 @@
         settings.routes.SITE_SETTINGS_SITE_DETAILS,
         new URLSearchParams({site: origin}));
     this.browserProxy.recordAction(settings.AllSitesAction.ENTER_SITE_DETAILS);
+    this.lastSelected_ = {
+      index: e.model.index,
+      origin: e.model.item.origin,
+      incognito: e.model.item.incognito,
+    };
   },
 
   /**
@@ -271,6 +314,39 @@
   },
 
   /**
+   * Called after the list has finished populating and |lastSelected_| contains
+   * a valid entry that should attempt to be focused. If lastSelected_ cannot
+   * be found the index where it used to be is focused. This may result in
+   * focusing another link arrow, or an incognito information icon. If the
+   * recent permission list is empty, focus is lost.
+   * @private
+   */
+  focusLastSelected_() {
+    if (this.noRecentPermissions) {
+      return;
+    }
+    const currentIndex =
+        this.recentSitePermissionsList_.findIndex(function(permissions) {
+          return permissions.origin === this.lastSelected_.origin &&
+              permissions.incognito === this.lastSelected_.incognito;
+        });
+
+    const fallbackIndex = Math.min(
+        this.lastSelected_.index, this.recentSitePermissionsList_.length - 1);
+
+    const index = currentIndex > -1 ? currentIndex : fallbackIndex;
+
+    if (this.recentSitePermissionsList_[index].incognito) {
+      cr.ui.focusWithoutInk(
+          assert(/** @type {{getFocusableElement: Function}} */ (
+                     this.$$(`#incognitoInfoIcon_${index}`))
+                     .getFocusableElement()));
+    } else {
+      cr.ui.focusWithoutInk(assert(this.$$(`#siteEntryButton_${index}`)));
+    }
+  },
+
+  /**
    * Retrieve the list of recently changed permissions and implicitly trigger
    * the update of the display list.
    * @private
@@ -280,4 +356,16 @@
         await this.browserProxy.getRecentSitePermissions(
             this.getCategoryList(), 3);
   },
+
+  /**
+   * Called when the dom-repeat DOM has changed. This allows updating the
+   * focused element after the elements have been adjusted.
+   * @private
+   */
+  onDomChange_() {
+    if (this.shouldFocusAfterPopulation_) {
+      this.focusLastSelected_();
+      this.shouldFocusAfterPopulation_ = false;
+    }
+  },
 });
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.html b/chrome/browser/resources/settings/site_settings_page/site_settings_page.html
index 63996020..2e98fec 100644
--- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.html
+++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.html
@@ -26,7 +26,8 @@
         <h2 class="first">$i18n{siteSettingsRecentPermissionsSectionLabel}</h2>
       </div>
       <settings-recent-site-permissions id="recentSitePermissions"
-          no-recent-permissions="{{noRecentSitePermissions_}}">
+          no-recent-permissions="{{noRecentSitePermissions_}}"
+          focus-config="[[focusConfig]]">
       </settings-recent-site-permissions>
     </template>
 
diff --git a/chrome/browser/resources/tab_strip/tab.js b/chrome/browser/resources/tab_strip/tab.js
index 7e23975d..4c6fbb9 100644
--- a/chrome/browser/resources/tab_strip/tab.js
+++ b/chrome/browser/resources/tab_strip/tab.js
@@ -226,16 +226,14 @@
    * @private
    */
   onClose_(event) {
-    if (!this.tab_) {
-      return;
-    }
-
+    assert(this.tab_);
     event.stopPropagation();
     this.tabsApi_.closeTab(this.tab_.id, CloseTabAction.CLOSE_BUTTON);
   }
 
   /** @private */
   onSwipe_() {
+    assert(this.tab_);
     this.tabsApi_.closeTab(this.tab_.id, CloseTabAction.SWIPED_TO_CLOSE);
   }
 
@@ -249,6 +247,10 @@
     }
   }
 
+  resetSwipe() {
+    this.tabSwiper_.reset();
+  }
+
   /**
    * @param {boolean} isDragging
    */
@@ -307,8 +309,8 @@
    * @return {!Promise}
    */
   slideOut() {
-    if (!this.embedderApi_.isVisible() || this.tab_.pinned) {
-      // There is no point in animating if the tab strip is hidden.
+    if (!this.embedderApi_.isVisible() || this.tab_.pinned ||
+        this.tabSwiper_.wasSwiping()) {
       this.remove();
       return Promise.resolve();
     }
diff --git a/chrome/browser/resources/tab_strip/tab_list.js b/chrome/browser/resources/tab_strip/tab_list.js
index 6b74334..08ac72db 100644
--- a/chrome/browser/resources/tab_strip/tab_list.js
+++ b/chrome/browser/resources/tab_strip/tab_list.js
@@ -273,6 +273,8 @@
       this.addWebUIListener_(
           'tab-active-changed', tabId => this.onTabActivated_(tabId));
       this.addWebUIListener_(
+          'tab-close-cancelled', tabId => this.onTabCloseCancelled_(tabId));
+      this.addWebUIListener_(
           'tab-group-state-changed',
           (tabId, index, groupId) =>
               this.onTabGroupStateChanged_(tabId, index, groupId));
@@ -459,6 +461,18 @@
   }
 
   /**
+   * @param {number} id
+   * @private
+   */
+  onTabCloseCancelled_(id) {
+    const tabElement = this.findTabElement_(id);
+    if (!tabElement) {
+      return;
+    }
+    tabElement.resetSwipe();
+  }
+
+  /**
    * @param {!TabData} tab
    * @private
    */
diff --git a/chrome/browser/resources/tab_strip/tab_swiper.js b/chrome/browser/resources/tab_strip/tab_swiper.js
index 7c6588a7..269f16e 100644
--- a/chrome/browser/resources/tab_strip/tab_swiper.js
+++ b/chrome/browser/resources/tab_strip/tab_swiper.js
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import {isRTL} from 'chrome://resources/js/util.m.js';
+
 /**
  * The minimum amount of pixels needed for the user to swipe for the position
  * (controlled by transform property) to start animating to 0.
@@ -81,6 +83,9 @@
 
   /** @private */
   createAnimation_() {
+    // TODO(crbug.com/1025390): padding-inline-end does not work with
+    // animations built using JS.
+    const paddingInlineEnd = isRTL() ? 'paddingLeft' : 'paddingRight';
     const animation = new Animation(new KeyframeEffect(
         this.element_,
         [
@@ -88,6 +93,7 @@
             // Base.
             opacity: 1,
             maxWidth: 'var(--tabstrip-tab-width)',
+            [paddingInlineEnd]: 'var(--tabstrip-tab-spacing)',
             transform: `translateY(0)`
           },
           {
@@ -100,12 +106,14 @@
             // Start of max-width and opacity animation swiping up.
             maxWidth: 'var(--tabstrip-tab-width)',
             offset: SWIPE_START_THRESHOLD_PX / SWIPE_FINISH_THRESHOLD_PX,
+            [paddingInlineEnd]: 'var(--tabstrip-tab-spacing)',
             opacity: 1,
           },
           {
             // Fully swiped up.
             maxWidth: '0px',
             opacity: 0,
+            [paddingInlineEnd]: 0,
             transform: `translateY(-${SWIPE_FINISH_THRESHOLD_PX}px)`
           },
         ],
@@ -113,7 +121,7 @@
           duration: SWIPE_FINISH_THRESHOLD_PX,
           fill: 'both',
         }));
-    animation.currentTime = 0;
+    animation.cancel();
     animation.onfinish = () => {
       this.element_.dispatchEvent(new CustomEvent('swipe'));
     };
@@ -161,6 +169,10 @@
     }
 
     const yDiff = this.currentPointerDownEvent_.clientY - event.clientY;
+    const animationTime = yDiff;
+    this.animation_.currentTime =
+        Math.max(0, Math.min(SWIPE_FINISH_THRESHOLD_PX, animationTime));
+
     if (!this.animationInitiated_ &&
         Math.abs(yDiff) > TRANSLATE_ANIMATION_THRESHOLD_PX) {
       this.animationInitiated_ = true;
@@ -177,22 +189,31 @@
       return;
     }
 
-    const yDiff = this.currentPointerDownEvent_.clientY - event.clientY;
-    const pixelsSwiped =
-        Math.max(0, Math.min(SWIPE_FINISH_THRESHOLD_PX, yDiff));
+    const pixelsSwiped = this.animation_.currentTime;
     const swipedEnoughToClose = pixelsSwiped > SWIPE_START_THRESHOLD_PX;
     const wasHighVelocity = pixelsSwiped /
             (event.timeStamp - this.currentPointerDownEvent_.timeStamp) >
         SWIPE_VELOCITY_THRESHOLD;
 
-    if (pixelsSwiped === SWIPE_FINISH_THRESHOLD_PX || swipedEnoughToClose ||
-        wasHighVelocity) {
-      this.element_.dispatchEvent(new CustomEvent('swipe'));
+    if (pixelsSwiped === SWIPE_FINISH_THRESHOLD_PX) {
+      // The user has swiped the max amount of pixels to swipe and the animation
+      // has already completed all its keyframes, so just fire the onfinish
+      // events on the animation.
+      this.animation_.finish();
+    } else if (swipedEnoughToClose || wasHighVelocity) {
+      this.animation_.play();
+    } else {
+      this.animation_.cancel();
+      this.animation_.currentTime = 0;
     }
 
     this.clearPointerEvents_();
   }
 
+  reset() {
+    this.animation_.cancel();
+  }
+
   startObserving() {
     this.element_.addEventListener('pointerdown', this.pointerDownListener_);
   }
diff --git a/chrome/browser/resources/tab_strip/tabs_api_proxy.js b/chrome/browser/resources/tab_strip/tabs_api_proxy.js
index 2483942..f5607be 100644
--- a/chrome/browser/resources/tab_strip/tabs_api_proxy.js
+++ b/chrome/browser/resources/tab_strip/tabs_api_proxy.js
@@ -110,15 +110,13 @@
   /**
    * @param {number} tabId
    * @param {!CloseTabAction} closeTabAction
-   * @return {!Promise}
    */
   closeTab(tabId, closeTabAction) {
-    return new Promise(resolve => {
-      chrome.tabs.remove(tabId, resolve);
-      chrome.metricsPrivate.recordEnumerationValue(
-          'WebUITabStrip.CloseTabAction', closeTabAction,
-          Object.keys(CloseTabAction).length);
-    });
+    chrome.send(
+        'closeTab', [tabId, closeTabAction === CloseTabAction.SWIPED_TO_CLOSE]);
+    chrome.metricsPrivate.recordEnumerationValue(
+        'WebUITabStrip.CloseTabAction', closeTabAction,
+        Object.keys(CloseTabAction).length);
   }
 
   /**
diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn
index 3324ad38..adbcadf 100644
--- a/chrome/browser/safe_browsing/BUILD.gn
+++ b/chrome/browser/safe_browsing/BUILD.gn
@@ -151,6 +151,8 @@
         "cloud_content_scanning/deep_scanning_dialog_views.h",
         "cloud_content_scanning/deep_scanning_utils.cc",
         "cloud_content_scanning/deep_scanning_utils.h",
+        "cloud_content_scanning/file_source_request.cc",
+        "cloud_content_scanning/file_source_request.h",
         "cloud_content_scanning/multipart_uploader.cc",
         "cloud_content_scanning/multipart_uploader.h",
         "dm_token_utils.cc",
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc b/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc
index 7915580..ad66a9a 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc
@@ -456,10 +456,12 @@
 
   if (!can_upload_enterprise_data_.has_value()) {
     // Send a request to check if the browser can upload data.
+    authorization_callbacks_.push_back(std::move(callback));
     if (!pending_validate_data_upload_request_) {
       auto dm_token = GetDMToken(profile_);
       if (!dm_token.is_valid()) {
-        std::move(callback).Run(false);
+        can_upload_enterprise_data_ = false;
+        RunAuthorizationCallbacks();
         return;
       }
 
@@ -470,7 +472,6 @@
       request->set_dm_token(dm_token.value());
       UploadForDeepScanning(std::move(request));
     }
-    authorization_callbacks_.push_back(std::move(callback));
     return;
   }
   std::move(callback).Run(can_upload_enterprise_data_.value());
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h b/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h
index f3a0c5a..13d9fc3 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h
@@ -99,7 +99,17 @@
     // Structure of data returned in the callback to GetRequestData().
     struct Data {
       Data();
+
+      // The data content.
       std::string contents;
+
+      // The SHA256 of the data.
+      std::string hash;
+
+      // The size of the data. This can differ from |contents.size()| when the
+      // file is too large for deep scanning. This field will contain the true
+      // size.
+      uint64_t size = 0;
     };
 
     // Asynchronously returns the file contents to upload.
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.cc b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.cc
index 47c99b0..28cf2dd 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.cc
@@ -28,8 +28,10 @@
 #include "chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.h"
 #include "chrome/browser/file_util_service.h"
 #include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h"
 #include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views.h"
 #include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.h"
+#include "chrome/browser/safe_browsing/cloud_content_scanning/file_source_request.h"
 #include "chrome/browser/safe_browsing/dm_token_utils.h"
 #include "chrome/browser/safe_browsing/download_protection/check_client_download_request.h"
 #include "chrome/grit/generated_resources.h"
@@ -68,58 +70,6 @@
   return state == DELAY_UPLOADS || state == DELAY_UPLOADS_AND_DOWNLOADS;
 }
 
-DeepScanningDialogDelegate::FileContents GetFileContentsForLargeFile(
-    const base::FilePath& path,
-    base::File* file) {
-  size_t file_size = file->GetLength();
-  DeepScanningDialogDelegate::FileContents file_contents;
-  file_contents.result = BinaryUploadService::Result::FILE_TOO_LARGE;
-  file_contents.size = file_size;
-
-  // Only read 50MB at a time to avoid having very large files in memory.
-  std::unique_ptr<crypto::SecureHash> secure_hash =
-      crypto::SecureHash::Create(crypto::SecureHash::SHA256);
-  size_t bytes_read = 0;
-  std::string buf;
-  buf.reserve(BinaryUploadService::kMaxUploadSizeBytes);
-  while (bytes_read < file_size) {
-    int64_t bytes_currently_read = file->ReadAtCurrentPos(
-        &buf[0], BinaryUploadService::kMaxUploadSizeBytes);
-
-    if (bytes_currently_read == -1)
-      return DeepScanningDialogDelegate::FileContents();
-
-    secure_hash->Update(buf.data(), bytes_currently_read);
-
-    bytes_read += bytes_currently_read;
-  }
-
-  file_contents.sha256.resize(crypto::kSHA256Length);
-  secure_hash->Finish(base::data(file_contents.sha256), crypto::kSHA256Length);
-  return file_contents;
-}
-
-DeepScanningDialogDelegate::FileContents GetFileContentsForNormalFile(
-    const base::FilePath& path,
-    base::File* file) {
-  size_t file_size = file->GetLength();
-  DeepScanningDialogDelegate::FileContents file_contents;
-  file_contents.result = BinaryUploadService::Result::SUCCESS;
-  file_contents.size = file_size;
-  file_contents.data.contents.resize(file_size);
-
-  int64_t bytes_currently_read =
-      file->ReadAtCurrentPos(&file_contents.data.contents[0], file_size);
-
-  if (bytes_currently_read == -1)
-    return DeepScanningDialogDelegate::FileContents();
-
-  DCHECK_EQ(static_cast<size_t>(bytes_currently_read), file_size);
-
-  file_contents.sha256 = crypto::SHA256HashString(file_contents.data.contents);
-  return file_contents;
-}
-
 // A BinaryUploadService::Request implementation that gets the data to scan
 // from a string.
 class StringSourceRequest : public BinaryUploadService::Request {
@@ -224,41 +174,6 @@
 
 }  // namespace
 
-DeepScanningDialogDelegate::FileSourceRequest::FileSourceRequest(
-    base::WeakPtr<DeepScanningDialogDelegate> delegate,
-    base::FilePath path,
-    BinaryUploadService::Callback callback)
-    : Request(std::move(callback)),
-      delegate_(delegate),
-      path_(std::move(path)) {
-  set_filename(path_.BaseName().AsUTF8Unsafe());
-}
-
-DeepScanningDialogDelegate::FileSourceRequest::~FileSourceRequest() = default;
-
-void DeepScanningDialogDelegate::FileSourceRequest::GetRequestData(
-    DataCallback callback) {
-  base::ThreadPool::PostTaskAndReplyWithResult(
-      FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()},
-      base::BindOnce(&DeepScanningDialogDelegate::GetFileContentsSHA256Blocking,
-                     path_),
-      base::BindOnce(&FileSourceRequest::OnGotFileContents,
-                     weakptr_factory_.GetWeakPtr(), std::move(callback)));
-}
-
-void DeepScanningDialogDelegate::FileSourceRequest::OnGotFileContents(
-    DataCallback callback,
-    FileContents file_contents) {
-  if (delegate_)
-    delegate_->SetFileInfo(path_, std::move(file_contents.sha256),
-                           file_contents.size);
-
-  set_digest(base::HexEncode(file_contents.sha256.data(),
-                             file_contents.sha256.size()));
-
-  std::move(callback).Run(file_contents.result, file_contents.data);
-}
-
 DeepScanningDialogDelegate::Data::Data() = default;
 DeepScanningDialogDelegate::Data::Data(Data&& other) = default;
 DeepScanningDialogDelegate::Data::~Data() = default;
@@ -310,9 +225,7 @@
     ReportSensitiveDataWarningBypass(
         Profile::FromBrowserContext(web_contents_->GetBrowserContext()),
         web_contents_->GetLastCommittedURL(), data_.paths[index].AsUTF8Unsafe(),
-        base::HexEncode(file_info_[index].sha256.data(),
-                        file_info_[index].sha256.size()),
-        file_info_[index].mime_type,
+        file_info_[index].sha256, file_info_[index].mime_type,
         extensions::SafeBrowsingPrivateEventRouter::kTriggerFileUpload,
         file_info_[index].size);
   }
@@ -366,20 +279,6 @@
 }
 
 // static
-DeepScanningDialogDelegate::FileContents
-DeepScanningDialogDelegate::GetFileContentsSHA256Blocking(
-    const base::FilePath& path) {
-  base::File file(path, base::File::FLAG_OPEN | base::File::FLAG_READ);
-  if (!file.IsValid())
-    return FileContents();
-
-  return static_cast<size_t>(file.GetLength()) >
-                 BinaryUploadService::kMaxUploadSizeBytes
-             ? GetFileContentsForLargeFile(path, &file)
-             : GetFileContentsForNormalFile(path, &file);
-}
-
-// static
 bool DeepScanningDialogDelegate::IsEnabled(Profile* profile,
                                            GURL url,
                                            Data* data) {
@@ -561,9 +460,8 @@
   MaybeReportDeepScanningVerdict(
       Profile::FromBrowserContext(web_contents_->GetBrowserContext()),
       web_contents_->GetLastCommittedURL(), path.AsUTF8Unsafe(),
-      base::HexEncode(file_info_[index].sha256.data(),
-                      file_info_[index].sha256.size()),
-      mime_type, extensions::SafeBrowsingPrivateEventRouter::kTriggerFileUpload,
+      file_info_[index].sha256, mime_type,
+      extensions::SafeBrowsingPrivateEventRouter::kTriggerFileUpload,
       file_info_[index].size, result, response);
 
   bool dlp_ok = DlpTriggeredRulesOK(response.dlp_scan_verdict());
@@ -691,12 +589,14 @@
   }
 
   auto request = std::make_unique<FileSourceRequest>(
-      weak_ptr_factory_.GetWeakPtr(), data_.paths[index],
+      data_.paths[index],
       base::BindOnce(&DeepScanningDialogDelegate::FileRequestCallback,
                      weak_ptr_factory_.GetWeakPtr(), data_.paths[index]));
 
-  PrepareRequest(DlpDeepScanningClientRequest::FILE_UPLOAD, request.get());
-  UploadFileForDeepScanning(data_.paths[index], std::move(request));
+  FileSourceRequest* request_raw = request.get();
+  request_raw->GetRequestData(base::BindOnce(
+      &DeepScanningDialogDelegate::OnGotFileInfo,
+      weak_ptr_factory_.GetWeakPtr(), std::move(request), data_.paths[index]));
 }
 
 void DeepScanningDialogDelegate::PrepareRequest(
@@ -781,14 +681,19 @@
     std::move(callback_).Run(data_, result_);
 }
 
-void DeepScanningDialogDelegate::SetFileInfo(const base::FilePath& path,
-                                             std::string sha256,
-                                             int64_t size) {
+void DeepScanningDialogDelegate::OnGotFileInfo(
+    std::unique_ptr<BinaryUploadService::Request> request,
+    const base::FilePath& path,
+    BinaryUploadService::Result result,
+    const BinaryUploadService::Request::Data& data) {
   auto it = std::find(data_.paths.begin(), data_.paths.end(), path);
   DCHECK(it != data_.paths.end());
   size_t index = std::distance(data_.paths.begin(), it);
-  file_info_[index].sha256 = std::move(sha256);
-  file_info_[index].size = size;
+  file_info_[index].sha256 = data.hash;
+  file_info_[index].size = data.size;
+
+  PrepareRequest(DlpDeepScanningClientRequest::FILE_UPLOAD, request.get());
+  UploadFileForDeepScanning(data_.paths[index], std::move(request));
 }
 
 void DeepScanningDialogDelegate::UpdateFinalResult(
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.h b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.h
index 3c6e4ebd..bc2503e 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.h
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.h
@@ -111,7 +111,7 @@
     FileInfo(FileInfo&& other);
     ~FileInfo();
 
-    // SHA256 hash for the given file.
+    // Hex-encoded SHA256 hash for the given file.
     std::string sha256;
 
     // File size in bytes. -1 represents an unknown size.
@@ -222,31 +222,6 @@
   // block it.
   static bool ResultShouldAllowDataUse(BinaryUploadService::Result result);
 
-  // Callback used by FileSourceRequest to read file data on a blocking thread.
-  static FileContents GetFileContentsSHA256Blocking(const base::FilePath& path);
-
-  // A BinaryUploadService::Request implementation that gets the data to scan
-  // from the contents of a file.
-  class FileSourceRequest : public BinaryUploadService::Request {
-   public:
-    FileSourceRequest(base::WeakPtr<DeepScanningDialogDelegate> delegate,
-                      base::FilePath path,
-                      BinaryUploadService::Callback callback);
-    FileSourceRequest(const FileSourceRequest&) = delete;
-    FileSourceRequest& operator=(const FileSourceRequest&) = delete;
-    ~FileSourceRequest() override;
-
-    // BinaryUploadService::Request implementation.
-    void GetRequestData(DataCallback callback) override;
-
-   private:
-    void OnGotFileContents(DataCallback callback, FileContents file_contents);
-
-    base::WeakPtr<DeepScanningDialogDelegate> delegate_;
-    base::FilePath path_;
-    base::WeakPtrFactory<FileSourceRequest> weakptr_factory_{this};
-  };
-
  protected:
   DeepScanningDialogDelegate(content::WebContents* web_contents,
                              Data data,
@@ -310,10 +285,12 @@
   // |callback_| is cleared after being run.
   void RunCallback();
 
-  // Sets the FileInfo the given file.
-  void SetFileInfo(const base::FilePath& path,
-                   std::string sha256,
-                   int64_t size);
+  // Called when the file info for |path| has been fetched. Also begins the
+  // upload process.
+  void OnGotFileInfo(std::unique_ptr<BinaryUploadService::Request> request,
+                     const base::FilePath& path,
+                     BinaryUploadService::Result result,
+                     const BinaryUploadService::Request::Data& data);
 
   // Completion of |FileRequestCallback| once the mime type is obtained
   // asynchronously.
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_browsertest.cc b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_browsertest.cc
index ccc5439a..b98ae937 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_browsertest.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_browsertest.cc
@@ -46,6 +46,10 @@
     prepared_file_responses_[path] = response;
   }
 
+  void SetShouldAutomaticallyAuthorize(bool authorize) {
+    should_automatically_authorize_ = authorize;
+  }
+
   int requests_count() const { return requests_count_; }
 
  private:
@@ -53,6 +57,9 @@
     // The first uploaded request is the authentication one.
     if (++requests_count_ == 1) {
       authorization_request_.swap(request);
+
+      if (should_automatically_authorize_)
+        ReturnAuthorizedResponse();
     } else {
       std::string file = request->deep_scanning_request().filename();
       if (file.empty()) {
@@ -73,6 +80,7 @@
   std::map<std::string, BinaryUploadService::Result> prepared_file_results_;
   std::map<std::string, DeepScanningClientResponse> prepared_file_responses_;
   int requests_count_ = 0;
+  bool should_automatically_authorize_ = false;
 };
 
 FakeBinaryUploadService* FakeBinaryUploadServiceStorage() {
@@ -198,6 +206,8 @@
   ok_file.WriteAtCurrentPos(ok_content.data(), ok_content.size());
   bad_file.WriteAtCurrentPos(bad_content.data(), bad_content.size());
 
+  FakeBinaryUploadServiceStorage()->SetShouldAutomaticallyAuthorize(true);
+
   // Set up delegate and upload service.
   EnableUploadScanning();
 
@@ -246,9 +256,8 @@
           }),
       DeepScanAccessPoint::UPLOAD);
 
-  FakeBinaryUploadServiceStorage()->ReturnAuthorizedResponse();
-
   run_loop.Run();
+
   EXPECT_TRUE(called);
 
   // There should have been 1 request per file and 1 for authentication.
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_unittest.cc b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_unittest.cc
index 18c5c66f..18983de 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_unittest.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_unittest.cc
@@ -1532,150 +1532,4 @@
       BinaryUploadService::Result::FILE_ENCRYPTED));
 }
 
-class DeepScanningFileContentsTest : public testing::Test {
- public:
-  void TestFile(const std::string& file_contents,
-                const std::string& expected_sha256,
-                BinaryUploadService::Result expected_result) {
-    base::ScopedTempDir temp_dir;
-    ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
-    base::FilePath file_path = temp_dir.GetPath().AppendASCII("foo.doc");
-
-    // Create the file.
-    base::File file(file_path,
-                    base::File::FLAG_CREATE | base::File::FLAG_WRITE);
-    file.WriteAtCurrentPos(file_contents.data(), file_contents.size());
-
-    // Obtain its contents and validate the returned value.
-    DeepScanningDialogDelegate::FileContents contents =
-        DeepScanningDialogDelegate::GetFileContentsSHA256Blocking(file_path);
-    ASSERT_EQ(contents.result, expected_result);
-    ASSERT_EQ(static_cast<size_t>(contents.size), file_contents.size());
-    if (expected_result == BinaryUploadService::Result::FILE_TOO_LARGE) {
-      ASSERT_TRUE(contents.data.contents.empty());
-    } else {
-      ASSERT_EQ(contents.data.contents, file_contents);
-    }
-    ASSERT_EQ(contents.sha256, expected_sha256);
-  }
-
-  static constexpr int kLargeFileThreshold =
-      BinaryUploadService::kMaxUploadSizeBytes;
-};
-
-TEST_F(DeepScanningFileContentsTest, InvalidFiles) {
-  base::ScopedTempDir temp_dir;
-  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
-
-  // Non-existent files should return UNKNOWN and have no information set.
-  DeepScanningDialogDelegate::FileContents contents =
-      DeepScanningDialogDelegate::GetFileContentsSHA256Blocking(
-          temp_dir.GetPath().AppendASCII("not_a_real.doc"));
-  ASSERT_EQ(contents.result, BinaryUploadService::Result::UNKNOWN);
-  ASSERT_EQ(contents.size, 0u);
-  ASSERT_TRUE(contents.data.contents.empty());
-  ASSERT_TRUE(contents.sha256.empty());
-
-  // Directories should not be used as paths passed to GetFileSHA256Blocking, so
-  // they should return UNKNOWN and have no information set.
-  contents = DeepScanningDialogDelegate::GetFileContentsSHA256Blocking(
-      temp_dir.GetPath());
-  ASSERT_EQ(contents.result, BinaryUploadService::Result::UNKNOWN);
-  ASSERT_EQ(contents.size, 0u);
-  ASSERT_TRUE(contents.data.contents.empty());
-  ASSERT_TRUE(contents.sha256.empty());
-}
-
-TEST_F(DeepScanningFileContentsTest, NormalFiles) {
-  std::string file_contents = "Normal file contents";
-  // printf "Normal file contents" | sha256sum
-  std::string expected_sha256 = {
-      0x29, 0x64, 0x4c, 0x10, 0xbd, 0x03, 0x68, 0x66, 0xfc, 0xfd, 0x2b,
-      0xda, 0xcf, 0xf3, 0x40, 0xdb, 0x5d, 0xe4, 0x7a, 0x90, 0x00, 0x2d,
-      0x6a, 0xb0, 0xc4, 0x2d, 0xe6, 0xa2, 0x2c, 0x26, 0x15, 0x8b};
-  TestFile(file_contents, expected_sha256,
-           BinaryUploadService::Result::SUCCESS);
-
-  std::string almost_large_file_contents(kLargeFileThreshold, 'a');
-  // python3 -c "print('a' * (50 * 1024 * 1024), end='')" | sha256sum
-  std::string almost_large_expected_sha256 = {
-      0x4f, 0x0e, 0x9c, 0x6a, 0x1a, 0x9a, 0x90, 0xf3, 0x5b, 0x88, 0x4d,
-      0x0f, 0x0e, 0x73, 0x43, 0x45, 0x9c, 0x21, 0x06, 0x0e, 0xef, 0xec,
-      0x6c, 0x0f, 0x2f, 0xa9, 0xdc, 0x11, 0x18, 0xdb, 0xe5, 0xbe};
-  TestFile(almost_large_file_contents, almost_large_expected_sha256,
-           BinaryUploadService::Result::SUCCESS);
-}
-
-TEST_F(DeepScanningFileContentsTest, LargeFiles) {
-  std::string large_file_contents(kLargeFileThreshold + 1, 'a');
-  // python3 -c "print('a' * (50 * 1024 * 1024 + 1), end='')" | sha256sum
-  std::string large_expected_sha256 = {
-      0x9e, 0xb5, 0x6d, 0xb3, 0x0c, 0x49, 0xe1, 0x31, 0x45, 0x9f, 0xe7,
-      0x35, 0xba, 0x6b, 0x9d, 0x38, 0x32, 0x73, 0x76, 0x22, 0x4e, 0xc8,
-      0xd5, 0xa1, 0x23, 0x3f, 0x43, 0xa5, 0xb4, 0xa2, 0x59, 0x42};
-  TestFile(large_file_contents, large_expected_sha256,
-           BinaryUploadService::Result::FILE_TOO_LARGE);
-
-  std::string very_large_file_contents(2 * kLargeFileThreshold, 'a');
-  // python3 -c "print('a' * (100 * 1024 * 1024), end='')" | sha256sum
-  std::string very_large_expected_sha256 = {
-      0xce, 0xe4, 0x1e, 0x98, 0xd0, 0xa6, 0xad, 0x65, 0xcc, 0x0e, 0xc7,
-      0x7a, 0x2b, 0xa5, 0x0b, 0xf2, 0x6d, 0x64, 0xdc, 0x90, 0x07, 0xf7,
-      0xf1, 0xc7, 0xd7, 0xdf, 0x68, 0xb8, 0xb7, 0x12, 0x91, 0xa6};
-  TestFile(very_large_file_contents, very_large_expected_sha256,
-           BinaryUploadService::Result::FILE_TOO_LARGE);
-}
-
-TEST(DeepScanningFileSourceRequestTest, PopulatesDigest) {
-  base::test::TaskEnvironment task_environment;
-  std::string file_contents = "Normal file contents";
-  base::ScopedTempDir temp_dir;
-  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
-  base::FilePath file_path = temp_dir.GetPath().AppendASCII("foo.doc");
-
-  // Create the file.
-  base::File file(file_path, base::File::FLAG_CREATE | base::File::FLAG_WRITE);
-  file.WriteAtCurrentPos(file_contents.data(), file_contents.size());
-
-  DeepScanningDialogDelegate::FileSourceRequest request(nullptr, file_path,
-                                                        base::DoNothing());
-
-  base::RunLoop run_loop;
-  request.GetRequestData(base::BindLambdaForTesting(
-      [&run_loop](BinaryUploadService::Result result,
-                  const BinaryUploadService::Request::Data& data) {
-        run_loop.Quit();
-      }));
-  run_loop.Run();
-
-  // printf "Normal file contents" | sha256sum |  tr '[:lower:]' '[:upper:]'
-  EXPECT_EQ(request.deep_scanning_request().digest(),
-            "29644C10BD036866FCFD2BDACFF340DB5DE47A90002D6AB0C42DE6A22C26158B");
-}
-
-TEST(DeepScanningFileSourceRequestTest, PopulatesFilename) {
-  base::test::TaskEnvironment task_environment;
-  std::string file_contents = "contents";
-  base::ScopedTempDir temp_dir;
-  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
-  base::FilePath file_path = temp_dir.GetPath().AppendASCII("foo.doc");
-
-  // Create the file.
-  base::File file(file_path, base::File::FLAG_CREATE | base::File::FLAG_WRITE);
-  file.WriteAtCurrentPos(file_contents.data(), file_contents.size());
-
-  DeepScanningDialogDelegate::FileSourceRequest request(nullptr, file_path,
-                                                        base::DoNothing());
-
-  base::RunLoop run_loop;
-  request.GetRequestData(base::BindLambdaForTesting(
-      [&run_loop](BinaryUploadService::Result result,
-                  const BinaryUploadService::Request::Data& data) {
-        run_loop.Quit();
-      }));
-  run_loop.Run();
-
-  EXPECT_EQ(request.deep_scanning_request().filename(), "foo.doc");
-}
-
 }  // namespace safe_browsing
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/file_source_request.cc b/chrome/browser/safe_browsing/cloud_content_scanning/file_source_request.cc
new file mode 100644
index 0000000..e548ff5
--- /dev/null
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/file_source_request.cc
@@ -0,0 +1,122 @@
+// Copyright (c) 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/safe_browsing/cloud_content_scanning/file_source_request.h"
+
+#include "base/strings/string_number_conversions.h"
+#include "base/task/post_task.h"
+#include "chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h"
+#include "crypto/secure_hash.h"
+#include "crypto/sha2.h"
+
+namespace safe_browsing {
+
+namespace {
+
+std::pair<BinaryUploadService::Result, BinaryUploadService::Request::Data>
+GetFileContentsForLargeFile(const base::FilePath& path, base::File* file) {
+  size_t file_size = file->GetLength();
+  BinaryUploadService::Request::Data file_data;
+  file_data.size = file_size;
+
+  // Only read 50MB at a time to avoid having very large files in memory.
+  std::unique_ptr<crypto::SecureHash> secure_hash =
+      crypto::SecureHash::Create(crypto::SecureHash::SHA256);
+  size_t bytes_read = 0;
+  std::string buf;
+  buf.reserve(BinaryUploadService::kMaxUploadSizeBytes);
+  while (bytes_read < file_size) {
+    int64_t bytes_currently_read = file->ReadAtCurrentPos(
+        &buf[0], BinaryUploadService::kMaxUploadSizeBytes);
+
+    if (bytes_currently_read == -1) {
+      return std::make_pair(BinaryUploadService::Result::UNKNOWN,
+                            BinaryUploadService::Request::Data());
+    }
+
+    secure_hash->Update(buf.data(), bytes_currently_read);
+
+    bytes_read += bytes_currently_read;
+  }
+
+  file_data.hash.resize(crypto::kSHA256Length);
+  secure_hash->Finish(base::data(file_data.hash), crypto::kSHA256Length);
+  file_data.hash =
+      base::HexEncode(base::as_bytes(base::make_span(file_data.hash)));
+  return std::make_pair(BinaryUploadService::Result::FILE_TOO_LARGE, file_data);
+}
+
+std::pair<BinaryUploadService::Result, BinaryUploadService::Request::Data>
+GetFileContentsForNormalFile(const base::FilePath& path, base::File* file) {
+  size_t file_size = file->GetLength();
+  BinaryUploadService::Request::Data file_data;
+  file_data.size = file_size;
+  file_data.contents.resize(file_size);
+
+  int64_t bytes_currently_read =
+      file->ReadAtCurrentPos(&file_data.contents[0], file_size);
+
+  if (bytes_currently_read == -1) {
+    return std::make_pair(BinaryUploadService::Result::UNKNOWN,
+                          BinaryUploadService::Request::Data());
+  }
+
+  DCHECK_EQ(static_cast<size_t>(bytes_currently_read), file_size);
+
+  file_data.hash = crypto::SHA256HashString(file_data.contents);
+  file_data.hash =
+      base::HexEncode(base::as_bytes(base::make_span(file_data.hash)));
+  return std::make_pair(BinaryUploadService::Result::SUCCESS, file_data);
+}
+
+std::pair<BinaryUploadService::Result, BinaryUploadService::Request::Data>
+GetFileDataBlocking(const base::FilePath& path) {
+  base::File file(path, base::File::FLAG_OPEN | base::File::FLAG_READ);
+  if (!file.IsValid()) {
+    return std::make_pair(BinaryUploadService::Result::UNKNOWN,
+                          BinaryUploadService::Request::Data());
+  }
+
+  return static_cast<size_t>(file.GetLength()) >
+                 BinaryUploadService::kMaxUploadSizeBytes
+             ? GetFileContentsForLargeFile(path, &file)
+             : GetFileContentsForNormalFile(path, &file);
+}
+
+}  // namespace
+
+FileSourceRequest::FileSourceRequest(base::FilePath path,
+                                     BinaryUploadService::Callback callback)
+    : Request(std::move(callback)),
+      has_cached_result_(false),
+      path_(std::move(path)) {
+  set_filename(path_.BaseName().AsUTF8Unsafe());
+}
+
+FileSourceRequest::~FileSourceRequest() = default;
+
+void FileSourceRequest::GetRequestData(DataCallback callback) {
+  if (has_cached_result_) {
+    std::move(callback).Run(cached_result_, cached_data_);
+    return;
+  }
+
+  base::ThreadPool::PostTaskAndReplyWithResult(
+      FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()},
+      base::BindOnce(&GetFileDataBlocking, path_),
+      base::BindOnce(&FileSourceRequest::OnGotFileData,
+                     weakptr_factory_.GetWeakPtr(), std::move(callback)));
+}
+
+void FileSourceRequest::OnGotFileData(
+    DataCallback callback,
+    std::pair<BinaryUploadService::Result, Data> result_and_data) {
+  set_digest(result_and_data.second.hash);
+  has_cached_result_ = true;
+  cached_result_ = result_and_data.first;
+  cached_data_ = result_and_data.second;
+  std::move(callback).Run(result_and_data.first, result_and_data.second);
+}
+
+}  // namespace safe_browsing
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/file_source_request.h b/chrome/browser/safe_browsing/cloud_content_scanning/file_source_request.h
new file mode 100644
index 0000000..b79f079
--- /dev/null
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/file_source_request.h
@@ -0,0 +1,41 @@
+// Copyright (c) 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_SAFE_BROWSING_CLOUD_CONTENT_SCANNING_FILE_SOURCE_REQUEST_H_
+#define CHROME_BROWSER_SAFE_BROWSING_CLOUD_CONTENT_SCANNING_FILE_SOURCE_REQUEST_H_
+
+#include "chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h"
+
+namespace safe_browsing {
+
+// A BinaryUploadService::Request implementation that gets the data to scan
+// from the contents of a file. It caches the results so that future calls to
+// GetRequestData will return quickly.
+class FileSourceRequest : public BinaryUploadService::Request {
+ public:
+  FileSourceRequest(base::FilePath path,
+                    BinaryUploadService::Callback callback);
+  FileSourceRequest(const FileSourceRequest&) = delete;
+  FileSourceRequest& operator=(const FileSourceRequest&) = delete;
+  ~FileSourceRequest() override;
+
+  // BinaryUploadService::Request implementation.
+  void GetRequestData(DataCallback callback) override;
+
+ private:
+  void OnGotFileData(
+      DataCallback callback,
+      std::pair<BinaryUploadService::Result, Data> result_and_data);
+
+  bool has_cached_result_;
+  BinaryUploadService::Result cached_result_;
+  Data cached_data_;
+
+  base::FilePath path_;
+  base::WeakPtrFactory<FileSourceRequest> weakptr_factory_{this};
+};
+
+}  // namespace safe_browsing
+
+#endif  // CHROME_BROWSER_SAFE_BROWSING_CLOUD_CONTENT_SCANNING_FILE_SOURCE_REQUEST_H_
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/file_source_request_unittest.cc b/chrome/browser/safe_browsing/cloud_content_scanning/file_source_request_unittest.cc
new file mode 100644
index 0000000..62284a8
--- /dev/null
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/file_source_request_unittest.cc
@@ -0,0 +1,252 @@
+// Copyright (c) 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/safe_browsing/cloud_content_scanning/file_source_request.h"
+
+#include "base/files/file_util.h"
+#include "base/files/scoped_temp_dir.h"
+#include "base/run_loop.h"
+#include "base/test/bind_test_util.h"
+#include "base/test/task_environment.h"
+#include "chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h"
+#include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace safe_browsing {
+
+namespace {
+
+void GetResultsForFileContents(const std::string& file_contents,
+                               BinaryUploadService::Result* out_result,
+                               BinaryUploadService::Request::Data* out_data) {
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+  base::FilePath file_path = temp_dir.GetPath().AppendASCII("normal.doc");
+  base::WriteFile(file_path, file_contents.data(), file_contents.size());
+
+  FileSourceRequest request(file_path, base::DoNothing());
+
+  bool called = false;
+  base::RunLoop run_loop;
+  request.GetRequestData(base::BindLambdaForTesting(
+      [&run_loop, &called, &out_result, &out_data](
+          BinaryUploadService::Result result,
+          const BinaryUploadService::Request::Data& data) {
+        called = true;
+        run_loop.Quit();
+        *out_result = result;
+        *out_data = data;
+      }));
+  run_loop.Run();
+
+  EXPECT_TRUE(called);
+}
+
+}  // namespace
+
+TEST(FileSourceRequestTest, InvalidFiles) {
+  base::test::TaskEnvironment task_environment;
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+
+  {
+    // Non-existent files should return UNKNOWN and have no information set.
+    FileSourceRequest request(temp_dir.GetPath().AppendASCII("not_a_real.doc"),
+                              base::DoNothing());
+
+    bool called = false;
+    base::RunLoop run_loop;
+    request.GetRequestData(base::BindLambdaForTesting(
+        [&run_loop, &called](BinaryUploadService::Result result,
+                             const BinaryUploadService::Request::Data& data) {
+          called = true;
+          run_loop.Quit();
+
+          EXPECT_EQ(result, BinaryUploadService::Result::UNKNOWN);
+          EXPECT_EQ(data.size, 0u);
+          EXPECT_TRUE(data.contents.empty());
+          EXPECT_TRUE(data.hash.empty());
+        }));
+    run_loop.Run();
+
+    EXPECT_TRUE(called);
+  }
+
+  {
+    // Directories should not be used as paths passed to GetFileSHA256Blocking,
+    // so they should return UNKNOWN and have no information set.
+    FileSourceRequest request(temp_dir.GetPath(), base::DoNothing());
+
+    bool called = false;
+    base::RunLoop run_loop;
+    request.GetRequestData(base::BindLambdaForTesting(
+        [&run_loop, &called](BinaryUploadService::Result result,
+                             const BinaryUploadService::Request::Data& data) {
+          called = true;
+          run_loop.Quit();
+
+          EXPECT_EQ(result, BinaryUploadService::Result::UNKNOWN);
+          EXPECT_EQ(data.size, 0u);
+          EXPECT_TRUE(data.contents.empty());
+          EXPECT_TRUE(data.hash.empty());
+        }));
+    run_loop.Run();
+
+    EXPECT_TRUE(called);
+  }
+}
+
+TEST(FileSourceRequestTest, NormalFiles) {
+  base::test::TaskEnvironment task_environment;
+
+  BinaryUploadService::Result result;
+  BinaryUploadService::Request::Data data;
+
+  std::string normal_contents = "Normal file contents";
+  GetResultsForFileContents(normal_contents, &result, &data);
+  EXPECT_EQ(result, BinaryUploadService::Result::SUCCESS);
+  EXPECT_EQ(data.size, normal_contents.size());
+  EXPECT_EQ(data.contents, normal_contents);
+  // printf "Normal file contents" | sha256sum |  tr '[:lower:]' '[:upper:]'
+  EXPECT_EQ(data.hash,
+            "29644C10BD036866FCFD2BDACFF340DB5DE47A90002D6AB0C42DE6A22C26158B");
+
+  std::string long_contents =
+      std::string(BinaryUploadService::kMaxUploadSizeBytes, 'a');
+  GetResultsForFileContents(long_contents, &result, &data);
+  EXPECT_EQ(result, BinaryUploadService::Result::SUCCESS);
+  EXPECT_EQ(data.size, long_contents.size());
+  EXPECT_EQ(data.contents, long_contents);
+  // printf "Normal file contents" | sha256sum |  tr '[:lower:]' '[:upper:]'
+  EXPECT_EQ(data.hash,
+            "4F0E9C6A1A9A90F35B884D0F0E7343459C21060EEFEC6C0F2FA9DC1118DBE5BE");
+}
+
+TEST(FileSourceRequest, LargeFiles) {
+  base::test::TaskEnvironment task_environment;
+
+  BinaryUploadService::Result result;
+  BinaryUploadService::Request::Data data;
+
+  std::string large_file_contents(BinaryUploadService::kMaxUploadSizeBytes + 1,
+                                  'a');
+  GetResultsForFileContents(large_file_contents, &result, &data);
+  EXPECT_EQ(result, BinaryUploadService::Result::FILE_TOO_LARGE);
+  EXPECT_EQ(data.size, large_file_contents.size());
+  EXPECT_TRUE(data.contents.empty());
+  // python3 -c "print('a' * (50 * 1024 * 1024 + 1), end='')" | sha256sum | tr
+  // '[:lower:]' '[:upper:]'
+  EXPECT_EQ(data.hash,
+            "9EB56DB30C49E131459FE735BA6B9D38327376224EC8D5A1233F43A5B4A25942");
+
+  std::string very_large_file_contents(
+      2 * BinaryUploadService::kMaxUploadSizeBytes, 'a');
+  GetResultsForFileContents(very_large_file_contents, &result, &data);
+  EXPECT_EQ(result, BinaryUploadService::Result::FILE_TOO_LARGE);
+  EXPECT_EQ(data.size, very_large_file_contents.size());
+  EXPECT_TRUE(data.contents.empty());
+  // python3 -c "print('a' * (100 * 1024 * 1024), end='')" | sha256sum | tr
+  // '[:lower:]' '[:upper:]'
+  EXPECT_EQ(data.hash,
+            "CEE41E98D0A6AD65CC0EC77A2BA50BF26D64DC9007F7F1C7D7DF68B8B71291A6");
+}
+
+TEST(FileSourceRequestTest, PopulatesDigest) {
+  base::test::TaskEnvironment task_environment;
+  std::string file_contents = "Normal file contents";
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+  base::FilePath file_path = temp_dir.GetPath().AppendASCII("foo.doc");
+
+  // Create the file.
+  base::File file(file_path, base::File::FLAG_CREATE | base::File::FLAG_WRITE);
+  file.WriteAtCurrentPos(file_contents.data(), file_contents.size());
+
+  FileSourceRequest request(file_path, base::DoNothing());
+
+  base::RunLoop run_loop;
+  request.GetRequestData(base::BindLambdaForTesting(
+      [&run_loop](BinaryUploadService::Result result,
+                  const BinaryUploadService::Request::Data& data) {
+        run_loop.Quit();
+      }));
+  run_loop.Run();
+
+  // printf "Normal file contents" | sha256sum |  tr '[:lower:]' '[:upper:]'
+  EXPECT_EQ(request.deep_scanning_request().digest(),
+            "29644C10BD036866FCFD2BDACFF340DB5DE47A90002D6AB0C42DE6A22C26158B");
+}
+
+TEST(FileSourceRequestTest, PopulatesFilename) {
+  base::test::TaskEnvironment task_environment;
+  std::string file_contents = "contents";
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+  base::FilePath file_path = temp_dir.GetPath().AppendASCII("foo.doc");
+
+  // Create the file.
+  base::File file(file_path, base::File::FLAG_CREATE | base::File::FLAG_WRITE);
+  file.WriteAtCurrentPos(file_contents.data(), file_contents.size());
+
+  FileSourceRequest request(file_path, base::DoNothing());
+
+  base::RunLoop run_loop;
+  request.GetRequestData(base::BindLambdaForTesting(
+      [&run_loop](BinaryUploadService::Result result,
+                  const BinaryUploadService::Request::Data& data) {
+        run_loop.Quit();
+      }));
+  run_loop.Run();
+
+  EXPECT_EQ(request.deep_scanning_request().filename(), "foo.doc");
+}
+
+TEST(FileSourceRequestTest, CachesResults) {
+  base::test::TaskEnvironment task_environment;
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+
+  std::string normal_contents = "Normal file contents";
+  base::FilePath file_path = temp_dir.GetPath().AppendASCII("normal.doc");
+  base::WriteFile(file_path, normal_contents.data(), normal_contents.size());
+
+  BinaryUploadService::Result async_result;
+  BinaryUploadService::Request::Data async_data;
+
+  FileSourceRequest request(file_path, base::DoNothing());
+
+  bool called = false;
+  base::RunLoop run_loop;
+  request.GetRequestData(base::BindLambdaForTesting(
+      [&run_loop, &called, &async_result, &async_data](
+          BinaryUploadService::Result result,
+          const BinaryUploadService::Request::Data& data) {
+        called = true;
+        run_loop.Quit();
+        async_result = result;
+        async_data = data;
+      }));
+  run_loop.Run();
+
+  ASSERT_TRUE(called);
+
+  BinaryUploadService::Result sync_result;
+  BinaryUploadService::Request::Data sync_data;
+  request.GetRequestData(base::BindLambdaForTesting(
+      [&run_loop, &called, &sync_result, &sync_data](
+          BinaryUploadService::Result result,
+          const BinaryUploadService::Request::Data& data) {
+        called = true;
+        run_loop.Quit();
+        sync_result = result;
+        sync_data = data;
+      }));
+
+  EXPECT_EQ(sync_result, async_result);
+  EXPECT_EQ(sync_data.contents, async_data.contents);
+  EXPECT_EQ(sync_data.size, async_data.size);
+  EXPECT_EQ(sync_data.hash, async_data.hash);
+}
+
+}  // namespace safe_browsing
diff --git a/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc b/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc
index dfebaae6..034fcc7 100644
--- a/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc
+++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc
@@ -9,6 +9,7 @@
 #include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/rand_util.h"
+#include "base/strings/strcat.h"
 #include "base/task/post_task.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.h"
@@ -22,15 +23,18 @@
 #include "chrome/browser/safe_browsing/download_protection/download_protection_service.h"
 #include "chrome/browser/safe_browsing/download_protection/download_protection_util.h"
 #include "chrome/browser/safe_browsing/download_protection/ppapi_download_request.h"
+#include "chrome/browser/signin/identity_manager_factory.h"
 #include "components/prefs/pref_service.h"
 #include "components/safe_browsing/content/web_ui/safe_browsing_ui.h"
 #include "components/safe_browsing/core/common/safe_browsing_prefs.h"
 #include "components/safe_browsing/core/common/utils.h"
+#include "components/safe_browsing/core/features.h"
 #include "components/safe_browsing/core/file_type_policies.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "net/base/load_flags.h"
+#include "net/http/http_request_headers.h"
 #include "net/http/http_status_code.h"
 #include "services/network/public/cpp/simple_url_loader.h"
 
@@ -42,6 +46,8 @@
 
 const char kDownloadExtensionUmaName[] = "SBClientDownload.DownloadExtensions";
 
+constexpr char kAuthHeaderBearer[] = "Bearer ";
+
 void RecordFileExtensionType(const std::string& metric_name,
                              const base::FilePath& file) {
   base::UmaHistogramSparse(
@@ -162,6 +168,12 @@
             ->IsUnderAdvancedProtection();
     is_enhanced_protection_ =
         profile && IsEnhancedProtectionEnabled(*profile->GetPrefs());
+    signin::IdentityManager* identity_manager =
+        IdentityManagerFactory::GetForProfile(profile);
+    if (!profile->IsOffTheRecord() && identity_manager) {
+      token_fetcher_ =
+          std::make_unique<SafeBrowsingTokenFetcher>(identity_manager);
+    }
   }
 }
 
@@ -410,7 +422,7 @@
 void CheckClientDownloadRequestBase::GetTabRedirects() {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   if (!tab_url_.is_valid()) {
-    SendRequest();
+    OnGotTabRedirects({});
     return;
   }
 
@@ -418,7 +430,7 @@
   history::HistoryService* history = HistoryServiceFactory::GetForProfile(
       profile, ServiceAccessType::EXPLICIT_ACCESS);
   if (!history) {
-    SendRequest();
+    OnGotTabRedirects({});
     return;
   }
 
@@ -438,6 +450,22 @@
                           redirect_list.rend());
   }
 
+  if (is_enhanced_protection_ && token_fetcher_ &&
+      base::FeatureList::IsEnabled(kDownloadRequestWithToken)) {
+    token_fetcher_->Start(
+        signin::ConsentLevel::kNotRequired,
+        base::BindOnce(&CheckClientDownloadRequestBase::OnGotAccessToken,
+                       GetWeakPtr()));
+    return;
+  }
+
+  SendRequest();
+}
+
+void CheckClientDownloadRequestBase::OnGotAccessToken(
+    base::Optional<signin::AccessTokenInfo> access_token_info) {
+  if (access_token_info.has_value())
+    access_token_ = access_token_info.value().token;
   SendRequest();
 }
 
@@ -591,6 +619,13 @@
   resource_request->url = PPAPIDownloadRequest::GetDownloadRequestUrl();
   resource_request->method = "POST";
   resource_request->load_flags = net::LOAD_DISABLE_CACHE;
+
+  if (!access_token_.empty()) {
+    resource_request->headers.SetHeader(
+        net::HttpRequestHeaders::kAuthorization,
+        base::StrCat({kAuthHeaderBearer, access_token_}));
+  }
+
   loader_ = network::SimpleURLLoader::Create(std::move(resource_request),
                                              traffic_annotation);
   loader_->AttachStringForUpload(client_download_request_data_,
@@ -603,6 +638,9 @@
   UMA_HISTOGRAM_COUNTS_1M("SBClientDownload.DownloadRequestPayloadSize",
                           client_download_request_data_.size());
 
+  // Add the access token to the proto for display on chrome://safe-browsing
+  request->set_access_token(access_token_);
+
   // The following is to log this ClientDownloadRequest on any open
   // chrome://safe-browsing pages. If no such page is open, the request is
   // dropped and the |request| object deleted.
diff --git a/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.h b/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.h
index 9a6d6cb..32a9c0fa 100644
--- a/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.h
+++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.h
@@ -25,6 +25,7 @@
 #include "chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.h"
 #include "chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h"
 #include "components/history/core/browser/history_service.h"
+#include "components/safe_browsing/core/browser/safe_browsing_token_fetcher.h"
 #include "components/safe_browsing/core/db/database_manager.h"
 #include "content/public/browser/browser_thread.h"
 #include "url/gurl.h"
@@ -147,6 +148,10 @@
   virtual bool ShouldPromptForDeepScanning(
       DownloadCheckResultReason reason) const = 0;
 
+  // Called when |token_fetcher_| has finished fetching the access token.
+  void OnGotAccessToken(
+      base::Optional<signin::AccessTokenInfo> access_token_info);
+
   // Source URL being downloaded from. This shuold always be set, but could be
   // for example an artificial blob: URL if there is no source URL.
   const GURL source_url_;
@@ -212,6 +217,13 @@
   // The hash of the download, if known.
   std::string hash_;
 
+  // The token fetcher used to attach OAuth access tokens to requests for
+  // appropriately consented users.
+  std::unique_ptr<SafeBrowsingTokenFetcher> token_fetcher_;
+
+  // The OAuth access token for the user profile, if needed in the request.
+  std::string access_token_;
+
   DISALLOW_COPY_AND_ASSIGN(CheckClientDownloadRequestBase);
 };  // namespace safe_browsing
 
diff --git a/chrome/browser/safe_browsing/download_protection/download_protection_service_unittest.cc b/chrome/browser/safe_browsing/download_protection/download_protection_service_unittest.cc
index 5d5879d..53d3ea7 100644
--- a/chrome/browser/safe_browsing/download_protection/download_protection_service_unittest.cc
+++ b/chrome/browser/safe_browsing/download_protection/download_protection_service_unittest.cc
@@ -50,6 +50,7 @@
 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
 #include "chrome/browser/safe_browsing/test_extension_event_observer.h"
 #include "chrome/browser/safe_browsing/test_safe_browsing_service.h"
+#include "chrome/browser/signin/identity_test_environment_profile_adaptor.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/extensions/api/safe_browsing_private.h"
 #include "chrome/common/safe_browsing/binary_feature_extractor.h"
@@ -65,6 +66,7 @@
 #include "components/password_manager/core/browser/test_password_store.h"
 #include "components/prefs/pref_service.h"
 #include "components/prefs/scoped_user_pref_update.h"
+#include "components/safe_browsing/content/web_ui/safe_browsing_ui.h"
 #include "components/safe_browsing/core/common/safe_browsing_prefs.h"
 #include "components/safe_browsing/core/common/safebrowsing_switches.h"
 #include "components/safe_browsing/core/db/database_manager.h"
@@ -74,6 +76,7 @@
 #include "components/safe_browsing/core/file_type_policies_test_util.h"
 #include "components/safe_browsing/core/proto/csd.pb.h"
 #include "components/safe_browsing/core/proto/webprotect.pb.h"
+#include "components/signin/public/identity_manager/identity_test_environment.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/download_item_utils.h"
 #include "content/public/browser/page_navigator.h"
@@ -305,6 +308,9 @@
 
     SetDMTokenForTesting(
         policy::DMToken::CreateValidTokenForTesting("dm_token"));
+
+    identity_test_env_adaptor_ =
+        std::make_unique<IdentityTestEnvironmentProfileAdaptor>(profile());
   }
 
   void TearDown() override {
@@ -318,10 +324,16 @@
     sb_service_ = nullptr;
     TestingBrowserProcess::GetGlobal()->SetSafeBrowsingService(nullptr);
     in_process_utility_thread_helper_ = nullptr;
+    identity_test_env_adaptor_.reset();
 
     ChromeRenderViewHostTestHarness::TearDown();
   }
 
+  TestingProfile::TestingFactories GetTestingFactories() const override {
+    return IdentityTestEnvironmentProfileAdaptor::
+        GetIdentityTestEnvironmentFactories();
+  }
+
   void EnableFeatures(const std::vector<base::Feature>& features) {
     scoped_feature_list_.Reset();
     scoped_feature_list_.InitWithFeatures(features, {});
@@ -668,6 +680,8 @@
   base::ScopedTempDir temp_dir_;
   extensions::TestEventRouter* test_event_router_;
   TestingProfileManager testing_profile_manager_;
+  std::unique_ptr<IdentityTestEnvironmentProfileAdaptor>
+      identity_test_env_adaptor_;
 };
 
 class DeepScanningDownloadTest : public DownloadProtectionServiceTest,
@@ -685,6 +699,18 @@
   }
 };
 
+// A test with the appropriate feature flags enabled to test the behavior for
+// Enhanced Protection users.
+class EnhancedProtectionDownloadTest : public DownloadProtectionServiceTest {
+ public:
+  EnhancedProtectionDownloadTest() : DownloadProtectionServiceTest() {
+    // Enable the feature early to prevent race condition trying to access
+    // the enabled features set.  This happens for example when the history
+    // service is started below.
+    EnableFeatures({kEnhancedProtection, kDownloadRequestWithToken});
+  }
+};
+
 void DownloadProtectionServiceTest::CheckClientDownloadReportCorruptArchive(
     ArchiveType type) {
   PrepareResponse(ClientDownloadResponse::SAFE, net::HTTP_OK, net::OK);
@@ -3400,6 +3426,206 @@
   }
 }
 
+TEST_F(EnhancedProtectionDownloadTest, AccessTokenForEnhancedProtectionUsers) {
+  PrepareResponse(ClientDownloadResponse::SAFE, net::HTTP_OK, net::OK);
+
+  identity_test_env_adaptor_->identity_test_env()->MakePrimaryAccountAvailable(
+      "test@example.com");
+  identity_test_env_adaptor_->identity_test_env()
+      ->SetAutomaticIssueOfAccessTokens(/*grant=*/true);
+
+  WebUIInfoSingleton::GetInstance()->AddListenerForTesting();
+
+  {
+    SetEnhancedProtectionPref(profile()->GetPrefs(), true);
+    NiceMockDownloadItem item;
+    content::DownloadItemUtils::AttachInfo(&item, profile(), nullptr);
+    PrepareBasicDownloadItem(&item,
+                             {"http://www.evil.com/bla.exe"},  // url_chain
+                             "",                               // referrer
+                             FILE_PATH_LITERAL("a.tmp"),       // tmp_path
+                             FILE_PATH_LITERAL("a.exe"));      // final_path
+
+    EXPECT_CALL(*sb_service_->mock_database_manager(),
+                MatchDownloadWhitelistUrl(GURL("http://www.evil.com/bla.exe")))
+        .WillRepeatedly(Return(false));
+    EXPECT_CALL(*binary_feature_extractor_.get(), CheckSignature(tmp_path_, _))
+        .Times(1);
+    EXPECT_CALL(*binary_feature_extractor_.get(),
+                ExtractImageFeatures(
+                    tmp_path_, BinaryFeatureExtractor::kDefaultOptions, _, _))
+        .Times(1);
+
+    RunLoop run_loop;
+    download_service_->CheckClientDownload(
+        &item,
+        base::BindRepeating(&DownloadProtectionServiceTest::CheckDoneCallback,
+                            base::Unretained(this), run_loop.QuitClosure()));
+    run_loop.Run();
+
+    const std::vector<std::unique_ptr<ClientDownloadRequest>>& requests =
+        WebUIInfoSingleton::GetInstance()->client_download_requests_sent();
+    ASSERT_EQ(requests.size(), 1u);
+    EXPECT_EQ(requests[0]->access_token(), "access_token");
+  }
+
+  {
+    SetEnhancedProtectionPref(profile()->GetPrefs(), false);
+    NiceMockDownloadItem item;
+    content::DownloadItemUtils::AttachInfo(&item, profile(), nullptr);
+    PrepareBasicDownloadItem(&item,
+                             {"http://www.evil.com/bla.exe"},  // url_chain
+                             "",                               // referrer
+                             FILE_PATH_LITERAL("a.tmp"),       // tmp_path
+                             FILE_PATH_LITERAL("a.exe"));      // final_path
+
+    EXPECT_CALL(*sb_service_->mock_database_manager(),
+                MatchDownloadWhitelistUrl(GURL("http://www.evil.com/bla.exe")))
+        .WillRepeatedly(Return(false));
+    EXPECT_CALL(*binary_feature_extractor_.get(), CheckSignature(tmp_path_, _))
+        .Times(1);
+    EXPECT_CALL(*binary_feature_extractor_.get(),
+                ExtractImageFeatures(
+                    tmp_path_, BinaryFeatureExtractor::kDefaultOptions, _, _))
+        .Times(1);
+
+    RunLoop run_loop;
+    download_service_->CheckClientDownload(
+        &item,
+        base::BindRepeating(&DownloadProtectionServiceTest::CheckDoneCallback,
+                            base::Unretained(this), run_loop.QuitClosure()));
+    run_loop.Run();
+
+    const std::vector<std::unique_ptr<ClientDownloadRequest>>& requests =
+        WebUIInfoSingleton::GetInstance()->client_download_requests_sent();
+    ASSERT_EQ(requests.size(), 2u);
+    EXPECT_TRUE(requests[1]->access_token().empty());
+  }
+
+  WebUIInfoSingleton::GetInstance()->ClearListenerForTesting();
+}
+
+TEST_F(EnhancedProtectionDownloadTest, AccessTokenOnlyWhenSignedIn) {
+  PrepareResponse(ClientDownloadResponse::SAFE, net::HTTP_OK, net::OK);
+
+  identity_test_env_adaptor_->identity_test_env()
+      ->SetAutomaticIssueOfAccessTokens(/*grant=*/true);
+  SetEnhancedProtectionPref(profile()->GetPrefs(), true);
+
+  WebUIInfoSingleton::GetInstance()->AddListenerForTesting();
+
+  {
+    NiceMockDownloadItem item;
+    content::DownloadItemUtils::AttachInfo(&item, profile(), nullptr);
+    PrepareBasicDownloadItem(&item,
+                             {"http://www.evil.com/bla.exe"},  // url_chain
+                             "",                               // referrer
+                             FILE_PATH_LITERAL("a.tmp"),       // tmp_path
+                             FILE_PATH_LITERAL("a.exe"));      // final_path
+
+    EXPECT_CALL(*sb_service_->mock_database_manager(),
+                MatchDownloadWhitelistUrl(GURL("http://www.evil.com/bla.exe")))
+        .WillRepeatedly(Return(false));
+    EXPECT_CALL(*binary_feature_extractor_.get(), CheckSignature(tmp_path_, _))
+        .Times(1);
+    EXPECT_CALL(*binary_feature_extractor_.get(),
+                ExtractImageFeatures(
+                    tmp_path_, BinaryFeatureExtractor::kDefaultOptions, _, _))
+        .Times(1);
+
+    RunLoop run_loop;
+    download_service_->CheckClientDownload(
+        &item,
+        base::BindRepeating(&DownloadProtectionServiceTest::CheckDoneCallback,
+                            base::Unretained(this), run_loop.QuitClosure()));
+    run_loop.Run();
+
+    const std::vector<std::unique_ptr<ClientDownloadRequest>>& requests =
+        WebUIInfoSingleton::GetInstance()->client_download_requests_sent();
+    ASSERT_EQ(requests.size(), 1u);
+    EXPECT_TRUE(requests[0]->access_token().empty());
+  }
+
+  identity_test_env_adaptor_->identity_test_env()->MakePrimaryAccountAvailable(
+      "test@example.com");
+
+  {
+    NiceMockDownloadItem item;
+    content::DownloadItemUtils::AttachInfo(&item, profile(), nullptr);
+    PrepareBasicDownloadItem(&item,
+                             {"http://www.evil.com/bla.exe"},  // url_chain
+                             "",                               // referrer
+                             FILE_PATH_LITERAL("a.tmp"),       // tmp_path
+                             FILE_PATH_LITERAL("a.exe"));      // final_path
+
+    EXPECT_CALL(*sb_service_->mock_database_manager(),
+                MatchDownloadWhitelistUrl(GURL("http://www.evil.com/bla.exe")))
+        .WillRepeatedly(Return(false));
+    EXPECT_CALL(*binary_feature_extractor_.get(), CheckSignature(tmp_path_, _))
+        .Times(1);
+    EXPECT_CALL(*binary_feature_extractor_.get(),
+                ExtractImageFeatures(
+                    tmp_path_, BinaryFeatureExtractor::kDefaultOptions, _, _))
+        .Times(1);
+
+    RunLoop run_loop;
+    download_service_->CheckClientDownload(
+        &item,
+        base::BindRepeating(&DownloadProtectionServiceTest::CheckDoneCallback,
+                            base::Unretained(this), run_loop.QuitClosure()));
+    run_loop.Run();
+
+    const std::vector<std::unique_ptr<ClientDownloadRequest>>& requests =
+        WebUIInfoSingleton::GetInstance()->client_download_requests_sent();
+    ASSERT_EQ(requests.size(), 2u);
+    EXPECT_EQ(requests[1]->access_token(), "access_token");
+  }
+
+  WebUIInfoSingleton::GetInstance()->ClearListenerForTesting();
+}
+
+TEST_F(EnhancedProtectionDownloadTest, NoAccessTokenWhileIncognito) {
+  PrepareResponse(ClientDownloadResponse::SAFE, net::HTTP_OK, net::OK);
+
+  WebUIInfoSingleton::GetInstance()->AddListenerForTesting();
+
+  {
+    SetEnhancedProtectionPref(profile()->GetPrefs(), true);
+    NiceMockDownloadItem item;
+    content::DownloadItemUtils::AttachInfo(
+        &item, profile()->GetOffTheRecordProfile(), nullptr);
+    PrepareBasicDownloadItem(&item,
+                             {"http://www.evil.com/bla.exe"},  // url_chain
+                             "",                               // referrer
+                             FILE_PATH_LITERAL("a.tmp"),       // tmp_path
+                             FILE_PATH_LITERAL("a.exe"));      // final_path
+
+    EXPECT_CALL(*sb_service_->mock_database_manager(),
+                MatchDownloadWhitelistUrl(GURL("http://www.evil.com/bla.exe")))
+        .WillRepeatedly(Return(false));
+    EXPECT_CALL(*binary_feature_extractor_.get(), CheckSignature(tmp_path_, _))
+        .Times(1);
+    EXPECT_CALL(*binary_feature_extractor_.get(),
+                ExtractImageFeatures(
+                    tmp_path_, BinaryFeatureExtractor::kDefaultOptions, _, _))
+        .Times(1);
+
+    RunLoop run_loop;
+    download_service_->CheckClientDownload(
+        &item,
+        base::BindRepeating(&DownloadProtectionServiceTest::CheckDoneCallback,
+                            base::Unretained(this), run_loop.QuitClosure()));
+    run_loop.Run();
+
+    const std::vector<std::unique_ptr<ClientDownloadRequest>>& requests =
+        WebUIInfoSingleton::GetInstance()->client_download_requests_sent();
+    ASSERT_EQ(requests.size(), 1u);
+    EXPECT_TRUE(requests[0]->access_token().empty());
+  }
+
+  WebUIInfoSingleton::GetInstance()->ClearListenerForTesting();
+}
+
 TEST_P(DeepScanningDownloadTest, PolicyEnabled) {
   NiceMockDownloadItem item;
   PrepareBasicDownloadItem(&item, {"http://www.evil.com/a.exe"},  // url_chain
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ShareImageFileUtils.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ShareImageFileUtils.java
index 5bfdd34..1d23b90fe 100644
--- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ShareImageFileUtils.java
+++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ShareImageFileUtils.java
@@ -123,7 +123,17 @@
         OnImageSaveListener listener = new OnImageSaveListener() {
             @Override
             public void onImageSaved(File imageFile) {
-                callback.onResult(ContentUriUtils.getContentUriFromFile(imageFile));
+                new AsyncTask<Uri>() {
+                    @Override
+                    protected Uri doInBackground() {
+                        return ContentUriUtils.getContentUriFromFile(imageFile);
+                    }
+
+                    @Override
+                    protected void onPostExecute(Uri uri) {
+                        callback.onResult(uri);
+                    }
+                }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
             }
             @Override
             public void onImageSaveError() {}
diff --git a/chrome/browser/share/android/javatests/src/org/chromium/chrome/browser/share/ShareImageFileUtilsTest.java b/chrome/browser/share/android/javatests/src/org/chromium/chrome/browser/share/ShareImageFileUtilsTest.java
index eda475a..4d3bcb55 100644
--- a/chrome/browser/share/android/javatests/src/org/chromium/chrome/browser/share/ShareImageFileUtilsTest.java
+++ b/chrome/browser/share/android/javatests/src/org/chromium/chrome/browser/share/ShareImageFileUtilsTest.java
@@ -29,7 +29,6 @@
 import org.chromium.base.test.util.CallbackHelper;
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.DisableIf;
-import org.chromium.base.test.util.DisabledTest;
 import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.ChromeSwitches;
 import org.chromium.chrome.test.ChromeActivityTestRule;
@@ -176,7 +175,6 @@
 
     @Test
     @SmallTest
-    @DisabledTest(message = "https://crbug.com/1056176")
     public void clipboardUriDoNotClearTest() throws TimeoutException, IOException {
         generateAnImageToClipboard();
         generateAnImageToClipboard();
@@ -190,7 +188,6 @@
 
     @Test
     @SmallTest
-    @DisabledTest(message = "https://crbug.com/1056176")
     public void clearEverythingIfNoClipboardImageTest() throws TimeoutException, IOException {
         generateAnImageToClipboard();
         generateAnImageToClipboard();
diff --git a/chrome/browser/sharing/sharing_message_bridge_impl.cc b/chrome/browser/sharing/sharing_message_bridge_impl.cc
index 69c8892..ae02240 100644
--- a/chrome/browser/sharing/sharing_message_bridge_impl.cc
+++ b/chrome/browser/sharing/sharing_message_bridge_impl.cc
@@ -198,8 +198,7 @@
   sync_disabled_error_message.set_error_code(
       sync_pb::SharingMessageCommitError::SYNC_TURNED_OFF);
   for (auto& cth_and_callback : commit_callbacks_) {
-    // We do not need to untrack data here because the change processor will
-    // remove all entities anyway.
+    change_processor()->UntrackEntityForClientTagHash(cth_and_callback.first);
     cth_and_callback.second->Run(sync_disabled_error_message);
   }
   commit_callbacks_.clear();
diff --git a/chrome/browser/sync/test/integration/single_client_sharing_message_sync_test.cc b/chrome/browser/sync/test/integration/single_client_sharing_message_sync_test.cc
index 08f068e..394e072 100644
--- a/chrome/browser/sync/test/integration/single_client_sharing_message_sync_test.cc
+++ b/chrome/browser/sync/test/integration/single_client_sharing_message_sync_test.cc
@@ -224,4 +224,56 @@
       std::make_unique<SharingMessageSpecifics>(specifics), callback.Get());
 }
 
+IN_PROC_BROWSER_TEST_F(SingleClientSharingMessageSyncTest,
+                       ShouldCleanPendingMessagesAfterSyncPaused) {
+  base::MockOnceCallback<void(const sync_pb::SharingMessageCommitError&)>
+      callback;
+  EXPECT_CALL(
+      callback,
+      Run(HasErrorCode(sync_pb::SharingMessageCommitError::SYNC_TURNED_OFF)));
+
+  ASSERT_TRUE(SetupSync());
+
+  SharingMessageBridge* sharing_message_bridge =
+      SharingMessageBridgeFactory::GetForBrowserContext(GetProfile(0));
+  SharingMessageSpecifics specifics;
+  specifics.set_payload("payload");
+  sharing_message_bridge->SendSharingMessage(
+      std::make_unique<SharingMessageSpecifics>(specifics), callback.Get());
+
+  GetClient(0)->StopSyncServiceWithoutClearingData();
+  GetClient(0)->StartSyncService();
+  ASSERT_TRUE(NextCycleIterationChecker(GetSyncService(0)).Wait());
+
+  EXPECT_TRUE(GetFakeServer()
+                  ->GetSyncEntitiesByModelType(syncer::SHARING_MESSAGE)
+                  .empty());
+}
+
+IN_PROC_BROWSER_TEST_F(SingleClientSharingMessageSyncTest,
+                       ShouldCleanPendingMessagesAfterSyncTurnedOff) {
+  base::MockOnceCallback<void(const sync_pb::SharingMessageCommitError&)>
+      callback;
+  EXPECT_CALL(
+      callback,
+      Run(HasErrorCode(sync_pb::SharingMessageCommitError::SYNC_TURNED_OFF)));
+
+  ASSERT_TRUE(SetupSync());
+
+  SharingMessageBridge* sharing_message_bridge =
+      SharingMessageBridgeFactory::GetForBrowserContext(GetProfile(0));
+  SharingMessageSpecifics specifics;
+  specifics.set_payload("payload");
+  sharing_message_bridge->SendSharingMessage(
+      std::make_unique<SharingMessageSpecifics>(specifics), callback.Get());
+
+  GetClient(0)->StopSyncServiceAndClearData();
+  GetClient(0)->StartSyncService();
+  ASSERT_TRUE(NextCycleIterationChecker(GetSyncService(0)).Wait());
+
+  EXPECT_TRUE(GetFakeServer()
+                  ->GetSyncEntitiesByModelType(syncer::SHARING_MESSAGE)
+                  .empty());
+}
+
 }  // namespace
diff --git a/chrome/browser/themes/theme_helper.cc b/chrome/browser/themes/theme_helper.cc
index 902d213..d26f05a 100644
--- a/chrome/browser/themes/theme_helper.cc
+++ b/chrome/browser/themes/theme_helper.cc
@@ -244,7 +244,19 @@
     const CustomThemeSupplier* theme_supplier) const {
   // For backward compat with older themes, some newer colors are generated from
   // older ones if they are missing.
+  const auto get_frame_color = [this, incognito, theme_supplier](bool active) {
+    return this->GetColor(active ? TP::COLOR_FRAME : TP::COLOR_FRAME_INACTIVE,
+                          incognito, theme_supplier);
+  };
   switch (id) {
+    case TP::COLOR_BACKGROUND_TAB:
+      return color_utils::HSLShift(get_frame_color(/*active=*/true),
+                                   GetTint(ThemeProperties::TINT_BACKGROUND_TAB,
+                                           incognito, theme_supplier));
+    case TP::COLOR_BACKGROUND_TAB_INACTIVE:
+      return color_utils::HSLShift(get_frame_color(/*active=*/false),
+                                   GetTint(ThemeProperties::TINT_BACKGROUND_TAB,
+                                           incognito, theme_supplier));
     case TP::COLOR_TOOLBAR_BUTTON_ICON:
     case TP::COLOR_TOOLBAR_BUTTON_ICON_HOVERED:
     case TP::COLOR_TOOLBAR_BUTTON_ICON_PRESSED:
@@ -262,10 +274,8 @@
     case TP::COLOR_TOOLBAR_TOP_SEPARATOR_INACTIVE: {
       const SkColor tab_color =
           GetColor(TP::COLOR_TOOLBAR, incognito, theme_supplier);
-      const int frame_id = (id == TP::COLOR_TOOLBAR_TOP_SEPARATOR)
-                               ? TP::COLOR_FRAME
-                               : TP::COLOR_FRAME_INACTIVE;
-      const SkColor frame_color = GetColor(frame_id, incognito, theme_supplier);
+      const SkColor frame_color =
+          get_frame_color(/*active=*/id == TP::COLOR_TOOLBAR_TOP_SEPARATOR);
       const SeparatorColorKey key(tab_color, frame_color);
       auto i = GetSeparatorColorCache().find(key);
       if (i != GetSeparatorColorCache().end())
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 5e4dd96..21659d2 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -257,6 +257,8 @@
     "webui/log_web_ui_url.h",
     "webui/media/media_engagement_ui.cc",
     "webui/media/media_engagement_ui.h",
+    "webui/media/media_feeds_ui.cc",
+    "webui/media/media_feeds_ui.h",
     "webui/media/media_history_ui.cc",
     "webui/media/media_history_ui.h",
     "webui/media/webrtc_logs_ui.cc",
@@ -399,6 +401,7 @@
     "//chrome/browser/engagement:mojo_bindings",
     "//chrome/browser/image_decoder",
     "//chrome/browser/media:mojo_bindings",
+    "//chrome/browser/media/feeds:mojo_bindings",
     "//chrome/browser/notifications/scheduler/public",
     "//chrome/browser/profiling_host",
     "//chrome/browser/resources/invalidations:invalidations_resources",
@@ -4241,6 +4244,8 @@
       "views/toolbar/webui_tab_counter_button.h",
       "webui/tab_strip/chrome_content_browser_client_tab_strip_part.cc",
       "webui/tab_strip/chrome_content_browser_client_tab_strip_part.h",
+      "webui/tab_strip/tab_before_unload_tracker.cc",
+      "webui/tab_strip/tab_before_unload_tracker.h",
       "webui/tab_strip/tab_strip_ui.cc",
       "webui/tab_strip/tab_strip_ui.h",
       "webui/tab_strip/tab_strip_ui_embedder.h",
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
index 275f0ff..02f262f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">ስምረትን በማንኛውም ጊዜ በቅንብሮች ውስጥ ማብራት ይችላሉ።</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> ዕልባት}one{<ph name="BOOKMARKS_COUNT_MANY" /> ዕልባቶች}other{<ph name="BOOKMARKS_COUNT_MANY" /> ዕልባቶች}}</translation>
 <translation id="3089395242580810162">ማንነትን በማያሳውቅ ትር ክፈት</translation>
+<translation id="3114012059975132928">ቪዲዮ ማጫወቻ</translation>
 <translation id="3123473560110926937">በአንዳንድ ጣቢያዎች ላይ ታግዷል</translation>
 <translation id="3123734510202723619">ማስታወቂያዎች</translation>
 <translation id="3137521801621304719">ከማንነት የማያሳውቅ ሁነታ ይውጡ</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">ሁሉም</translation>
 <translation id="358794129225322306">አንድ ጣቢያ በራስ-ሰር በርካታ ፋይሎችን እንዲያወርድ ይፍቀዱ።</translation>
 <translation id="3590487821116122040">Chrome አላስፈላጊ ነው የሚያስበው የጣቢያ ማከማቻ (ለምሳሌ፦ ምንም የተቀመጡ ቅንብሮች የሌላቸው ጣቢያዎች ወይም እርስዎ ብዙ ጊዜ የማይጎበኟቸው)</translation>
+<translation id="3594780231884063836">ቪዲዮ ላይ ድምጸ-ከል አድርግ</translation>
 <translation id="3599863153486145794">ታሪክን በመለያ ከገቡ ሁሉም መሣሪያዎች ላይ ያጸዳል። የእርስዎ Google መለያ <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> ላይ ሌሎች የአሰሳ ታሪክ ዓይነቶች ሊኖረው ይችላል</translation>
 <translation id="3600792891314830896">ድምጽን በሚያጫውቱ ጣቢያዎች ላይ ድምጸ-ከል አድርግ</translation>
 <translation id="3616113530831147358">ድምጽ</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">ገጽ አውርድ</translation>
 <translation id="548278423535722844">በካርታዎች መተግበሪያ ውስጥ ይክፈቱ</translation>
 <translation id="5487521232677179737">ውሂብን አጽዳ</translation>
+<translation id="5489227211564503167">የጠፋው ጊዜ <ph name="ELAPSED_TIME" /> ከ<ph name="TOTAL_TIME" />።</translation>
 <translation id="5494752089476963479">ረባሽ ወይም አሳሳች ማስታወቂያዎችን ከሚያሳዩ ጣቢያዎች የሚመጡ ማስታወቂያዎችን አግድ</translation>
 <translation id="5500777121964041360">በአካባቢዎ ውስጥ ላይገኝ ይችላል</translation>
 <translation id="5505264765875738116">ጣቢያዎች ማሳወቂያዎችን ለመላክ መጠየቅ አይችሉም</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">ሌላ ውርድን በመጠበቅ ላይ…</translation>
 <translation id="5865733239029070421">የአጠቃቀም ስታስቲክስን እና የብልሽት ሪፖርቶችን በራስ-ሰር ወደ Google ይልካል</translation>
 <translation id="5869522115854928033">የተቀመጡ የይለፍ ቃሎች</translation>
+<translation id="5876056640971328065">ቪዲዮ ባለበት አቁም</translation>
 <translation id="5884076754568147479">ተግባራትን እንዲያጠናቅቁ ለማገዝ Google ረዳትን የሚጠቀሙባቸው የጣቢያዎች ዩአርኤሎች እና ይዘቶችና እንዲሁም በረዳት በኩል የሚያስገቡት መረጃን ይቀበላል</translation>
 <translation id="5902828464777634901">ኩኪዎችንም ጨምሮ በዚህ ድር ጣቢያ የተከማቸ ሁሉም አካባቢያዊ ውሂብ ይሰረዛል።</translation>
 <translation id="5919204609460789179">ስምረትን ለመጀመር <ph name="PRODUCT_NAME" />ን ያዘምኑ</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">የጨለሙ የድር ጣቢያዎች</translation>
 <translation id="6388207532828177975">አጽዳ እና ዳግም አስጀምር</translation>
 <translation id="6395288395575013217">አገናኝ</translation>
+<translation id="6397616442223433927">ወደ መስመር ላይ ይመለሱ</translation>
 <translation id="6404511346730675251">ዕልባት አርትዕ</translation>
 <translation id="6406506848690869874">አመሳስል</translation>
 <translation id="6410973561433500075">ኤአር ከ<ph name="DOMAIN" /> ይግባ?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">በመጫን ላይ…</translation>
 <translation id="6850409657436465440">የእርስዎ ውርድ አሁንም በሂደት ላይ ነው</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> ትሮች ተዘግተዋል</translation>
+<translation id="6864395892908308021">ይህ መሣሪያ NFCን ማንበብ አይችልም</translation>
 <translation id="6864459304226931083">ምስል አውርድ</translation>
 <translation id="6865313869410766144">የራስ-ሙላ ቅጽ ውሂብ</translation>
 <translation id="6884306546558072722">ከመስመር ውጭ ማሰስ ቀጥል</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">አይ፣ አመሰግናለሁ</translation>
 <translation id="7810647596859435254">ክፈት በ…</translation>
 <translation id="7821588508402923572">የእርስዎ የውሂብ ቁጠባዎች እዚህ ይታያሉ</translation>
+<translation id="783819812427904514">የቪዲዮን ድምጸ-ከል አንሳ</translation>
 <translation id="784934925303690534">የጊዜ ወሰን</translation>
 <translation id="7851858861565204677">ሌሎች መሣሪያዎች</translation>
 <translation id="7875915731392087153">ኢሜይል ይፍጠሩ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
index 3a912fe..97b2902 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Sinxronizasiyanı istənilən vaxt ayarlarda deaktiv edə bilərsiniz</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> əlfəcin}other{<ph name="BOOKMARKS_COUNT_MANY" /> əlfəcin}}</translation>
 <translation id="3089395242580810162">Gizli tabda açın</translation>
+<translation id="3114012059975132928">Video pleyer</translation>
 <translation id="3123473560110926937">Bəzi saytlarda bloklandı</translation>
 <translation id="3123734510202723619">Elanlar</translation>
 <translation id="3137521801621304719">Gizli rejimdən çıxın</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Hamısı</translation>
 <translation id="358794129225322306">Sayta çoxsaylı faylları avtomatik endirmək icazəsi verin.</translation>
 <translation id="3590487821116122040">Sayt yaddaşı Chrome vacib olduğunu düşünmür (məs. yadda saxlanmayan ayarlar ilə olan və ya tez-tez daxil olmadığınız saytlar)</translation>
+<translation id="3594780231884063836">Videonu səssiz rejimə keçirin</translation>
 <translation id="3599863153486145794">Bütün daxil olunmuş cihazlardan tarixçəni silir. <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> linkində Google Hesabına məxsus axtarış tarixçəsinin başqa formaları ola bilər.</translation>
 <translation id="3600792891314830896">Səs oxudan saytları səssiz rejimə keçirin</translation>
 <translation id="3616113530831147358">Audio</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Endirmə səhifəsi</translation>
 <translation id="548278423535722844">Xəritə tətbiqində açın</translation>
 <translation id="5487521232677179737">Datanı silin</translation>
+<translation id="5489227211564503167">Keçən vaxt: <ph name="ELAPSED_TIME" /> / <ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">İntruziv və aldadıcı reklamlar göstərən saytlardakı reklamları bloklayın</translation>
 <translation id="5500777121964041360">Ərazinizdə əlçatan olmaya bilər</translation>
 <translation id="5505264765875738116">Saytlar bildiriş göndərilməsini tələb edə bilməz</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Başqa endirmə gözlənilir…</translation>
 <translation id="5865733239029070421">İstifadə statistikası və qəza raportlarını avtomatik Google'a göndərir</translation>
 <translation id="5869522115854928033">Saxlanılmış parollar</translation>
+<translation id="5876056640971328065">Videoya pauza verin</translation>
 <translation id="5884076754568147479">Tapşırıqları tamamlamaqda sizə kömək etmək üçün Google Assistentdən istifadə etdiyiniz saytların URL və məzmunlarını, eləcə də Assistent vasitəsilə təqdim etdiyiniz məlumatları əldə edəcək</translation>
 <translation id="5902828464777634901">Bu sayt tərəfindən saxlanmış bütün lokal data silinəcək.</translation>
 <translation id="5919204609460789179">Sinxronizasiyanı başlatmaq üçün <ph name="PRODUCT_NAME" /> məhsulunu yeniləyin</translation>
@@ -726,6 +730,7 @@
 <translation id="6381421346744604172">Qaranlıq veb saytlar</translation>
 <translation id="6388207532828177975">Təmizləyin və sıfırlayın</translation>
 <translation id="6395288395575013217">LİNK</translation>
+<translation id="6397616442223433927">Bağlantı bərpa edildi</translation>
 <translation id="6404511346730675251">Əlfəcinə düzəliş edin</translation>
 <translation id="6406506848690869874">Sinx</translation>
 <translation id="6410973561433500075"><ph name="DOMAIN" /> saytından AR rejiminə daxil olunsun?</translation>
@@ -794,6 +799,7 @@
 <translation id="6846298663435243399">Yüklənir...</translation>
 <translation id="6850409657436465440">Endirmə hələ də gözlənilir</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> panel bağlanıldı</translation>
+<translation id="6864395892908308021">Bu cihazda NFC dəstəklənmir</translation>
 <translation id="6864459304226931083">Şəkli endirin</translation>
 <translation id="6865313869410766144">Avtomatik data doldurması</translation>
 <translation id="6884306546558072722">Oflayn şəkildə araşdırmağa davam edin</translation>
@@ -914,6 +920,7 @@
 <translation id="780301667611848630">Yox, çox sağ olun</translation>
 <translation id="7810647596859435254">Bununla açın...</translation>
 <translation id="7821588508402923572">Data istifadəsi burada görünəcək</translation>
+<translation id="783819812427904514">Videonu səssiz rejimdən çıxarın</translation>
 <translation id="784934925303690534">Vaxt aralığı</translation>
 <translation id="7851858861565204677">Digər cihazlar</translation>
 <translation id="7875915731392087153">E-poçt yaradın</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
index 4c7f8a9..fcd8d3c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Сінхранізацыю можна ўключыць у любы момант у наладах</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> закладка}one{<ph name="BOOKMARKS_COUNT_MANY" /> закладка}few{<ph name="BOOKMARKS_COUNT_MANY" /> закладкі}many{<ph name="BOOKMARKS_COUNT_MANY" /> закладак}other{<ph name="BOOKMARKS_COUNT_MANY" /> закладкі}}</translation>
 <translation id="3089395242580810162">Адкрыць ва ўкладцы інкогніта</translation>
+<translation id="3114012059975132928">Відэапрайгравальнік</translation>
 <translation id="3123473560110926937">Заблакіравана на некаторых сайтах</translation>
 <translation id="3123734510202723619">Апавяшчэнні</translation>
 <translation id="3137521801621304719">Выйсці з рэжыму інкогніта</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Усе</translation>
 <translation id="358794129225322306">Дазволіць сайту аўтаматычна спампоўваць некалькі файлаў.</translation>
 <translation id="3590487821116122040">Даныя сайтаў, якія Chrome не лічыць важнымі (напрыклад, сайты, налады якіх не захаваны або якія вы наведваеце рэдка)</translation>
+<translation id="3594780231884063836">Адключыць гук відэа</translation>
 <translation id="3599863153486145794">Ачышчае гісторыю на ўсіх прыладах, з якіх выкананы ўваход. На сайце <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> могуць быць размешчаны іншыя формы запісу гісторыі прагляду сайтаў для вашага Уліковага запісу Google.</translation>
 <translation id="3600792891314830896">Выключыць гук на сайтах, якія прайграюць гукі</translation>
 <translation id="3616113530831147358">Аўдыя</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Спампаваць старонку</translation>
 <translation id="548278423535722844">Адкрыць у праграме карт</translation>
 <translation id="5487521232677179737">Ачысціць даныя</translation>
+<translation id="5489227211564503167">Прайшло часу: <ph name="ELAPSED_TIME" /> з <ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">Блакіраваць рэкламу на сайтах, якія паказваюць назойлівую рэкламу або рэкламу, якая ўводзіць у зман</translation>
 <translation id="5500777121964041360">Функцыя можа быць недаступна ў вашай мясцовасці</translation>
 <translation id="5505264765875738116">Сайтам забаронена запытваць дазвол на паказ апавяшчэнняў</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Чаканне іншай спампоўкі…</translation>
 <translation id="5865733239029070421">Аўтаматычна адпраўляе ў Google статыстыку выкарыстання і справаздачы аб збоях</translation>
 <translation id="5869522115854928033">Захаваныя паролі</translation>
+<translation id="5876056640971328065">Прыпыніць відэа</translation>
 <translation id="5884076754568147479">Каб дапамагаць вам выконваць задачы, Google будзе збіраць URL-адрасы і змесціва сайтаў, на якіх вы выкарыстоўваеце Памочніка, а таксама інфармацыю, якую вы перадаяце праз яго</translation>
 <translation id="5902828464777634901">Усе лакальныя даныя, захаваныя гэтым вэб-сайтам, у тым ліку файлы cookie, будуць выдалены.</translation>
 <translation id="5919204609460789179">Каб запусціць сінхранізацыю, абнавіце <ph name="PRODUCT_NAME" /></translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Зацямняць вэб-сайты</translation>
 <translation id="6388207532828177975">Ачысціць і скінуць</translation>
 <translation id="6395288395575013217">СУВЯЗЬ</translation>
+<translation id="6397616442223433927">Зноў у інтэрнэце</translation>
 <translation id="6404511346730675251">Змяніце закладку</translation>
 <translation id="6406506848690869874">Сінхранізаваць</translation>
 <translation id="6410973561433500075">Увайсці ў дапоўненую рэальнасць з сайта <ph name="DOMAIN" />?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Ідзе загрузка…</translation>
 <translation id="6850409657436465440">Спампоўка ўсё яшчэ працягваецца</translation>
 <translation id="6850830437481525139">Закрытыя ўкладкі (<ph name="TAB_COUNT" />)</translation>
+<translation id="6864395892908308021">Гэта прылада не чытае NFC</translation>
 <translation id="6864459304226931083">Спампаваць відарыс</translation>
 <translation id="6865313869410766144">Даныя для аўтазапаўнення</translation>
 <translation id="6884306546558072722">Праглядайце змесціва ў пазасеткавым рэжыме</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Не, дзякуй</translation>
 <translation id="7810647596859435254">Адкрыць з дапамогай…</translation>
 <translation id="7821588508402923572">Тут будзе паказвацца аб'ём сэканомленага трафіка</translation>
+<translation id="783819812427904514">Уключыць гук відэа</translation>
 <translation id="784934925303690534">Прамежак часу</translation>
 <translation id="7851858861565204677">Іншыя прылады</translation>
 <translation id="7875915731392087153">Стварыць ліст электроннай пошты</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
index b8b7f8cc..cc4d61d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Synchronizaci můžete kdykoliv zapnout v nastavení</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> záložka}few{<ph name="BOOKMARKS_COUNT_MANY" /> záložky}many{<ph name="BOOKMARKS_COUNT_MANY" /> záložky}other{<ph name="BOOKMARKS_COUNT_MANY" /> záložek}}</translation>
 <translation id="3089395242580810162">Otevřít na anonymní kartě</translation>
+<translation id="3114012059975132928">Přehrávač videa</translation>
 <translation id="3123473560110926937">Na některých webech blokováno</translation>
 <translation id="3123734510202723619">Oznámení</translation>
 <translation id="3137521801621304719">Ukončit anonymní režim</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Vše</translation>
 <translation id="358794129225322306">Povolit webu automaticky stáhnout několik souborů.</translation>
 <translation id="3590487821116122040">Úložiště webů, které Chrome považuje za nedůležité (např. weby bez uložených nastavení nebo weby, které nenavštěvujete často)</translation>
+<translation id="3594780231884063836">Vypnout zvuk videa</translation>
 <translation id="3599863153486145794">Vymaže historii ze všech zařízení, na kterých jste přihlášeni. Na stránce <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> mohou být k dispozici další druhy historie prohlížení zaznamenané ve vašem účtu Google.</translation>
 <translation id="3600792891314830896">Ztlumit weby, které přehrávají zvuky</translation>
 <translation id="3616113530831147358">Zvuk</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Stáhnout stránku</translation>
 <translation id="548278423535722844">Otevřít v mapové aplikaci</translation>
 <translation id="5487521232677179737">Vymazat data</translation>
+<translation id="5489227211564503167">Uplynulá doba: <ph name="ELAPSED_TIME" /> z <ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">Blokovat reklamy na webech, které zobrazují obtěžující nebo zavádějící reklamy</translation>
 <translation id="5500777121964041360">Ve vaší lokalitě nemusí být k dispozici</translation>
 <translation id="5505264765875738116">Weby nemohou žádat o oprávnění zasílat vám oznámení</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Čekání na další stahování…</translation>
 <translation id="5865733239029070421">Automaticky odesílá statistiky o využívání a zprávy o selhání do Googlu</translation>
 <translation id="5869522115854928033">Uložená hesla</translation>
+<translation id="5876056640971328065">Pozastavit video</translation>
 <translation id="5884076754568147479">Abyste mohli provádět akce, Google bude dostávat adresy URL a obsah webů, ve kterých používáte Asistenta, a informace, které prostřednictvím Asistenta odesíláte</translation>
 <translation id="5902828464777634901">Všechna místní data uložená tímto webem, včetně souborů cookie, budou smazána.</translation>
 <translation id="5919204609460789179">Chcete-li zahájit synchronizaci, aktualizujte aplikaci <ph name="PRODUCT_NAME" /></translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Ztmavit webové stránky</translation>
 <translation id="6388207532828177975">Vymazat a resetovat</translation>
 <translation id="6395288395575013217">ODKAZ</translation>
+<translation id="6397616442223433927">Opět online</translation>
 <translation id="6404511346730675251">Upravit záložku</translation>
 <translation id="6406506848690869874">Synchronizace</translation>
 <translation id="6410973561433500075">Spustit rozšířenou realitu z webu <ph name="DOMAIN" />?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Načítání…</translation>
 <translation id="6850409657436465440">Stahování stále probíhá</translation>
 <translation id="6850830437481525139">Zavřené karty: <ph name="TAB_COUNT" /></translation>
+<translation id="6864395892908308021">Toto zařízení neumí číst NFC</translation>
 <translation id="6864459304226931083">Stáhnout obrázek</translation>
 <translation id="6865313869410766144">Automatické vyplňování formulářů</translation>
 <translation id="6884306546558072722">Pokračujte v objevování i offline</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Ne, děkuji</translation>
 <translation id="7810647596859435254">Otevřít v aplikaci…</translation>
 <translation id="7821588508402923572">Zde se budou zobrazovat vaše úspory dat</translation>
+<translation id="783819812427904514">Zapnout zvuk videa</translation>
 <translation id="784934925303690534">Časové období</translation>
 <translation id="7851858861565204677">Jiná zařízení</translation>
 <translation id="7875915731392087153">Vytvořit e-mail</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
index 7232cc1..cb196c5ef 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Sie können die Synchronisierung jederzeit in den Einstellungen aktivieren</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> Lesezeichen}other{<ph name="BOOKMARKS_COUNT_MANY" /> Lesezeichen}}</translation>
 <translation id="3089395242580810162">In Inkognito-Tab öffnen</translation>
+<translation id="3114012059975132928">Videoplayer</translation>
 <translation id="3123473560110926937">Auf einigen Websites blockiert</translation>
 <translation id="3123734510202723619">Ankündigungen</translation>
 <translation id="3137521801621304719">Inkognitomodus deaktivieren</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Alle</translation>
 <translation id="358794129225322306">Einer Website erlauben, automatisch mehrere Dateien herunterzuladen.</translation>
 <translation id="3590487821116122040">Websitespeicher, den Chrome nicht für wichtig hält, wie etwa Websites ohne gespeicherte Einstellungen oder solche, die nicht oft besucht werden</translation>
+<translation id="3594780231884063836">Video stummschalten</translation>
 <translation id="3599863153486145794">Löscht den Verlauf bei allen angemeldeten Geräten. Unter <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> sind möglicherweise weitere Arten von Browserverlaufsdaten für Ihr Google-Konto gespeichert.</translation>
 <translation id="3600792891314830896">Websites stummschalten, die Ton wiedergeben</translation>
 <translation id="3616113530831147358">Audio</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Seite herunterladen</translation>
 <translation id="548278423535722844">In einer Karten-App öffnen</translation>
 <translation id="5487521232677179737">Daten löschen</translation>
+<translation id="5489227211564503167">Verstrichene Zeit: <ph name="ELAPSED_TIME" /> von <ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">Werbung auf Websites blockieren, auf denen aufdringliche oder irreführende Werbung angezeigt wird</translation>
 <translation id="5500777121964041360">In Ihrem Land möglicherweise nicht verfügbar</translation>
 <translation id="5505264765875738116">Websites können nicht fragen, ob Sie Benachrichtigungen erhalten möchten</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Warten auf weiteren Download…</translation>
 <translation id="5865733239029070421">Nutzungsstatistiken und Absturzberichte automatisch an Google senden</translation>
 <translation id="5869522115854928033">Gespeicherte Passwörter</translation>
+<translation id="5876056640971328065">Video anhalten</translation>
 <translation id="5884076754568147479">Wenn Sie in Chrome mit Assistant Aufgaben erledigen, werden die URLs und Inhalte der Websites, auf denen Sie Assistant verwenden, sowie die Daten, die Sie über Assistant weitergeben, an Google gesendet</translation>
 <translation id="5902828464777634901">Alle von dieser Website gespeicherten lokalen Daten, einschließlich Cookies, werden gelöscht.</translation>
 <translation id="5919204609460789179">Zur Synchronisierung müssen Sie <ph name="PRODUCT_NAME" /> aktualisieren</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Websites verdunkeln</translation>
 <translation id="6388207532828177975">Löschen &amp; zurücksetzen</translation>
 <translation id="6395288395575013217">LINK</translation>
+<translation id="6397616442223433927">Wieder online</translation>
 <translation id="6404511346730675251">Lesezeichen bearbeiten</translation>
 <translation id="6406506848690869874">Synchronisierung</translation>
 <translation id="6410973561433500075">AR-Modus über <ph name="DOMAIN" /> aktivieren?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Wird geladen…</translation>
 <translation id="6850409657436465440">Download noch in Bearbeitung</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> Tabs geschlossen</translation>
+<translation id="6864395892908308021">NFC wird von diesem Gerät nicht unterstützt</translation>
 <translation id="6864459304226931083">Bild herunterladen</translation>
 <translation id="6865313869410766144">AutoFill-Formulardaten</translation>
 <translation id="6884306546558072722">Offline mehr entdecken</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Kein Interesse</translation>
 <translation id="7810647596859435254">Öffnen mit…</translation>
 <translation id="7821588508402923572">Ihre Einsparungen bei der Datennutzung werden hier angezeigt</translation>
+<translation id="783819812427904514">Stummschaltung des Videos aufheben</translation>
 <translation id="784934925303690534">Zeitraum</translation>
 <translation id="7851858861565204677">Andere Geräte</translation>
 <translation id="7875915731392087153">E-Mail erstellen</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
index e877c47..cda1c14 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Puedes activar la sincronización en la configuración en cualquier momento</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> favorito}other{<ph name="BOOKMARKS_COUNT_MANY" /> favoritos}}</translation>
 <translation id="3089395242580810162">Abrir en pestaña de incógnito</translation>
+<translation id="3114012059975132928">Reproductor de video</translation>
 <translation id="3123473560110926937">Bloqueados en algunos sitios</translation>
 <translation id="3123734510202723619">Anuncios</translation>
 <translation id="3137521801621304719">Salir del modo de navegación de incógnito</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Todos</translation>
 <translation id="358794129225322306">Permite que un sitio descargue varios archivos automáticamente.</translation>
 <translation id="3590487821116122040">Almacenamiento de sitios que Chrome no considera importantes (por ejemplo, sitios que no visitas a menudo o sin configuración guardada)</translation>
+<translation id="3594780231884063836">Silenciar video</translation>
 <translation id="3599863153486145794">Borra el historial de todos los dispositivos en los que accediste. Es posible que tu cuenta de Google tenga otros tipos de historial de navegación en <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="3600792891314830896">Silenciar los sitios que reproducen sonido</translation>
 <translation id="3616113530831147358">Audio</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Descargar página</translation>
 <translation id="548278423535722844">Abrir en una app de mapas</translation>
 <translation id="5487521232677179737">Borrar datos</translation>
+<translation id="5489227211564503167">Tiempo transcurrido: <ph name="ELAPSED_TIME" /> de <ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">Bloquear anuncios de sitios que muestran anuncios intrusivos o engañosos</translation>
 <translation id="5500777121964041360">Es posible que no esté disponible en tu ubicación</translation>
 <translation id="5505264765875738116">Los sitios no podrán preguntarte si quieres recibir notificaciones</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Esperando que finalice otra descarga…</translation>
 <translation id="5865733239029070421">Envía automáticamente informes de fallos y estadísticas de uso a Google</translation>
 <translation id="5869522115854928033">Contraseñas almacenadas</translation>
+<translation id="5876056640971328065">Pausar video</translation>
 <translation id="5884076754568147479">Para ayudarte a completar tareas, Google recibirá las URL y los contenidos de los sitios en los que uses el Asistente, así como la información que envías a través de este servicio</translation>
 <translation id="5902828464777634901">Se eliminarán todos los datos almacenados en este sitio web, incluidas las cookies.</translation>
 <translation id="5919204609460789179">Actualiza <ph name="PRODUCT_NAME" /> para iniciar la sincronización</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Oscurecer sitios web</translation>
 <translation id="6388207532828177975">Borrar y restablecer</translation>
 <translation id="6395288395575013217">VÍNCULO</translation>
+<translation id="6397616442223433927">De nuevo en línea</translation>
 <translation id="6404511346730675251">Editar marcador</translation>
 <translation id="6406506848690869874">Sincronización</translation>
 <translation id="6410973561433500075">¿Quieres ingresar al modo de RA desde <ph name="DOMAIN" />?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Cargando…</translation>
 <translation id="6850409657436465440">La descarga sigue en curso</translation>
 <translation id="6850830437481525139">Pestañas cerradas: <ph name="TAB_COUNT" /></translation>
+<translation id="6864395892908308021">Este dispositivo no puede leer NFC</translation>
 <translation id="6864459304226931083">Descargar imagen</translation>
 <translation id="6865313869410766144">Datos del formulario de autocompletar</translation>
 <translation id="6884306546558072722">Seguir explorando sin conexión</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">No, gracias</translation>
 <translation id="7810647596859435254">Abrir con…</translation>
 <translation id="7821588508402923572">Aquí aparecerá tu ahorro de datos</translation>
+<translation id="783819812427904514">Activar sonido del video</translation>
 <translation id="784934925303690534">Intervalo de tiempo</translation>
 <translation id="7851858861565204677">Otros dispositivos</translation>
 <translation id="7875915731392087153">Crear correo electrónico</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
index 8616139..aad6627d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Sinkronizazioa aktibatzeko, joan ezarpenetara</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> laster-marka}other{<ph name="BOOKMARKS_COUNT_MANY" /> laster-marka}}</translation>
 <translation id="3089395242580810162">Ireki ezkutuko fitxa batean</translation>
+<translation id="3114012059975132928">Bideo-erreproduzigailua</translation>
 <translation id="3123473560110926937">Webgune batzuetan blokeatu dira iragarkiak</translation>
 <translation id="3123734510202723619">Iragarpenak</translation>
 <translation id="3137521801621304719">Irten ezkutuko modutik</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Guztiak</translation>
 <translation id="358794129225322306">Eman hainbat fitxategi automatikoki deskargatzeko baimena webgune bati.</translation>
 <translation id="3590487821116122040">Chrome-k garrantzi gabekotzat jotako webguneen datuak (hala nola ezarpenik gordeta ez duten webguneenak edo maiz bisitatzen ez dituzun webguneenak)</translation>
+<translation id="3594780231884063836">Desaktibatu bideoaren audioa</translation>
 <translation id="3599863153486145794">Saioa hasita daukaten gailu guztietako historia garbitzen du. Google-ko kontuko historia arakatzeko beste modu batzuk aurki zenitzake <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> webgunean.</translation>
 <translation id="3600792891314830896">Desaktibatu soinua erreproduzitzen duten webguneen audioa</translation>
 <translation id="3616113530831147358">Audioa</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Deskargatu orria</translation>
 <translation id="548278423535722844">Ireki mapa-aplikazio batean</translation>
 <translation id="5487521232677179737">Garbitu datuak</translation>
+<translation id="5489227211564503167"><ph name="ELAPSED_TIME" /> igaro dira, eta <ph name="TOTAL_TIME" /> gelditzen</translation>
 <translation id="5494752089476963479">Blokeatu iragarki oztopatzaileak edo iruzurrezkoak erakusten dituzten webguneetako iragarkiak</translation>
 <translation id="5500777121964041360">Baliteke zure kokapenean erabilgarri ez egotea</translation>
 <translation id="5505264765875738116">Webguneek ezin dute eskatu jakinarazpenak bidaltzea</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Beste deskarga bat amaitzeko zain…</translation>
 <translation id="5865733239029070421">Erabilera-estatistikak eta hutsegite-txostenak automatikoki bidaltzen dizkio Google-ri</translation>
 <translation id="5869522115854928033">Gordetako pasahitzak</translation>
+<translation id="5876056640971328065">Pausatu bideoa</translation>
 <translation id="5884076754568147479">Zereginak osatzen laguntzeko, Laguntzailea eginbidearen bidez erabiltzen dituzun webguneen URLak eta edukia jasoko ditu Google-k, baita Laguntzailea erabilita bidaltzen duzun informazioa ere</translation>
 <translation id="5902828464777634901">Webgune honek gordetako gailuko datu guztiak, cookieak barne, ezabatuko dira.</translation>
 <translation id="5919204609460789179">Sinkronizatzen hasteko, eguneratu <ph name="PRODUCT_NAME" /></translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Ilundu webguneak</translation>
 <translation id="6388207532828177975">Garbitu eta berrezarri</translation>
 <translation id="6395288395575013217">ESTEKA</translation>
+<translation id="6397616442223433927">Konektatu zara berriro</translation>
 <translation id="6404511346730675251">Editatu laster-marka</translation>
 <translation id="6406506848690869874">Sinkronizazioa</translation>
 <translation id="6410973561433500075">Errealitate areagotuan sartu nahi duzu <ph name="DOMAIN" /> webgunearen bidez?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Kargatzen…</translation>
 <translation id="6850409657436465440">Deskargatzen ari da oraindik</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> fitxa itxi dira</translation>
+<translation id="6864395892908308021">Gailu honek ezin du irakurri NFC</translation>
 <translation id="6864459304226931083">Deskargatu irudia</translation>
 <translation id="6865313869410766144">Bete inprimakiko datuak automatikoki</translation>
 <translation id="6884306546558072722">Jarraitu arakatzen konexiorik gabe</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Ez, eskerrik asko</translation>
 <translation id="7810647596859435254">Ireki honekin…</translation>
 <translation id="7821588508402923572">Hemen agertuko da zenbat datu aurreztu dituzun</translation>
+<translation id="783819812427904514">Aktibatu bideoaren audioa</translation>
 <translation id="784934925303690534">Denbora tartea</translation>
 <translation id="7851858861565204677">Beste gailu batzuk</translation>
 <translation id="7875915731392087153">Sortu mezu elektronikoa</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
index 863e59f..04dbeeb4 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">هرزمان خواستید می‌توانید همگام‌سازی را در تنظیمات روشن کنید</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> نشانک}one{<ph name="BOOKMARKS_COUNT_MANY" /> نشانک}other{<ph name="BOOKMARKS_COUNT_MANY" /> نشانک}}</translation>
 <translation id="3089395242580810162">باز کردن در برگه ناشناس</translation>
+<translation id="3114012059975132928">پخش‌کننده ویدیو</translation>
 <translation id="3123473560110926937">در برخی سایت‌ها مسدود می‌شود</translation>
 <translation id="3123734510202723619">اطلاعیه‌ها</translation>
 <translation id="3137521801621304719">خروج از حالت ناشناس</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">همه</translation>
 <translation id="358794129225322306">به سایت اجازه داده شود چند فایل را به‌طور خودکار بارگیری کند.</translation>
 <translation id="3590487821116122040">‏فضای ذخیره‌سازی سایت که از نظر Chrome مهم نیست (مثلاً سایت‌هایی که تنظیمات ذخیره‌شده ندارند یا شما مرتب بازدید نمی‌کنید)</translation>
+<translation id="3594780231884063836">بی‌صدا کردن ویدیو</translation>
 <translation id="3599863153486145794">‏سابقه را از همه دستگاه‌های به سیستم واردشده پاک می‌کند. ممکن است حساب Google شما اشکال دیگری از سابقه مرور در <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> داشته باشد.</translation>
 <translation id="3600792891314830896">سایت‌هایی که صدا پخش می‌کنند بی‌صدا شوند</translation>
 <translation id="3616113530831147358">صوتی</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">بارگیری صفحه</translation>
 <translation id="548278423535722844">‏باز کردن در برنامه Maps</translation>
 <translation id="5487521232677179737">پاک کردن داده‌ها</translation>
+<translation id="5489227211564503167">زمان سپری‌شده: <ph name="ELAPSED_TIME" /> از <ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">آگهی سایت‌هایی که آگهی‌های مزاحم یا گمراه‌کننده نشان می‌دهند، مسدود می‌شود</translation>
 <translation id="5500777121964041360">ممکن است در مکان شما دردسترس نباشد</translation>
 <translation id="5505264765875738116">سایت‌ها نمی‌توانند برای ارسال اعلان درخواست دهند</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">در انتظار بارگیری موردی دیگر…</translation>
 <translation id="5865733239029070421">‏به‌طور خودکار آمار کاربرد و گزارش‌های خرابی را به Google ارسال می‌کند</translation>
 <translation id="5869522115854928033">گذرواژه‌های ذخیره‌شده</translation>
+<translation id="5876056640971328065">مکث ویدیو</translation>
 <translation id="5884076754568147479">‏برای کمک به انجام کارها، Google نشانی‌های وب و محتوای سایت‌هایی را که در آن‌ها از «دستیار» استفاده می‌کنید، و همچنین اطلاعاتی را که ازطریق «دستیار» ارسال می‌کنید دریافت خواهد کرد</translation>
 <translation id="5902828464777634901">تمام داده‌های محلی ذخیره شده مرتبط با این وب‌سایت، از جمله کوکی‌ها، حذف می‌شوند.</translation>
 <translation id="5919204609460789179">برای شروع همگام‌سازی، <ph name="PRODUCT_NAME" /> را به‌روزرسانی کنید</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">تاریک کردن وب‌سایت‌ها</translation>
 <translation id="6388207532828177975">پاک کردن و بازنشانی</translation>
 <translation id="6395288395575013217">پیوند</translation>
+<translation id="6397616442223433927">دوباره آنلاین شدید</translation>
 <translation id="6404511346730675251">ویرایش نشانک</translation>
 <translation id="6406506848690869874">همگام‌سازی</translation>
 <translation id="6410973561433500075">‏از <ph name="DOMAIN" /> وارد حالت AR می‌شوید؟</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">در حال بارگیری…</translation>
 <translation id="6850409657436465440">بارگیری هنوز درحال انجام است</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> برگه بسته شد</translation>
+<translation id="6864395892908308021">‏این دستگاه نمی‌تواند NFC را بخواند</translation>
 <translation id="6864459304226931083">بارگیری تصویر</translation>
 <translation id="6865313869410766144">تکمیل خودکار داده‌های فرم</translation>
 <translation id="6884306546558072722">به‌صورت آفلاین به کاوش ادامه دهید</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">نه متشکرم</translation>
 <translation id="7810647596859435254">باز کردن با…</translation>
 <translation id="7821588508402923572">میزان داده صرفه‌جویی‌شده اینجا نشان داده می‌شود</translation>
+<translation id="783819812427904514">با صدا کردن ویدیو</translation>
 <translation id="784934925303690534">محدوده زمانی</translation>
 <translation id="7851858861565204677">دستگاه‌های دیگر</translation>
 <translation id="7875915731392087153">ایجاد ایمیل</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
index 0c9c45fd..b1b4407b 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Maaari mong i-on ang pag-sync anumang oras sa mga setting.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bookmark}one{<ph name="BOOKMARKS_COUNT_MANY" /> bookmark}other{<ph name="BOOKMARKS_COUNT_MANY" /> na bookmark}}</translation>
 <translation id="3089395242580810162">Buksan sa tab na incognito</translation>
+<translation id="3114012059975132928">Player ng video</translation>
 <translation id="3123473560110926937">Naka-block sa ilang site</translation>
 <translation id="3123734510202723619">Mga Anunsyo</translation>
 <translation id="3137521801621304719">Umalis sa mode na incognito</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Lahat</translation>
 <translation id="358794129225322306">Payagan ang isang site na awtomatikong mag-download ng maraming file.</translation>
 <translation id="3590487821116122040">Storage ng site na sa tingin ng Chrome ay hindi mahalaga (hal. mga site na walang mga naka-save na setting o hindi mo madalas bisitahin)</translation>
+<translation id="3594780231884063836">I-mute ang video</translation>
 <translation id="3599863153486145794">Kini-clear ang history sa lahat ng naka-sign in na device. Maaaring may iba pang anyo ng history ng pag-browse ang iyong Google Account sa <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="3600792891314830896">I-mute ang mga site na nagpe-play ng tunog</translation>
 <translation id="3616113530831147358">Audio</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">I-download ang page</translation>
 <translation id="548278423535722844">Buksan sa app na mga mapa</translation>
 <translation id="5487521232677179737">I-clear ang data</translation>
+<translation id="5489227211564503167"><ph name="ELAPSED_TIME" /> ang lumipas mula sa <ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">I-block ang mga ad sa mga site na nagpapakita ng mga nakakasagabal o nakakapanlinlang na ad</translation>
 <translation id="5500777121964041360">Maaaring hindi available sa iyong lokasyon</translation>
 <translation id="5505264765875738116">Hindi puwedeng humiling ang mga site na magpadala ng mga notification</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Naghihintay ng isa pang download…</translation>
 <translation id="5865733239029070421">Awtomatikong nagpapadala sa Google ng mga istatistika ng paggamit at ulat ng pag-crash</translation>
 <translation id="5869522115854928033">Mga naka-save na password</translation>
+<translation id="5876056640971328065">I-pause ang video</translation>
 <translation id="5884076754568147479">Para tulungan kang tapusin ang mga gawain, matatanggap ng Google ang mga URL at content ng mga site kung saan ka gumamit ng Assistant, gayundin ang impormasyong isinumite mo sa pamamagitan ng Assistant</translation>
 <translation id="5902828464777634901">Made-delete ang lahat ng lokal na data na ini-store ng website na ito, kasama ang cookies.</translation>
 <translation id="5919204609460789179">I-update ang <ph name="PRODUCT_NAME" /> upang simulan ang pag-sync</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Padilimin ang mga website</translation>
 <translation id="6388207532828177975">I-clear at i-reset</translation>
 <translation id="6395288395575013217">LINK</translation>
+<translation id="6397616442223433927">Online ulit</translation>
 <translation id="6404511346730675251">I-edit ang bookmark</translation>
 <translation id="6406506848690869874">Pag-sync</translation>
 <translation id="6410973561433500075">Pumasok sa AR mula sa <ph name="DOMAIN" />?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Naglo-load…</translation>
 <translation id="6850409657436465440">Isinasagawa pa rin ang iyong pag-download</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> (na) tab ang isinara</translation>
+<translation id="6864395892908308021">Hindi nababasa ng device na ito ang NFC</translation>
 <translation id="6864459304226931083">I-download ang larawan</translation>
 <translation id="6865313869410766144">Data ng form ng autofill</translation>
 <translation id="6884306546558072722">Patuloy na mag-explore offline</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Hindi salamat</translation>
 <translation id="7810647596859435254">Buksan gamit ang…</translation>
 <translation id="7821588508402923572">Lalabas dito ang mga natipid sa iyong data</translation>
+<translation id="783819812427904514">I-unmute ang video</translation>
 <translation id="784934925303690534">Sakop na oras</translation>
 <translation id="7851858861565204677">Iba pang device</translation>
 <translation id="7875915731392087153">Gumawa ng email</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
index b51f5a6..6968aee1 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Vous pouvez activer la synchronisation à tout moment dans les paramètres</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> favori}one{<ph name="BOOKMARKS_COUNT_MANY" /> favori}other{<ph name="BOOKMARKS_COUNT_MANY" /> favoris}}</translation>
 <translation id="3089395242580810162">Ouvrir dans onglet nav. privée</translation>
+<translation id="3114012059975132928">Lecteur vidéo</translation>
 <translation id="3123473560110926937">Annonces bloquées sur certains sites</translation>
 <translation id="3123734510202723619">Annonces</translation>
 <translation id="3137521801621304719">Désactiver le mode de navigation privée</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Tous</translation>
 <translation id="358794129225322306">Permet au site de télécharger plusieurs fichiers automatiquement.</translation>
 <translation id="3590487821116122040">Le stockage des sites que Chrome ne considère pas comme importants (comme les sites qui n'ont pas de paramètres enregistrés ou que vous ne consultez pas souvent)</translation>
+<translation id="3594780231884063836">Désactiver le son de la vidéo</translation>
 <translation id="3599863153486145794">Efface l'historique de tous les appareils connectés. D'autres formes d'historique de navigation peuvent exister sur votre compte Google à l'adresse <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="3600792891314830896">Désactiver le son sur les sites qui en font jouer</translation>
 <translation id="3616113530831147358">Audio</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Télécharger la page</translation>
 <translation id="548278423535722844">Ouvrir dans l'application Maps</translation>
 <translation id="5487521232677179737">Effacer les données</translation>
+<translation id="5489227211564503167">Temps écoulé : <ph name="ELAPSED_TIME" /> sur <ph name="TOTAL_TIME" /></translation>
 <translation id="5494752089476963479">Bloquer les annonces sur les sites qui diffusent des annonces intrusives ou trompeuses</translation>
 <translation id="5500777121964041360">Il se peut que cette fonctionnalité ne soit pas offerte dans votre région</translation>
 <translation id="5505264765875738116">Les sites ne peuvent pas vous demander l'autorisation d'envoyer des notifications</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">En attente d'un autre téléchargement…</translation>
 <translation id="5865733239029070421">Envoie automatiquement des statistiques d'utilisation et des rapports d'erreur à Google</translation>
 <translation id="5869522115854928033">Mots de passe enregistrés</translation>
+<translation id="5876056640971328065">Suspendre la vidéo</translation>
 <translation id="5884076754568147479">Pour vous aider à effectuer des tâches, Google recevra les URL et le contenu des sites avec lesquels vous utilisez l'Assistant, ainsi que l'information que vous envoyez par l'intermédiaire de l'Assistant</translation>
 <translation id="5902828464777634901">Toutes les données locales stockées par ce site, y compris les témoins, seront supprimées.</translation>
 <translation id="5919204609460789179">Mettez à jour <ph name="PRODUCT_NAME" /> pour commencer la synchronisation</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Assombrir les sites Web</translation>
 <translation id="6388207532828177975">Effacer et réinitialiser</translation>
 <translation id="6395288395575013217">LIEN</translation>
+<translation id="6397616442223433927">De nouveau en ligne</translation>
 <translation id="6404511346730675251">Modifier le favori</translation>
 <translation id="6406506848690869874">Synchronisation</translation>
 <translation id="6410973561433500075">Démarrer la RA à partir de <ph name="DOMAIN" />?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Chargement en cours...</translation>
 <translation id="6850409657436465440">Votre téléchargement est toujours en cours</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> onglets fermés</translation>
+<translation id="6864395892908308021">Cet appareil ne prend pas en charge la technologie NFC</translation>
 <translation id="6864459304226931083">Télécharger l'image</translation>
 <translation id="6865313869410766144">Données de remplissage automatique de formulaires</translation>
 <translation id="6884306546558072722">Continuer d'explorer hors ligne</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Non merci</translation>
 <translation id="7810647596859435254">Ouvrir avec…</translation>
 <translation id="7821588508402923572">Vos économies de données s'afficheront ici</translation>
+<translation id="783819812427904514">Réactiver le son de la vidéo</translation>
 <translation id="784934925303690534">Intervalle de temps</translation>
 <translation id="7851858861565204677">Autres appareils</translation>
 <translation id="7875915731392087153">Créer un courriel</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
index f90a1bb53..079867cd 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Vous pouvez activer la synchronisation à tout moment dans les paramètres</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> favori}one{<ph name="BOOKMARKS_COUNT_MANY" /> favori}other{<ph name="BOOKMARKS_COUNT_MANY" /> favoris}}</translation>
 <translation id="3089395242580810162">Ouvrir onglet navig. privée</translation>
+<translation id="3114012059975132928">Lecteur vidéo</translation>
 <translation id="3123473560110926937">Bloqué sur certains sites</translation>
 <translation id="3123734510202723619">Annonces</translation>
 <translation id="3137521801621304719">Désactiver le mode navigation privée</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Tous</translation>
 <translation id="358794129225322306">Autoriser un site à télécharger automatiquement plusieurs fichiers</translation>
 <translation id="3590487821116122040">Données de site stockées que Chrome ne considère pas comme importantes (par exemple, pour des sites sans paramètres enregistrés ou que vous ne consultez pas souvent)</translation>
+<translation id="3594780231884063836">Couper le son de la vidéo</translation>
 <translation id="3599863153486145794">Efface l'historique de tous les appareils sur lesquels vous êtes connecté à votre compte Google. Ce dernier peut conserver d'autres formes d'historique de navigation sur la page <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="3600792891314830896">Couper le son des sites</translation>
 <translation id="3616113530831147358">Audio</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Télécharger la page</translation>
 <translation id="548278423535722844">Ouvrir dans une application de plans</translation>
 <translation id="5487521232677179737">Effacer les données</translation>
+<translation id="5489227211564503167">Temps écoulé : <ph name="ELAPSED_TIME" /> sur <ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">Bloquer les annonces sur les sites qui affichent des annonces intrusives ou trompeuses</translation>
 <translation id="5500777121964041360">Cette fonctionnalité n'est peut-être pas disponible dans votre pays</translation>
 <translation id="5505264765875738116">Les sites ne peuvent pas vous demander l'autorisation d'envoyer des notifications</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">En attente d'un autre téléchargement…</translation>
 <translation id="5865733239029070421">Envoie automatiquement des statistiques d'utilisation et des rapports d'erreur à Google</translation>
 <translation id="5869522115854928033">Mots de passe enregistrés</translation>
+<translation id="5876056640971328065">Mettre la vidéo en pause</translation>
 <translation id="5884076754568147479">Pour vous aider à effectuer des tâches, Google recevra les URL et le contenu des sites sur lesquels vous utilisez l'Assistant, ainsi que les informations que vous envoyez via celui-ci</translation>
 <translation id="5902828464777634901">Toutes les données locales stockées par ce site, y compris les cookies, seront supprimées.</translation>
 <translation id="5919204609460789179">Mettre à jour <ph name="PRODUCT_NAME" /> pour lancer la synchronisation</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Assombrir les sites Web</translation>
 <translation id="6388207532828177975">Effacer et réinitialiser</translation>
 <translation id="6395288395575013217">LIEN</translation>
+<translation id="6397616442223433927">Connexion rétablie</translation>
 <translation id="6404511346730675251">Modifier le favori</translation>
 <translation id="6406506848690869874">Synchronisation</translation>
 <translation id="6410973561433500075">Activer la RA à partir du site <ph name="DOMAIN" /> ?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Chargement en cours…</translation>
 <translation id="6850409657436465440">Téléchargement toujours en cours</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> onglets ont été fermés.</translation>
+<translation id="6864395892908308021">Lecture NFC impossible sur cet appareil</translation>
 <translation id="6864459304226931083">Télécharger l'image</translation>
 <translation id="6865313869410766144">Données de saisie automatique</translation>
 <translation id="6884306546558072722">Continuer d'explorer hors connexion</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Non merci</translation>
 <translation id="7810647596859435254">Ouvrir avec…</translation>
 <translation id="7821588508402923572">Vos économies de données s'affichent ici</translation>
+<translation id="783819812427904514">Réactiver le son de la vidéo</translation>
 <translation id="784934925303690534">Période</translation>
 <translation id="7851858861565204677">Autres appareils</translation>
 <translation id="7875915731392087153">Créer un e-mail</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
index b33e5b2..4e2fee5c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
@@ -461,7 +461,7 @@
 <translation id="445467742685312942">Védett tartalmak lejátszásának engedélyezése a webhelyek számára</translation>
 <translation id="4468959413250150279">Egy adott webhely hangjának némítása.</translation>
 <translation id="4472118726404937099">Az eszközök közötti szinkronizáláshoz és személyre szabáshoz jelentkezzen be, és kapcsolja be a szinkronizálást</translation>
-<translation id="447252321002412580">Segítség a Chrome funkcióinak és teljesítményének javítása érdekében</translation>
+<translation id="447252321002412580">Hozzájárulás a Chrome funkcióinak és teljesítményének javításához</translation>
 <translation id="4479647676395637221">Kérdezzen rá, mielőtt engedélyezné a webhelyek számára a kamera használatát (ajánlott)</translation>
 <translation id="4479972344484327217">A(z) <ph name="MODULE" /> telepítése a Chrome-hoz…</translation>
 <translation id="4487967297491345095">A Chrome összes alkalmazásadata véglegesen törlődik, beleértve a fájlokat, beállításokat, fiókokat, adatbázisokat stb.</translation>
@@ -760,7 +760,7 @@
 <translation id="6545864417968258051">Bluetooth-alapú keresés</translation>
 <translation id="6560414384669816528">Keresés a Sogou használatával</translation>
 <translation id="656065428026159829">Továbbiak megjelenítése</translation>
-<translation id="6561560012278703671">Halkabb üzenetküldés használata (letiltja az értesítéseket, hogy ne zavarják meg Önt)</translation>
+<translation id="6561560012278703671">Csendesebb üzenetküldés használata (letiltja az értesítéseket, hogy ne zavarják meg Önt)</translation>
 <translation id="6566259936974865419">A Chrome megspórolt Önnek <ph name="GIGABYTES" /> GB-ot</translation>
 <translation id="6573096386450695060">Engedélyezés mindig</translation>
 <translation id="6573431926118603307">A más eszközökön futó Chrome böngészőben megnyitott lapok itt jelennek meg.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
index 2369363..fbf5bb87 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Anda dapat mengaktifkan sinkronisasi kapan saja di setelan</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bookmark}other{<ph name="BOOKMARKS_COUNT_MANY" /> bookmark}}</translation>
 <translation id="3089395242580810162">Buka di tab samaran</translation>
+<translation id="3114012059975132928">Pemutar video</translation>
 <translation id="3123473560110926937">Diblokir di beberapa situs</translation>
 <translation id="3123734510202723619">Pengumuman</translation>
 <translation id="3137521801621304719">Tutup mode samaran</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Semua</translation>
 <translation id="358794129225322306">Izinkan situs untuk otomatis mendownload beberapa file.</translation>
 <translation id="3590487821116122040">Penyimpanan situs yang dianggap tidak penting oleh Chrome (misalnya situs yang tidak memiliki setelan penyimpanan atau situs yang tidak sering Anda kunjungi)</translation>
+<translation id="3594780231884063836">Bisukan video</translation>
 <translation id="3599863153486145794">Menghapus histori dari semua perangkat yang dibuat login. Akun Google Anda mungkin memiliki bentuk histori penjelajahan lainnya di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="3600792891314830896">Nonaktifkan suara situs yang memutar suara</translation>
 <translation id="3616113530831147358">Audio</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Download halaman</translation>
 <translation id="548278423535722844">Buka di aplikasi peta</translation>
 <translation id="5487521232677179737">Hapus data</translation>
+<translation id="5489227211564503167">Waktu berlalu <ph name="ELAPSED_TIME" /> dari <ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">Blokir iklan di situs yang menampilkan iklan yang mengganggu atau menyesatkan</translation>
 <translation id="5500777121964041360">Mungkin tidak tersedia di lokasi Anda</translation>
 <translation id="5505264765875738116">Situs tidak dapat meminta izin mengirimkan notifikasi</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Menunggu proses download lain…</translation>
 <translation id="5865733239029070421">Secara otomatis mengirimkan statistik penggunaan dan laporan kerusakan ke Google</translation>
 <translation id="5869522115854928033">Sandi tersimpan</translation>
+<translation id="5876056640971328065">Jeda video</translation>
 <translation id="5884076754568147479">Untuk membantu Anda menyelesaikan tugas, Google akan menerima URL dan konten situs tempat Anda menggunakan Asisten, serta informasi yang Anda kirimkan melalui Asisten</translation>
 <translation id="5902828464777634901">Semua data lokal yang disimpan oleh situs web ini, termasuk cookie, akan dihapus.</translation>
 <translation id="5919204609460789179">Perbarui <ph name="PRODUCT_NAME" /> untuk memulai sinkronisasi</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Gelapkan situs</translation>
 <translation id="6388207532828177975">Hapus &amp; setel ulang</translation>
 <translation id="6395288395575013217">LINK</translation>
+<translation id="6397616442223433927">Kembali online</translation>
 <translation id="6404511346730675251">Edit bookmark</translation>
 <translation id="6406506848690869874">Sinkronisasi</translation>
 <translation id="6410973561433500075">Masuk ke sesi AR dari <ph name="DOMAIN" />?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Memuat…</translation>
 <translation id="6850409657436465440">Download sedang berlangsung</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> tab ditutup</translation>
+<translation id="6864395892908308021">Perangkat ini tidak dapat membaca NFC</translation>
 <translation id="6864459304226931083">Download gambar</translation>
 <translation id="6865313869410766144">Data formulir isi-otomatis</translation>
 <translation id="6884306546558072722">Terus menjelajah saat offline</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Lain kali</translation>
 <translation id="7810647596859435254">Buka dengan...</translation>
 <translation id="7821588508402923572">Penghematan data Anda akan terlihat di sini</translation>
+<translation id="783819812427904514">Bunyikan video</translation>
 <translation id="784934925303690534">Rentang waktu</translation>
 <translation id="7851858861565204677">Perangkat lain</translation>
 <translation id="7875915731392087153">Buat email</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
index f098a456..3bd757e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">同期は設定でいつでもオンにできます。</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> 個のブックマーク}other{<ph name="BOOKMARKS_COUNT_MANY" /> 個のブックマーク}}</translation>
 <translation id="3089395242580810162">シークレット タブで開く</translation>
+<translation id="3114012059975132928">動画プレーヤー</translation>
 <translation id="3123473560110926937">一部のサイトでブロックされています</translation>
 <translation id="3123734510202723619">お知らせ</translation>
 <translation id="3137521801621304719">シークレット モードを終了</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">すべて</translation>
 <translation id="358794129225322306">複数ファイルの自動ダウンロードをサイトに許可します。</translation>
 <translation id="3590487821116122040">Chrome で重要度が低いと判断されるサイトのストレージ(設定を保存していないサイトやアクセス頻度の少ないサイトなど)</translation>
+<translation id="3594780231884063836">動画をミュート</translation>
 <translation id="3599863153486145794">ログインしているすべてのデバイスの履歴を削除します。お使いの Google アカウントの <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> に、他の形式の閲覧履歴が記録されている場合があります。</translation>
 <translation id="3600792891314830896">音声が再生されるサイトをミュートする</translation>
 <translation id="3616113530831147358">音声</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">ページをダウンロード</translation>
 <translation id="548278423535722844">マップアプリで開く</translation>
 <translation id="5487521232677179737">データを削除</translation>
+<translation id="5489227211564503167"><ph name="TOTAL_TIME" /> のうち <ph name="ELAPSED_TIME" /> 経過しました。</translation>
 <translation id="5494752089476963479">煩わしい広告や誤解を招く広告が表示されるサイトで広告をブロックする</translation>
 <translation id="5500777121964041360">お住まいの地域ではご利用になれない可能性があります</translation>
 <translation id="5505264765875738116">通知を送信するかどうかの確認をサイトに許可しない</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">別のダウンロードの完了待ちです…</translation>
 <translation id="5865733239029070421">使用統計情報や障害レポートを Google に自動送信します</translation>
 <translation id="5869522115854928033">保存したパスワード</translation>
+<translation id="5876056640971328065">動画を一時停止</translation>
 <translation id="5884076754568147479">タスクを完了するため、アシスタントを使用したサイトの URL とコンテンツ、およびアシスタントで送信した情報が Google に送られます。</translation>
 <translation id="5902828464777634901">このウェブサイトで保存したすべてのローカルデータ(Cookie を含む)を削除します。</translation>
 <translation id="5919204609460789179">同期を開始するには <ph name="PRODUCT_NAME" /> を更新してください</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">ウェブサイトを暗くする</translation>
 <translation id="6388207532828177975">データを削除してリセット</translation>
 <translation id="6395288395575013217">リンク</translation>
+<translation id="6397616442223433927">オンラインに復帰</translation>
 <translation id="6404511346730675251">ブックマークを編集</translation>
 <translation id="6406506848690869874">同期</translation>
 <translation id="6410973561433500075"><ph name="DOMAIN" /> で AR を使用しますか?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">読み込み中...</translation>
 <translation id="6850409657436465440">ダウンロードが進行中です</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> 個のタブを閉じました</translation>
+<translation id="6864395892908308021">このデバイスでは NFC を読み込めません</translation>
 <translation id="6864459304226931083">画像をダウンロード</translation>
 <translation id="6865313869410766144">自動入力フォームのデータ</translation>
 <translation id="6884306546558072722">オフラインで閲覧を続ける</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">いいえ</translation>
 <translation id="7810647596859435254">アプリで開く…</translation>
 <translation id="7821588508402923572">データ節約量がここに表示されます</translation>
+<translation id="783819812427904514">動画のミュートを解除</translation>
 <translation id="784934925303690534">期間</translation>
 <translation id="7851858861565204677">他のデバイス</translation>
 <translation id="7875915731392087153">メールを作成</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
index 1975152..155733734 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">სინქრონიზაციის ჩართვა ნებისმიერ დროს შეგიძლიათ პარამეტრებიდან</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> სანიშნე}other{<ph name="BOOKMARKS_COUNT_MANY" /> სანიშნე}}</translation>
 <translation id="3089395242580810162">ინკოგნიტო ჩანართში გახსნა</translation>
+<translation id="3114012059975132928">ვიდეოდამკვრელი</translation>
 <translation id="3123473560110926937">დაბლოკილია ზოგიერთ საიტზე</translation>
 <translation id="3123734510202723619">განცხადებები</translation>
 <translation id="3137521801621304719">ინკოგნიტო რეჟიმის დატოვება</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">ყველა</translation>
 <translation id="358794129225322306">საიტისთვის რამდენიმე ფაილის ავტომატურად ჩამოტვირთვის დაშვება.</translation>
 <translation id="3590487821116122040">საიტების მეხსიერება, რომელსაც Chrome უმნიშვნელოდ თვლის (მაგ.: საიტები შენახული პარამეტრების გარეშე ან რომლებსაც ხშირად არ სტუმრობთ)</translation>
+<translation id="3594780231884063836">ვიდეოს დადუმება</translation>
 <translation id="3599863153486145794">გაასუფთავებს ისტორიას სისტემაში შესული ყველა მოწყობილობიდან. თქვენს Google ანგარიშში შეიძლება ინახებოდეს სხვა ტიპის დათვალიერების ისტორიაც, რომელიც ხელმისაწვდომია მისამართზე: <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="3600792891314830896">ხმის დაკვრის მხარდაჭერის მქონე საიტების დადუმება</translation>
 <translation id="3616113530831147358">აუდიო</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">გვერდის ჩამოტვირთვა</translation>
 <translation id="548278423535722844">რუკების აპში გახსნა</translation>
 <translation id="5487521232677179737">მონაცემების წაშლა</translation>
+<translation id="5489227211564503167">გავიდა <ph name="ELAPSED_TIME" /> / <ph name="TOTAL_TIME" />-დან.</translation>
 <translation id="5494752089476963479">რეკლამის დაბლოკვა იმ საიტებზე, რომლებიც აჩვენებს მომაბეზრებელ ან შეცდომაში შემყვან რეკლამას</translation>
 <translation id="5500777121964041360">შეიძლება მიუწვდომელი იყოს თქვენთან</translation>
 <translation id="5505264765875738116">საიტები ვერ გთხოვთ შეტყობინებების გამოგზავნას</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">სხვა ჩამოტვირთვის მოლოდინში…</translation>
 <translation id="5865733239029070421">ავტომატური აგზავნის Google-ში გამოყენების სტატისტიკასა და შეცდომების ანგარიშებს</translation>
 <translation id="5869522115854928033">შენახული პაროლები</translation>
+<translation id="5876056640971328065">ვიდეოს დაპაუზება</translation>
 <translation id="5884076754568147479">ამოცანების შესრულებაში დასახმარებლად Google მიიღებს იმ საიტების URL-ებსა და კონტენტს, რომლებზეც ასისტენტს იყენებთ, ასევე, თქვენ მიერ ასისტენტის მეშვეობით გადაგზავნილ ინფორმაციას</translation>
 <translation id="5902828464777634901">წაიშლება ყველა ადგილობრივი მონაცემი, შენახული ამ ვებგვერდის მიერ, მათ შორის ქუქი ფაილები.</translation>
 <translation id="5919204609460789179">სინქრონიზაციის დასაწყებად, განაახლეთ <ph name="PRODUCT_NAME" /></translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">ვებსაიტების გამუქება</translation>
 <translation id="6388207532828177975">გასუფთავება &amp; აღდგენა</translation>
 <translation id="6395288395575013217">ბმული</translation>
+<translation id="6397616442223433927">კვლავ ონლაინ ხართ</translation>
 <translation id="6404511346730675251">სანიშნის რედაქტირება</translation>
 <translation id="6406506848690869874">სინქრონიზაცია</translation>
 <translation id="6410973561433500075">გსურთ აუგმენტური რეალობის რეჟიმზე გადასვლა <ph name="DOMAIN" />-დან?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">იტვირთება…</translation>
 <translation id="6850409657436465440">ჩამოტვირთვა ჯერ კიდევ მიმდინარეობს</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> ჩანართი დაიხურა</translation>
+<translation id="6864395892908308021">NFC მხარდაუჭერელია ამ მოწყობილობის მიერ</translation>
 <translation id="6864459304226931083">სურათის ჩამოტვირთვა</translation>
 <translation id="6865313869410766144">ფორმათა მონაცემების ავტომატური შევსება</translation>
 <translation id="6884306546558072722">დათვალიერების ხაზგარეშე რეჟიმში გაგრძელება</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">არა, მადლობთ</translation>
 <translation id="7810647596859435254">გახსნა აპით…</translation>
 <translation id="7821588508402923572">აქ გამოჩნდება ინტერნეტის ტრაფიკის თქვენ მიერ დაზოგილი მოცულობა</translation>
+<translation id="783819812427904514">ვიდეოს დადუმების მოხსნა</translation>
 <translation id="784934925303690534">დროის დიაპაზონი</translation>
 <translation id="7851858861565204677">სხვა მოწყობილობები</translation>
 <translation id="7875915731392087153">ელფოსტის შექმნა</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
index daa771c..5295ca9 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Синхрондау функциясын кез келген уақытта "Параметрлер" бөлімінен қоса аласыз.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> бетбелгі}other{<ph name="BOOKMARKS_COUNT_MANY" /> бетбелгі}}</translation>
 <translation id="3089395242580810162">Инкогнито қойындысында ашу</translation>
+<translation id="3114012059975132928">Бейне ойнатқыш</translation>
 <translation id="3123473560110926937">Кейбір сайттарда тыйым салынған</translation>
 <translation id="3123734510202723619">Хабарландырулар</translation>
 <translation id="3137521801621304719">Жасырын режимнен шығу</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Барлығы</translation>
 <translation id="358794129225322306">Сайтқа бірнеше файлды автоматты түрде жүктеу рұқсатын беру.</translation>
 <translation id="3590487821116122040">Маңызды деп саналмайтын сайт деректері (мысалы, параметрлері сақталмаған немесе сіз жиі кірмейтін сайттар)</translation>
+<translation id="3594780231884063836">Бейненің дыбысын өшіру</translation>
 <translation id="3599863153486145794">Барлық жүйеге кірген құрылғылардан тарихты өшіреді.<ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> мекенжайында Google есептік жазбасымен шолу тарихының басқа да үлгілері болуы мүмкін.</translation>
 <translation id="3600792891314830896">Сайттардың дыбысы өшірілді</translation>
 <translation id="3616113530831147358">Аудио</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Жүктеп алу беті</translation>
 <translation id="548278423535722844">Maps қолданбасында ашу</translation>
 <translation id="5487521232677179737">Деректерді жою</translation>
+<translation id="5489227211564503167">Өткен уақыт: <ph name="ELAPSED_TIME" />/<ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">Мазалайтын не жалған ақпаратты жарнамалар берілетін сайттарда жарнамаларды бөгеу</translation>
 <translation id="5500777121964041360">Орналасқан аймағыңызда қолжетімді болмауы мүмкін.</translation>
 <translation id="5505264765875738116">Сайттар хабарландырулар жіберу рұқсатын сұрай алмайды</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Басқа мазмұн жүктеп алынуда...</translation>
 <translation id="5865733239029070421">Қолданыс статистикасын және жаңылыс туралы есептерді Google жүйесіне автоматты түрде жібереді</translation>
 <translation id="5869522115854928033">Сақталған құпия сөздер</translation>
+<translation id="5876056640971328065">Бейнені кідірту</translation>
 <translation id="5884076754568147479">Жұмыстарыңызға көмектесу үшін Assistant қызметі қолданылған сайттардың URL мекенжайлары және мазмұны, сонымен қатар Assistant арқылы жіберілген ақпарат Google-ға жіберіледі.</translation>
 <translation id="5902828464777634901">Cookie файлдарын қоса, осы сайт арқылы сақталған барлық жергілікті деректер жойылады.</translation>
 <translation id="5919204609460789179">Синхрондауды бастау үшін <ph name="PRODUCT_NAME" /> өнімін жаңартыңыз</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Веб-сайттарды қараңғылау</translation>
 <translation id="6388207532828177975">Тазарту және қалпына келтіру</translation>
 <translation id="6395288395575013217">СІЛТЕМЕ</translation>
+<translation id="6397616442223433927">Онлайн режимге оралу</translation>
 <translation id="6404511346730675251">Бетбелгіні өзгерту</translation>
 <translation id="6406506848690869874">Синхрондау</translation>
 <translation id="6410973561433500075">AR <ph name="DOMAIN" /> сайтынан енгізілсін бе?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Жүктелуде…</translation>
 <translation id="6850409657436465440">Жүктеп алу әлі аяқталған жоқ</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> қойынды жабылған</translation>
+<translation id="6864395892908308021">Бұл құрылғы NFC сигналын оқи алмайды</translation>
 <translation id="6864459304226931083">Суретті жүктеп алу</translation>
 <translation id="6865313869410766144">Нысан деректерін автотолтыру</translation>
 <translation id="6884306546558072722">Офлайн режимде пайдалана беру</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Жоқ, рақмет</translation>
 <translation id="7810647596859435254">Ашу әдісі…</translation>
 <translation id="7821588508402923572">Деректерді үнемдеу ақпараты осы жерде көрсетіледі</translation>
+<translation id="783819812427904514">Бейненің дыбысын қосу</translation>
 <translation id="784934925303690534">Уақыт ауқымы</translation>
 <translation id="7851858861565204677">Басқа құрылғылар</translation>
 <translation id="7875915731392087153">Электрондық пошта жасау</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
index c6e1deb..061019a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">អ្នកអាចបើក​សមកាលកម្ម​បានគ្រប់ពេល​នៅក្នុងការកំណត់</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{ចំណាំ <ph name="BOOKMARKS_COUNT_ONE" />}other{ចំណាំ <ph name="BOOKMARKS_COUNT_MANY" />}}</translation>
 <translation id="3089395242580810162">បើកនៅក្នុងផ្ទាំងអនាមិក</translation>
+<translation id="3114012059975132928">កម្មវិធី​ចាក់​វីដេអូ</translation>
 <translation id="3123473560110926937">បាន​ទប់ស្កាត់នៅលើគេហទំព័រ​មួយចំនួន</translation>
 <translation id="3123734510202723619">សេចក្តីប្រកាស</translation>
 <translation id="3137521801621304719">ចាកចេញពីរបៀបអនាមិក</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">ទាំងអស់</translation>
 <translation id="358794129225322306">អនុញ្ញាតឱ្យ​គេហទំព័រទាញយក​ឯកសារជាច្រើន​ដោយស្វ័យប្រវត្តិ។</translation>
 <translation id="3590487821116122040">ទំហំផ្ទុកគេហទំព័រដែល Chrome គិតថាមិនសំខាន់ (ឧ៖ គេហទំព័រដែលគ្មានការកំណត់ដែលបានរក្សាទុក ឬគេហទំព័រដែលអ្នកមិនសូវចូលទៅកាន់ញឹកញាប់)</translation>
+<translation id="3594780231884063836">បិទ​សំឡេង​វីដេអូ</translation>
 <translation id="3599863153486145794">សម្អាតប្រវត្តិពីឧបករណ៍ទាំងអស់ដែលបានចូលគណនី។ គណនី Google របស់អ្នកអាចនឹងមានទម្រង់ប្រវត្តិរុករកផ្សេងទៀតនៅ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> ។</translation>
 <translation id="3600792891314830896">បិទសំឡេងទំព័រដែលចាក់សំឡេង</translation>
 <translation id="3616113530831147358">សម្លេង</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">ទាញយកទំព័រ</translation>
 <translation id="548278423535722844">បើកនៅក្នុងកម្មវិធីផែនទី</translation>
 <translation id="5487521232677179737">ជម្រះទិន្នន័យ</translation>
+<translation id="5489227211564503167">រយៈពេល​ដែលកន្លងផុត <ph name="ELAPSED_TIME" /> នៃ <ph name="TOTAL_TIME" />។</translation>
 <translation id="5494752089476963479">ទប់ស្កាត់​ការផ្សាយពាណិជ្ជកម្ម​នៅលើគេហទំព័រ​ដែលបង្ហាញ​ការផ្សាយពាណិជ្ជកម្ម​នាំឱ្យយល់ច្រឡំ ឬរំខាន</translation>
 <translation id="5500777121964041360">ប្រហែលជា​មិនអាចប្រើ​នៅក្នុង​ទីតាំង​របស់អ្នកបានទេ</translation>
 <translation id="5505264765875738116">គេហទំព័រ​មិនអាច​ស្នើសុំ​ការអនុញ្ញាត​ដើម្បី​ផ្ញើ​ការជូន​ដំណឹង​បានទេ</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">កំពុង​រង់ចាំ​ការទាញយក​ផ្សេង​ទៀត…</translation>
 <translation id="5865733239029070421">ផ្ញើស្ថិតិប្រើប្រាស់ និងរបាយការណ៍អំពីការគាំងទៅ Google ដោយស្វ័យប្រវត្តិ</translation>
 <translation id="5869522115854928033">ពាក្យសម្ងាត់ដែលបានរក្សាទុក</translation>
+<translation id="5876056640971328065">ផ្អាក​វីដេអូ</translation>
 <translation id="5884076754568147479">ដើម្បី​ជួយអ្នកក្នុងការបំពេញ​កិច្ចការផ្សេងៗ Google នឹង​ទទួល​ URL និងខ្លឹមសារ​របស់គេហទំព័រ ដែលអ្នកប្រើជាមួយជំនួយការរបស់អ្នក ព្រមទាំងព័ត៌មានដែលអ្នកដាក់បញ្ជូនតាមរយៈជំនួយការ</translation>
 <translation id="5902828464777634901">ទិន្នន័យមូលដ្ឋានទាំងអស់ដែលបានរក្សាទុកដោយគេហទំព័រនេះរាប់ទាំងខុកឃីនឹងត្រូវបានលុប។</translation>
 <translation id="5919204609460789179">អាប់ដេត <ph name="PRODUCT_NAME" /> ដើម្បីចាប់ផ្តើមធ្វើសមកាលកម្ម</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">ធ្វើឱ្យគេហទំព័រប្រែជាងងឹត</translation>
 <translation id="6388207532828177975">ជម្រះ និងកំណត់ឡើងវិញ</translation>
 <translation id="6395288395575013217">តំណ</translation>
+<translation id="6397616442223433927">មានអ៊ីនធឺណិត​វិញ</translation>
 <translation id="6404511346730675251">កែប្រែចំណាំ</translation>
 <translation id="6406506848690869874">សមកាលកម្ម</translation>
 <translation id="6410973561433500075">ចូល AR ពី <ph name="DOMAIN" /> ឬ?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">កំពុងដំណើរការ...</translation>
 <translation id="6850409657436465440">ការទាញយក​របស់អ្នក​កំពុង​ដំណើរការ​នៅឡើយ</translation>
 <translation id="6850830437481525139">បានបិទផ្ទាំង <ph name="TAB_COUNT" /></translation>
+<translation id="6864395892908308021">ឧបករណ៍នេះ​មិនអាចអាន NFC បានទេ</translation>
 <translation id="6864459304226931083">ទាញយករូបភាព</translation>
 <translation id="6865313869410766144">បំពេញទិន្នន័យបែបបទស្វ័យប្រវត្តិ</translation>
 <translation id="6884306546558072722">បន្តរុករក​ដោយគ្មាន​អ៊ីនធឺណិត</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">ទេ អរគុណ</translation>
 <translation id="7810647596859435254">បើក​ដោយ​ប្រើ…</translation>
 <translation id="7821588508402923572">ការសន្សំសំចៃ​ទិន្នន័យ​របស់អ្នក​នឹង​បង្ហាញ​នៅ​ទីនេះ</translation>
+<translation id="783819812427904514">បើក​សំឡេង​វីដេអូ</translation>
 <translation id="784934925303690534">ចន្លោះពេល</translation>
 <translation id="7851858861565204677">ឧបករណ៍ផ្សេងទៀត</translation>
 <translation id="7875915731392087153">បង្កើតអ៊ីមែល</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
index 40c41117..3a89f14 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
@@ -287,6 +287,7 @@
 <translation id="3058498974290601450">ನೀವು ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಯಾವಾಗ ಬೇಕಾದರೂ ಸಿಂಕ್ ಆನ್ ಮಾಡಬಹುದು</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> ಬುಕ್‌ಮಾರ್ಕ್‌}one{<ph name="BOOKMARKS_COUNT_MANY" /> ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು}other{<ph name="BOOKMARKS_COUNT_MANY" /> ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು}}</translation>
 <translation id="3089395242580810162">ಅಜ್ಞಾತ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
+<translation id="3114012059975132928">ವೀಡಿಯೊ ಪ್ಲೇಯರ್</translation>
 <translation id="3123473560110926937">ಕೆಲವು ಸೈಟ್‌ಗಳಲ್ಲಿ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="3123734510202723619">ಪ್ರಕಟಣೆಗಳು</translation>
 <translation id="3137521801621304719">ಅದೃಶ್ಯ ಮೋಡ್‌ನಿಂದ ಹೊರಬನ್ನಿ</translation>
@@ -353,6 +354,7 @@
 <translation id="3587482841069643663">ಎಲ್ಲ</translation>
 <translation id="358794129225322306">ಬಹು ಫೈಲ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲು ಸೈಟ್‌ ಒಂದಕ್ಕೆ ಅನುಮತಿಸುವುದು.</translation>
 <translation id="3590487821116122040">ಪ್ರಮುಖವಲ್ಲವೆಂದು Chrome ಭಾವಿಸುವ ಸೈಟ್ ಸಂಗ್ರಹಣೆ (ಉದಾ. ಯಾವುದೇ ಉಳಿಸದ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ಅಥವಾ ನೀವು ಆಗಾಗ್ಗೆ ಭೇಟಿ ನೀಡದ ಸೈಟ್‌ಗಳು)</translation>
+<translation id="3594780231884063836">ವೀಡಿಯೊ ಮ್ಯೂಟ್ ಮಾಡಿ</translation>
 <translation id="3599863153486145794">ಸೈನ್-ಇನ್ ಮಾಡಿರುವ ಎಲ್ಲ ಸಾಧನಗಳಿಂದ ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ. ನಿಮ್ಮ Google ಖಾತೆಯು <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> ನಲ್ಲಿ ಇತರ ವಿಧಗಳ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು ಹೊಂದಿರಬಹುದು.</translation>
 <translation id="3600792891314830896">ಕೆಲವು ಸೈಟ್‌ಗಳಲ್ಲಿ ಧ್ವನಿ ಪ್ಲೇ ಆಗುವುದನ್ನು ಮ್ಯೂಟ್ ಮಾಡಿ</translation>
 <translation id="3616113530831147358">ಆಡಿಯೋ</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">ಪುಟ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ</translation>
 <translation id="548278423535722844">ನಕ್ಷೆಗಳ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="5487521232677179737">ಡೇಟಾ ತೆರವುಗೊಳಿಸು</translation>
+<translation id="5489227211564503167"><ph name="TOTAL_TIME" /> ನಲ್ಲಿ <ph name="ELAPSED_TIME" /> ಸಮಯ ಕಳೆದಿದೆ.</translation>
 <translation id="5494752089476963479">ಅನಪೇಕ್ಷಿತ ಅಥವಾ ತಪ್ಪುದಾರಿಗೆಳೆಯುವ ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸುವ ಸೈಟ್‌ಗಳಲ್ಲಿ ಜಾಹೀರಾತುಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="5500777121964041360">ನಿಮ್ಮ ಸ್ಥಳದಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲದಿರಬಹುದು</translation>
 <translation id="5505264765875738116">ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಬಹುದೇ ಎಂದು ಸೈಟ್‌ಗಳು ಕೇಳಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">ಇನ್ನೊಂದು ಡೌನ್‌ಲೋಡ್‌ಗಾಗಿ ಕಾಯಲಾಗುತ್ತಿದೆ…</translation>
 <translation id="5865733239029070421">ಬಳಕೆಯ ಅಂಕಿಅಂಶಗಳು ಮತ್ತು ಕ್ರ್ಯಾಶ್ ವರದಿಗಳನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುತ್ತದೆ</translation>
 <translation id="5869522115854928033">ಉಳಿಸಲಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು</translation>
+<translation id="5876056640971328065">ವೀಡಿಯೊ ವಿರಾಮಗೊಳಿಸಿ</translation>
 <translation id="5884076754568147479">ಕಾರ್ಯಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸುವುದಕ್ಕೆ ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು, ನೀವು ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ಬಳಸಿದ ಸೈಟ್‌ಗಳ URL ಗಳು ಮತ್ತು ವಿಷಯಗಳು ಹಾಗೂ ಅಸಿಸ್ಟೆಂಟ್ ಮೂಲಕ ನೀವು ಸಲ್ಲಿಸಿದ ಮಾಹಿತಿಯನ್ನು Google ಸ್ವೀಕರಿಸುತ್ತದೆ</translation>
 <translation id="5902828464777634901">ಕುಕೀಗಳು ಸೇರಿದಂತೆ, ಈ ವೆಬ್‌ಸೈಟ್ ಮೂಲಕ ಸಂಗ್ರಹಿಸಲಾದ ಎಲ್ಲಾ ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="5919204609460789179">ಸಿಂಕ್ ಪ್ರಾರಂಭಿಸಲು <ph name="PRODUCT_NAME" /> ಅಪ್‌ಡೇಟ್ ಮಾಡಿ</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">ಡಾರ್ಕನ್ ವೆಬ್‌ಸೈಟ್‌ಗಳು</translation>
 <translation id="6388207532828177975">ತೆರವುಗೊಳಿಸಿ &amp; ಮರುಹೊಂದಿಸಿ</translation>
 <translation id="6395288395575013217">ಲಿಂಕ್</translation>
+<translation id="6397616442223433927">ಆನ್‌ಲೈನ್‌ಗೆ ಮರಳಿದ್ದೀರಿ</translation>
 <translation id="6404511346730675251">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="6406506848690869874">ಸಿಂಕ್</translation>
 <translation id="6410973561433500075"><ph name="DOMAIN" /> ನಿಂದ AR ಅನ್ನು ಪ್ರವೇಶಿಸಬೇಕೇ?</translation>
@@ -797,6 +802,7 @@
 <translation id="6846298663435243399">ಲೋಡ್ ಆಗುತ್ತಿದೆ...</translation>
 <translation id="6850409657436465440">ನಿಮ್ಮ ಡೌನ್‌ಲೋಡ್ ಇನ್ನೂ ಪ್ರಗತಿಯಲ್ಲಿದೆ</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಲಾಗಿದೆ</translation>
+<translation id="6864395892908308021">ಈ ಸಾಧನವು NFC ಯನ್ನು ಓದಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="6864459304226931083">ಚಿತ್ರ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ</translation>
 <translation id="6865313869410766144">ಸ್ವಯಂತುಂಬುವಿಕೆ ಫಾರ್ಮ್ ಡೇಟಾ</translation>
 <translation id="6884306546558072722">ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿ ಎಕ್ಸ್‌ಪ್ಲೋರ್ ಮುಂದುವರಿಸಿ</translation>
@@ -917,6 +923,7 @@
 <translation id="780301667611848630">ಬೇಡ, ಧನ್ಯವಾದಗಳು</translation>
 <translation id="7810647596859435254">ಇದರೊಂದಿಗೆ ತೆರೆಯಿರಿ...</translation>
 <translation id="7821588508402923572">ನಿಮ್ಮ ಡೇಟಾ ಉಳಿತಾಯಗಳು ಇಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ</translation>
+<translation id="783819812427904514">ವೀಡಿಯೊ ಅನ್‍ಮ್ಯೂಟ್ ಮಾಡಿ</translation>
 <translation id="784934925303690534">ಸಮಯ ವ್ಯಾಪ್ತಿ</translation>
 <translation id="7851858861565204677">ಇತರ ಸಾಧನಗಳು</translation>
 <translation id="7875915731392087153">ಇಮೇಲ್ ರಚಿಸಿ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
index 01b162c..e8109ef 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">언제든지 설정에서 동기화를 사용 설정할 수 있습니다.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{북마크 <ph name="BOOKMARKS_COUNT_ONE" />개}other{북마크 <ph name="BOOKMARKS_COUNT_MANY" />개}}</translation>
 <translation id="3089395242580810162">시크릿 탭에서 열기</translation>
+<translation id="3114012059975132928">동영상 플레이어</translation>
 <translation id="3123473560110926937">일부 사이트에서 차단됨</translation>
 <translation id="3123734510202723619">공지사항</translation>
 <translation id="3137521801621304719">시크릿 모드 나가기</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">전체</translation>
 <translation id="358794129225322306">사이트에서 여러 파일을 자동으로 다운로드하도록 허용합니다.</translation>
 <translation id="3590487821116122040">Chrome에서 중요하다고 간주하지 않는 사이트 저장공간(예: 저장된 설정이 없거나 사용자가 자주 방문하지 않는 사이트)</translation>
+<translation id="3594780231884063836">동영상 음소거</translation>
 <translation id="3599863153486145794">로그인된 모든 기기에서 방문 기록을 지웁니다. Google 계정의 내 활동(<ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />)에는 인터넷 사용 기록이 다른 형식으로 남아 있을 수도 있습니다.</translation>
 <translation id="3600792891314830896">소리를 재생하는 사이트 음소거</translation>
 <translation id="3616113530831147358">오디오</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">다운로드 페이지</translation>
 <translation id="548278423535722844">지도 앱에서 열기</translation>
 <translation id="5487521232677179737">인터넷 사용 기록 삭제</translation>
+<translation id="5489227211564503167"><ph name="TOTAL_TIME" /> 중 <ph name="ELAPSED_TIME" /> 경과</translation>
 <translation id="5494752089476963479">방해가 되거나 사용자를 현혹하는 광고를 표시하는 사이트의 광고 차단</translation>
 <translation id="5500777121964041360">현재 지역에서는 지원되지 않을 수도 있습니다.</translation>
 <translation id="5505264765875738116">사이트에서 알림 전송 허용을 요청할 수 없음</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">다른 다운로드 대기 중…</translation>
 <translation id="5865733239029070421">사용 통계 및 비정상 종료 보고서를 Google로 자동 전송</translation>
 <translation id="5869522115854928033">저장된 비밀번호</translation>
+<translation id="5876056640971328065">동영상 일시중지</translation>
 <translation id="5884076754568147479">작업 처리를 돕기 위해 내가 어시스턴트를 통해 제출한 정보뿐만 아니라 어시스턴트를 이용한 사이트의 URL과 콘텐츠가 Google에 전송됩니다.</translation>
 <translation id="5902828464777634901">쿠키를 포함하여 이 웹사이트에 의해 저장된 모든 로컬 데이터가 삭제됩니다.</translation>
 <translation id="5919204609460789179"><ph name="PRODUCT_NAME" />을(를) 업데이트하여 동기화를 시작합니다.</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">웹사이트 어둡게 보기</translation>
 <translation id="6388207532828177975">삭제 및 재설정</translation>
 <translation id="6395288395575013217">링크</translation>
+<translation id="6397616442223433927">인터넷에 다시 연결됨</translation>
 <translation id="6404511346730675251">북마크 수정</translation>
 <translation id="6406506848690869874">동기화</translation>
 <translation id="6410973561433500075"><ph name="DOMAIN" />에서 AR을 시작하시겠습니까?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">로드 중...</translation>
 <translation id="6850409657436465440">아직 다운로드 중</translation>
 <translation id="6850830437481525139">탭 <ph name="TAB_COUNT" />개를 닫았습니다.</translation>
+<translation id="6864395892908308021">기기에서 NFC를 읽을 수 없음</translation>
 <translation id="6864459304226931083">이미지 다운로드</translation>
 <translation id="6865313869410766144">양식 데이터 자동 완성</translation>
 <translation id="6884306546558072722">오프라인에서 계속 탐색</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">아니요, 괜찮습니다.</translation>
 <translation id="7810647596859435254">연결 프로그램...</translation>
 <translation id="7821588508402923572">절약한 데이터 양이 여기에 표시됩니다</translation>
+<translation id="783819812427904514">동영상 음소거 해제</translation>
 <translation id="784934925303690534">기간</translation>
 <translation id="7851858861565204677">다른 기기</translation>
 <translation id="7875915731392087153">이메일 만들기</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
index 58dab2f..e870b0c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Шайкештирүүнү каалаган убакта жөндөөлөргө өтүп, күйгүзүп койсоңуз болот</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> кыстарма}other{<ph name="BOOKMARKS_COUNT_MANY" /> кыстарма}}</translation>
 <translation id="3089395242580810162">Жашыруун режимде ачуу</translation>
+<translation id="3114012059975132928">Видео ойноткуч</translation>
 <translation id="3123473560110926937">Айрым сайттарда бөгөттөлдү</translation>
 <translation id="3123734510202723619">Жарыялар</translation>
 <translation id="3137521801621304719">Жашыруун режимден чыгуу</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Баары</translation>
 <translation id="358794129225322306">Сайтка бир нече файлды автоматтык түрдө жүктөп алууга уруксат берүү.</translation>
 <translation id="3590487821116122040">Анча маанилүү болбогон сайттардын дайындары (мис., жөндөөлөрү сакталбаган же сиз көп кирбеген сайттар)</translation>
+<translation id="3594780231884063836">Видеонун үнүн басуу</translation>
 <translation id="3599863153486145794">Аккаунтка кирген бардык түзмөктөрүңүздөгү таржымал тазаланат. Google аккаунтуңуздун серептөө таржымалынын башка түрлөрү <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> дарегинде болушу мүмкүн.</translation>
 <translation id="3600792891314830896">Добуш чыгарган сайттардын үнү өчүрүлөт</translation>
 <translation id="3616113530831147358">Аудио</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Баракты жүктөп алуу</translation>
 <translation id="548278423535722844">Карталар колдонмосунан ачыңыз</translation>
 <translation id="5487521232677179737">Дайын-даректерди өчүрүү</translation>
+<translation id="5489227211564503167"><ph name="TOTAL_TIME" /> ичинен <ph name="ELAPSED_TIME" /> өттү.</translation>
 <translation id="5494752089476963479">Тажатма же адаштыруучу жарнамаларды көрсөткөн сайттан келген жарнамалар бөгөттөлсүн</translation>
 <translation id="5500777121964041360">Сиз жашаган өлкөдө жеткиликсиз болушу мүмкүн</translation>
 <translation id="5505264765875738116">Сайттар билдирмелерди жөнөтүүнү сурана алышпайт</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Башка жүктөп алуу күтүлүүдө…</translation>
 <translation id="5865733239029070421">Колдонуу статистикасын жана каталар жөнүндө кабарларды Google'га автоматтык түрдө жөнөтүп турат</translation>
 <translation id="5869522115854928033">Сакталган сырсөздөр</translation>
+<translation id="5876056640971328065">Видеону тындыруу</translation>
 <translation id="5884076754568147479">Тапшырмаларды аткарууга жардам берүү үчүн Google Жардамчыны колдонгон сайттардын URL даректерин жана мазмунун, ошондой эле Жардамчы аркылуу тапшырган маалыматты алат</translation>
 <translation id="5902828464777634901">Бул вебсайтта сакталган жергиликтүү дайындардын баары, ошондой эле кукилер өчүрүлөт.</translation>
 <translation id="5919204609460789179">Шайкештирүүнү баштоо үчүн <ph name="PRODUCT_NAME" /> жаңыртыңыз</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Күңүрттөлгөн вебсайттар</translation>
 <translation id="6388207532828177975">Тазалоо жана баштапкы абалга келтирүү</translation>
 <translation id="6395288395575013217">ШИЛТЕМЕ</translation>
+<translation id="6397616442223433927">Кайрадан онлайнда</translation>
 <translation id="6404511346730675251">Кыстарманы түзөтүү</translation>
 <translation id="6406506848690869874">Шайкештирүү</translation>
 <translation id="6410973561433500075">AR режимине <ph name="DOMAIN" /> доменинен киресизби?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Жүктөлүүдө…</translation>
 <translation id="6850409657436465440">Файлыңыз дагы эле жүктөлүп алынууда</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> өтмөк жабылды</translation>
+<translation id="6864395892908308021">Бул түзмөк NFC'ни окуй албайт</translation>
 <translation id="6864459304226931083">Сүрөттү жүктөп алуу</translation>
 <translation id="6865313869410766144">Автотолтуруу формасынын дайындары</translation>
 <translation id="6884306546558072722">Оффлайн режиминде изилдей бериңиз</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Жок, рахмат</translation>
 <translation id="7810647596859435254">Төмөнкү менен ачуу…</translation>
 <translation id="7821588508402923572">Үнөмдөлгөн трафик ушул жерде көрүнөт</translation>
+<translation id="783819812427904514">Видеонун үнүн чыгаруу</translation>
 <translation id="784934925303690534">Убакыт аралыгы</translation>
 <translation id="7851858861565204677">Башка түзмөктөр</translation>
 <translation id="7875915731392087153">Электрондук почта түзүңүз</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
index cbe7c63..644d9f19 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">ທ່ານສາມາດເປີດການຊິ້ງຂໍ້ມູນໄດ້ທຸກເວລາໃນການຕັ້ງຄ່າ</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> ບຸກມາກ}other{<ph name="BOOKMARKS_COUNT_MANY" /> ບຸກມາກ}}</translation>
 <translation id="3089395242580810162">ເປີດ​ໃນ​ແຖບ​ບໍ່ເປີດເຜີຍຕົນຕົວ</translation>
+<translation id="3114012059975132928">ໂປຣແກຣມຫຼິ້ນວິດີໂອ</translation>
 <translation id="3123473560110926937">ບລັອກໃນບາງເວັບໄຊ</translation>
 <translation id="3123734510202723619">ການປະກາດ</translation>
 <translation id="3137521801621304719">ອອກຈາກໂໝດທີ່ບໍ່ເຜີຍຕົວຕົນ</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">ທັງໝົດ</translation>
 <translation id="358794129225322306">ອະນຸຍາດໃຫ້ເວັບໄຊດາວໂຫຼດຫຼາຍໄຟລ໌ໂດຍອັດຕະໂນມັດ.</translation>
 <translation id="3590487821116122040">ບ່ອນເກັບຂໍ້ມູນເວັບໄຊທີ່ Chrome ຄິດວ່າບໍ່ສຳຄັນ (ເຊັ່ນ ເວັບໄຊທີ່ບໍ່ມີການຕັ້ງຄ່າທີ່ບັນທຶກໄວ້ ຫຼື ທີ່ທ່ານບໍ່ຄ່ອຍເຂົ້າເບິ່ງ)</translation>
+<translation id="3594780231884063836">ປິດສຽງວິດີໂອ</translation>
 <translation id="3599863153486145794">ລຶບລ້າງປະຫວັດຈາກທຸກອຸປະກອນທີ່ເຂົ້າສູ່ລະບົບແລ້ວ. ບັນຊີ Google ຂອງທ່ານອາດຈະມີຮູບແບບອື່ນຂອງປະຫວັດການທ່ອງເວັບຢູ່ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="3600792891314830896">ປິດສຽງເວັບໄຊທີ່ຫຼິ້ນສຽງ</translation>
 <translation id="3616113530831147358">ສຽງ</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">ໜ້າການດາວໂຫຼດ</translation>
 <translation id="548278423535722844">ເປີດໃນແອັບແຜນທີ່</translation>
 <translation id="5487521232677179737">ລຶບລ້າງຂໍ້ມູນ</translation>
+<translation id="5489227211564503167">ເວລາຜ່ານໄປ <ph name="ELAPSED_TIME" /> ຈາກທັງໝົດ <ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">ບລັອກໂຄສະນາໃນເວັບໄຊທີ່ສະແດງໂຄສະນາທີ່ລົບກວນ ຫຼື ຫຼອກລວງ</translation>
 <translation id="5500777121964041360">ອາດຈະບໍ່ມີໃຫ້ນຳໃຊ້ໃນສະຖານທີ່ຂອງທ່ານ</translation>
 <translation id="5505264765875738116">ເວັບໄຊບໍ່ສາມາດຂໍໃຫ້ສົ່ງການແຈ້ງເຕືອນໄດ້</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">ກຳລັງລໍຖ້າການດາວໂຫຼດອື່ນຢູ່...</translation>
 <translation id="5865733239029070421">ສົ່ງສະຖິຕິການໃຊ້ ແລະ ລາຍງານການຂັດຂ້ອງໃຫ້ Google ໂດຍອັດຕະໂນມັດ</translation>
 <translation id="5869522115854928033">ລະ​ຫັດ​ຜ່ານ​ທີ່ບັນທຶກໄວ້</translation>
+<translation id="5876056640971328065">ຢຸດວິດີໂອໄວ້ຊົ່ວຄາວ</translation>
 <translation id="5884076754568147479">ເພື່ອຊ່ວຍທ່ານເຮັດສຳເລັດໜ້າວຽກ, Google ຈະໄດ້ຮັບ URL ແລະ ເນື້ອຫາຂອງເວັບໄຊທີ່ທ່ານໃຊ້ຜູ້ຊ່ວຍ, ພ້ອມກັບຂໍ້ມູນທີ່ທ່ານສົ່ງຜ່ານຜູ້ຊ່ວຍ</translation>
 <translation id="5902828464777634901">ຂໍ້​ມູນ​ໃນ​ເຄື່ອງທັງ​ຫມົດ​ທີ່ເກັບໄວ້​ໂດຍ​ເວັບ​ໄຊທ໌​ນີ້, ລວມ​ທັງ​ຄຸກ​ກີ້, ​ຈະຖືກ​ລຶບອອກ.</translation>
 <translation id="5919204609460789179">ອັບເດດ <ph name="PRODUCT_NAME" /> ເພື່ອເລີ່ມການຊິ້ງຂໍ້ມູນ</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">ປັບເວັບໄຊໃຫ້ເປັນສີເຂັ້ມ</translation>
 <translation id="6388207532828177975">ລຶບ ແລະ​ຕັ້ງ​ຄ່າ​ຄືນ​ໃໝ່</translation>
 <translation id="6395288395575013217">ລິ້ງ</translation>
+<translation id="6397616442223433927">ກັບມາອອນລາຍ</translation>
 <translation id="6404511346730675251">ແກ້​ໄຂບຸກມາກສ໌</translation>
 <translation id="6406506848690869874">ຊິງຄ໌</translation>
 <translation id="6410973561433500075">ເຂົ້າສູ່ໂໝດ AR ຈາກ <ph name="DOMAIN" /> ບໍ?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">ກໍາລັງໂຫຼດ ...</translation>
 <translation id="6850409657436465440">ການດາວໂຫຼດຂອງທ່ານພວມດຳເນີນຢູ່</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> ​ແຖບປິດແລ້ວ</translation>
+<translation id="6864395892908308021">ອຸປະກອນນີ້ບໍ່ສາມາດອ່ານ NFC ໄດ້</translation>
 <translation id="6864459304226931083">ດາວໂຫຼດຮູບພາບ</translation>
 <translation id="6865313869410766144">ຕື່ມຂໍ້ມູນແບບຟອມອັດຕະໂນມັດ</translation>
 <translation id="6884306546558072722">ສືບຕໍ່ສຳຫຼວດແບບອອບລາຍ</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">ບໍ່​, ​ຂອບ​ໃຈ</translation>
 <translation id="7810647596859435254">ເປີດດ້ວຍ...</translation>
 <translation id="7821588508402923572">ການປະຢັດຂໍ້ມູນຂອງທ່ານຈະປາກົດຢູ່ບ່ອນນີ້</translation>
+<translation id="783819812427904514">ເປີດສຽງວິດີໂອ</translation>
 <translation id="784934925303690534">ຂອບເຂດເວລາ</translation>
 <translation id="7851858861565204677">ອຸ​ປະ​ກອນ​ອື່ນໆ</translation>
 <translation id="7875915731392087153">ສ້າງອີເມວ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
index 78f0f50..b86a1023 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Може да ја исклучите синхронизацијата во секое време во „Поставки“</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> обележувач}one{<ph name="BOOKMARKS_COUNT_MANY" /> обележувач}other{<ph name="BOOKMARKS_COUNT_MANY" /> обележувачи}}</translation>
 <translation id="3089395242580810162">Отвори во инкогнито картичка</translation>
+<translation id="3114012059975132928">Видеоплеер</translation>
 <translation id="3123473560110926937">Блокирано на некои сајтови</translation>
 <translation id="3123734510202723619">Соопштенија</translation>
 <translation id="3137521801621304719">Напушти го инкогнито-режимот</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Сите</translation>
 <translation id="358794129225322306">Дозволете сајтот автоматски да презема повеќе датотеки.</translation>
 <translation id="3590487821116122040">Достапен простор на сајтот за кој Chrome смета дека не е важен (на пр., сајтови без зачувани поставки или коишто не ги посетувате често)</translation>
+<translation id="3594780231884063836">Исклучете звук на видео</translation>
 <translation id="3599863153486145794">Ја чисти историјата од сите најавени уреди. Вашата сметка на Google можеби има други видови историја на прелистување на <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="3600792891314830896">Исклучи го звукот на сајтовите што пуштаат звук</translation>
 <translation id="3616113530831147358">Аудио</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Преземете ја страницата</translation>
 <translation id="548278423535722844">Отвори во апликацијата „Карти“</translation>
 <translation id="5487521232677179737">Избриши податоци</translation>
+<translation id="5489227211564503167">Изминато време: <ph name="ELAPSED_TIME" /> од <ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">Блокирај ги рекламите на сајтови што прикажуваат нападни или лажни реклами</translation>
 <translation id="5500777121964041360">Можеби не е достапно во вашата локација</translation>
 <translation id="5505264765875738116">Сајтовите не можат да прашуваат дали да испраќаат известувања</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Се чека друго преземање…</translation>
 <translation id="5865733239029070421">Автоматски испраќа статистика на користењето и извештаи за падовите до Google.</translation>
 <translation id="5869522115854928033">Зачувани лозинки</translation>
+<translation id="5876056640971328065">Паузирајте го видеото</translation>
 <translation id="5884076754568147479">За да ви помогне да завршувате задачи, Google ќе ги добива URL-адресите и содржините на сајтовите на кои го користите „Помошникот“, како и податоците што ги испраќате преку „Помошникот“</translation>
 <translation id="5902828464777634901">Сите локални податоци зачувани од веб-локацијата, вклучувајќи ги колачињата, ќе се избришат.</translation>
 <translation id="5919204609460789179">Ажурирајте го <ph name="PRODUCT_NAME" /> за да започнете со синхронизирање</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Затемнете ги веб-сајтовите</translation>
 <translation id="6388207532828177975">Исчисти и ресетирај</translation>
 <translation id="6395288395575013217">ЛИНК</translation>
+<translation id="6397616442223433927">Повторно сте онлајн</translation>
 <translation id="6404511346730675251">Измени обележувач</translation>
 <translation id="6406506848690869874">Синхронизација</translation>
 <translation id="6410973561433500075">Дали да се влезе во AR од <ph name="DOMAIN" />?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Се вчитува…</translation>
 <translation id="6850409657436465440">Вашето преземање е сѐ уште е во тек</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> затворени картички</translation>
+<translation id="6864395892908308021">Уредов не може да чита NFC</translation>
 <translation id="6864459304226931083">Преземи слика</translation>
 <translation id="6865313869410766144">Автоматско пополнување податоци во формулар</translation>
 <translation id="6884306546558072722">Продолжете да истражувате офлајн</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Не, фала</translation>
 <translation id="7810647596859435254">Отвори со…</translation>
 <translation id="7821588508402923572">Заштедата на сообраќајот ќе се појави тука</translation>
+<translation id="783819812427904514">Вклучете звук на видео</translation>
 <translation id="784934925303690534">Временски период</translation>
 <translation id="7851858861565204677">Други уреди</translation>
 <translation id="7875915731392087153">Создајте е-пошта</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
index 20afd018..a342f167 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">നിങ്ങൾക്ക് ഏത് സമയത്തും ക്രമീകരണത്തിൽ സമന്വയം ഓണാക്കാവുന്നതാണ്</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> ബുക്ക്‌മാർക്ക്}other{<ph name="BOOKMARKS_COUNT_MANY" /> ബുക്ക്‌മാർക്കുകൾ}}</translation>
 <translation id="3089395242580810162">അദൃശ്യ ടാബിൽ തുറക്കുക</translation>
+<translation id="3114012059975132928">വീഡിയോ പ്ലേയർ</translation>
 <translation id="3123473560110926937">ചില സൈറ്റുകളിൽ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു</translation>
 <translation id="3123734510202723619">അറിയിപ്പുകൾ</translation>
 <translation id="3137521801621304719">അദൃശ്യ മോഡ് വിടുക</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">എല്ലാം</translation>
 <translation id="358794129225322306">ഒന്നിലേറെ ഫയലുകള്‍ സ്വമേധയാ ഡൗണ്‍‌ലോഡ് ചെയ്യാന്‍ സൈറ്റിനെ അനുവദിക്കുക.</translation>
 <translation id="3590487821116122040">Chrome, സൈറ്റ് സ്‌റ്റോറേജിനെ പ്രധാനപ്പെട്ടതായി കണക്കാക്കുന്നില്ല (ഉദാ: ക്രമീകരണം സംരക്ഷിച്ചിട്ടില്ലാത്തതോ നിങ്ങൾ ഇടയ്‌ക്കിടെ സന്ദർശിക്കാത്തതോ ആയ സൈറ്റുകൾ)</translation>
+<translation id="3594780231884063836">വീഡിയോ മ്യൂട്ട് ചെയ്യുക</translation>
 <translation id="3599863153486145794">സൈൻ ഇൻ ചെയ്‌ത എല്ലാ ഉപകരണങ്ങളിൽ നിന്നും ചരിത്രം മായ്ക്കുന്നു. നിങ്ങളുടെ Google അക്കൗണ്ടിന് <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> എന്നതിൽ മറ്റ് തരത്തിലുള്ള ബ്രൗസിംഗ് ചരിത്രങ്ങളുണ്ടായിരിക്കാം.</translation>
 <translation id="3600792891314830896">ശബ്‌ദം പ്ലേ ചെയ്യുന്ന സൈറ്റുകളെ മ്യൂട്ട് ചെയ്യുക</translation>
 <translation id="3616113530831147358">ഓഡിയോ</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">പേജ് ഡൗൺലോഡ് ചെയ്യുക</translation>
 <translation id="548278423535722844">മാപ്‌സ് ആപ്പിൽ തുറക്കുക</translation>
 <translation id="5487521232677179737">ഡാറ്റ മായ്‌ക്കുക</translation>
+<translation id="5489227211564503167">ആകെ <ph name="TOTAL_TIME" />-ൽ <ph name="ELAPSED_TIME" /> കഴിഞ്ഞു.</translation>
 <translation id="5494752089476963479">അനാവശ്യമോ തെറ്റിദ്ധരിപ്പിക്കുന്നതോ ആയ പരസ്യങ്ങള്‍ കാണിക്കുന്ന സൈറ്റുകളിലെ പരസ്യങ്ങൾ ബ്ലോക്ക് ചെയ്യുക</translation>
 <translation id="5500777121964041360">നിങ്ങളുടെ ലൊക്കേഷനിൽ ലഭ്യമായിരിക്കില്ല</translation>
 <translation id="5505264765875738116">അറിയിപ്പുകൾ അയയ്ക്കാൻ സൈറ്റുകൾക്ക് അനുവാദം ചോദിക്കാനാവില്ല</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">മറ്റൊരു ഡൗൺലോഡിനായി കാത്തിരിക്കുന്നു…</translation>
 <translation id="5865733239029070421">Google-ലേക്ക് സ്വയമേവ ഉപയോഗ വിവരക്കണക്കുകളും ക്രാഷ് റിപ്പോര്‍ട്ടുകളും അയയ്ക്കുന്നു</translation>
 <translation id="5869522115854928033">സംരക്ഷിച്ച പാസ്‌വേഡുകള്‍</translation>
+<translation id="5876056640971328065">വീഡിയോ താൽക്കാലികമായി നിർത്തുക</translation>
 <translation id="5884076754568147479">ടാസ്‌ക്കുകൾ പൂർത്തിയാക്കാൻ നിങ്ങളെ സഹായിക്കുന്നതിനായി, നിങ്ങൾ അസിസ്‌റ്റന്റ് ഉപയോഗിക്കുന്ന സൈറ്റുകളുടെ URL-കളും അവയുടെ ഉള്ളടക്കവും അസിസ്‌റ്റന്റിലൂടെ നിങ്ങൾ സമർപ്പിക്കുന്ന വിവരങ്ങളും Google-ന് ലഭിക്കും.</translation>
 <translation id="5902828464777634901">കുക്കികൾ ഉൾപ്പെടെ ഈ വെബ്‌സൈറ്റ് സംഭരിക്കുന്ന എല്ലാ പ്രാദേശിക വിവരവും ഇല്ലാതാക്കും.</translation>
 <translation id="5919204609460789179">സമന്വയിപ്പിക്കാൻ തുടങ്ങുന്നതിന്, <ph name="PRODUCT_NAME" /> അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">വെബ്‌സൈറ്റുകൾ ഇരുണ്ടതാക്കുക</translation>
 <translation id="6388207532828177975">മായ്‌ച്ച് റീസെറ്റ് ചെയ്യുക</translation>
 <translation id="6395288395575013217">ലിങ്ക്</translation>
+<translation id="6397616442223433927">ഓൺലൈനിൽ തിരിച്ചെത്തി</translation>
 <translation id="6404511346730675251">ബുക്ക്‌മാർക്ക് എഡിറ്റ് ചെയ്യുക</translation>
 <translation id="6406506848690869874">Sync</translation>
 <translation id="6410973561433500075"><ph name="DOMAIN" /> എന്നതിൽ നിന്ന് AR-ൽ കടക്കണോ?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">ലോഡുചെയ്യുന്നു...</translation>
 <translation id="6850409657436465440">നിങ്ങളുടെ ഡൗൺലോഡ് ഇപ്പോഴും പുരോഗതിയിലാണ്</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> ടാബുകൾ അടച്ചു</translation>
+<translation id="6864395892908308021">ഈ ഉപകരണത്തിന് NFC റീഡ് ചെയ്യാനാവില്ല</translation>
 <translation id="6864459304226931083">ചിത്രം ഡൗൺലോഡ് ചെയ്യുക</translation>
 <translation id="6865313869410766144">ഓട്ടോഫിൽ ഫോം ഡാറ്റ</translation>
 <translation id="6884306546558072722">ഓഫ്‌ലൈനിൽ അടുത്തറിയുന്നത് തുടരുക</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">വേണ്ട നന്ദി</translation>
 <translation id="7810647596859435254">ഇത് ഉപയോഗിച്ച് തുറക്കുക...</translation>
 <translation id="7821588508402923572">നിങ്ങൾ ലാഭിച്ച ഡാറ്റ ഇവിടെ ദൃശ്യമാവും</translation>
+<translation id="783819812427904514">വീഡിയോ അൺ‌മ്യൂട്ട് ചെയ്യുക</translation>
 <translation id="784934925303690534">സമയ ശ്രേണി</translation>
 <translation id="7851858861565204677">മറ്റ് ഉപകരണങ്ങൾ</translation>
 <translation id="7875915731392087153">ഇമെയിൽ സൃഷ്‌ടിക്കുക</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
index 6b38ecd..4e24a246 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">तुम्ही सेटिंग्जमध्ये कधीही सिंक सुरू करू शकता</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> बुकमार्क}other{<ph name="BOOKMARKS_COUNT_MANY" /> बुकमार्क}}</translation>
 <translation id="3089395242580810162">गुप्त टॅबमध्ये उघडा</translation>
+<translation id="3114012059975132928">व्‍हिडिओ प्‍लेअर</translation>
 <translation id="3123473560110926937">काही साइटवर ब्लॉक केले आहे</translation>
 <translation id="3123734510202723619">घोषणा</translation>
 <translation id="3137521801621304719">गुप्त मोड सोडा</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">सर्व</translation>
 <translation id="358794129225322306">साइटला एकाहून अधिक फायली आपोआप डाउनलोड करू द्या.</translation>
 <translation id="3590487821116122040">Chrome साइट स्टोरेज यास महत्त्व देत नाही (उदा. ज्या साइटमध्ये सेटिंग्ज सेव्ह केलेल्या नसतात किंवा तुम्ही सहसा भेट देत नाही अशा साइट)</translation>
+<translation id="3594780231884063836">व्हिडिओ म्‍यूट करा</translation>
 <translation id="3599863153486145794">साइन-इन केलेल्या सर्व डिव्हाइसमधून इतिहास साफ करते. तुमच्या Google खात्यामध्ये <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> वर कदाचित ब्राउझिंगचे इतर फॉर्म असतील.</translation>
 <translation id="3600792891314830896">ध्वनी प्ले करणाऱ्या साइट म्यूट करा</translation>
 <translation id="3616113530831147358">ऑडिओ</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">पेज डाउनलोड करा</translation>
 <translation id="548278423535722844">नकाशे ॲपमध्ये उघडा</translation>
 <translation id="5487521232677179737">डेटा साफ करा</translation>
+<translation id="5489227211564503167"><ph name="TOTAL_TIME" /> पैकी <ph name="ELAPSED_TIME" /> गेलेला वेळ.</translation>
 <translation id="5494752089476963479">अनाहूत किंवा दिशाभूल करणाऱ्या जाहिराती दाखवणाऱ्या साइटवरील जाहिराती ब्लॉक करा</translation>
 <translation id="5500777121964041360">तुमच्या स्थानामध्ये उपलब्ध नसू शकते</translation>
 <translation id="5505264765875738116">साइट सूचना पाठवण्यास सांगू शकत नाहीत</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">दुसर्‍या डाउनलोडची वाट पाहत आहे…</translation>
 <translation id="5865733239029070421">Google ला वापर आकडेवारी आणि क्रॅश अहवाल आपोआप पाठवते</translation>
 <translation id="5869522115854928033">सेव्ह केलेले पासवर्ड</translation>
+<translation id="5876056640971328065">व्हिडिओ थांबवा</translation>
 <translation id="5884076754568147479">टास्क पूर्ण करण्यात तुम्हाला मदत व्हावी म्हणून Google ला तुम्ही Assistant वापरून सबमिट करता त्या माहितीच्या समावेशासह तुम्ही Assistant वापरता त्या साइटचा आशय आणि URL मिळतील</translation>
 <translation id="5902828464777634901">कुकीजसह, या वेबसाइटवर संचयित केलेला डेटा, हटवला जाईल.</translation>
 <translation id="5919204609460789179">सिंक सुरू करण्यासाठी <ph name="PRODUCT_NAME" /> अपडेट करा</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">डार्कन वेबसाइट</translation>
 <translation id="6388207532828177975">साफ आणि रीसेट करा</translation>
 <translation id="6395288395575013217">लिंक</translation>
+<translation id="6397616442223433927">पुन्हा ऑनलाइन</translation>
 <translation id="6404511346730675251">बुकमार्क संपादित करा</translation>
 <translation id="6406506848690869874">Sync</translation>
 <translation id="6410973561433500075"><ph name="DOMAIN" /> मधून AR एंटर करायचे आहे का?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">लोड करीत आहे...</translation>
 <translation id="6850409657436465440">तुमचे डाउनलोड अजून प्रगतीपथावर आहे</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> टॅब बंद केले</translation>
+<translation id="6864395892908308021">हे डिव्हाइस NFC रीड करू शकत नाही</translation>
 <translation id="6864459304226931083">इमेज डाउनलोड करा</translation>
 <translation id="6865313869410766144">ऑटोफिल फॉर्म डेटा</translation>
 <translation id="6884306546558072722">ऑफलाइन एक्सप्लोर करणे सुरू ठेवा</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">नाही, नको</translation>
 <translation id="7810647596859435254">यासह उघडा...</translation>
 <translation id="7821588508402923572">तुमची डेटा बचत येथे दिसेल</translation>
+<translation id="783819812427904514">व्हिडिओ अनम्यूट करा</translation>
 <translation id="784934925303690534">वेळ वर्गवारी</translation>
 <translation id="7851858861565204677">इतर डिव्हाइसेस</translation>
 <translation id="7875915731392087153">ईमेल तयार करा</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
index 62f9120..e4f5f82 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Anda boleh mematikan penyegerakan pada bila-bila masa dalam tetapan</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> penanda halaman}other{<ph name="BOOKMARKS_COUNT_MANY" /> penanda halaman}}</translation>
 <translation id="3089395242580810162">Buka dalam tab inkognito</translation>
+<translation id="3114012059975132928">Pemain video</translation>
 <translation id="3123473560110926937">Disekat di sesetengah tapak</translation>
 <translation id="3123734510202723619">Pengumuman</translation>
 <translation id="3137521801621304719">Tinggalkan mod inkognito</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Semua</translation>
 <translation id="358794129225322306">Benarkan tapak memuat turun berbilang fail secara automatik.</translation>
 <translation id="3590487821116122040">Storan tapak yang Chrome anggap tidak penting (misalnya tapak yang tiada tetapan yang disimpan atau yang jarang anda lawati)</translation>
+<translation id="3594780231884063836">Redam video</translation>
 <translation id="3599863153486145794">Mengosongkan sejarah daripada semua peranti yang dilog masuk. Akaun Google anda mungkin mempunyai sejarah penyemakan imbas dalam bentuk lain di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="3600792891314830896">Redam tapak yang memainkan bunyi</translation>
 <translation id="3616113530831147358">Audio</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Muat turun halaman</translation>
 <translation id="548278423535722844">Buka dalam apl peta</translation>
 <translation id="5487521232677179737">Kosongkan data</translation>
+<translation id="5489227211564503167"><ph name="ELAPSED_TIME" /> masa berlalu daripada <ph name="TOTAL_TIME" /></translation>
 <translation id="5494752089476963479">Sekat iklan di tapak yang menyiarkan iklan yang mengganggu atau mengelirukan</translation>
 <translation id="5500777121964041360">Mungkin tidak tersedia di lokasi anda</translation>
 <translation id="5505264765875738116">Tapak tidak boleh membuat permintaan untuk menghantar pemberitahuan</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Menunggu muat turun lain…</translation>
 <translation id="5865733239029070421">Menghantar perangkaan penggunaan dan laporan ranap sistem secara automatik kepada Google</translation>
 <translation id="5869522115854928033">Kata laluan disimpan</translation>
+<translation id="5876056640971328065">Jeda video</translation>
 <translation id="5884076754568147479">Untuk membantu anda menyelesaikan tugasan, Google akan menerima URL dan kandungan tapak tempat anda menggunakan Assistant, serta maklumat yang anda serahkan melalui Assistant</translation>
 <translation id="5902828464777634901">Semua data setempat yang disimpan oleh tapak web ini, termasuk kuki, akan dipadamkan.</translation>
 <translation id="5919204609460789179">Kemas kini <ph name="PRODUCT_NAME" /> untuk memulakan penyegerakan</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Tapak web digelapkan</translation>
 <translation id="6388207532828177975">Kosongkan &amp; tetapkan semula</translation>
 <translation id="6395288395575013217">PAUTAN</translation>
+<translation id="6397616442223433927">Kembali dalam talian</translation>
 <translation id="6404511346730675251">Edit penanda halaman</translation>
 <translation id="6406506848690869874">Segerak</translation>
 <translation id="6410973561433500075">Masuki AR daripada <ph name="DOMAIN" />?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Memuatkan…</translation>
 <translation id="6850409657436465440">Muat turun anda masih berlangsung</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> tab telah ditutup</translation>
+<translation id="6864395892908308021">Peranti ini tidak dapat membaca NFC</translation>
 <translation id="6864459304226931083">Muat turun imej</translation>
 <translation id="6865313869410766144">Autolengkap data borang</translation>
 <translation id="6884306546558072722">Teruskan meneroka di luar talian</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Tidak, terima kasih</translation>
 <translation id="7810647596859435254">Buka dengan...</translation>
 <translation id="7821588508402923572">Penjimatan data anda akan dipaparkan di sini</translation>
+<translation id="783819812427904514">Nyahredam video</translation>
 <translation id="784934925303690534">Julat masa</translation>
 <translation id="7851858861565204677">Peranti lain</translation>
 <translation id="7875915731392087153">Buat e-mel</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
index a65cab6..0ea939b 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Ее можно включить в настройках в любой момент.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> закладка}one{<ph name="BOOKMARKS_COUNT_MANY" /> закладка}few{<ph name="BOOKMARKS_COUNT_MANY" /> закладки}many{<ph name="BOOKMARKS_COUNT_MANY" /> закладок}other{<ph name="BOOKMARKS_COUNT_MANY" /> закладки}}</translation>
 <translation id="3089395242580810162">Открыть в режиме инкогнито</translation>
+<translation id="3114012059975132928">Видеопроигрыватель</translation>
 <translation id="3123473560110926937">Заблокировано на некоторых сайтах</translation>
 <translation id="3123734510202723619">Оповещения</translation>
 <translation id="3137521801621304719">Выключить режим инкогнито</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Все</translation>
 <translation id="358794129225322306">Разрешить сайту автоматически скачивать несколько файлов.</translation>
 <translation id="3590487821116122040">Маловажные данные сайтов (например, сайты, которые вы редко посещаете или на которых не сохранили настройки)</translation>
+<translation id="3594780231884063836">Выключить звук для видео</translation>
 <translation id="3599863153486145794">Удаление истории со всех устройств, на которых выполнен вход в аккаунт. Информация о других ваших действиях в Интернете может также храниться на странице <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="3600792891314830896">Отключить звуки на сайтах</translation>
 <translation id="3616113530831147358">Аудио</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Скачать страницу</translation>
 <translation id="548278423535722844">Показать на карте</translation>
 <translation id="5487521232677179737">Удалить данные</translation>
+<translation id="5489227211564503167">Просмотрено <ph name="ELAPSED_TIME" /> из <ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">Блокировать объявления на сайтах, которые показывают навязчивую или вводящую в заблуждение рекламу</translation>
 <translation id="5500777121964041360">Возможно, эта функция недоступна в вашей стране.</translation>
 <translation id="5505264765875738116">Сайты не могут запрашивать разрешения на отправку уведомлений</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Завершение предыдущего скачивания…</translation>
 <translation id="5865733239029070421">Автоматически отправлять в Google статистику использования и отчеты о сбоях</translation>
 <translation id="5869522115854928033">Сайты с сохраненными паролями</translation>
+<translation id="5876056640971328065">Приостановить видео</translation>
 <translation id="5884076754568147479">Выполнять действия в Chrome с помощью Ассистента: отправлять в Google контент и URL сайтов, а также информацию, сообщаемую Ассистенту</translation>
 <translation id="5902828464777634901">Все данные этого веб-сайта, включая файлы cookie, будут удалены.</translation>
 <translation id="5919204609460789179">Обновите <ph name="PRODUCT_NAME" />, чтобы начать синхронизацию</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Затемнять сайты</translation>
 <translation id="6388207532828177975">Очистить и сбросить</translation>
 <translation id="6395288395575013217">ССЫЛКА</translation>
+<translation id="6397616442223433927">Подключение восстановлено</translation>
 <translation id="6404511346730675251">Изменить закладку</translation>
 <translation id="6406506848690869874">Синхронизация...</translation>
 <translation id="6410973561433500075">Войти в режим дополненной реальности на сайте <ph name="DOMAIN" />?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Загрузка…</translation>
 <translation id="6850409657436465440">Выполняется скачивание</translation>
 <translation id="6850830437481525139">Закрыто вкладок: <ph name="TAB_COUNT" /></translation>
+<translation id="6864395892908308021">Это устройство не поддерживает NFC</translation>
 <translation id="6864459304226931083">Скачать изображение</translation>
 <translation id="6865313869410766144">Данные для автозаполнения</translation>
 <translation id="6884306546558072722">Доступ к контенту в офлайн-режиме</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Спасибо, не надо</translation>
 <translation id="7810647596859435254">Открыть с помощью...</translation>
 <translation id="7821588508402923572">Здесь появятся данные об экономии трафика</translation>
+<translation id="783819812427904514">Включить звук для видео</translation>
 <translation id="784934925303690534">Временной диапазон</translation>
 <translation id="7851858861565204677">Другие устройства</translation>
 <translation id="7875915731392087153">Написать письмо</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
index 22eec41..5c76297 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -46,6 +46,7 @@
 <translation id="1291207594882862231">வரலாறு, குக்கீகள், தளத் தரவு, தற்காலிகச் சேமிப்பை அழி…</translation>
 <translation id="129382876167171263">இணையதளங்கள் சேமித்த கோப்புகள் இங்கே தோன்றும்</translation>
 <translation id="129553762522093515">சமீபத்தில் மூடியவை</translation>
+<translation id="1303339473099049190">கடவுச்சொல்லைக் கண்டறிய முடியவில்லை. எழுத்துப்பிழையைச் சரிபார்த்து மீண்டும் முயலவும்.</translation>
 <translation id="1303507811548703290"><ph name="DOMAIN" /> - <ph name="DEVICE_NAME" /> சாதனத்திலிருந்து அனுப்பப்பட்டது</translation>
 <translation id="1310482092992808703">தாவல்களைக் குழுவாக்கு</translation>
 <translation id="1327257854815634930">வழிசெலுத்தல் வரலாறு திறக்கப்பட்டுள்ளது</translation>
@@ -314,6 +315,7 @@
 <translation id="3350687908700087792">எல்லா மறைநிலைத் தாவல்களையும் மூடு</translation>
 <translation id="3353615205017136254">Google வழங்கும் Lite பக்கம். அசல் பக்கத்தை ஏற்ற, ‘அசல் பக்கத்தை ஏற்று’ பட்டனைத் தட்டவும்.</translation>
 <translation id="3367813778245106622">ஒத்திசைப்பதைத் தொடங்க, மீண்டும் உள்நுழையவும்</translation>
+<translation id="3373979091428520308">வேறொரு சாதனத்திற்கு இந்தப் பக்கத்தைப் பகிர, மற்ற சாதனத்தில் உள்ள Chrome அமைப்புகளில் 'ஒத்திசை' என்பதை இயக்கவும்</translation>
 <translation id="3374023511497244703">இனி உங்கள் Google கணக்குடன் புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் போன்ற பிற Chrome தரவு ஒத்திசைக்கப்படாது</translation>
 <translation id="3384347053049321195">படத்தைப் பகிர்</translation>
 <translation id="3386292677130313581">எனது இருப்பிடத்தை அறிய தளங்களை அனுமதிக்கும் முன் கேள் (பரிந்துரைக்கப்படுகிறது)</translation>
@@ -659,6 +661,7 @@
 <translation id="5956665950594638604">Chrome உதவி மையத்தைப் புதிய தாவலில் திறக்கும்</translation>
 <translation id="5958275228015807058">பதிவிறக்கங்கள் என்பதில் கோப்புகளையும் பக்கங்களையும் கண்டறியலாம்</translation>
 <translation id="5962718611393537961">சுருக்க, தட்டவும்</translation>
+<translation id="5964805880140440652">வேறொரு சாதனத்திற்கு இந்தப் பக்கத்தைப் பகிர, Chrome அமைப்புகளில் உள்ள 'ஒத்திசை' என்பதை இயக்கவும்</translation>
 <translation id="6000066717592683814">Googleஐ இயல்பு இன்ஜினாக வைத்திரு</translation>
 <translation id="6005538289190791541">பரிந்துரைக்கப்படும் கடவுச்சொல்</translation>
 <translation id="6036057147555329831">கூடுதல் ICU</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
index 86e9a3c6..5fa0dc1 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">คุณเปิดการซิงค์ได้ทุกเมื่อในการตั้งค่า</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{บุ๊กมาร์ก <ph name="BOOKMARKS_COUNT_ONE" /> รายการ}other{บุ๊กมาร์ก <ph name="BOOKMARKS_COUNT_MANY" /> รายการ}}</translation>
 <translation id="3089395242580810162">เปิดในแท็บไม่ระบุตัวตน</translation>
+<translation id="3114012059975132928">โปรแกรมเล่นวิดีโอ</translation>
 <translation id="3123473560110926937">บล็อกในบางเว็บไซต์</translation>
 <translation id="3123734510202723619">ประกาศ</translation>
 <translation id="3137521801621304719">ออกจากโหมดไม่ระบุตัวตน</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">ทั้งหมด</translation>
 <translation id="358794129225322306">อนุญาตให้เว็บไซต์ดาวน์โหลดไฟล์หลายไฟล์โดยอัตโนมัติ</translation>
 <translation id="3590487821116122040">พื้นที่เก็บข้อมูลเว็บไซต์ที่ Chrome คิดว่าไม่สำคัญ (เช่น เว็บไซต์ที่ไม่มีการตั้งค่าที่บันทึกไว้หรือที่คุณไม่ได้เข้าชมบ่อยครั้ง)</translation>
+<translation id="3594780231884063836">ปิดเสียงวิดีโอ</translation>
 <translation id="3599863153486145794">ล้างประวัติจากอุปกรณ์ที่ลงชื่อเข้าใช้ทั้งหมด บัญชี Google อาจมีประวัติการท่องเว็บรูปแบบอื่นๆ ที่ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
 <translation id="3600792891314830896">ปิดเสียงเว็บไซต์ที่เล่นเสียง</translation>
 <translation id="3616113530831147358">เสียง</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">ดาวน์โหลดหน้า</translation>
 <translation id="548278423535722844">เปิดในแอปแผนที่</translation>
 <translation id="5487521232677179737">ล้างข้อมูล</translation>
+<translation id="5489227211564503167">เวลาผ่านไป <ph name="ELAPSED_TIME" /> จาก <ph name="TOTAL_TIME" /></translation>
 <translation id="5494752089476963479">บล็อกโฆษณาในเว็บไซต์ที่แสดงโฆษณาที่แทรกหรือทำให้เข้าใจผิด</translation>
 <translation id="5500777121964041360">อาจไม่พร้อมใช้งานในประเทศของคุณ</translation>
 <translation id="5505264765875738116">เว็บไซต์ขออนุญาตเพื่อส่งการแจ้งเตือนไม่ได้</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">กำลังรอการดาวน์โหลดรายการอื่น…</translation>
 <translation id="5865733239029070421">ส่งสถิติการใช้งานและรายงานข้อขัดข้องให้กับ Google โดยอัตโนมัติ</translation>
 <translation id="5869522115854928033">รหัสผ่านที่บันทึกไว้</translation>
+<translation id="5876056640971328065">หยุดวิดีโอชั่วคราว</translation>
 <translation id="5884076754568147479">Google จะได้รับ URL และเนื้อหาของเว็บไซต์ต่างๆ ที่คุณใช้งาน Assistant ด้วย รวมถึงข้อมูลที่คุณส่งผ่าน Assistant เพื่อช่วยทำงานที่ต้องการให้เสร็จสิ้น</translation>
 <translation id="5902828464777634901">ระบบจะลบข้อมูลในเครื่องทั้งหมดที่เว็บไซต์นี้จัดเก็บ รวมถึงคุกกี้</translation>
 <translation id="5919204609460789179">อัปเดต <ph name="PRODUCT_NAME" /> เพื่อเริ่มซิงค์</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">ปรับเว็บไซต์ให้เป็นสีเข้ม</translation>
 <translation id="6388207532828177975">ล้างข้อมูลและรีเซ็ต</translation>
 <translation id="6395288395575013217">ลิงก์</translation>
+<translation id="6397616442223433927">กลับมาออนไลน์แล้ว</translation>
 <translation id="6404511346730675251">แก้ไขบุ๊กมาร์ก</translation>
 <translation id="6406506848690869874">การซิงค์ข้อมูล</translation>
 <translation id="6410973561433500075">เข้าสู่โหมด AR จาก <ph name="DOMAIN" /> ใช่ไหม</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">กำลังโหลด…</translation>
 <translation id="6850409657436465440">ระบบยังดาวน์โหลดอยู่</translation>
 <translation id="6850830437481525139">ปิดแล้ว <ph name="TAB_COUNT" /> แท็บ</translation>
+<translation id="6864395892908308021">อุปกรณ์นี้อ่าน NFC ไม่ได้</translation>
 <translation id="6864459304226931083">ดาวน์โหลดรูปภาพ</translation>
 <translation id="6865313869410766144">ข้อมูลฟอร์มที่ป้อนอัตโนมัติ</translation>
 <translation id="6884306546558072722">สำรวจแบบอออฟไลน์ต่อไป</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">ไม่ ขอบคุณ</translation>
 <translation id="7810647596859435254">เปิดด้วย…</translation>
 <translation id="7821588508402923572">การประหยัดอินเทอร์เน็ตของคุณจะแสดงที่นี่</translation>
+<translation id="783819812427904514">เปิดเสียงวิดีโอ</translation>
 <translation id="784934925303690534">ช่วงเวลา</translation>
 <translation id="7851858861565204677">อุปกรณ์อื่นๆ</translation>
 <translation id="7875915731392087153">สร้างอีเมล</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
index 0786e70d..3b02d72 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Senkronizasyonu istediğiniz zaman ayarlardan açabilirsiniz</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> yer işareti}other{<ph name="BOOKMARKS_COUNT_MANY" /> yer işareti}}</translation>
 <translation id="3089395242580810162">Gizli sekmede aç</translation>
+<translation id="3114012059975132928">Video oynatıcı</translation>
 <translation id="3123473560110926937">Bazı sitelerde engellendi</translation>
 <translation id="3123734510202723619">Duyurular</translation>
 <translation id="3137521801621304719">Gizli moddan çık</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Tümü</translation>
 <translation id="358794129225322306">Bir sitenin otomatik olarak birden fazla dosya indirmesine izin verir.</translation>
 <translation id="3590487821116122040">Chrome'un önemli olmadığını düşündüğü site depolama alanı (ör. kayıtlı ayarları bulunmayan veya sık ziyaret etmediğiniz siteler)</translation>
+<translation id="3594780231884063836">Videonun sesini kapat</translation>
 <translation id="3599863153486145794">Oturumunuzun açık olduğu tüm cihazlarda geçmişi temizler. Google Hesabınızın <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> adresinde başka biçimlerde tarama geçmişi olabilir.</translation>
 <translation id="3600792891314830896">Ses çalan sitelerin sesini kapat</translation>
 <translation id="3616113530831147358">Ses</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Sayfayı indir</translation>
 <translation id="548278423535722844">Haritalar uygulamasında aç</translation>
 <translation id="5487521232677179737">Verileri temizle</translation>
+<translation id="5489227211564503167">Geçen süre: <ph name="ELAPSED_TIME" />/<ph name="TOTAL_TIME" /></translation>
 <translation id="5494752089476963479">Araya giren veya yanıltıcı reklamlar gösteren sitelerde reklamları engelle</translation>
 <translation id="5500777121964041360">Bulunduğunuz ülkede kullanılamayabilir</translation>
 <translation id="5505264765875738116">Siteler bildirim göndermek isteyemez</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Başka bir indirme işlemi bekleniyor…</translation>
 <translation id="5865733239029070421">Kullanım istatistiklerini ve kilitlenme raporlarını Google'a otomatik olarak gönderir</translation>
 <translation id="5869522115854928033">Kayıtlı şifreler</translation>
+<translation id="5876056640971328065">Videoyu duraklat</translation>
 <translation id="5884076754568147479">Google, görevleri tamamlamanıza yardımcı olmak için Asistan'ı kullandığınız sitelerin URL'lerinin ve içeriklerinin yanı sıra Asistan aracılığıyla gönderdiğiniz bilgileri alır</translation>
 <translation id="5902828464777634901">Çerezler dahil bu web sitesinin depoladığı tüm yerel veriler silinecek.</translation>
 <translation id="5919204609460789179">Senkronizasyonu başlatmak için <ph name="PRODUCT_NAME" /> adlı uygulamayı güncelleyin</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Web sitelerini karart</translation>
 <translation id="6388207532828177975">Temizle ve sıfırla</translation>
 <translation id="6395288395575013217">BAĞLANTI</translation>
+<translation id="6397616442223433927">İnternete yeniden bağlanıldı</translation>
 <translation id="6404511346730675251">Yer işaretini düzenle</translation>
 <translation id="6406506848690869874">Senkronizasyon</translation>
 <translation id="6410973561433500075"><ph name="DOMAIN" /> üzerinden artırılmış gerçekliğe (AR) girilsin mi?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Yükleniyor…</translation>
 <translation id="6850409657436465440">İndirme işleminiz hâlâ devam ediyor</translation>
 <translation id="6850830437481525139"><ph name="TAB_COUNT" /> sekme kapatıldı</translation>
+<translation id="6864395892908308021">Bu cihaz NFC'yi okuyamıyor</translation>
 <translation id="6864459304226931083">Resmi indir</translation>
 <translation id="6865313869410766144">Form otomatik doldurma verileri</translation>
 <translation id="6884306546558072722">Çevrimdışıyken de keşfetmeye devam edin</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Hayır, teşekkürler</translation>
 <translation id="7810647596859435254">Birlikte aç…</translation>
 <translation id="7821588508402923572">Veri tasarruflarınız burada görünür</translation>
+<translation id="783819812427904514">Videonun sesini aç</translation>
 <translation id="784934925303690534">Zaman aralığı</translation>
 <translation id="7851858861565204677">Diğer cihazlar</translation>
 <translation id="7875915731392087153">E-posta oluşturun</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
index 0b8e6bf..1d61eed 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">Bạn có thể bật tính năng đồng bộ hóa bất cứ lúc nào trong phần cài đặt</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> dấu trang}other{<ph name="BOOKMARKS_COUNT_MANY" /> dấu trang}}</translation>
 <translation id="3089395242580810162">Mở trong tab ẩn danh</translation>
+<translation id="3114012059975132928">Trình phát video</translation>
 <translation id="3123473560110926937">Đã chặn trên một số trang web</translation>
 <translation id="3123734510202723619">Thông báo</translation>
 <translation id="3137521801621304719">Thoát chế độ ẩn danh</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">Tất cả</translation>
 <translation id="358794129225322306">Cho phép một trang web tự động tải xuống nhiều tệp.</translation>
 <translation id="3590487821116122040">Bộ nhớ trang web mà Chrome cho rằng không quan trọng (ví dụ: những trang web không có cài đặt đã lưu nào hoặc trang web mà bạn không truy cập thường xuyên)</translation>
+<translation id="3594780231884063836">Tắt tiếng video</translation>
 <translation id="3599863153486145794">Xóa lịch sử khỏi tất cả các thiết bị đã đăng nhập. Tài khoản Google của bạn có thể có các dạng lịch sử duyệt web khác tại <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="3600792891314830896">Tắt tiếng trên các trang web phát âm thanh</translation>
 <translation id="3616113530831147358">Âm thanh</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">Tải trang xuống</translation>
 <translation id="548278423535722844">Mở trong ứng dụng bản đồ</translation>
 <translation id="5487521232677179737">Xóa dữ liệu</translation>
+<translation id="5489227211564503167">Thời gian đã trôi qua: <ph name="ELAPSED_TIME" />/<ph name="TOTAL_TIME" />.</translation>
 <translation id="5494752089476963479">Chặn quảng cáo trên các trang web hiển thị quảng cáo xâm nhập hoặc quảng cáo gây hiểu nhầm</translation>
 <translation id="5500777121964041360">Có thể chưa dùng được tại vị trí của bạn</translation>
 <translation id="5505264765875738116">Các trang web không thể xin phép gửi thông báo</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">Đang chờ đến lần tải xuống tiếp theo…</translation>
 <translation id="5865733239029070421">Tự động gửi số liệu thống kê sử dụng và báo cáo sự cố cho Google</translation>
 <translation id="5869522115854928033">Mật khẩu đã lưu</translation>
+<translation id="5876056640971328065">Tạm dừng video</translation>
 <translation id="5884076754568147479">Để giúp bạn hoàn thành những việc cần làm, Google sẽ nhận URL và nội dung của các trang web mà bạn sử dụng Trợ lý, cũng như thông tin bạn gửi qua Trợ lý</translation>
 <translation id="5902828464777634901">Tất cả dữ liệu cục bộ được trang web này lưu, bao gồm cookie, sẽ bị xóa.</translation>
 <translation id="5919204609460789179">Cập nhật <ph name="PRODUCT_NAME" /> để bắt đầu đồng bộ hóa</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">Làm tối trang web</translation>
 <translation id="6388207532828177975">Xóa và đặt lại</translation>
 <translation id="6395288395575013217">LIÊN KẾT</translation>
+<translation id="6397616442223433927">Đã có kết nối mạng trở lại</translation>
 <translation id="6404511346730675251">Chỉnh sửa dấu trang</translation>
 <translation id="6406506848690869874">Đồng bộ hóa</translation>
 <translation id="6410973561433500075">Chuyển sang chế độ thực tế tăng cường từ <ph name="DOMAIN" />?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">Đang tải…</translation>
 <translation id="6850409657436465440">Vẫn đang tải xuống</translation>
 <translation id="6850830437481525139">Đã đóng <ph name="TAB_COUNT" /> tab</translation>
+<translation id="6864395892908308021">Thiết bị này không hỗ trợ công nghệ Giao tiếp phạm vi gần (NFC)</translation>
 <translation id="6864459304226931083">Tải hình ảnh xuống</translation>
 <translation id="6865313869410766144">Dữ liệu tự động điền vào biểu mẫu</translation>
 <translation id="6884306546558072722">Tiếp tục khám phá khi không có mạng</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">Không, cảm ơn</translation>
 <translation id="7810647596859435254">Mở bằng…</translation>
 <translation id="7821588508402923572">Mức tiết kiệm dữ liệu sẽ hiển thị tại đây</translation>
+<translation id="783819812427904514">Bật tiếng video</translation>
 <translation id="784934925303690534">Phạm vi thời gian</translation>
 <translation id="7851858861565204677">Thiết bị khác</translation>
 <translation id="7875915731392087153">Tạo email</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
index 127536a4..67fe8407 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">您随时可在“设置”中开启同步功能</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> 个书签}other{<ph name="BOOKMARKS_COUNT_MANY" /> 个书签}}</translation>
 <translation id="3089395242580810162">在隐身标签页中打开</translation>
+<translation id="3114012059975132928">视频播放器</translation>
 <translation id="3123473560110926937">已禁止部分网站显示广告</translation>
 <translation id="3123734510202723619">通告</translation>
 <translation id="3137521801621304719">退出隐身模式</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">全部</translation>
 <translation id="358794129225322306">允许网站自动下载多个文件。</translation>
 <translation id="3590487821116122040">Chrome 认为不重要的网站(例如未保存任何设置的网站或您不常访问的网站)存储的数据</translation>
+<translation id="3594780231884063836">将视频静音</translation>
 <translation id="3599863153486145794">清除所有登录过的设备上的历史记录。您的 Google 帐号在 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 上可能有其他形式的浏览记录。</translation>
 <translation id="3600792891314830896">将播放声音的网站静音</translation>
 <translation id="3616113530831147358">音频</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">下载网页</translation>
 <translation id="548278423535722844">在地图应用中打开</translation>
 <translation id="5487521232677179737">清除数据</translation>
+<translation id="5489227211564503167">已播时长为 <ph name="ELAPSED_TIME" />,总时长为 <ph name="TOTAL_TIME" />。</translation>
 <translation id="5494752089476963479">禁止会展示侵扰性或误导性广告的网站显示广告</translation>
 <translation id="5500777121964041360">可能无法在您所在的国家/地区使用</translation>
 <translation id="5505264765875738116">网站无法询问能否向您发送通知</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">正在等待完成另一项下载…</translation>
 <translation id="5865733239029070421">自动将使用情况统计信息和崩溃报告发送至 Google</translation>
 <translation id="5869522115854928033">已保存的密码</translation>
+<translation id="5876056640971328065">暂停视频</translation>
 <translation id="5884076754568147479">为了帮助您执行各种操作,Google 将会收到您使用 Google 助理时所在网站的网址和内容,以及您通过 Google 助理提交的信息</translation>
 <translation id="5902828464777634901">该网站存储的所有本地数据(包括 Cookie)都将被删除。</translation>
 <translation id="5919204609460789179">需更新 <ph name="PRODUCT_NAME" />,才能开始同步</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">调暗网站颜色</translation>
 <translation id="6388207532828177975">清除并重置</translation>
 <translation id="6395288395575013217">链接</translation>
+<translation id="6397616442223433927">已恢复在线状态</translation>
 <translation id="6404511346730675251">修改书签</translation>
 <translation id="6406506848690869874">同步</translation>
 <translation id="6410973561433500075">从 <ph name="DOMAIN" /> 进入 AR 环境?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">正在加载...</translation>
 <translation id="6850409657436465440">您的下载仍在进行中</translation>
 <translation id="6850830437481525139">已关闭 <ph name="TAB_COUNT" /> 个标签页</translation>
+<translation id="6864395892908308021">此设备无法读取 NFC 数据</translation>
 <translation id="6864459304226931083">下载图片</translation>
 <translation id="6865313869410766144">自动填充表单数据</translation>
 <translation id="6884306546558072722">离线时也能畅享网络内容</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">不用了,谢谢</translation>
 <translation id="7810647596859435254">打开方式…</translation>
 <translation id="7821588508402923572">您的数据流量节省情况将显示在这里</translation>
+<translation id="783819812427904514">将视频取消静音</translation>
 <translation id="784934925303690534">时间范围</translation>
 <translation id="7851858861565204677">来自其他设备的同步</translation>
 <translation id="7875915731392087153">创建电子邮件</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
index d24e1aad..2d4d6e68 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">您可隨時在設定中開啟同步功能</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> 個書籤}other{<ph name="BOOKMARKS_COUNT_MANY" /> 個書籤}}</translation>
 <translation id="3089395242580810162">在無痕式分頁中開啟</translation>
+<translation id="3114012059975132928">影片播放器</translation>
 <translation id="3123473560110926937">在部分網站上設定封鎖</translation>
 <translation id="3123734510202723619">公告</translation>
 <translation id="3137521801621304719">離開無痕模式</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">全部</translation>
 <translation id="358794129225322306">允許網站自動下載多個檔案。</translation>
 <translation id="3590487821116122040">Chrome 認為不重要的網站 (例如未儲存任何設定的網站,或您不常瀏覽的網站) 儲存空間的資料</translation>
+<translation id="3594780231884063836">將影片靜音</translation>
 <translation id="3599863153486145794">清除所有已登入裝置上的記錄。您的 Google 帳戶在 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 上可能有其他形式的瀏覽記錄。</translation>
 <translation id="3600792891314830896">將播放音效的網站設為靜音</translation>
 <translation id="3616113530831147358">音效檔案</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">下載網頁</translation>
 <translation id="548278423535722844">在地圖應用程式中開啟</translation>
 <translation id="5487521232677179737">清除資料</translation>
+<translation id="5489227211564503167">播咗嘅時間係 <ph name="ELAPSED_TIME" />,影片總長度係 <ph name="TOTAL_TIME" />。</translation>
 <translation id="5494752089476963479">在顯示滋擾或誤導廣告的網站上封鎖廣告</translation>
 <translation id="5500777121964041360">此功能可能無法在您所在的地區使用</translation>
 <translation id="5505264765875738116">網站將無法要求向您傳送通知</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">正在等待其他下載程序完成…</translation>
 <translation id="5865733239029070421">自動將使用情況統計和當機報告傳送給 Google</translation>
 <translation id="5869522115854928033">已儲存的密碼</translation>
+<translation id="5876056640971328065">暫停影片</translation>
 <translation id="5884076754568147479">為協助您完成工作,系統會將您使用「Google 助理」的網站網址和內容,以及您透過「Google 助理」提交的資料傳送給 Google</translation>
 <translation id="5902828464777634901">這個網站儲存的所有本機資料 (包括 Cookie) 將被刪除。</translation>
 <translation id="5919204609460789179">更新 <ph name="PRODUCT_NAME" /> 即可開始同步處理</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">調暗網站顏色</translation>
 <translation id="6388207532828177975">清除並重設</translation>
 <translation id="6395288395575013217">連結</translation>
+<translation id="6397616442223433927">已重新連線</translation>
 <translation id="6404511346730675251">編輯書籤</translation>
 <translation id="6406506848690869874">同步處理</translation>
 <translation id="6410973561433500075">要從 <ph name="DOMAIN" /> 進入 AR 嗎?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">載入中…</translation>
 <translation id="6850409657436465440">仍在下載</translation>
 <translation id="6850830437481525139">已關閉 <ph name="TAB_COUNT" /> 個分頁</translation>
+<translation id="6864395892908308021">此裝置無法讀取 NFC</translation>
 <translation id="6864459304226931083">下載圖片</translation>
 <translation id="6865313869410766144">自動填入表格數據</translation>
 <translation id="6884306546558072722">離線時繼續探索</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">不用了,謝謝</translation>
 <translation id="7810647596859435254">選擇開啟應用程式…</translation>
 <translation id="7821588508402923572">節省的數據會在這裡顯示</translation>
+<translation id="783819812427904514">將影片取消靜音</translation>
 <translation id="784934925303690534">時間範圍</translation>
 <translation id="7851858861565204677">其他裝置</translation>
 <translation id="7875915731392087153">建立電郵</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
index 0e01008..02345a4 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -286,6 +286,7 @@
 <translation id="3058498974290601450">你隨時可以在設定中開啟同步功能</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> 個書籤}other{<ph name="BOOKMARKS_COUNT_MANY" /> 個書籤}}</translation>
 <translation id="3089395242580810162">在無痕式分頁中開啟</translation>
+<translation id="3114012059975132928">影片播放器</translation>
 <translation id="3123473560110926937">在某些網站上設定封鎖</translation>
 <translation id="3123734510202723619">公告事項</translation>
 <translation id="3137521801621304719">離開無痕模式</translation>
@@ -352,6 +353,7 @@
 <translation id="3587482841069643663">全部</translation>
 <translation id="358794129225322306">允許網站自動下載多個檔案。</translation>
 <translation id="3590487821116122040">Chrome 認定為不重要的網站 (例如未儲存任何設定的網站,或是您不常造訪的網站) 所儲存的資料</translation>
+<translation id="3594780231884063836">將影片設為靜音</translation>
 <translation id="3599863153486145794">將歷史記錄從所有登入帳戶的裝置上清除。你的 Google 帳戶可能會儲存其他形式的瀏覽記錄,請參閱 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />。</translation>
 <translation id="3600792891314830896">將播放音訊的網站設為靜音</translation>
 <translation id="3616113530831147358">音訊</translation>
@@ -605,6 +607,7 @@
 <translation id="5456381639095306749">下載網頁</translation>
 <translation id="548278423535722844">在地圖應用程式中開啟</translation>
 <translation id="5487521232677179737">清除資料</translation>
+<translation id="5489227211564503167">經過時間:<ph name="ELAPSED_TIME" />,影片總長:<ph name="TOTAL_TIME" />。</translation>
 <translation id="5494752089476963479">封鎖干擾性或誤導性的網站廣告</translation>
 <translation id="5500777121964041360">你所在的地區可能不支援這項功能</translation>
 <translation id="5505264765875738116">網站無法要求傳送通知給你</translation>
@@ -665,6 +668,7 @@
 <translation id="5864419784173784555">正在等待其他下載程序完成…</translation>
 <translation id="5865733239029070421">自動將使用統計資料和當機報告傳送給 Google</translation>
 <translation id="5869522115854928033">已儲存的密碼</translation>
+<translation id="5876056640971328065">暫停影片</translation>
 <translation id="5884076754568147479">為協助你完成工作,系統會將你使用 Google 助理時所在網站的網址與互動的內容,以及你透過 Google 助理提交的資訊,一併傳送給 Google。</translation>
 <translation id="5902828464777634901">即將刪除這個網站儲存的所有本機資料 (包括 Cookie 在內)。</translation>
 <translation id="5919204609460789179">更新 <ph name="PRODUCT_NAME" /> 即可開始同步處理</translation>
@@ -728,6 +732,7 @@
 <translation id="6381421346744604172">調暗網站顏色</translation>
 <translation id="6388207532828177975">清除並重設</translation>
 <translation id="6395288395575013217">連結</translation>
+<translation id="6397616442223433927">已恢復連線</translation>
 <translation id="6404511346730675251">編輯書籤</translation>
 <translation id="6406506848690869874">同步</translation>
 <translation id="6410973561433500075">要從 <ph name="DOMAIN" /> 進入 AR 嗎?</translation>
@@ -796,6 +801,7 @@
 <translation id="6846298663435243399">載入中…</translation>
 <translation id="6850409657436465440">下載作業仍在進行中</translation>
 <translation id="6850830437481525139">關閉了 <ph name="TAB_COUNT" /> 個分頁</translation>
+<translation id="6864395892908308021">這部裝置無法讀取 NFC</translation>
 <translation id="6864459304226931083">下載圖片</translation>
 <translation id="6865313869410766144">自動填入表單資料</translation>
 <translation id="6884306546558072722">繼續探索離線內容</translation>
@@ -916,6 +922,7 @@
 <translation id="780301667611848630">不用了,謝謝</translation>
 <translation id="7810647596859435254">選擇開啟工具…</translation>
 <translation id="7821588508402923572">你省下的數據流量會顯示在這裡</translation>
+<translation id="783819812427904514">將影片取消靜音</translation>
 <translation id="784934925303690534">時間範圍</translation>
 <translation id="7851858861565204677">其他裝置</translation>
 <translation id="7875915731392087153">建立電子郵件</translation>
diff --git a/chrome/browser/ui/ash/launcher/launcher_controller_helper.cc b/chrome/browser/ui/ash/launcher/launcher_controller_helper.cc
index 26c0c4b..04dd788 100644
--- a/chrome/browser/ui/ash/launcher/launcher_controller_helper.cc
+++ b/chrome/browser/ui/ash/launcher/launcher_controller_helper.cc
@@ -143,13 +143,27 @@
 
   apps::AppServiceProxy* proxy =
       apps::AppServiceProxyFactory::GetForProfile(profile);
-  if (!proxy)
+  if (proxy) {
+    std::string name;
+    proxy->AppRegistryCache().ForOneApp(
+        app_id,
+        [&name](const apps::AppUpdate& update) { name = update.Name(); });
+    if (!name.empty())
+      return base::UTF8ToUTF16(name);
+  }
+
+  // Get the title for the extension which is not managed by AppService.
+  extensions::ExtensionRegistry* registry =
+      extensions::ExtensionRegistry::Get(profile);
+  if (!registry)
     return base::string16();
 
-  std::string name;
-  proxy->AppRegistryCache().ForOneApp(
-      app_id, [&name](const apps::AppUpdate& update) { name = update.Name(); });
-  return base::UTF8ToUTF16(name);
+  auto* extension = registry->GetExtensionById(
+      app_id, extensions::ExtensionRegistry::EVERYTHING);
+  if (extension)
+    return base::UTF8ToUTF16(extension->name());
+
+  return base::string16();
 }
 
 std::string LauncherControllerHelper::GetAppID(content::WebContents* tab) {
diff --git a/chrome/browser/ui/ash/tablet_mode_page_behavior.cc b/chrome/browser/ui/ash/tablet_mode_page_behavior.cc
index 1c22df4..56a4ef3 100644
--- a/chrome/browser/ui/ash/tablet_mode_page_behavior.cc
+++ b/chrome/browser/ui/ash/tablet_mode_page_behavior.cc
@@ -32,7 +32,7 @@
 
 void TabletModePageBehavior::OnTabletModeToggled(bool enabled) {
   SetMobileLikeBehaviorEnabled(enabled);
-  ui::MaterialDesignController::OnTabletModeToggled(enabled);
+  ui::MaterialDesignController::GetInstance()->OnTabletModeToggled(enabled);
 }
 
 void TabletModePageBehavior::OnTabletModeStarting() {
diff --git a/chrome/browser/ui/bookmarks/bookmark_utils.cc b/chrome/browser/ui/bookmarks/bookmark_utils.cc
index 6e9867e..93a67d0 100644
--- a/chrome/browser/ui/bookmarks/bookmark_utils.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_utils.cc
@@ -331,7 +331,7 @@
                 .GetNativeImageNamed(resource_id)
                 .ToImageSkia();
 #else
-  folder = GetFolderIcon(ui::MaterialDesignController::touch_ui()
+  folder = GetFolderIcon(ui::MaterialDesignController::GetInstance()->touch_ui()
                              ? vector_icons::kFolderTouchIcon
                              : vector_icons::kFolderIcon,
                          text_color);
@@ -352,7 +352,7 @@
                 .GetNativeImageNamed(resource_id)
                 .ToImageSkia();
 #else
-  folder = GetFolderIcon(ui::MaterialDesignController::touch_ui()
+  folder = GetFolderIcon(ui::MaterialDesignController::GetInstance()->touch_ui()
                              ? vector_icons::kFolderManagedTouchIcon
                              : vector_icons::kFolderManagedIcon,
                          text_color);
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index eb80c2e..5a10b328 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -2041,11 +2041,12 @@
   if (permission_request_manager) {
     // At this point, there will be UI presented, and running a dialog causes an
     // exit to webpage-initiated fullscreen. http://crbug.com/728276
-    web_contents->ForSecurityDropFullscreen();
+    base::ScopedClosureRunner fullscreen_block =
+        web_contents->ForSecurityDropFullscreen();
 
     permission_request_manager->AddRequest(
-        new RegisterProtocolHandlerPermissionRequest(registry, handler, url,
-                                                     user_gesture));
+        new RegisterProtocolHandlerPermissionRequest(
+            registry, handler, url, user_gesture, std::move(fullscreen_block)));
   }
 }
 
diff --git a/chrome/browser/ui/content_settings/content_setting_image_model.cc b/chrome/browser/ui/content_settings/content_setting_image_model.cc
index 02e1e5e..6cfd30a 100644
--- a/chrome/browser/ui/content_settings/content_setting_image_model.cc
+++ b/chrome/browser/ui/content_settings/content_setting_image_model.cc
@@ -461,7 +461,7 @@
   const gfx::VectorIcon* icon = &image_details->icon;
   // Touch mode uses a different tab audio icon.
   if (image_details->content_type == ContentSettingsType::SOUND &&
-      ui::MaterialDesignController::touch_ui()) {
+      ui::MaterialDesignController::GetInstance()->touch_ui()) {
     icon = &kTabAudioRoundedIcon;
   }
   set_icon(*icon, *badge_id);
diff --git a/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc b/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc
index b44e6319..7a29d0c9 100644
--- a/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc
+++ b/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc
@@ -61,14 +61,16 @@
       !exclusive_access_manager()
            ->fullscreen_controller()
            ->IsFullscreenForTabOrPending(web_contents)) {
-    web_contents->GotResponseToLockMouseRequest(false);
+    web_contents->GotResponseToLockMouseRequest(
+        blink::mojom::PointerLockResult::kRequiresUserGesture);
     return;
   }
   SetTabWithExclusiveAccess(web_contents);
 
   // Lock mouse.
   if (fake_mouse_lock_for_test_ ||
-      web_contents->GotResponseToLockMouseRequest(true)) {
+      web_contents->GotResponseToLockMouseRequest(
+          blink::mojom::PointerLockResult::kSuccess)) {
     if (last_unlocked_by_target &&
         web_contents_granted_silent_mouse_lock_permission_ == web_contents) {
       mouse_lock_state_ = MOUSELOCK_LOCKED_SILENTLY;
diff --git a/chrome/browser/ui/frame_button_display_types.h b/chrome/browser/ui/frame_button_display_types.h
deleted file mode 100644
index e247663..0000000
--- a/chrome/browser/ui/frame_button_display_types.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_FRAME_BUTTON_DISPLAY_TYPES_H_
-#define CHROME_BROWSER_UI_FRAME_BUTTON_DISPLAY_TYPES_H_
-
-namespace chrome {
-
-// This enum is similar to views::FrameButton, except it partitions
-// kMaximize and kRestore.  This is useful for when we want to be
-// explicit about which buttons we want drawn, without having to
-// implicitly determine if we should use kMaximize or kRestore
-// depending on the browser window's maximized/restored state.
-enum class FrameButtonDisplayType {
-  kMinimize,
-  kMaximize,
-  kRestore,
-  kClose,
-};
-
-}  // namespace chrome
-
-#endif  // CHROME_BROWSER_UI_FRAME_BUTTON_DISPLAY_TYPES_H_
diff --git a/chrome/browser/ui/gtk/BUILD.gn b/chrome/browser/ui/gtk/BUILD.gn
index 6b4cbfe2..1a36b9c 100644
--- a/chrome/browser/ui/gtk/BUILD.gn
+++ b/chrome/browser/ui/gtk/BUILD.gn
@@ -58,7 +58,6 @@
     "//base",
     "//build/config/linux/gtk",
     "//build/config/linux/gtk:gtkprint",
-    "//chrome/browser/ui/views",
     "//chrome/common:constants",
     "//components/prefs",
     "//content/public/browser",
diff --git a/chrome/browser/ui/gtk/DEPS b/chrome/browser/ui/gtk/DEPS
deleted file mode 100644
index c34c810..0000000
--- a/chrome/browser/ui/gtk/DEPS
+++ /dev/null
@@ -1,3 +0,0 @@
-include_rules = [
-  "+chrome/browser/ui/views",
-]
diff --git a/chrome/browser/ui/gtk/nav_button_provider_gtk.cc b/chrome/browser/ui/gtk/nav_button_provider_gtk.cc
index fb0e485..3401660 100644
--- a/chrome/browser/ui/gtk/nav_button_provider_gtk.cc
+++ b/chrome/browser/ui/gtk/nav_button_provider_gtk.cc
@@ -23,14 +23,14 @@
 const int kHeaderSpacing = 6;
 
 const char* ButtonStyleClassFromButtonType(
-    chrome::FrameButtonDisplayType type) {
+    views::NavButtonProvider::FrameButtonDisplayType type) {
   switch (type) {
-    case chrome::FrameButtonDisplayType::kMinimize:
+    case views::NavButtonProvider::FrameButtonDisplayType::kMinimize:
       return "minimize";
-    case chrome::FrameButtonDisplayType::kMaximize:
-    case chrome::FrameButtonDisplayType::kRestore:
+    case views::NavButtonProvider::FrameButtonDisplayType::kMaximize:
+    case views::NavButtonProvider::FrameButtonDisplayType::kRestore:
       return "maximize";
-    case chrome::FrameButtonDisplayType::kClose:
+    case views::NavButtonProvider::FrameButtonDisplayType::kClose:
       return "close";
     default:
       NOTREACHED();
@@ -55,15 +55,16 @@
   }
 }
 
-const char* IconNameFromButtonType(chrome::FrameButtonDisplayType type) {
+const char* IconNameFromButtonType(
+    views::NavButtonProvider::FrameButtonDisplayType type) {
   switch (type) {
-    case chrome::FrameButtonDisplayType::kMinimize:
+    case views::NavButtonProvider::FrameButtonDisplayType::kMinimize:
       return "window-minimize-symbolic";
-    case chrome::FrameButtonDisplayType::kMaximize:
+    case views::NavButtonProvider::FrameButtonDisplayType::kMaximize:
       return "window-maximize-symbolic";
-    case chrome::FrameButtonDisplayType::kRestore:
+    case views::NavButtonProvider::FrameButtonDisplayType::kRestore:
       return "window-restore-symbolic";
-    case chrome::FrameButtonDisplayType::kClose:
+    case views::NavButtonProvider::FrameButtonDisplayType::kClose:
       return "window-close-symbolic";
     default:
       NOTREACHED();
@@ -108,9 +109,10 @@
   return InsetsFromGtkBorder(margin);
 }
 
-ScopedGObject<GdkPixbuf> LoadNavButtonIcon(chrome::FrameButtonDisplayType type,
-                                           GtkStyleContext* button_context,
-                                           int scale) {
+ScopedGObject<GdkPixbuf> LoadNavButtonIcon(
+    views::NavButtonProvider::FrameButtonDisplayType type,
+    GtkStyleContext* button_context,
+    int scale) {
   const char* icon_name = IconNameFromButtonType(type);
   ScopedGObject<GtkIconInfo> icon_info(gtk_icon_theme_lookup_icon_for_scale(
       gtk_icon_theme_get_default(), icon_name, kNavButtonIconSize, scale,
@@ -153,10 +155,11 @@
       "GtkHeaderBar#headerbar.header-bar.titlebar");
 }
 
-void CalculateUnscaledButtonSize(chrome::FrameButtonDisplayType type,
-                                 bool maximized,
-                                 gfx::Size* button_size,
-                                 gfx::Insets* button_margin) {
+void CalculateUnscaledButtonSize(
+    views::NavButtonProvider::FrameButtonDisplayType type,
+    bool maximized,
+    gfx::Size* button_size,
+    gfx::Insets* button_margin) {
   // views::ImageButton expects the images for each state to be of the
   // same size, but GTK can, in general, use a differnetly-sized
   // button for each state.  For this reason, render buttons for all
@@ -184,7 +187,7 @@
 
 class NavButtonImageSource : public gfx::ImageSkiaSource {
  public:
-  NavButtonImageSource(chrome::FrameButtonDisplayType type,
+  NavButtonImageSource(views::NavButtonProvider::FrameButtonDisplayType type,
                        views::Button::ButtonState state,
                        bool maximized,
                        bool active,
@@ -297,7 +300,7 @@
   bool HasRepresentationAtAllScales() const override { return true; }
 
  private:
-  chrome::FrameButtonDisplayType type_;
+  views::NavButtonProvider::FrameButtonDisplayType type_;
   views::Button::ButtonState state_;
   bool maximized_;
   bool active_;
@@ -324,13 +327,15 @@
 #endif
 
   double scale = 1.0f;
-  std::map<chrome::FrameButtonDisplayType, gfx::Size> button_sizes;
-  std::map<chrome::FrameButtonDisplayType, gfx::Insets> button_margins;
-  std::vector<chrome::FrameButtonDisplayType> display_types{
-      chrome::FrameButtonDisplayType::kMinimize,
-      maximized ? chrome::FrameButtonDisplayType::kRestore
-                : chrome::FrameButtonDisplayType::kMaximize,
-      chrome::FrameButtonDisplayType::kClose,
+  std::map<views::NavButtonProvider::FrameButtonDisplayType, gfx::Size>
+      button_sizes;
+  std::map<views::NavButtonProvider::FrameButtonDisplayType, gfx::Insets>
+      button_margins;
+  std::vector<views::NavButtonProvider::FrameButtonDisplayType> display_types{
+      views::NavButtonProvider::FrameButtonDisplayType::kMinimize,
+      maximized ? views::NavButtonProvider::FrameButtonDisplayType::kRestore
+                : views::NavButtonProvider::FrameButtonDisplayType::kMaximize,
+      views::NavButtonProvider::FrameButtonDisplayType::kClose,
   };
   for (auto type : display_types) {
     CalculateUnscaledButtonSize(type, maximized, &button_sizes[type],
@@ -387,7 +392,7 @@
 }
 
 gfx::ImageSkia NavButtonProviderGtk::GetImage(
-    chrome::FrameButtonDisplayType type,
+    views::NavButtonProvider::FrameButtonDisplayType type,
     views::Button::ButtonState state) const {
   auto it = button_images_.find(type);
   DCHECK(it != button_images_.end());
@@ -395,7 +400,7 @@
 }
 
 gfx::Insets NavButtonProviderGtk::GetNavButtonMargin(
-    chrome::FrameButtonDisplayType type) const {
+    views::NavButtonProvider::FrameButtonDisplayType type) const {
   auto it = button_margins_.find(type);
   DCHECK(it != button_margins_.end());
   return it->second;
diff --git a/chrome/browser/ui/gtk/nav_button_provider_gtk.h b/chrome/browser/ui/gtk/nav_button_provider_gtk.h
index 8f0d6f9..d6061dd 100644
--- a/chrome/browser/ui/gtk/nav_button_provider_gtk.h
+++ b/chrome/browser/ui/gtk/nav_button_provider_gtk.h
@@ -8,7 +8,6 @@
 #include <map>
 
 #include "base/component_export.h"
-#include "chrome/browser/ui/frame_button_display_types.h"
 #include "ui/gfx/image/image_skia.h"
 #include "ui/views/controls/button/button.h"
 #include "ui/views/linux_ui/nav_button_provider.h"
@@ -23,18 +22,19 @@
 
   // views::NavButtonProvider:
   void RedrawImages(int top_area_height, bool maximized, bool active) override;
-  gfx::ImageSkia GetImage(chrome::FrameButtonDisplayType type,
+  gfx::ImageSkia GetImage(views::NavButtonProvider::FrameButtonDisplayType type,
                           views::Button::ButtonState state) const override;
   gfx::Insets GetNavButtonMargin(
-      chrome::FrameButtonDisplayType type) const override;
+      views::NavButtonProvider::FrameButtonDisplayType type) const override;
   gfx::Insets GetTopAreaSpacing() const override;
   int GetInterNavButtonSpacing() const override;
 
  private:
-  std::map<chrome::FrameButtonDisplayType,
+  std::map<views::NavButtonProvider::FrameButtonDisplayType,
            gfx::ImageSkia[views::Button::STATE_COUNT]>
       button_images_;
-  std::map<chrome::FrameButtonDisplayType, gfx::Insets> button_margins_;
+  std::map<views::NavButtonProvider::FrameButtonDisplayType, gfx::Insets>
+      button_margins_;
   gfx::Insets top_area_spacing_;
   int inter_button_spacing_;
 };
diff --git a/chrome/browser/ui/gtk/select_file_dialog_impl_gtk_unittest.cc b/chrome/browser/ui/gtk/select_file_dialog_impl_gtk_unittest.cc
deleted file mode 100644
index 31fa473..0000000
--- a/chrome/browser/ui/gtk/select_file_dialog_impl_gtk_unittest.cc
+++ /dev/null
@@ -1,146 +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 "chrome/browser/ui/gtk/select_file_dialog_impl_gtk.h"
-
-#include "base/run_loop.h"
-#include "base/task/thread_pool/thread_pool_instance.h"
-#include "chrome/browser/ui/chrome_select_file_policy.h"
-#include "chrome/browser/ui/gtk/gtk_ui.h"
-#include "chrome/test/base/scoped_testing_local_state.h"
-#include "chrome/test/base/testing_browser_process.h"
-#include "content/public/browser/browser_thread.h"
-#include "content/public/test/browser_task_environment.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using base::RunLoop;
-using content::BrowserThread;
-
-class SelectFileDialogImplGtkTest : public testing::Test {
- public:
-  SelectFileDialogImplGtkTest() = default;
-
-  void SetUp() override {
-    gtk_ui_.reset(BuildGtkUi());
-    ui::ShellDialogLinux::SetInstance(gtk_ui_.get());
-  }
-
-  void TearDown() override {
-    ui::ShellDialogLinux::SetInstance(nullptr);
-    gtk_ui_.reset();
-  }
-
- private:
-  std::unique_ptr<views::LinuxUI> gtk_ui_;
-};
-
-namespace gtk {
-
-class FilePicker : public ui::SelectFileDialog::Listener {
- public:
-  explicit FilePicker(ui::SelectFileDialog::Type type) {
-    select_file_dialog_ = ui::SelectFileDialog::Create(
-        this, std::make_unique<ChromeSelectFilePolicy>(nullptr));
-
-    ui::SelectFileDialog::FileTypeInfo file_types;
-    file_types.allowed_paths = ui::SelectFileDialog::FileTypeInfo::ANY_PATH;
-    const base::FilePath file_path;
-    select_file_dialog_->SelectFile(
-        type, base::string16(), file_path, &file_types, 0,
-        base::FilePath::StringType(), nullptr, nullptr);
-  }
-
-  ~FilePicker() override {
-    SelectFileDialogImplGTK* file_dialog =
-        static_cast<SelectFileDialogImplGTK*>(select_file_dialog_.get());
-
-    while (!file_dialog->dialogs_.empty())
-      gtk_widget_destroy(*(file_dialog->dialogs_.begin()));
-
-    select_file_dialog_->ListenerDestroyed();
-  }
-
-  bool canCreateFolder() {
-    return gtk_file_chooser_get_create_folders(getChooser());
-  }
-
-  bool canSelectMultiple() {
-    return gtk_file_chooser_get_select_multiple(getChooser());
-  }
-
-  const gchar* getTitle() {
-    return gtk_window_get_title(
-        GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(getChooser()))));
-  }
-
-  // SelectFileDialog::Listener implementation.
-  void FileSelected(const base::FilePath& path,
-                    int index,
-                    void* params) override {}
-
- private:
-  // Dialog box used for opening and saving files.
-  scoped_refptr<ui::SelectFileDialog> select_file_dialog_;
-
-  GtkFileChooser* getChooser() {
-    auto* dialog =
-        static_cast<SelectFileDialogImplGTK*>(select_file_dialog_.get());
-    return GTK_FILE_CHOOSER(*(dialog->dialogs_.begin()));
-  }
-
-  DISALLOW_COPY_AND_ASSIGN(FilePicker);
-};
-
-// Note: The tests below were disabled for defined(ADDRESS_SANITIZER) with the
-// following reasoning:
-// Glib runs glib_init() when it is loaded by dl, and in the process
-// allocates some memory that is intentionally never freed.
-// Targeted suppression of the memory leak was not possible.
-
-// Flaky, see crbug.com/853079.
-TEST_F(SelectFileDialogImplGtkTest, DISABLED_SelectExistingFolder) {
-  content::BrowserTaskEnvironment task_environment_;
-  ScopedTestingLocalState local_state(TestingBrowserProcess::GetGlobal());
-
-  FilePicker file_picker(ui::SelectFileDialog::SELECT_EXISTING_FOLDER);
-
-  EXPECT_FALSE(file_picker.canSelectMultiple());
-  EXPECT_FALSE(file_picker.canCreateFolder());
-  EXPECT_STREQ("Select Folder", file_picker.getTitle());
-
-  base::ThreadPoolInstance::Get()->FlushForTesting();
-  RunLoop().RunUntilIdle();
-}
-
-// Flaky, see crbug.com/853079.
-TEST_F(SelectFileDialogImplGtkTest, DISABLED_SelectUploadFolder) {
-  content::BrowserTaskEnvironment task_environment_;
-  ScopedTestingLocalState local_state(TestingBrowserProcess::GetGlobal());
-
-  FilePicker file_picker(ui::SelectFileDialog::SELECT_UPLOAD_FOLDER);
-
-  EXPECT_FALSE(file_picker.canSelectMultiple());
-  EXPECT_FALSE(file_picker.canCreateFolder());
-  EXPECT_STREQ("Select Folder to Upload", file_picker.getTitle());
-
-  base::ThreadPoolInstance::Get()->FlushForTesting();
-  RunLoop().RunUntilIdle();
-}
-
-// Flaky, see crbug.com/853079.
-TEST_F(SelectFileDialogImplGtkTest, DISABLED_SelectFolder) {
-  content::BrowserTaskEnvironment task_environment_;
-  ScopedTestingLocalState local_state(TestingBrowserProcess::GetGlobal());
-
-  FilePicker file_picker(ui::SelectFileDialog::SELECT_FOLDER);
-
-  EXPECT_FALSE(file_picker.canSelectMultiple());
-  EXPECT_TRUE(file_picker.canCreateFolder());
-  EXPECT_STREQ("Select Folder", file_picker.getTitle());
-
-  base::ThreadPoolInstance::Get()->FlushForTesting();
-  RunLoop().RunUntilIdle();
-}
-
-}  // namespace gtk
diff --git a/chrome/browser/ui/gtk/select_file_dialog_interactive_uitest.cc b/chrome/browser/ui/gtk/select_file_dialog_interactive_uitest.cc
deleted file mode 100644
index 5b416252..0000000
--- a/chrome/browser/ui/gtk/select_file_dialog_interactive_uitest.cc
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/macros.h"
-#include "build/build_config.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/chrome_select_file_policy.h"
-#include "chrome/browser/ui/gtk/select_file_dialog_impl_gtk.h"
-#include "chrome/browser/ui/view_ids.h"
-#include "chrome/test/base/in_process_browser_test.h"
-#include "chrome/test/base/interactive_test_utils.h"
-#include "chrome/test/base/ui_test_utils.h"
-#include "net/test/embedded_test_server/embedded_test_server.h"
-#include "ui/shell_dialogs/select_file_dialog.h"
-#include "ui/views/test/widget_test.h"
-#include "ui/views/widget/widget.h"
-
-using BrowserSelectFileDialogTest = InProcessBrowserTest;
-
-namespace gtk {
-
-// FilePicker opens a GtkFileChooser.
-class FilePicker : public ui::SelectFileDialog::Listener {
- public:
-  explicit FilePicker(BrowserWindow* window) {
-    select_file_dialog_ = ui::SelectFileDialog::Create(
-        this, std::make_unique<ChromeSelectFilePolicy>(nullptr));
-
-    gfx::NativeWindow parent_window = window->GetNativeWindow();
-    ui::SelectFileDialog::FileTypeInfo file_types;
-    file_types.allowed_paths = ui::SelectFileDialog::FileTypeInfo::ANY_PATH;
-    const base::FilePath file_path;
-    select_file_dialog_->SelectFile(
-        ui::SelectFileDialog::SELECT_OPEN_FILE, base::string16(), file_path,
-        &file_types, 0, base::FilePath::StringType(), parent_window, nullptr);
-  }
-
-  ~FilePicker() override { select_file_dialog_->ListenerDestroyed(); }
-
-  void Close() {
-    SelectFileDialogImplGTK* file_dialog =
-        static_cast<SelectFileDialogImplGTK*>(select_file_dialog_.get());
-
-    while (!file_dialog->dialogs_.empty())
-      gtk_widget_destroy(*(file_dialog->dialogs_.begin()));
-  }
-
-  // SelectFileDialog::Listener implementation.
-  void FileSelected(const base::FilePath& path,
-                    int index,
-                    void* params) override {}
-
- private:
-  // Dialog box used for opening and saving files.
-  scoped_refptr<ui::SelectFileDialog> select_file_dialog_;
-
-  DISALLOW_COPY_AND_ASSIGN(FilePicker);
-};
-
-}  // namespace gtk
-
-// Leaks in GtkFileChooserDialog. http://crbug.com/537468
-// Flaky on Linux. http://crbug.com/700134
-#if defined(ADDRESS_SANITIZER) || defined(OS_LINUX)
-#define MAYBE_ModalTest DISABLED_ModalTest
-#else
-#define MAYBE_ModalTest ModalTest
-#endif
-// Test that the file-picker is modal.
-IN_PROC_BROWSER_TEST_F(BrowserSelectFileDialogTest, MAYBE_ModalTest) {
-  // Bring the native window to the foreground. Returns true on success.
-  ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
-  ASSERT_TRUE(browser()->window()->IsActive());
-
-  gtk::FilePicker file_picker(browser()->window());
-
-  gfx::NativeWindow window = browser()->window()->GetNativeWindow();
-  views::Widget* widget = views::Widget::GetWidgetForNativeWindow(window);
-  ASSERT_NE(nullptr, widget);
-
-  // Run a nested loop until the browser window becomes inactive
-  // so that the file-picker can be active.
-  views::test::WidgetActivationWaiter waiter_inactive(widget, false);
-  waiter_inactive.Wait();
-  EXPECT_FALSE(browser()->window()->IsActive());
-
-  ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER);
-  // The window should not get focus due to modal dialog.
-  EXPECT_FALSE(browser()->window()->IsActive());
-
-  ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
-  EXPECT_FALSE(browser()->window()->IsActive());
-
-  ASSERT_TRUE(ui_test_utils::ShowAndFocusNativeWindow(window));
-  EXPECT_FALSE(browser()->window()->IsActive());
-
-  ASSERT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_TAB, false,
-                                              false, true, false));
-  EXPECT_FALSE(browser()->window()->IsActive());
-
-  file_picker.Close();
-
-  // Run a nested loop until the browser window becomes active.
-  views::test::WidgetActivationWaiter wait_active(widget, true);
-  wait_active.Wait();
-
-  ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER);
-  EXPECT_TRUE(browser()->window()->IsActive());
-}
diff --git a/chrome/browser/ui/layout_constants.cc b/chrome/browser/ui/layout_constants.cc
index 6aa08f0..ee70dfa 100644
--- a/chrome/browser/ui/layout_constants.cc
+++ b/chrome/browser/ui/layout_constants.cc
@@ -27,7 +27,7 @@
 #endif
 
 int GetLayoutConstant(LayoutConstant constant) {
-  const bool touch_ui = ui::MaterialDesignController::touch_ui();
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
   switch (constant) {
     case BOOKMARK_BAR_HEIGHT:
       // The fixed margin ensures the bookmark buttons appear centered relative
@@ -85,7 +85,7 @@
 }
 
 gfx::Insets GetLayoutInsets(LayoutInset inset) {
-  const bool touch_ui = ui::MaterialDesignController::touch_ui();
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
   switch (inset) {
     case LOCATION_BAR_ICON_INTERIOR_PADDING:
       return touch_ui ? gfx::Insets(5, 10) : gfx::Insets(4, 8);
diff --git a/chrome/browser/ui/native_file_system_dialogs.cc b/chrome/browser/ui/native_file_system_dialogs.cc
index 0084efa..83d7e1b 100644
--- a/chrome/browser/ui/native_file_system_dialogs.cc
+++ b/chrome/browser/ui/native_file_system_dialogs.cc
@@ -34,7 +34,8 @@
     const url::Origin& origin,
     const base::FilePath& path,
     base::OnceCallback<void(permissions::PermissionAction result)> callback,
-    content::WebContents* web_contents) {
+    content::WebContents* web_contents,
+    base::ScopedClosureRunner fullscreen_block) {
   // There's no dialog version of this available outside views, run callback as
   // if the dialog was instantly dismissed.
   std::move(callback).Run(permissions::PermissionAction::DISMISSED);
diff --git a/chrome/browser/ui/native_file_system_dialogs.h b/chrome/browser/ui/native_file_system_dialogs.h
index 90d563e..be58f98 100644
--- a/chrome/browser/ui/native_file_system_dialogs.h
+++ b/chrome/browser/ui/native_file_system_dialogs.h
@@ -9,6 +9,7 @@
 #include <vector>
 
 #include "base/callback.h"
+#include "base/callback_helpers.h"
 #include "build/build_config.h"
 #include "chrome/browser/native_file_system/native_file_system_permission_request_manager.h"
 #include "content/public/browser/native_file_system_permission_context.h"
@@ -56,6 +57,7 @@
     const url::Origin& origin,
     const base::FilePath& path,
     base::OnceCallback<void(permissions::PermissionAction result)> callback,
-    content::WebContents* web_contents);
+    content::WebContents* web_contents,
+    base::ScopedClosureRunner fullscreen_block);
 
 #endif  // CHROME_BROWSER_UI_NATIVE_FILE_SYSTEM_DIALOGS_H_
diff --git a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
index e1b380da..95514bbc 100644
--- a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
+++ b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
@@ -1658,4 +1658,75 @@
     ::testing::Values(CommandLineFlagSecurityWarningsPolicy::kNoPolicy,
                       CommandLineFlagSecurityWarningsPolicy::kEnabled,
                       CommandLineFlagSecurityWarningsPolicy::kDisabled));
+
+// Verifies that infobars are not displayed in Kiosk mode.
+class StartupBrowserCreatorInfobarsKioskTest : public InProcessBrowserTest {
+ public:
+  StartupBrowserCreatorInfobarsKioskTest() = default;
+
+ protected:
+  InfoBarService* LaunchKioskBrowserAndGetCreatedInfobarService(
+      const std::string& extra_switch) {
+    Profile* profile = browser()->profile();
+    base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
+    command_line.AppendSwitch(switches::kKioskMode);
+    command_line.AppendSwitch(extra_switch);
+    StartupBrowserCreatorImpl launch(base::FilePath(), command_line,
+                                     chrome::startup::IS_NOT_FIRST_RUN);
+    EXPECT_TRUE(launch.Launch(profile, std::vector<GURL>(), true));
+
+    // This should have created a new browser window.
+    Browser* new_browser = FindOneOtherBrowser(browser());
+    EXPECT_TRUE(new_browser);
+    if (!new_browser)
+      return nullptr;
+
+    return InfoBarService::FromWebContents(
+        new_browser->tab_strip_model()->GetActiveWebContents());
+  }
+};
+
+// Verify that the Automation Enabled infobar is still shown in Kiosk mode.
+IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorInfobarsKioskTest,
+                       CheckInfobarForEnableAutomation) {
+  InfoBarService* infobar_service =
+      LaunchKioskBrowserAndGetCreatedInfobarService(
+          switches::kEnableAutomation);
+  ASSERT_TRUE(infobar_service);
+
+  bool found_automation_infobar = false;
+  for (size_t i = 0; i < infobar_service->infobar_count(); i++) {
+    infobars::InfoBar* infobar = infobar_service->infobar_at(i);
+    if (infobar->delegate()->GetIdentifier() ==
+        infobars::InfoBarDelegate::AUTOMATION_INFOBAR_DELEGATE) {
+      found_automation_infobar = true;
+    }
+  }
+
+  EXPECT_TRUE(found_automation_infobar);
+}
+
+// Verify that the Bad Flags infobar is not shown in kiosk mode.
+IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorInfobarsKioskTest,
+                       CheckInfobarForBadFlag) {
+  // BadFlagsPrompt::ShowBadFlagsPrompt uses CommandLine::ForCurrentProcess
+  // instead of the command-line passed to StartupBrowserCreator. In browser
+  // tests, this references the browser test's instead of the new process.
+  base::CommandLine::ForCurrentProcess()->AppendSwitch(
+      switches::kDisableWebSecurity);
+
+  // Passing the kDisableWebSecurity argument here presently does not do
+  // anything because of the aforementioned limitation.
+  // https://crbug.com/1060293
+  InfoBarService* infobar_service =
+      LaunchKioskBrowserAndGetCreatedInfobarService(
+          switches::kDisableWebSecurity);
+  ASSERT_TRUE(infobar_service);
+
+  for (size_t i = 0; i < infobar_service->infobar_count(); i++) {
+    infobars::InfoBar* infobar = infobar_service->infobar_at(i);
+    EXPECT_NE(infobars::InfoBarDelegate::BAD_FLAGS_INFOBAR_DELEGATE,
+              infobar->delegate()->GetIdentifier());
+  }
+}
 #endif  // !defined(OS_CHROMEOS)
diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
index 6e60ddcc..d07c15d 100644
--- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc
+++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
@@ -864,15 +864,21 @@
   if (!browser || !profile_ || browser->tab_strip_model()->count() == 0)
     return;
 
-  if (HasPendingUncleanExit(browser->profile()))
-    SessionCrashedBubble::ShowIfNotOffTheRecordProfile(browser);
-
+  // Show the Automation info bar unless it has been disabled by policy.
   bool show_bad_flags_security_warnings = ShouldShowBadFlagsSecurityWarnings();
   if (command_line_.HasSwitch(switches::kEnableAutomation) &&
       show_bad_flags_security_warnings) {
     AutomationInfoBarDelegate::Create();
   }
 
+  // Do not show any other info bars in Kiosk mode, because it's unlikely that
+  // the viewer can act upon or dismiss them.
+  if (command_line_.HasSwitch(switches::kKioskMode))
+    return;
+
+  if (HasPendingUncleanExit(browser->profile()))
+    SessionCrashedBubble::ShowIfNotOffTheRecordProfile(browser);
+
   // The below info bars are only added to the first profile which is launched.
   // Other profiles might be restoring the browsing sessions asynchronously,
   // so we cannot add the info bars to the focused tabs here.
diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.h b/chrome/browser/ui/startup/startup_browser_creator_impl.h
index 34cf9cc..02f894f 100644
--- a/chrome/browser/ui/startup/startup_browser_creator_impl.h
+++ b/chrome/browser/ui/startup/startup_browser_creator_impl.h
@@ -170,7 +170,6 @@
     SessionRestore::BehaviorBitmask restore_options, bool process_startup,
     bool is_post_crash_launch);
 
-
   // Adds any startup infobars to the selected tab of the given browser.
   void AddInfoBarsIfNecessary(
       Browser* browser,
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
index ce6eb9ae..f2ee1d3 100644
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -102,6 +102,7 @@
 #include "components/offline_pages/buildflags/buildflags.h"
 #include "components/password_manager/core/browser/password_manager.h"
 #include "components/performance_manager/embedder/performance_manager_registry.h"
+#include "components/performance_manager/public/decorators/tab_properties_decorator.h"
 #include "components/permissions/permission_request_manager.h"
 #include "components/subresource_filter/core/browser/subresource_filter_features.h"
 #include "components/tracing/common/tracing_switches.h"
@@ -267,6 +268,7 @@
   if (auto* performance_manager_registry =
           performance_manager::PerformanceManagerRegistry::GetInstance()) {
     performance_manager_registry->CreatePageNodeForWebContents(web_contents);
+    performance_manager::TabPropertiesDecorator::SetIsTab(web_contents, true);
   }
   permissions::PermissionRequestManager::CreateForWebContents(web_contents);
   // The PopupBlockerTabHelper has an implicit dependency on
diff --git a/chrome/browser/ui/tabs/tab_style.cc b/chrome/browser/ui/tabs/tab_style.cc
index 00e4e8a..6329338 100644
--- a/chrome/browser/ui/tabs/tab_style.cc
+++ b/chrome/browser/ui/tabs/tab_style.cc
@@ -15,7 +15,7 @@
 
 // Returns the height of the separator between tabs.
 int GetSeparatorHeight() {
-  return ui::MaterialDesignController::touch_ui() ? 24 : 20;
+  return ui::MaterialDesignController::GetInstance()->touch_ui() ? 24 : 20;
 }
 
 }  // namespace
diff --git a/chrome/browser/ui/toolbar/toolbar_actions_bar_unittest.cc b/chrome/browser/ui/toolbar/toolbar_actions_bar_unittest.cc
index de9663c..04a0b23e 100644
--- a/chrome/browser/ui/toolbar/toolbar_actions_bar_unittest.cc
+++ b/chrome/browser/ui/toolbar/toolbar_actions_bar_unittest.cc
@@ -33,7 +33,6 @@
 #include "extensions/browser/test_extension_registry_observer.h"
 #include "extensions/common/extension.h"
 #include "extensions/test/test_extension_dir.h"
-#include "ui/base/test/material_design_controller_test_api.h"
 
 namespace {
 
@@ -143,7 +142,7 @@
 }  // namespace
 
 ToolbarActionsBarUnitTest::ToolbarActionsBarUnitTest()
-    : toolbar_model_(nullptr) {
+    : touch_ui_scoper_(GetParam()) {
   // The ToolbarActionsBar is not used when kExtensionsToolbarMenu is enabled.
   feature_list_.InitAndDisableFeature(features::kExtensionsToolbarMenu);
 }
@@ -151,10 +150,6 @@
 ToolbarActionsBarUnitTest::~ToolbarActionsBarUnitTest() {}
 
 void ToolbarActionsBarUnitTest::SetUp() {
-  // Overriding MD state needs to be done before setting up the test window to
-  // maintain consistency throughout its lifetime.
-  material_design_state_ =
-      std::make_unique<ui::test::MaterialDesignControllerTestAPI>(GetParam());
   BrowserWithTestWindowTest::SetUp();
   extensions::LoadErrorReporter::Init(false);
 
@@ -186,7 +181,6 @@
   overflow_browser_action_test_util_.reset();
   ToolbarActionsBar::disable_animations_for_testing_ = false;
   BrowserWithTestWindowTest::TearDown();
-  material_design_state_.reset();
 }
 
 void ToolbarActionsBarUnitTest::ActivateTab(int index) {
diff --git a/chrome/browser/ui/toolbar/toolbar_actions_bar_unittest.h b/chrome/browser/ui/toolbar/toolbar_actions_bar_unittest.h
index 6385e6d..5926506 100644
--- a/chrome/browser/ui/toolbar/toolbar_actions_bar_unittest.h
+++ b/chrome/browser/ui/toolbar/toolbar_actions_bar_unittest.h
@@ -14,6 +14,7 @@
 #include "chrome/browser/ui/extensions/extension_action_test_helper.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
 #include "extensions/common/extension_builder.h"
+#include "ui/base/material_design/material_design_controller.h"
 
 class ScopedTestingLocalState;
 class ToolbarActionsBar;
@@ -23,12 +24,6 @@
 class Extension;
 }
 
-namespace ui {
-namespace test {
-class MaterialDesignControllerTestAPI;
-}
-}  // namespace ui
-
 // A cross-platform unit test for the ToolbarActionsBar that uses the
 // TestToolbarActionsBarHelper to create the platform-specific containers.
 // TODO(devlin): Since this *does* use the real platform containers, in theory,
@@ -86,7 +81,7 @@
   base::test::ScopedFeatureList feature_list_;
 
   // The associated ToolbarActionsModel (owned by the keyed service setup).
-  ToolbarActionsModel* toolbar_model_;
+  ToolbarActionsModel* toolbar_model_ = nullptr;
 
   // A ExtensionActionTestHelper object constructed with the associated
   // ToolbarActionsBar.
@@ -95,8 +90,7 @@
   // The overflow container's ExtensionActionTestHelper.
   std::unique_ptr<ExtensionActionTestHelper> overflow_browser_action_test_util_;
 
-  std::unique_ptr<ui::test::MaterialDesignControllerTestAPI>
-      material_design_state_;
+  ui::MaterialDesignController::TouchUiScoperForTesting touch_ui_scoper_;
 
   // Local state for the browser process.
   std::unique_ptr<ScopedTestingLocalState> local_state_;
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
index 94c11ff..2ef631c 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -1548,7 +1548,8 @@
     bool themify_icon = node->url().SchemeIs(content::kChromeUIScheme);
     gfx::ImageSkia favicon = model_->GetFavicon(node).AsImageSkia();
     if (favicon.isNull()) {
-      if (ui::MaterialDesignController::touch_ui() && GetThemeProvider()) {
+      if (ui::MaterialDesignController::GetInstance()->touch_ui() &&
+          GetThemeProvider()) {
         // This favicon currently does not match the default favicon icon used
         // elsewhere in the codebase.
         // See https://crbug/814447
@@ -1896,12 +1897,12 @@
 
   const SkColor overflow_color =
       theme_provider->GetColor(ThemeProperties::COLOR_TOOLBAR_BUTTON_ICON);
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
   overflow_button_->SetImage(
       views::Button::STATE_NORMAL,
-      gfx::CreateVectorIcon(ui::MaterialDesignController::touch_ui()
-                                ? kBookmarkbarTouchOverflowIcon
-                                : kOverflowChevronIcon,
-                            overflow_color));
+      gfx::CreateVectorIcon(
+          touch_ui ? kBookmarkbarTouchOverflowIcon : kOverflowChevronIcon,
+          overflow_color));
 
   // Redraw the background.
   SchedulePaint();
diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
index 81f7bd96c..793226e 100644
--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
+++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
@@ -21,7 +21,6 @@
 #include "components/ui_devtools/views/devtools_server_util.h"
 #include "content/public/browser/tracing_service.h"
 #include "services/service_manager/sandbox/switches.h"
-#include "ui/base/material_design/material_design_controller.h"
 
 #if defined(USE_AURA)
 #include "base/run_loop.h"
@@ -72,11 +71,6 @@
 
   SetConstrainedWindowViewsClient(CreateChromeConstrainedWindowViewsClient());
 
-  // The MaterialDesignController needs to look at command line flags, which
-  // are not available until this point. Now that they are, proceed with
-  // initializing the MaterialDesignController.
-  ui::MaterialDesignController::Initialize();
-
 #if defined(USE_AURA)
   wm_state_ = std::make_unique<wm::WMState>();
 #endif
diff --git a/chrome/browser/ui/views/chrome_layout_provider.cc b/chrome/browser/ui/views/chrome_layout_provider.cc
index a7d1355..84be79e 100644
--- a/chrome/browser/ui/views/chrome_layout_provider.cc
+++ b/chrome/browser/ui/views/chrome_layout_provider.cc
@@ -51,7 +51,7 @@
 
 gfx::Insets ChromeLayoutProvider::GetInsetsMetric(int metric) const {
   DCHECK_LT(metric, views::VIEWS_INSETS_MAX);
-  const bool touch_ui = ui::MaterialDesignController::touch_ui();
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
   switch (metric) {
     case views::INSETS_DIALOG:
     case views::INSETS_DIALOG_SUBSECTION:
diff --git a/chrome/browser/ui/views/chrome_typography.cc b/chrome/browser/ui/views/chrome_typography.cc
index 65c71bf..7c5a3206 100644
--- a/chrome/browser/ui/views/chrome_typography.cc
+++ b/chrome/browser/ui/views/chrome_typography.cc
@@ -57,7 +57,8 @@
                            gfx::Font::Weight* weight) {
   switch (context) {
     case CONTEXT_TOOLBAR_BUTTON: {
-      int height = ui::MaterialDesignController::touch_ui() ? 22 : 17;
+      int height =
+          ui::MaterialDesignController::GetInstance()->touch_ui() ? 22 : 17;
       // We only want the font size to be constrained by available height, and
       // don't actually have a target font size, so we just need to supply any
       // sufficiently-large value for the second argument here. |height| will
@@ -72,10 +73,11 @@
     }
     case CONTEXT_OMNIBOX_PRIMARY:
     case CONTEXT_OMNIBOX_DEEMPHASIZED: {
+      using MD = ui::MaterialDesignController;
       const int omnibox_primary_delta =
           GetFontSizeDeltaBoundedByAvailableHeight(
               LocationBarView::GetAvailableTextHeight(),
-              ui::MaterialDesignController::touch_ui() ? 15 : 14);
+              MD::GetInstance()->touch_ui() ? 15 : 14);
       *size_delta = omnibox_primary_delta;
       if (context == CONTEXT_OMNIBOX_DEEMPHASIZED) {
         (*size_delta)--;
diff --git a/chrome/browser/ui/views/extensions/extensions_toolbar_button.cc b/chrome/browser/ui/views/extensions/extensions_toolbar_button.cc
index 3c3a100d..cf345ad 100644
--- a/chrome/browser/ui/views/extensions/extensions_toolbar_button.cc
+++ b/chrome/browser/ui/views/extensions/extensions_toolbar_button.cc
@@ -86,7 +86,7 @@
 }
 
 int ExtensionsToolbarButton::GetIconSize() const {
-  return ui::MaterialDesignController::touch_ui() && !browser_->app_controller()
-             ? kDefaultTouchableIconSize
-             : kDefaultIconSize;
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
+  return (touch_ui && !browser_->app_controller()) ? kDefaultTouchableIconSize
+                                                   : kDefaultIconSize;
 }
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc
index f2811e2..a530c41 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc
@@ -144,26 +144,10 @@
 
 SkColor BrowserNonClientFrameView::GetFrameColor(
     BrowserFrameActiveState active_state) const {
-  ThemeProperties::OverwritableByUserThemeProperty color_id;
-
-  color_id = ShouldPaintAsActive(active_state)
-                 ? ThemeProperties::COLOR_FRAME
-                 : ThemeProperties::COLOR_FRAME_INACTIVE;
-
-  if (frame_->ShouldUseTheme())
-    return GetFrameThemeProvider()->GetColor(color_id);
-
-  // Use ThemeSupplier.
-  web_app::AppBrowserController* app_controller =
-      browser_view_->browser()->app_controller();
-  if (app_controller && app_controller->GetThemeSupplier()) {
-    CustomThemeSupplier* theme = app_controller->GetThemeSupplier();
-    SkColor result;
-    if (theme->GetColor(color_id, &result))
-      return result;
-  }
-
-  return GetUnthemedColor(color_id);
+  return GetFrameThemeProvider()->GetColor(
+      ShouldPaintAsActive(active_state)
+          ? ThemeProperties::COLOR_FRAME
+          : ThemeProperties::COLOR_FRAME_INACTIVE);
 }
 
 void BrowserNonClientFrameView::UpdateFrameColor() {
@@ -180,8 +164,8 @@
           : ThemeProperties::COLOR_TOOLBAR_TOP_SEPARATOR_INACTIVE;
   // The vertical tab separator might show through the stroke if the stroke
   // color is translucent.  To prevent this, always use an opaque stroke color.
-  return color_utils::GetResultingPaintColor(GetThemeOrDefaultColor(color_id),
-                                             GetFrameColor());
+  return color_utils::GetResultingPaintColor(
+      GetFrameThemeProvider()->GetColor(color_id), GetFrameColor());
 }
 
 base::Optional<int> BrowserNonClientFrameView::GetCustomBackgroundId(
@@ -398,21 +382,3 @@
   // into the view hierarchy.
   return frame_->GetThemeProvider();
 }
-
-SkColor BrowserNonClientFrameView::GetThemeOrDefaultColor(int color_id) const {
-  if (!frame_->ShouldUseTheme())
-    return GetUnthemedColor(color_id);
-
-  // During shutdown, there may no longer be a widget, and thus no theme
-  // provider.
-  const auto* theme_provider = GetThemeProvider();
-  return theme_provider ? theme_provider->GetColor(color_id)
-                        : gfx::kPlaceholderColor;
-}
-
-SkColor BrowserNonClientFrameView::GetUnthemedColor(int color_id) const {
-  DCHECK(!frame_->ShouldUseTheme());
-  return ThemeProperties::GetDefaultColor(
-      color_id, browser_view_->IsIncognito(),
-      GetNativeTheme()->ShouldUseDarkColors());
-}
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view.h b/chrome/browser/ui/views/frame/browser_non_client_frame_view.h
index b2763d8f..fea38fe 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view.h
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view.h
@@ -181,13 +181,6 @@
   // we're added to the view hierarchy.
   const ui::ThemeProvider* GetFrameThemeProvider() const;
 
-  // Returns the color of the given |color_id| from the theme provider or the
-  // default theme properties.
-  SkColor GetThemeOrDefaultColor(int color_id) const;
-
-  // Returns the color of the given |color_id| for an un-themed frame.
-  SkColor GetUnthemedColor(int color_id) const;
-
   // The frame that hosts this view.
   BrowserFrame* frame_;
 
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
index 2dfeb3e..c3acdcd 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
@@ -88,7 +88,7 @@
 #include "ui/aura/test/env_test_helper.h"
 #include "ui/base/class_property.h"
 #include "ui/base/hit_test.h"
-#include "ui/base/test/material_design_controller_test_api.h"
+#include "ui/base/material_design/material_design_controller.h"
 #include "ui/compositor/scoped_animation_duration_scale_mode.h"
 #include "ui/events/base_event_utils.h"
 #include "ui/events/event.h"
@@ -155,11 +155,11 @@
 class TopChromeMdParamTest : public BaseTest,
                              public ::testing::WithParamInterface<bool> {
  public:
-  TopChromeMdParamTest() : test_api_(GetParam()) {}
+  TopChromeMdParamTest() : touch_ui_scoper_(GetParam()) {}
   ~TopChromeMdParamTest() override = default;
 
  private:
-  ui::test::MaterialDesignControllerTestAPI test_api_;
+  ui::MaterialDesignController::TouchUiScoperForTesting touch_ui_scoper_;
 };
 
 // Template to be used when a test does not work with the webUI tabstrip.
diff --git a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
index ec8e95f..2e4f267 100644
--- a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
+++ b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
@@ -6,7 +6,6 @@
 
 #include "chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.h"
 #include "ui/views/controls/button/image_button.h"
-#include "ui/views/linux_ui/nav_button_provider.h"
 
 bool DesktopLinuxBrowserFrameView::DrawFrameButtonParams::operator==(
     const DrawFrameButtonParams& other) const {
@@ -48,10 +47,11 @@
   nav_button_provider_->RedrawImages(params.top_area_height, params.maximized,
                                      params.active);
   for (auto type : {
-           chrome::FrameButtonDisplayType::kMinimize,
-           IsMaximized() ? chrome::FrameButtonDisplayType::kRestore
-                         : chrome::FrameButtonDisplayType::kMaximize,
-           chrome::FrameButtonDisplayType::kClose,
+           views::NavButtonProvider::FrameButtonDisplayType::kMinimize,
+           IsMaximized()
+               ? views::NavButtonProvider::FrameButtonDisplayType::kRestore
+               : views::NavButtonProvider::FrameButtonDisplayType::kMaximize,
+           views::NavButtonProvider::FrameButtonDisplayType::kClose,
        }) {
     for (size_t state = 0; state < views::Button::STATE_COUNT; state++) {
       views::Button::ButtonState button_state =
@@ -66,15 +66,15 @@
 }
 
 views::Button* DesktopLinuxBrowserFrameView::GetButtonFromDisplayType(
-    chrome::FrameButtonDisplayType type) {
+    views::NavButtonProvider::FrameButtonDisplayType type) {
   switch (type) {
-    case chrome::FrameButtonDisplayType::kMinimize:
+    case views::NavButtonProvider::FrameButtonDisplayType::kMinimize:
       return minimize_button();
-    case chrome::FrameButtonDisplayType::kMaximize:
+    case views::NavButtonProvider::FrameButtonDisplayType::kMaximize:
       return maximize_button();
-    case chrome::FrameButtonDisplayType::kRestore:
+    case views::NavButtonProvider::FrameButtonDisplayType::kRestore:
       return restore_button();
-    case chrome::FrameButtonDisplayType::kClose:
+    case views::NavButtonProvider::FrameButtonDisplayType::kClose:
       return close_button();
     default:
       NOTREACHED();
diff --git a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.h b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.h
index c14a9aa..c307d99d 100644
--- a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.h
+++ b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.h
@@ -6,6 +6,7 @@
 #define CHROME_BROWSER_UI_VIEWS_FRAME_DESKTOP_LINUX_BROWSER_FRAME_VIEW_H_
 
 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view.h"
+#include "ui/views/linux_ui/nav_button_provider.h"
 
 // A specialization of OpaqueBrowserFrameView that is also able to
 // render frame buttons using GTK.
@@ -38,7 +39,8 @@
 
   // Returns one of |{minimize,maximize,restore,close}_button_|
   // corresponding to |type|.
-  views::Button* GetButtonFromDisplayType(chrome::FrameButtonDisplayType type);
+  views::Button* GetButtonFromDisplayType(
+      views::NavButtonProvider::FrameButtonDisplayType type);
 
   std::unique_ptr<views::NavButtonProvider> nav_button_provider_;
 
diff --git a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.cc b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.cc
index b88e7d3..9ab882e 100644
--- a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.cc
+++ b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.cc
@@ -11,9 +11,10 @@
     : nav_button_provider_(nav_button_provider) {}
 
 int DesktopLinuxBrowserFrameViewLayout::CaptionButtonY(
-    chrome::FrameButtonDisplayType button_id,
+    views::FrameButton button_id,
     bool restored) const {
-  gfx::Insets insets = nav_button_provider_->GetNavButtonMargin(button_id);
+  auto button_type = GetButtonDisplayType(button_id);
+  gfx::Insets insets = nav_button_provider_->GetNavButtonMargin(button_type);
   return insets.top() + FrameTopThickness(!delegate_->IsMaximized());
 }
 
@@ -44,3 +45,21 @@
     spacing += nav_button_provider_->GetInterNavButtonSpacing();
   return spacing;
 }
+
+views::NavButtonProvider::FrameButtonDisplayType
+DesktopLinuxBrowserFrameViewLayout::GetButtonDisplayType(
+    views::FrameButton button_id) const {
+  switch (button_id) {
+    case views::FrameButton::kMinimize:
+      return views::NavButtonProvider::FrameButtonDisplayType::kMinimize;
+    case views::FrameButton::kMaximize:
+      return delegate_->IsMaximized()
+                 ? views::NavButtonProvider::FrameButtonDisplayType::kRestore
+                 : views::NavButtonProvider::FrameButtonDisplayType::kMaximize;
+    case views::FrameButton::kClose:
+      return views::NavButtonProvider::FrameButtonDisplayType::kClose;
+    default:
+      NOTREACHED();
+      return views::NavButtonProvider::FrameButtonDisplayType::kClose;
+  }
+}
diff --git a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.h b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.h
index a998bc4c..79fbfb19 100644
--- a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.h
+++ b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.h
@@ -6,6 +6,7 @@
 #define CHROME_BROWSER_UI_VIEWS_FRAME_DESKTOP_LINUX_BROWSER_FRAME_VIEW_LAYOUT_H_
 
 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h"
+#include "ui/views/linux_ui/nav_button_provider.h"
 
 // A specialization of OpaqueBrowserFrameViewLayout that is also able
 // to layout frame buttons that were rendered by GTK.
@@ -16,7 +17,7 @@
 
  protected:
   // OpaqueBrowserFrameViewLayout:
-  int CaptionButtonY(chrome::FrameButtonDisplayType button_id,
+  int CaptionButtonY(views::FrameButton button_id,
                      bool restored) const override;
   TopAreaPadding GetTopAreaPadding(bool has_leading_buttons,
                                    bool has_trailing_buttons) const override;
@@ -25,6 +26,11 @@
                               bool is_leading_button) const override;
 
  private:
+  // Converts a FrameButton to a FrameButtonDisplayType, taking into
+  // consideration the maximized state of the browser window.
+  views::NavButtonProvider::FrameButtonDisplayType GetButtonDisplayType(
+      views::FrameButton button_id) const;
+
   views::NavButtonProvider* nav_button_provider_;
 
   DISALLOW_COPY_AND_ASSIGN(DesktopLinuxBrowserFrameViewLayout);
diff --git a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout_unittest.cc b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout_unittest.cc
index 61e75b0..af8b55144 100644
--- a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout_unittest.cc
+++ b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout_unittest.cc
@@ -79,14 +79,14 @@
     ASSERT_EQ(false, maximized);  // This only tests the restored state.
   }
 
-  gfx::ImageSkia GetImage(chrome::FrameButtonDisplayType type,
+  gfx::ImageSkia GetImage(views::NavButtonProvider::FrameButtonDisplayType type,
                           views::Button::ButtonState state) const override {
     switch (type) {
-      case chrome::FrameButtonDisplayType::kClose:
+      case views::NavButtonProvider::FrameButtonDisplayType::kClose:
         return GetTestImageForSize(kCloseButtonSize);
-      case chrome::FrameButtonDisplayType::kMaximize:
+      case views::NavButtonProvider::FrameButtonDisplayType::kMaximize:
         return GetTestImageForSize(kMaximizeButtonSize);
-      case chrome::FrameButtonDisplayType::kMinimize:
+      case views::NavButtonProvider::FrameButtonDisplayType::kMinimize:
         return GetTestImageForSize(kMinimizeButtonSize);
       default:
         NOTREACHED();
@@ -95,13 +95,13 @@
   }
 
   gfx::Insets GetNavButtonMargin(
-      chrome::FrameButtonDisplayType type) const override {
+      views::NavButtonProvider::FrameButtonDisplayType type) const override {
     switch (type) {
-      case chrome::FrameButtonDisplayType::kClose:
+      case views::NavButtonProvider::FrameButtonDisplayType::kClose:
         return kCloseButtonMargin;
-      case chrome::FrameButtonDisplayType::kMaximize:
+      case views::NavButtonProvider::FrameButtonDisplayType::kMaximize:
         return kMaximizeButtonMargin;
-      case chrome::FrameButtonDisplayType::kMinimize:
+      case views::NavButtonProvider::FrameButtonDisplayType::kMinimize:
         return kMinimizeButtonMargin;
       default:
         NOTREACHED();
@@ -160,10 +160,10 @@
   void ResetNativeNavButtonImagesFromButtonProvider() {
     std::vector<views::ImageButton*> buttons{close_button_, maximize_button_,
                                              minimize_button_};
-    std::vector<chrome::FrameButtonDisplayType> button_types{
-        chrome::FrameButtonDisplayType::kClose,
-        chrome::FrameButtonDisplayType::kMaximize,
-        chrome::FrameButtonDisplayType::kMinimize};
+    std::vector<views::NavButtonProvider::FrameButtonDisplayType> button_types{
+        views::NavButtonProvider::FrameButtonDisplayType::kClose,
+        views::NavButtonProvider::FrameButtonDisplayType::kMaximize,
+        views::NavButtonProvider::FrameButtonDisplayType::kMinimize};
     for (size_t i = 0; i < buttons.size(); i++) {
       for (views::Button::ButtonState state :
            {views::Button::STATE_NORMAL, views ::Button::STATE_HOVERED,
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc
index 2c10acc..219f638 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc
@@ -180,9 +180,8 @@
              : views::NonClientFrameView::kFrameShadowThickness;
 }
 
-int OpaqueBrowserFrameViewLayout::CaptionButtonY(
-    chrome::FrameButtonDisplayType button_id,
-    bool restored) const {
+int OpaqueBrowserFrameViewLayout::CaptionButtonY(views::FrameButton button_id,
+                                                 bool restored) const {
   return DefaultCaptionButtonY(restored);
 }
 
@@ -200,24 +199,6 @@
                    std::max(0, height - top_height - border_thickness));
 }
 
-chrome::FrameButtonDisplayType
-OpaqueBrowserFrameViewLayout::GetButtonDisplayType(
-    views::FrameButton button_id) const {
-  switch (button_id) {
-    case views::FrameButton::kMinimize:
-      return chrome::FrameButtonDisplayType::kMinimize;
-    case views::FrameButton::kMaximize:
-      return delegate_->IsMaximized()
-                 ? chrome::FrameButtonDisplayType::kRestore
-                 : chrome::FrameButtonDisplayType::kMaximize;
-    case views::FrameButton::kClose:
-      return chrome::FrameButtonDisplayType::kClose;
-    default:
-      NOTREACHED();
-      return chrome::FrameButtonDisplayType::kClose;
-  }
-}
-
 int OpaqueBrowserFrameViewLayout::GetWindowCaptionSpacing(
     views::FrameButton button_id,
     bool leading_spacing,
@@ -422,7 +403,7 @@
     views::FrameButton button_id,
     views::Button* button,
     ButtonAlignment alignment) {
-  const int caption_y = CaptionButtonY(GetButtonDisplayType(button_id), false);
+  const int caption_y = CaptionButtonY(button_id, false);
 
   // There should always be the same number of non-shadow pixels visible to the
   // side of the caption buttons.  In maximized mode we extend buttons to the
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h b/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h
index 2226a03..f6af851 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h
@@ -8,7 +8,6 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "chrome/browser/ui/frame_button_display_types.h"
 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view.h"
 #include "ui/views/layout/layout_manager.h"
 #include "ui/views/window/frame_buttons.h"
@@ -84,8 +83,7 @@
 
   // Returns the y-coordinate of button |button_id|.  If |restored| is true,
   // acts as if the window is restored regardless of the real mode.
-  virtual int CaptionButtonY(chrome::FrameButtonDisplayType button_id,
-                             bool restored) const;
+  virtual int CaptionButtonY(views::FrameButton button_id, bool restored) const;
 
   // Returns the thickness of the top 3D edge of the window frame.  If
   // |restored| is true, acts as if the window is restored regardless of the
@@ -104,11 +102,6 @@
   // Returns the bounds of the client area for the specified view size.
   gfx::Rect CalculateClientAreaBounds(int width, int height) const;
 
-  // Converts a FrameButton to a FrameButtonDisplayType, taking into
-  // consideration the maximized state of the browser window.
-  chrome::FrameButtonDisplayType GetButtonDisplayType(
-      views::FrameButton button_id) const;
-
   // Returns the margin around button |button_id|.  If |leading_spacing| is
   // true, returns the left margin (in RTL), otherwise returns the right margin
   // (in RTL).  Extra margin may be added if |is_leading_button| is true.
diff --git a/chrome/browser/ui/views/frame/webui_tab_strip_container_view.cc b/chrome/browser/ui/views/frame/webui_tab_strip_container_view.cc
index 4c38aa43..6f26690 100644
--- a/chrome/browser/ui/views/frame/webui_tab_strip_container_view.cc
+++ b/chrome/browser/ui/views/frame/webui_tab_strip_container_view.cc
@@ -290,7 +290,7 @@
 // static
 bool WebUITabStripContainerView::UseTouchableTabStrip() {
   return base::FeatureList::IsEnabled(features::kWebUITabStrip) &&
-         ui::MaterialDesignController::touch_ui();
+         ui::MaterialDesignController::GetInstance()->touch_ui();
 }
 
 // static
diff --git a/chrome/browser/ui/views/frame/webui_tab_strip_container_view_unittest.cc b/chrome/browser/ui/views/frame/webui_tab_strip_container_view_unittest.cc
index 7704770..5e40cf11 100644
--- a/chrome/browser/ui/views/frame/webui_tab_strip_container_view_unittest.cc
+++ b/chrome/browser/ui/views/frame/webui_tab_strip_container_view_unittest.cc
@@ -5,7 +5,6 @@
 #include "chrome/browser/ui/views/frame/webui_tab_strip_container_view.h"
 #include <utility>
 
-#include "base/command_line.h"
 #include "base/test/scoped_feature_list.h"
 #include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/ui/ui_features.h"
@@ -13,22 +12,15 @@
 #include "chrome/browser/ui/views/frame/test_with_browser_view.h"
 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
 #include "chrome/browser/ui/webui/tab_strip/tab_strip_ui.h"
-#include "chrome/common/chrome_switches.h"
 #include "chrome/test/base/test_browser_window.h"
 #include "content/public/common/drop_data.h"
-#include "ui/base/test/material_design_controller_test_api.h"
-#include "ui/base/ui_base_switches.h"
+#include "ui/base/material_design/material_design_controller.h"
 
 class WebUITabStripContainerViewTest : public TestWithBrowserView {
  public:
   template <typename... Args>
   explicit WebUITabStripContainerViewTest(Args... args)
-      : TestWithBrowserView(args...), touch_mode_(true) {
-    // Both the switch and |touch_mode_| are necessary since
-    // MaterialDesignController::Initialize() gets called at different
-    // times on different platforms.
-    base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
-        switches::kTopChromeTouchUi, switches::kTopChromeTouchUiEnabled);
+      : TestWithBrowserView(args...) {
     feature_override_.InitAndEnableFeature(features::kWebUITabStrip);
   }
 
@@ -36,7 +28,7 @@
 
  private:
   base::test::ScopedFeatureList feature_override_;
-  ui::test::MaterialDesignControllerTestAPI touch_mode_;
+  ui::MaterialDesignController::TouchUiScoperForTesting touch_ui_scoper_{true};
 };
 
 TEST_F(WebUITabStripContainerViewTest, TabStripStartsClosed) {
@@ -50,12 +42,14 @@
   EXPECT_NE(nullptr, browser_view()->webui_tab_strip());
   EXPECT_FALSE(browser_view()->IsTabStripVisible());
 
-  ui::test::MaterialDesignControllerTestAPI disable_touch_mode(false);
+  ui::MaterialDesignController::TouchUiScoperForTesting disable_touch_mode(
+      false);
   browser_view()->Layout();
   EXPECT_FALSE(WebUITabStripContainerView::UseTouchableTabStrip());
   EXPECT_TRUE(browser_view()->IsTabStripVisible());
 
-  ui::test::MaterialDesignControllerTestAPI reenable_touch_mode(true);
+  ui::MaterialDesignController::TouchUiScoperForTesting reenable_touch_mode(
+      true);
   browser_view()->Layout();
   EXPECT_TRUE(WebUITabStripContainerView::UseTouchableTabStrip());
   EXPECT_FALSE(browser_view()->IsTabStripVisible());
@@ -147,7 +141,9 @@
 TEST_F(WebUITabStripDevToolsTest, DevToolsWindowHasNoTabStrip) {
   EXPECT_EQ(nullptr, browser_view()->webui_tab_strip());
 
-  ui::test::MaterialDesignControllerTestAPI disable_touch_mode(false);
-  ui::test::MaterialDesignControllerTestAPI reenable_touch_mode(true);
+  ui::MaterialDesignController::TouchUiScoperForTesting disable_touch_mode(
+      false);
+  ui::MaterialDesignController::TouchUiScoperForTesting reenable_touch_mode(
+      true);
   EXPECT_EQ(nullptr, browser_view()->webui_tab_strip());
 }
diff --git a/chrome/browser/ui/views/frame/webui_tab_strip_interactive_uitest.cc b/chrome/browser/ui/views/frame/webui_tab_strip_interactive_uitest.cc
index 982d4e14..b69ef53 100644
--- a/chrome/browser/ui/views/frame/webui_tab_strip_interactive_uitest.cc
+++ b/chrome/browser/ui/views/frame/webui_tab_strip_interactive_uitest.cc
@@ -11,18 +11,14 @@
 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
 #include "chrome/browser/ui/views/omnibox/omnibox_view_views.h"
 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
-#include "chrome/common/chrome_switches.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/interactive_test_utils.h"
-#include "ui/base/test/material_design_controller_test_api.h"
-#include "ui/base/ui_base_switches.h"
+#include "ui/base/material_design/material_design_controller.h"
 #include "ui/views/controls/webview/webview.h"
 
 class WebUITabStripInteractiveTest : public InProcessBrowserTest {
  public:
   WebUITabStripInteractiveTest() {
-    base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
-        switches::kTopChromeTouchUi, switches::kTopChromeTouchUiEnabled);
     feature_override_.InitAndEnableFeature(features::kWebUITabStrip);
   }
 
@@ -30,6 +26,7 @@
 
  private:
   base::test::ScopedFeatureList feature_override_;
+  ui::MaterialDesignController::TouchUiScoperForTesting touch_ui_scoper_{true};
 };
 
 // Regression test for crbug.com/1027375.
diff --git a/chrome/browser/ui/views/global_media_controls/media_toolbar_button_view.cc b/chrome/browser/ui/views/global_media_controls/media_toolbar_button_view.cc
index 04c57e5b..2340d0a 100644
--- a/chrome/browser/ui/views/global_media_controls/media_toolbar_button_view.cc
+++ b/chrome/browser/ui/views/global_media_controls/media_toolbar_button_view.cc
@@ -139,9 +139,9 @@
   if (!GetWidget())
     return;
 
-  const gfx::VectorIcon& icon = ui::MaterialDesignController::touch_ui()
-                                    ? kMediaToolbarButtonTouchIcon
-                                    : kMediaToolbarButtonIcon;
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
+  const gfx::VectorIcon& icon =
+      touch_ui ? kMediaToolbarButtonTouchIcon : kMediaToolbarButtonIcon;
   UpdateIconsWithStandardColors(icon);
 }
 
diff --git a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
index 846d35de..700aa045 100644
--- a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
+++ b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
@@ -426,7 +426,7 @@
 int IconLabelBubbleView::GetInternalSpacing() const {
   if (image()->GetPreferredSize().IsEmpty())
     return 0;
-  return (MD::touch_ui() ? 10 : 8) + GetExtraInternalSpacing();
+  return (MD::GetInstance()->touch_ui() ? 10 : 8) + GetExtraInternalSpacing();
 }
 
 int IconLabelBubbleView::GetExtraInternalSpacing() const {
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index 21e401a9..2be5ab7 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -828,9 +828,9 @@
 }
 
 void LocationBarView::RefreshClearAllButtonIcon() {
-  const gfx::VectorIcon& icon = ui::MaterialDesignController::touch_ui()
-                                    ? omnibox::kClearIcon
-                                    : kTabCloseNormalIcon;
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
+  const gfx::VectorIcon& icon =
+      touch_ui ? omnibox::kClearIcon : kTabCloseNormalIcon;
   SetImageFromVectorIcon(clear_all_button_, icon,
                          GetColor(OmniboxPart::LOCATION_BAR_CLEAR_ALL));
   clear_all_button_->SetBorder(views::CreateEmptyBorder(
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view_browsertest.cc b/chrome/browser/ui/views/location_bar/location_bar_view_browsertest.cc
index 01f5c64..f825be3 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view_browsertest.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view_browsertest.cc
@@ -36,7 +36,7 @@
 #include "services/network/public/cpp/features.h"
 #include "services/network/public/mojom/url_response_head.mojom.h"
 #include "third_party/blink/public/common/page/page_zoom.h"
-#include "ui/base/test/material_design_controller_test_api.h"
+#include "ui/base/material_design/material_design_controller.h"
 
 class LocationBarViewBrowserTest : public InProcessBrowserTest {
  public:
@@ -128,11 +128,10 @@
 
 class TouchLocationBarViewBrowserTest : public LocationBarViewBrowserTest {
  public:
-  TouchLocationBarViewBrowserTest() : test_api_(true) {}
+  TouchLocationBarViewBrowserTest() = default;
 
  private:
-  ui::test::MaterialDesignControllerTestAPI test_api_;
-  DISALLOW_COPY_AND_ASSIGN(TouchLocationBarViewBrowserTest);
+  ui::MaterialDesignController::TouchUiScoperForTesting touch_ui_scoper_{true};
 };
 
 // Test the corners of the OmniboxViewViews do not get drawn on top of the
diff --git a/chrome/browser/ui/views/media_router/cast_toolbar_button.cc b/chrome/browser/ui/views/media_router/cast_toolbar_button.cc
index f8533bb9..d657f92 100644
--- a/chrome/browser/ui/views/media_router/cast_toolbar_button.cc
+++ b/chrome/browser/ui/views/media_router/cast_toolbar_button.cc
@@ -191,8 +191,8 @@
                         GetIconColor(views::Button::STATE_DISABLED, &icon));
   // This icon is smaller than the touchable-UI expected 24dp, so we need to pad
   // the insets to match.
-  SetLayoutInsetDelta(
-      gfx::Insets(ui::MaterialDesignController::touch_ui() ? 4 : 0));
+  SetLayoutInsetDelta(gfx::Insets(
+      ui::MaterialDesignController::GetInstance()->touch_ui() ? 4 : 0));
 }
 
 MediaRouterActionController* CastToolbarButton::GetActionController() const {
diff --git a/chrome/browser/ui/views/native_file_system/native_file_system_directory_access_confirmation_view.cc b/chrome/browser/ui/views/native_file_system/native_file_system_directory_access_confirmation_view.cc
index 52573b6..79c892f 100644
--- a/chrome/browser/ui/views/native_file_system/native_file_system_directory_access_confirmation_view.cc
+++ b/chrome/browser/ui/views/native_file_system/native_file_system_directory_access_confirmation_view.cc
@@ -36,10 +36,11 @@
     const url::Origin& origin,
     const base::FilePath& path,
     base::OnceCallback<void(permissions::PermissionAction result)> callback,
-    content::WebContents* web_contents) {
+    content::WebContents* web_contents,
+    base::ScopedClosureRunner fullscreen_block) {
   auto delegate =
       base::WrapUnique(new NativeFileSystemDirectoryAccessConfirmationView(
-          origin, path, std::move(callback)));
+          origin, path, std::move(callback), std::move(fullscreen_block)));
   return constrained_window::ShowWebModalDialogViews(delegate.release(),
                                                      web_contents);
 }
@@ -78,8 +79,10 @@
     NativeFileSystemDirectoryAccessConfirmationView(
         const url::Origin& origin,
         const base::FilePath& path,
-        base::OnceCallback<void(permissions::PermissionAction result)> callback)
-    : callback_(std::move(callback)) {
+        base::OnceCallback<void(permissions::PermissionAction result)> callback,
+        base::ScopedClosureRunner fullscreen_block)
+    : callback_(std::move(callback)),
+      fullscreen_block_(std::move(fullscreen_block)) {
   DialogDelegate::set_button_label(
       ui::DIALOG_BUTTON_OK,
       l10n_util::GetStringUTF16(
@@ -121,7 +124,9 @@
     const url::Origin& origin,
     const base::FilePath& path,
     base::OnceCallback<void(permissions::PermissionAction result)> callback,
-    content::WebContents* web_contents) {
+    content::WebContents* web_contents,
+    base::ScopedClosureRunner fullscreen_block) {
   NativeFileSystemDirectoryAccessConfirmationView::ShowDialog(
-      origin, path, std::move(callback), web_contents);
+      origin, path, std::move(callback), web_contents,
+      std::move(fullscreen_block));
 }
diff --git a/chrome/browser/ui/views/native_file_system/native_file_system_directory_access_confirmation_view.h b/chrome/browser/ui/views/native_file_system/native_file_system_directory_access_confirmation_view.h
index a5bcb48..e8cda7e 100644
--- a/chrome/browser/ui/views/native_file_system/native_file_system_directory_access_confirmation_view.h
+++ b/chrome/browser/ui/views/native_file_system/native_file_system_directory_access_confirmation_view.h
@@ -5,6 +5,7 @@
 #ifndef CHROME_BROWSER_UI_VIEWS_NATIVE_FILE_SYSTEM_NATIVE_FILE_SYSTEM_DIRECTORY_ACCESS_CONFIRMATION_VIEW_H_
 #define CHROME_BROWSER_UI_VIEWS_NATIVE_FILE_SYSTEM_NATIVE_FILE_SYSTEM_DIRECTORY_ACCESS_CONFIRMATION_VIEW_H_
 
+#include "base/callback_helpers.h"
 #include "base/macros.h"
 #include "base/strings/string16.h"
 #include "components/permissions/permission_util.h"
@@ -40,7 +41,8 @@
       const url::Origin& origin,
       const base::FilePath& path,
       base::OnceCallback<void(permissions::PermissionAction result)> callback,
-      content::WebContents* web_contents);
+      content::WebContents* web_contents,
+      base::ScopedClosureRunner fullscreen_block);
 
   // views::DialogDelegateView:
   base::string16 GetWindowTitle() const override;
@@ -56,9 +58,11 @@
   NativeFileSystemDirectoryAccessConfirmationView(
       const url::Origin& origin,
       const base::FilePath& path,
-      base::OnceCallback<void(permissions::PermissionAction result)> callback);
+      base::OnceCallback<void(permissions::PermissionAction result)> callback,
+      base::ScopedClosureRunner fullscreen_block);
 
   base::OnceCallback<void(permissions::PermissionAction result)> callback_;
+  base::ScopedClosureRunner fullscreen_block_;
 
   DISALLOW_COPY_AND_ASSIGN(NativeFileSystemDirectoryAccessConfirmationView);
 };
diff --git a/chrome/browser/ui/views/native_file_system/native_file_system_directory_access_confirmation_view_browsertest.cc b/chrome/browser/ui/views/native_file_system/native_file_system_directory_access_confirmation_view_browsertest.cc
index 38bf658f..e3ab43e 100644
--- a/chrome/browser/ui/views/native_file_system/native_file_system_directory_access_confirmation_view_browsertest.cc
+++ b/chrome/browser/ui/views/native_file_system/native_file_system_directory_access_confirmation_view_browsertest.cc
@@ -23,7 +23,8 @@
           callback_called_ = true;
           callback_result_ = result;
         }),
-        browser()->tab_strip_model()->GetActiveWebContents());
+        browser()->tab_strip_model()->GetActiveWebContents(),
+        base::ScopedClosureRunner());
   }
 
  protected:
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 dd4f29c..d9e6ac88 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_match_cell_view.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_match_cell_view.cc
@@ -155,7 +155,7 @@
 
 // static
 int OmniboxMatchCellView::GetTextIndent() {
-  return ui::MaterialDesignController::touch_ui() ? 51 : 47;
+  return ui::MaterialDesignController::GetInstance()->touch_ui() ? 51 : 47;
 }
 
 void OmniboxMatchCellView::OnMatchUpdate(const OmniboxResultView* result_view,
diff --git a/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc b/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc
index 272588fa..fb8fc5c 100644
--- a/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc
+++ b/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc
@@ -204,8 +204,9 @@
 
 // static
 gfx::Insets RoundedOmniboxResultsFrame::GetLocationBarAlignmentInsets() {
-  return ui::MaterialDesignController::touch_ui() ? gfx::Insets(6, 1, 5, 1)
-                                                  : gfx::Insets(4, 6);
+  return ui::MaterialDesignController::GetInstance()->touch_ui()
+             ? gfx::Insets(6, 1, 5, 1)
+             : gfx::Insets(4, 6);
 }
 
 // static
diff --git a/chrome/browser/ui/views/page_action/page_action_icon_controller.cc b/chrome/browser/ui/views/page_action/page_action_icon_controller.cc
index 14839b9c..ab0da7f 100644
--- a/chrome/browser/ui/views/page_action/page_action_icon_controller.cc
+++ b/chrome/browser/ui/views/page_action/page_action_icon_controller.cc
@@ -260,6 +260,12 @@
     zoom_icon_->ZoomChangedForActiveTab(can_show_bubble);
 }
 
+std::vector<const PageActionIconView*>
+PageActionIconController::GetPageActionIconViewsForTesting() const {
+  return std::vector<const PageActionIconView*>(page_action_icons_.begin(),
+                                                page_action_icons_.end());
+}
+
 void PageActionIconController::OnDefaultZoomLevelChanged() {
   ZoomChangedForActiveTab(false);
 }
diff --git a/chrome/browser/ui/views/page_action/page_action_icon_controller.h b/chrome/browser/ui/views/page_action/page_action_icon_controller.h
index a086dc57..6aa2bd4 100644
--- a/chrome/browser/ui/views/page_action/page_action_icon_controller.h
+++ b/chrome/browser/ui/views/page_action/page_action_icon_controller.h
@@ -70,6 +70,9 @@
   // See comment in browser_window.h for more info.
   void ZoomChangedForActiveTab(bool can_show_bubble);
 
+  std::vector<const PageActionIconView*> GetPageActionIconViewsForTesting()
+      const;
+
  private:
   // ZoomEventManagerObserver:
   // Updates the view for the zoom icon when default zoom levels change.
diff --git a/chrome/browser/ui/views/page_action/page_action_icon_view.cc b/chrome/browser/ui/views/page_action/page_action_icon_view.cc
index 12a3a2b..ba581d9 100644
--- a/chrome/browser/ui/views/page_action/page_action_icon_view.cc
+++ b/chrome/browser/ui/views/page_action/page_action_icon_view.cc
@@ -30,10 +30,9 @@
   return GetOmniboxStateOpacity(OmniboxPartState::SELECTED);
 }
 
-std::unique_ptr<views::Border>
-PageActionIconView::Delegate::CreatePageActionIconBorder() const {
-  return views::CreateEmptyBorder(
-      GetLayoutInsets(LOCATION_BAR_ICON_INTERIOR_PADDING));
+gfx::Insets PageActionIconView::Delegate::GetPageActionIconInsets(
+    const PageActionIconView* icon_view) const {
+  return GetLayoutInsets(LOCATION_BAR_ICON_INTERIOR_PADDING);
 }
 
 bool PageActionIconView::Delegate::IsLocationBarUserInputInProgress() const {
@@ -104,8 +103,10 @@
 void PageActionIconView::ViewHierarchyChanged(
     const views::ViewHierarchyChangedDetails& details) {
   View::ViewHierarchyChanged(details);
-  if (details.is_add && details.child == this && GetNativeTheme())
+  if (details.is_add && details.child == this && GetNativeTheme()) {
     UpdateIconImage();
+    UpdateBorder();
+  }
 }
 
 void PageActionIconView::OnThemeChanged() {
@@ -239,5 +240,7 @@
 }
 
 void PageActionIconView::UpdateBorder() {
-  SetBorder(delegate_->CreatePageActionIconBorder());
+  const gfx::Insets new_insets = delegate_->GetPageActionIconInsets(this);
+  if (new_insets != GetInsets())
+    SetBorder(views::CreateEmptyBorder(new_insets));
 }
diff --git a/chrome/browser/ui/views/page_action/page_action_icon_view.h b/chrome/browser/ui/views/page_action/page_action_icon_view.h
index 1fc7cdd8..79ef47c 100644
--- a/chrome/browser/ui/views/page_action/page_action_icon_view.h
+++ b/chrome/browser/ui/views/page_action/page_action_icon_view.h
@@ -45,9 +45,9 @@
 
     virtual content::WebContents* GetWebContentsForPageActionIconView() = 0;
 
-    // Returns the border the icon should use. It depends on what kind of
-    // delegate this icon has.
-    virtual std::unique_ptr<views::Border> CreatePageActionIconBorder() const;
+    // Returns the size of the insets in which the icon should draw its inkdrop.
+    virtual gfx::Insets GetPageActionIconInsets(
+        const PageActionIconView* icon_view) const;
 
     // Delegate should override and return true when the user is editing the
     // location bar contents.
diff --git a/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc b/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc
index f90e54a..93e72b8 100644
--- a/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc
+++ b/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc
@@ -244,7 +244,7 @@
 gfx::ImageSkia AvatarToolbarButton::GetAvatarIcon(
     ButtonState state,
     const gfx::Image& gaia_account_image) const {
-  const int icon_size = ui::MaterialDesignController::touch_ui()
+  const int icon_size = ui::MaterialDesignController::GetInstance()->touch_ui()
                             ? kDefaultTouchableIconSize
                             : kIconSizeForNonTouchUi;
   SkColor icon_color = GetForegroundColor(state);
@@ -274,9 +274,8 @@
 void AvatarToolbarButton::SetInsets() {
   // In non-touch mode we use a larger-than-normal icon size for avatars so we
   // need to compensate it by smaller insets.
-  gfx::Insets layout_insets(ui::MaterialDesignController::touch_ui()
-                                ? 0
-                                : (kDefaultIconSize - kIconSizeForNonTouchUi) /
-                                      2);
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
+  gfx::Insets layout_insets(
+      touch_ui ? 0 : (kDefaultIconSize - kIconSizeForNonTouchUi) / 2);
   SetLayoutInsetDelta(layout_insets);
 }
diff --git a/chrome/browser/ui/views/reader_mode/reader_mode_icon_view.cc b/chrome/browser/ui/views/reader_mode/reader_mode_icon_view.cc
index 5ae64e7f..00a8452 100644
--- a/chrome/browser/ui/views/reader_mode/reader_mode_icon_view.cc
+++ b/chrome/browser/ui/views/reader_mode/reader_mode_icon_view.cc
@@ -11,8 +11,11 @@
 #include "components/dom_distiller/core/uma_helper.h"
 #include "components/dom_distiller/core/url_utils.h"
 #include "components/prefs/pref_service.h"
+#include "components/ukm/content/source_url_recorder.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
+#include "services/metrics/public/cpp/ukm_builders.h"
+#include "services/metrics/public/cpp/ukm_recorder.h"
 #include "ui/base/l10n/l10n_util.h"
 
 using dom_distiller::url_utils::IsDistilledPage;
@@ -108,9 +111,24 @@
     dom_distiller::UMAHelper::RecordReaderModeEntry(
         dom_distiller::UMAHelper::ReaderModeEntryPoint::kOmniboxIcon);
   }
+
+  content::WebContents* contents = GetWebContents();
+  if (!contents || IsDistilledPage(contents->GetLastCommittedURL()))
+    return;
+  ukm::SourceId source_id = ukm::GetSourceIdForWebContentsDocument(contents);
+  ukm::builders::ReaderModeActivated(source_id)
+      .SetActivatedViaOmnibox(true)
+      .Record(ukm::UkmRecorder::Get());
 }
 
 void ReaderModeIconView::OnResult(
     const dom_distiller::DistillabilityResult& result) {
+  content::WebContents* contents = GetWebContents();
+  if (contents && result.is_last) {
+    ukm::SourceId source_id = ukm::GetSourceIdForWebContentsDocument(contents);
+    ukm::builders::ReaderModeReceivedDistillability(source_id)
+        .SetIsPageDistillable(result.is_distillable)
+        .Record(ukm::UkmRecorder::Get());
+  }
   Update();
 }
diff --git a/chrome/browser/ui/views/reader_mode/reader_mode_icon_view.h b/chrome/browser/ui/views/reader_mode/reader_mode_icon_view.h
index 45df46b1..8e69531c 100644
--- a/chrome/browser/ui/views/reader_mode/reader_mode_icon_view.h
+++ b/chrome/browser/ui/views/reader_mode/reader_mode_icon_view.h
@@ -42,11 +42,11 @@
   const gfx::VectorIcon& GetVectorIcon() const override;
   base::string16 GetTextForTooltipAndAccessibleName() const override;
   const char* GetClassName() const override;
+  void OnExecuting(PageActionIconView::ExecuteSource execute_source) override;
 
   // GetBubble() is required by PageActionIconView; however, the icon
   // intentionally does not display a bubble when activated.
   views::BubbleDialogDelegateView* GetBubble() const override;
-  void OnExecuting(PageActionIconView::ExecuteSource execute_source) override;
 
   void OnResult(const dom_distiller::DistillabilityResult& result) override;
 
diff --git a/chrome/browser/ui/views/status_bubble_views.cc b/chrome/browser/ui/views/status_bubble_views.cc
index 1f9acf5f..38754d0 100644
--- a/chrome/browser/ui/views/status_bubble_views.cc
+++ b/chrome/browser/ui/views/status_bubble_views.cc
@@ -785,11 +785,6 @@
       size_.width() - (kShadowThickness + kTextHorizPadding) * 2 - 1);
   url_text_ = url_formatter::ElideUrl(url, GetFont(), text_width);
 
-  // An URL is always treated as a left-to-right string. On right-to-left UIs
-  // we need to explicitly mark the URL as LTR to make sure it is displayed
-  // correctly.
-  url_text_ = base::i18n::GetDisplayStringInLTRDirectionality(url_text_);
-
   // Get the width of the URL if the bubble width is the maximum size.
   base::string16 full_size_elided_url =
       url_formatter::ElideUrl(url, GetFont(), GetMaxStatusBubbleWidth());
@@ -827,7 +822,11 @@
                          expand_timer_factory_.GetWeakPtr()),
           base::TimeDelta::FromMilliseconds(kExpandHoverDelayMS));
     }
-    view_->SetText(url_text_, true);
+    // An URL is always treated as a left-to-right string. On right-to-left UIs
+    // we need to explicitly mark the URL as LTR to make sure it is displayed
+    // correctly.
+    view_->SetText(base::i18n::GetDisplayStringInLTRDirectionality(url_text_),
+                   true);
   }
 }
 
diff --git a/chrome/browser/ui/views/tabs/alert_indicator.cc b/chrome/browser/ui/views/tabs/alert_indicator.cc
index 798365b9..e7e5417 100644
--- a/chrome/browser/ui/views/tabs/alert_indicator.cc
+++ b/chrome/browser/ui/views/tabs/alert_indicator.cc
@@ -81,7 +81,7 @@
                                      SkColor button_color) {
   const gfx::VectorIcon* icon = nullptr;
   int image_width = GetLayoutConstant(TAB_ALERT_INDICATOR_ICON_WIDTH);
-  const bool touch_ui = ui::MaterialDesignController::touch_ui();
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
   switch (alert_state) {
     case TabAlertState::AUDIO_PLAYING:
       icon = touch_ui ? &kTabAudioRoundedIcon : &kTabAudioIcon;
diff --git a/chrome/browser/ui/views/tabs/new_tab_button.cc b/chrome/browser/ui/views/tabs/new_tab_button.cc
index 0d6d21a9..ec08579 100644
--- a/chrome/browser/ui/views/tabs/new_tab_button.cc
+++ b/chrome/browser/ui/views/tabs/new_tab_button.cc
@@ -282,7 +282,8 @@
   constexpr int kStrokeWidth = 2;
   flags.setStrokeWidth(kStrokeWidth);
 
-  const int radius = ui::MaterialDesignController::touch_ui() ? 7 : 6;
+  const int radius =
+      ui::MaterialDesignController::GetInstance()->touch_ui() ? 7 : 6;
   const int offset = GetCornerRadius() - radius;
   // The cap will be added outside the end of the stroke; inset to compensate.
   constexpr int kCapRadius = kStrokeWidth / 2;
diff --git a/chrome/browser/ui/views/tabs/tab.cc b/chrome/browser/ui/views/tabs/tab.cc
index a3f799d..a7993f33 100644
--- a/chrome/browser/ui/views/tabs/tab.cc
+++ b/chrome/browser/ui/views/tabs/tab.cc
@@ -362,7 +362,7 @@
     if (showing_close_button_) {
       right = close_x;
       if (extra_alert_indicator_padding_)
-        right -= MD::touch_ui() ? 8 : 6;
+        right -= MD::GetInstance()->touch_ui() ? 8 : 6;
     }
     const gfx::Size image_size = alert_indicator_->GetPreferredSize();
     gfx::Rect bounds(
@@ -948,7 +948,7 @@
 
   int available_width = GetContentsBounds().width();
 
-  const bool touch_ui = MD::touch_ui();
+  const bool touch_ui = MD::GetInstance()->touch_ui();
   const int favicon_width = gfx::kFaviconSize;
   const int alert_icon_width = alert_indicator_->GetPreferredSize().width();
   // In case of touch optimized UI, the close button has an extra padding on the
diff --git a/chrome/browser/ui/views/tabs/tab_close_button.cc b/chrome/browser/ui/views/tabs/tab_close_button.cc
index cda83d0..b5accb0 100644
--- a/chrome/browser/ui/views/tabs/tab_close_button.cc
+++ b/chrome/browser/ui/views/tabs/tab_close_button.cc
@@ -82,8 +82,9 @@
 
 // static
 int TabCloseButton::GetWidth() {
-  return ui::MaterialDesignController::touch_ui() ? kTouchGlyphWidth
-                                                  : kGlyphWidth;
+  return ui::MaterialDesignController::GetInstance()->touch_ui()
+             ? kTouchGlyphWidth
+             : kGlyphWidth;
 }
 
 void TabCloseButton::SetIconColors(SkColor foreground_color,
diff --git a/chrome/browser/ui/views/tabs/tab_strip.cc b/chrome/browser/ui/views/tabs/tab_strip.cc
index 6349d34d..f472640a 100644
--- a/chrome/browser/ui/views/tabs/tab_strip.cc
+++ b/chrome/browser/ui/views/tabs/tab_strip.cc
@@ -267,7 +267,8 @@
 }
 
 int GetStackableTabWidth() {
-  return TabStyle::GetTabOverlap() + (MD::touch_ui() ? 136 : 102);
+  return TabStyle::GetTabOverlap() +
+         (MD::GetInstance()->touch_ui() ? 136 : 102);
 }
 
 }  // namespace
@@ -1908,25 +1909,13 @@
   if (active == TabActive::kActive)
     return tp->GetColor(ThemeProperties::COLOR_TOOLBAR);
 
-  bool is_active_frame;
-  if (active_state == BrowserFrameActiveState::kUseCurrent)
-    is_active_frame = ShouldPaintAsActiveFrame();
-  else
-    is_active_frame = active_state == BrowserFrameActiveState::kActive;
-
-  const int color_id = is_active_frame
-                           ? ThemeProperties::COLOR_BACKGROUND_TAB
-                           : ThemeProperties::COLOR_BACKGROUND_TAB_INACTIVE;
-  // When the background tab color has not been customized, use the actual frame
-  // color instead of COLOR_BACKGROUND_TAB.
-  const SkColor frame = controller_->GetFrameColor(active_state);
-  const SkColor background =
-      tp->HasCustomColor(color_id)
-          ? tp->GetColor(color_id)
-          : color_utils::HSLShift(
-                frame, tp->GetTint(ThemeProperties::TINT_BACKGROUND_TAB));
-
-  return background;
+  using State = BrowserFrameActiveState;
+  const bool is_active_frame =
+      (active_state == State::kActive) ||
+      ((active_state == State::kUseCurrent) && ShouldPaintAsActiveFrame());
+  return tp->GetColor(is_active_frame
+                          ? ThemeProperties::COLOR_BACKGROUND_TAB
+                          : ThemeProperties::COLOR_BACKGROUND_TAB_INACTIVE);
 }
 
 SkColor TabStrip::GetTabForegroundColor(TabActive active,
diff --git a/chrome/browser/ui/views/tabs/tab_strip_unittest.cc b/chrome/browser/ui/views/tabs/tab_strip_unittest.cc
index 982dee4b1..9e0d962 100644
--- a/chrome/browser/ui/views/tabs/tab_strip_unittest.cc
+++ b/chrome/browser/ui/views/tabs/tab_strip_unittest.cc
@@ -30,7 +30,6 @@
 #include "components/tab_groups/tab_group_id.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/base/material_design/material_design_controller.h"
-#include "ui/base/test/material_design_controller_test_api.h"
 #include "ui/events/base_event_utils.h"
 #include "ui/gfx/animation/animation_test_api.h"
 #include "ui/gfx/canvas.h"
@@ -128,7 +127,7 @@
                      public testing::WithParamInterface<bool> {
  public:
   TabStripTest()
-      : test_api_(GetParam()),
+      : touch_ui_scoper_(GetParam()),
         animation_mode_reset_(gfx::AnimationTestApi::SetRichAnimationRenderMode(
             gfx::Animation::RichAnimationRenderMode::FORCE_ENABLED)) {}
 
@@ -268,7 +267,7 @@
                                                0);
 
  private:
-  ui::test::MaterialDesignControllerTestAPI test_api_;
+  ui::MaterialDesignController::TouchUiScoperForTesting touch_ui_scoper_;
   std::unique_ptr<base::AutoReset<gfx::Animation::RichAnimationRenderMode>>
       animation_mode_reset_;
 
@@ -525,7 +524,7 @@
 // the tabstrip is in stacked tab mode.
 TEST_P(TabStripTest, TabCloseButtonVisibilityWhenStacked) {
   // Touch-optimized UI requires a larger width for tabs to show close buttons.
-  const bool touch_ui = ui::MaterialDesignController::touch_ui();
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
   tab_strip_->SetBounds(0, 0, touch_ui ? 442 : 346, 20);
   controller_->AddTab(0, false);
   controller_->AddTab(1, true);
@@ -597,7 +596,7 @@
   // Set the tab strip width to be wide enough for three tabs to show all
   // three icons, but not enough for five tabs to show all three icons.
   // Touch-optimized UI requires a larger width for tabs to show close buttons.
-  const bool touch_ui = ui::MaterialDesignController::touch_ui();
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
   tab_strip_->SetBounds(0, 0, touch_ui ? 442 : 346, 20);
   controller_->AddTab(0, false);
   controller_->AddTab(1, true);
@@ -1292,7 +1291,8 @@
   Tab* tab = tab_strip_->tab_at(0);
   const int initial_height = tab->height();
 
-  ui::test::MaterialDesignControllerTestAPI other_layout(!GetParam());
+  ui::MaterialDesignController::TouchUiScoperForTesting other_layout(
+      !GetParam());
 
   CompleteAnimationAndLayout();
   if (GetParam()) {
diff --git a/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc b/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc
index afb988a..486e4ca 100644
--- a/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc
+++ b/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc
@@ -259,7 +259,7 @@
 }
 
 void BrowserAppMenuButton::UpdateIcon() {
-  bool touch_ui = ui::MaterialDesignController::touch_ui();
+  bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
   if (base::FeatureList::IsEnabled(features::kUseTextForUpdateButton)) {
     const gfx::VectorIcon& icon =
         touch_ui ? kBrowserToolsTouchIcon : kBrowserToolsIcon;
diff --git a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc
index 346ed94..f48295a6 100644
--- a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc
+++ b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc
@@ -6,6 +6,7 @@
 
 #include "base/bind.h"
 #include "base/location.h"
+#include "base/optional.h"
 #include "base/single_thread_task_runner.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/time/time.h"
@@ -37,7 +38,7 @@
 
   // Use a transparent background so that the menu's background shows through.
   // None of the children use layers, so this should be ok.
-  SetBackgroundColor(SK_ColorTRANSPARENT);
+  SetBackgroundColor(base::nullopt);
   BrowserActionsContainer* main =
       toolbar_button_provider->GetBrowserActionsContainer();
   auto container = std::make_unique<BrowserActionsContainer>(browser_, main,
diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/ui/views/toolbar/reload_button.cc
index e309bdbf..093a35f3 100644
--- a/chrome/browser/ui/views/toolbar/reload_button.cc
+++ b/chrome/browser/ui/views/toolbar/reload_button.cc
@@ -37,10 +37,12 @@
 
 const gfx::VectorIcon& GetIconForMode(ReloadButton::IconStyle icon_style,
                                       bool is_reload) {
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
+
 #if defined(OS_WIN)
   if (icon_style == ReloadButton::IconStyle::kMinimalUi &&
       UseWindowsIconsForMinimalUI()) {
-    if (ui::MaterialDesignController::touch_ui()) {
+    if (touch_ui) {
       return is_reload ? kReloadWindowsTouchIcon
                        : kNavigateStopWindowsTouchIcon;
     }
@@ -49,7 +51,7 @@
   }
 #endif
 
-  if (ui::MaterialDesignController::touch_ui())
+  if (touch_ui)
     return is_reload ? kReloadTouchIcon : kNavigateStopTouchIcon;
 
   return is_reload ? vector_icons::kReloadIcon : kNavigateStopIcon;
diff --git a/chrome/browser/ui/views/toolbar/toolbar_account_icon_container_view.cc b/chrome/browser/ui/views/toolbar/toolbar_account_icon_container_view.cc
index 42e783d..458f06d 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_account_icon_container_view.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_account_icon_container_view.cc
@@ -94,12 +94,12 @@
   return browser_->tab_strip_model()->GetActiveWebContents();
 }
 
-std::unique_ptr<views::Border>
-ToolbarAccountIconContainerView::CreatePageActionIconBorder() const {
-  // With this border, the icon will have the same ink drop shape as toolbar
-  // buttons.
-  return views::CreateEmptyBorder(ChromeLayoutProvider::Get()->GetInsetsMetric(
-      views::InsetsMetric::INSETS_LABEL_BUTTON));
+gfx::Insets ToolbarAccountIconContainerView::GetPageActionIconInsets(
+    const PageActionIconView* icon_view) const {
+  // Ideally, the icon should have the same ink drop shape as toolbar buttons.
+  // TODO(crbug.com/1060250): fix actual inkdrop shape.
+  return ChromeLayoutProvider::Get()->GetInsetsMetric(
+      views::InsetsMetric::INSETS_LABEL_BUTTON);
 }
 
 void ToolbarAccountIconContainerView::OnThemeChanged() {
diff --git a/chrome/browser/ui/views/toolbar/toolbar_account_icon_container_view.h b/chrome/browser/ui/views/toolbar/toolbar_account_icon_container_view.h
index 10f7192..711c693a 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_account_icon_container_view.h
+++ b/chrome/browser/ui/views/toolbar/toolbar_account_icon_container_view.h
@@ -39,7 +39,8 @@
   // PageActionIconView::Delegate:
   float GetPageActionInkDropVisibleOpacity() const override;
   content::WebContents* GetWebContentsForPageActionIconView() override;
-  std::unique_ptr<views::Border> CreatePageActionIconBorder() const override;
+  gfx::Insets GetPageActionIconInsets(
+      const PageActionIconView* icon_view) const override;
 
   // views::View:
   void OnThemeChanged() override;
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc
index abaf5c0..942017c1 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -921,7 +921,7 @@
         ThemeProperties::COLOR_TOOLBAR_VERTICAL_SEPARATOR));
   }
 
-  const bool touch_ui = ui::MaterialDesignController::touch_ui();
+  const bool touch_ui = ui::MaterialDesignController::GetInstance()->touch_ui();
 
   const gfx::VectorIcon& back_image =
       touch_ui ? kBackArrowTouchIcon : vector_icons::kBackArrowIcon;
diff --git a/chrome/browser/ui/views/web_apps/web_app_frame_toolbar_browsertest.cc b/chrome/browser/ui/views/web_apps/web_app_frame_toolbar_browsertest.cc
index 6b2e8a2..2d39bc376 100644
--- a/chrome/browser/ui/views/web_apps/web_app_frame_toolbar_browsertest.cc
+++ b/chrome/browser/ui/views/web_apps/web_app_frame_toolbar_browsertest.cc
@@ -16,6 +16,7 @@
 #include "chrome/browser/ui/views/frame/browser_non_client_frame_view.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/views/frame/toolbar_button_provider.h"
+#include "chrome/browser/ui/views/page_action/page_action_icon_controller.h"
 #include "chrome/browser/ui/views/web_apps/web_app_frame_toolbar_view.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_observer.h"
@@ -37,6 +38,16 @@
 constexpr double kTitlePaddingWidthFraction = 0.1;
 #endif
 
+template <typename T>
+T* GetLastVisible(const std::vector<T*>& views) {
+  T* visible = nullptr;
+  for (auto* view : views) {
+    if (view->GetVisible())
+      visible = view;
+  }
+  return visible;
+}
+
 }  // namespace
 
 class WebAppFrameToolbarBrowserTest : public WebAppFrameToolbarTest {
@@ -77,9 +88,12 @@
       web_app_frame_toolbar()->GetRightContainerForTesting();
   EXPECT_EQ(toolbar_right_container->parent(), web_app_frame_toolbar());
 
-  views::View* const page_action_icon_container =
-      web_app_frame_toolbar()->GetPageActionIconContainerForTesting();
-  EXPECT_EQ(page_action_icon_container->parent(), toolbar_right_container);
+  std::vector<const PageActionIconView*> page_actions =
+      web_app_frame_toolbar()
+          ->GetPageActionIconControllerForTesting()
+          ->GetPageActionIconViewsForTesting();
+  for (const PageActionIconView* action : page_actions)
+    EXPECT_EQ(action->parent(), toolbar_right_container);
 
   views::View* const menu_button =
       browser_view()->toolbar_button_provider()->GetAppMenuButton();
@@ -98,7 +112,7 @@
 #endif
 
   // Initially the page action icons are not visible.
-  EXPECT_EQ(page_action_icon_container->width(), 0);
+  EXPECT_EQ(GetLastVisible(page_actions), nullptr);
   const int original_menu_button_width = menu_button->width();
   EXPECT_GT(original_menu_button_width, 0);
 
@@ -121,14 +135,14 @@
   EXPECT_LT(window_title->width(), original_window_title_width);
 #endif
 
-  EXPECT_GT(page_action_icon_container->width(), 0);
+  EXPECT_NE(GetLastVisible(page_actions), nullptr);
   EXPECT_EQ(menu_button->width(), original_menu_button_width);
 
   // Resize the WebAppFrameToolbarView just enough to clip out the page action
   // icons (and toolbar contents left of them).
   const int original_toolbar_width = web_app_frame_toolbar()->width();
   const int new_toolbar_width = toolbar_right_container->width() -
-                                page_action_icon_container->bounds().right();
+                                GetLastVisible(page_actions)->bounds().right();
   const int new_frame_width =
       frame_view()->width() - original_toolbar_width + new_toolbar_width;
 
@@ -146,7 +160,7 @@
 
   // The page action icons should be hidden while the app menu button retains
   // its full width.
-  EXPECT_FALSE(page_action_icon_container->GetVisible());
+  EXPECT_EQ(GetLastVisible(page_actions), nullptr);
   EXPECT_EQ(menu_button->width(), original_menu_button_width);
 }
 
diff --git a/chrome/browser/ui/views/web_apps/web_app_frame_toolbar_view.cc b/chrome/browser/ui/views/web_apps/web_app_frame_toolbar_view.cc
index 30124c46..3533322 100644
--- a/chrome/browser/ui/views/web_apps/web_app_frame_toolbar_view.cc
+++ b/chrome/browser/ui/views/web_apps/web_app_frame_toolbar_view.cc
@@ -272,7 +272,8 @@
     const SkColor disabled_color =
         SkColorSetA(icon_color_, gfx::kDisabledControlAlpha);
 
-    const bool touch_ui = ui::MaterialDesignController::touch_ui();
+    const bool touch_ui =
+        ui::MaterialDesignController::GetInstance()->touch_ui();
     const gfx::VectorIcon& back_image = GetBackImage(touch_ui);
     back_button_->SetImage(views::Button::STATE_NORMAL,
                            gfx::CreateVectorIcon(back_image, icon_color_));
@@ -370,15 +371,18 @@
       public ContentSettingImageView::Delegate,
       public ImmersiveModeController::Observer,
       public PageActionIconView::Delegate,
+      public PageActionIconContainer,
       public views::WidgetObserver {
  public:
-  ToolbarButtonContainer(views::Widget* widget, BrowserView* browser_view);
+  ToolbarButtonContainer(views::Widget* widget,
+                         BrowserView* browser_view,
+                         ToolbarButtonProvider* toolbar_button_provider);
   ~ToolbarButtonContainer() override;
 
   void UpdateStatusIconsVisibility() {
     if (content_settings_container_)
       content_settings_container_->UpdateContentSettingViewsVisibility();
-    page_action_icon_container_view_->controller()->UpdateAll();
+    page_action_icon_controller_->UpdateAll();
   }
 
   void SetColors(SkColor foreground_color, SkColor background_color) {
@@ -390,8 +394,7 @@
       content_settings_container_->SetIconColor(foreground_color_);
     if (extensions_container_)
       extensions_container_->OverrideIconColor(foreground_color_);
-    page_action_icon_container_view_->controller()->SetIconColor(
-        foreground_color_);
+    page_action_icon_controller_->SetIconColor(foreground_color_);
     web_app_menu_button_->SetColor(foreground_color_);
   }
 
@@ -417,8 +420,8 @@
     return content_settings_container_;
   }
 
-  PageActionIconContainerView* page_action_icon_container_view() {
-    return page_action_icon_container_view_;
+  PageActionIconController* page_action_icon_controller() {
+    return page_action_icon_controller_.get();
   }
 
   BrowserActionsContainer* browser_actions_container() {
@@ -432,6 +435,26 @@
   WebAppMenuButton* web_app_menu_button() { return web_app_menu_button_; }
 
  private:
+  // PageActionIconContainer:
+  void AddPageActionIcon(views::View* icon) override {
+    AddChildViewAt(icon, page_action_insertion_point_++);
+    views::SetHitTestComponent(icon, static_cast<int>(HTCLIENT));
+  }
+
+  // PageActionIconView::Delegate:
+  gfx::Insets GetPageActionIconInsets(
+      const PageActionIconView* icon_view) const override {
+    const int icon_size =
+        icon_view->GetImageView()->GetPreferredSize().height();
+    if (icon_size == 0)
+      return gfx::Insets();
+
+    const int height =
+        toolbar_button_provider_->GetToolbarButtonSize().height();
+    const int inset_size = std::max(0, (height - icon_size) / 2);
+    return gfx::Insets(inset_size);
+  }
+
   // Methods for coordinate the titlebar animation (origin text slide, menu
   // highlight and icon fade in).
   bool ShouldAnimate() const {
@@ -529,14 +552,17 @@
 
   // The containing browser view.
   BrowserView* const browser_view_;
+  ToolbarButtonProvider* const toolbar_button_provider_;
 
   SkColor foreground_color_ = gfx::kPlaceholderColor;
   SkColor background_color_ = gfx::kPlaceholderColor;
 
+  std::unique_ptr<PageActionIconController> page_action_icon_controller_;
+  int page_action_insertion_point_ = 0;
+
   // All remaining members are owned by the views hierarchy.
   WebAppOriginText* web_app_origin_text_ = nullptr;
   ContentSettingsContainer* content_settings_container_ = nullptr;
-  PageActionIconContainerView* page_action_icon_container_view_ = nullptr;
   BrowserActionsContainer* browser_actions_container_ = nullptr;
   ExtensionsToolbarContainer* extensions_container_ = nullptr;
   WebAppMenuButton* web_app_menu_button_ = nullptr;
@@ -544,8 +570,12 @@
 
 WebAppFrameToolbarView::ToolbarButtonContainer::ToolbarButtonContainer(
     views::Widget* widget,
-    BrowserView* browser_view)
-    : browser_view_(browser_view) {
+    BrowserView* browser_view,
+    ToolbarButtonProvider* toolbar_button_provider)
+    : browser_view_(browser_view),
+      toolbar_button_provider_(toolbar_button_provider),
+      page_action_icon_controller_(
+          std::make_unique<PageActionIconController>()) {
   views::FlexLayout* const layout =
       SetLayoutManager(std::make_unique<views::FlexLayout>());
   layout->SetOrientation(views::LayoutOrientation::kHorizontal)
@@ -578,6 +608,10 @@
                                static_cast<int>(HTCLIENT));
   }
 
+  // This is the point where we will be inserting page action icons.
+  page_action_insertion_point_ = int{children().size()};
+
+  // Insert the default page action icons.
   PageActionIconParams params;
   params.types_enabled.push_back(PageActionIconType::kFind);
   params.types_enabled.push_back(PageActionIconType::kManagePasswords);
@@ -596,10 +630,7 @@
   params.command_updater = browser_view_->browser()->command_controller();
   params.icon_label_bubble_delegate = this;
   params.page_action_icon_delegate = this;
-  page_action_icon_container_view_ =
-      AddChildView(std::make_unique<PageActionIconContainerView>(params));
-  views::SetHitTestComponent(page_action_icon_container_view_,
-                             static_cast<int>(HTCLIENT));
+  page_action_icon_controller_->Init(params, this);
 
   // Extensions toolbar area with pinned extensions is lower priority than, for
   // example, the menu button or other toolbar buttons, and pinned extensions
@@ -715,7 +746,7 @@
           .WithOrder(3));
 
   right_container_ = AddChildView(
-      std::make_unique<ToolbarButtonContainer>(widget, browser_view));
+      std::make_unique<ToolbarButtonContainer>(widget, browser_view, this));
   right_container_->web_app_menu_button()->SetMinSize(GetToolbarButtonSize());
   right_container_->SetProperty(
       views::kFlexBehaviorKey,
@@ -815,9 +846,7 @@
 
 PageActionIconView* WebAppFrameToolbarView::GetPageActionIconView(
     PageActionIconType type) {
-  return right_container_->page_action_icon_container_view()
-      ->controller()
-      ->GetIconView(type);
+  return right_container_->page_action_icon_controller()->GetIconView(type);
 }
 
 AppMenuButton* WebAppFrameToolbarView::GetAppMenuButton() {
@@ -859,9 +888,8 @@
 }
 
 void WebAppFrameToolbarView::ZoomChangedForActiveTab(bool can_show_bubble) {
-  right_container_->page_action_icon_container_view()
-      ->controller()
-      ->ZoomChangedForActiveTab(can_show_bubble);
+  right_container_->page_action_icon_controller()->ZoomChangedForActiveTab(
+      can_show_bubble);
 }
 
 AvatarToolbarButton* WebAppFrameToolbarView::GetAvatarToolbarButton() {
@@ -888,8 +916,9 @@
   return right_container_;
 }
 
-views::View* WebAppFrameToolbarView::GetPageActionIconContainerForTesting() {
-  return right_container_->page_action_icon_container_view();
+PageActionIconController*
+WebAppFrameToolbarView::GetPageActionIconControllerForTesting() {
+  return right_container_->page_action_icon_controller();
 }
 
 const char* WebAppFrameToolbarView::GetClassName() const {
diff --git a/chrome/browser/ui/views/web_apps/web_app_frame_toolbar_view.h b/chrome/browser/ui/views/web_apps/web_app_frame_toolbar_view.h
index b760e88c..90bf9d2 100644
--- a/chrome/browser/ui/views/web_apps/web_app_frame_toolbar_view.h
+++ b/chrome/browser/ui/views/web_apps/web_app_frame_toolbar_view.h
@@ -23,6 +23,7 @@
 
 class BrowserView;
 class ContentSettingImageView;
+class PageActionIconController;
 
 #if defined(OS_MACOSX)
 constexpr int kWebAppMenuMargin = 7;
@@ -87,7 +88,7 @@
   static void DisableAnimationForTesting();
   views::View* GetLeftContainerForTesting();
   views::View* GetRightContainerForTesting();
-  views::View* GetPageActionIconContainerForTesting();
+  PageActionIconController* GetPageActionIconControllerForTesting();
 
  protected:
   // views::AccessiblePaneView:
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
index d273a9d..cfec2560a 100644
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -18,6 +18,7 @@
 #include "chrome/browser/buildflags.h"
 #include "chrome/browser/devtools/devtools_ui_bindings.h"
 #include "chrome/browser/engagement/site_engagement_service.h"
+#include "chrome/browser/media/feeds/media_feeds_service.h"
 #include "chrome/browser/media/history/media_history_keyed_service.h"
 #include "chrome/browser/media/media_engagement_service.h"
 #include "chrome/browser/profiles/profile.h"
@@ -48,6 +49,7 @@
 #include "chrome/browser/ui/webui/local_state/local_state_ui.h"
 #include "chrome/browser/ui/webui/log_web_ui_url.h"
 #include "chrome/browser/ui/webui/media/media_engagement_ui.h"
+#include "chrome/browser/ui/webui/media/media_feeds_ui.h"
 #include "chrome/browser/ui/webui/media/media_history_ui.h"
 #include "chrome/browser/ui/webui/media/webrtc_logs_ui.h"
 #include "chrome/browser/ui/webui/memory_internals_ui.h"
@@ -776,6 +778,11 @@
     return &NewWebUI<MediaEngagementUI>;
   }
 
+  if (media_feeds::MediaFeedsService::IsEnabled() &&
+      url.host_piece() == chrome::kChromeUIMediaFeedsHost) {
+    return &NewWebUI<MediaFeedsUI>;
+  }
+
   if (media_history::MediaHistoryKeyedService::IsEnabled() &&
       url.host_piece() == chrome::kChromeUIMediaHistoryHost) {
     return &NewWebUI<MediaHistoryUI>;
diff --git a/chrome/browser/ui/webui/media/media_feeds_ui.cc b/chrome/browser/ui/webui/media/media_feeds_ui.cc
new file mode 100644
index 0000000..1068c9d
--- /dev/null
+++ b/chrome/browser/ui/webui/media/media_feeds_ui.cc
@@ -0,0 +1,58 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/media/media_feeds_ui.h"
+
+#include "base/bind.h"
+
+#include "base/macros.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/media/history/media_history_keyed_service.h"
+#include "chrome/browser/media/history/media_history_keyed_service_factory.h"
+#include "chrome/browser/media/history/media_history_store.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/common/url_constants.h"
+#include "chrome/grit/dev_ui_browser_resources.h"
+#include "content/public/browser/render_view_host.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/browser/web_ui.h"
+#include "content/public/browser/web_ui_controller.h"
+#include "content/public/browser/web_ui_data_source.h"
+
+MediaFeedsUI::MediaFeedsUI(content::WebUI* web_ui)
+    : ui::MojoWebUIController(web_ui) {
+  // Setup the data source behind chrome://media-feeds.
+  std::unique_ptr<content::WebUIDataSource> source(
+      content::WebUIDataSource::Create(chrome::kChromeUIMediaFeedsHost));
+  source->AddResourcePath("media-feeds.js", IDR_MEDIA_FEEDS_JS);
+  source->AddResourcePath(
+      "chrome/browser/media/feeds/media_feeds_store.mojom-lite.js",
+      IDR_MEDIA_FEEDS_STORE_MOJOM_LITE_JS);
+  source->SetDefaultResource(IDR_MEDIA_FEEDS_HTML);
+  content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), source.release());
+}
+
+WEB_UI_CONTROLLER_TYPE_IMPL(MediaFeedsUI)
+
+MediaFeedsUI::~MediaFeedsUI() = default;
+
+void MediaFeedsUI::BindInterface(
+    mojo::PendingReceiver<media_feeds::mojom::MediaFeedsStore> pending) {
+  receiver_.Add(this, std::move(pending));
+}
+
+void MediaFeedsUI::GetMediaFeeds(GetMediaFeedsCallback callback) {
+  return GetMediaHistoryService()->GetMediaFeedsForDebug(std::move(callback));
+}
+
+media_history::MediaHistoryKeyedService*
+MediaFeedsUI::GetMediaHistoryService() {
+  Profile* profile = Profile::FromWebUI(web_ui());
+  DCHECK(profile);
+
+  media_history::MediaHistoryKeyedService* service =
+      media_history::MediaHistoryKeyedServiceFactory::GetForProfile(profile);
+  DCHECK(service);
+  return service;
+}
diff --git a/chrome/browser/ui/webui/media/media_feeds_ui.h b/chrome/browser/ui/webui/media/media_feeds_ui.h
new file mode 100644
index 0000000..7ad8db03
--- /dev/null
+++ b/chrome/browser/ui/webui/media/media_feeds_ui.h
@@ -0,0 +1,42 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_MEDIA_MEDIA_FEEDS_UI_H_
+#define CHROME_BROWSER_UI_WEBUI_MEDIA_MEDIA_FEEDS_UI_H_
+
+#include "chrome/browser/media/feeds/media_feeds_store.mojom.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "mojo/public/cpp/bindings/receiver_set.h"
+#include "ui/webui/mojo_web_ui_controller.h"
+
+namespace media_history {
+class MediaHistoryKeyedService;
+}  // namespace media_history
+
+// The UI for chrome://media-feeds.
+class MediaFeedsUI : public ui::MojoWebUIController,
+                     public media_feeds::mojom::MediaFeedsStore {
+ public:
+  explicit MediaFeedsUI(content::WebUI* web_ui);
+  MediaFeedsUI(const MediaFeedsUI&) = delete;
+  MediaFeedsUI& operator=(const MediaFeedsUI&) = delete;
+  ~MediaFeedsUI() override;
+
+  // Instantiates the implementor of the MediaFeedsStore mojo interface passing
+  // the pending receiver that will be internally bound.
+  void BindInterface(
+      mojo::PendingReceiver<media_feeds::mojom::MediaFeedsStore> pending);
+
+  // media_history::mojom::MediaHistoryStore:
+  void GetMediaFeeds(GetMediaFeedsCallback callback) override;
+
+ private:
+  media_history::MediaHistoryKeyedService* GetMediaHistoryService();
+
+  mojo::ReceiverSet<media_feeds::mojom::MediaFeedsStore> receiver_;
+
+  WEB_UI_CONTROLLER_TYPE_DECL();
+};
+
+#endif  // CHROME_BROWSER_UI_WEBUI_MEDIA_MEDIA_FEEDS_UI_H_
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom b/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom
index e4a80fe..44c0249 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom
@@ -88,6 +88,14 @@
   skia.mojom.SkColor shortcut_text_color;
   // True if the theme is dark (e.g. NTP background color is dark).
   bool is_dark;
+  // URL to the background image. Can point to untrusted content.
+  url.mojom.Url? background_image_url;
+  // Human readable attributions of the background image.
+  string? background_image_attribution_1;
+  string? background_image_attribution_2;
+  // URL associated with the background image. Used for href.
+  url.mojom.Url? background_image_attribution_url;
+
   // TODO(crbug.com/1040682): Additional info about the theme depending on the
   // type. That should be optional since only some themes require it. However,
   // making this field optional crashes JS.
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
index 090f52a14..d3bd53e 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
@@ -54,6 +54,21 @@
   theme->shortcut_background_color = ntp_theme.shortcut_color;
   theme->shortcut_text_color = ntp_theme.text_color;
   theme->is_dark = !color_utils::IsDark(ntp_theme.text_color);
+  if (!ntp_theme.custom_background_url.is_empty()) {
+    theme->background_image_url = ntp_theme.custom_background_url;
+  }
+  if (!ntp_theme.custom_background_attribution_line_1.empty()) {
+    theme->background_image_attribution_1 =
+        ntp_theme.custom_background_attribution_line_1;
+  }
+  if (!ntp_theme.custom_background_attribution_line_2.empty()) {
+    theme->background_image_attribution_2 =
+        ntp_theme.custom_background_attribution_line_2;
+  }
+  if (!ntp_theme.custom_background_attribution_action_url.is_empty()) {
+    theme->background_image_attribution_url =
+        ntp_theme.custom_background_attribution_action_url;
+  }
   return theme;
 }
 
@@ -78,7 +93,7 @@
   CHECK(web_contents_);
   instant_service_->AddObserver(this);
   ntp_background_service_->AddObserver(this);
-  page_->SetTheme(MakeTheme(*instant_service_->GetInitializedNtpTheme()));
+  instant_service_->UpdateNtpTheme();
 }
 
 NewTabPageHandler::~NewTabPageHandler() {
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 b93c1b43..d9893e2b 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -198,6 +198,10 @@
      IDS_SETTINGS_ACCESSIBLE_IMAGE_LABELS_SUBTITLE},
     {"settingsSliderRoleDescription",
      IDS_SETTINGS_SLIDER_MIN_MAX_ARIA_ROLE_DESCRIPTION},
+    {"captionsEnableLiveCaptionTitle",
+     IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_TITLE},
+    {"captionsEnableLiveCaptionSubtitle",
+     IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE},
 #if defined(OS_CHROMEOS)
     {"manageAccessibilityFeatures",
      IDS_SETTINGS_ACCESSIBILITY_MANAGE_ACCESSIBILITY_FEATURES},
@@ -745,7 +749,12 @@
       {"checkPasswordsErrorGeneric",
        IDS_SETTINGS_CHECK_PASSWORDS_ERROR_GENERIC},
       {"checkPasswordsAgain", IDS_SETTINGS_CHECK_PASSWORDS_AGAIN},
+      {"checkPasswordsAgainAfterError",
+       IDS_SETTINGS_CHECK_PASSWORDS_AGAIN_AFTER_ERROR},
       {"checkPasswordsProgress", IDS_SETTINGS_CHECK_PASSWORDS_PROGRESS},
+      {"checkPasswordsAgainInAccount",
+       IDS_SETTINGS_CHECK_PASSWORDS_AGAIN_IN_ACCOUNT},
+      {"checkPasswordsStop", IDS_SETTINGS_CHECK_PASSWORDS_STOP},
       {"compromisedPasswords", IDS_SETTINGS_COMPROMISED_PASSWORDS},
       {"compromisedPasswordsDescription",
        IDS_SETTINGS_COMPROMISED_PASSWORDS_ADVICE},
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
index 296dd73..2f9147e 100644
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -323,6 +323,14 @@
 
   // Register SVG images that are purposefully not inlined in the HTML bundle
   // above.
+  html_source->AddResourcePath("images/cookies_banner.svg",
+                               IDR_SETTINGS_IMAGES_COOKIES_BANNER_SVG);
+  html_source->AddResourcePath("images/safe_browsing_banner.svg",
+                               IDR_SETTINGS_IMAGES_SAFE_BROWSING_BANNER_SVG);
+  html_source->AddResourcePath("images/sync_banner.svg",
+                               IDR_SETTINGS_IMAGES_SYNC_BANNER_SVG);
+  html_source->AddResourcePath("images/sync_banner_dark.svg",
+                               IDR_SETTINGS_IMAGES_SYNC_BANNER_DARK_SVG);
   html_source->AddResourcePath("images/password_check_neutral.svg",
                                IDR_SETTINGS_IMAGES_PASSWORD_CHECK_NEUTRAL_SVG);
   html_source->AddResourcePath(
diff --git a/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc
index 54a14c6..9cf16c5d6 100644
--- a/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc
@@ -78,7 +78,6 @@
       {"captionsColorCyan", IDS_SETTINGS_CAPTIONS_COLOR_CYAN},
       {"captionsColorMagenta", IDS_SETTINGS_CAPTIONS_COLOR_MAGENTA},
       {"captionsDefaultSetting", IDS_SETTINGS_CAPTIONS_DEFAULT_SETTING},
-      {"captionsEnableLiveCaption", IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION},
   };
   AddLocalizedStringsBulk(html_source, kLocalizedStrings);
 }
diff --git a/chrome/browser/ui/webui/tab_strip/tab_before_unload_tracker.cc b/chrome/browser/ui/webui/tab_strip/tab_before_unload_tracker.cc
new file mode 100644
index 0000000..c0cea3a
--- /dev/null
+++ b/chrome/browser/ui/webui/tab_strip/tab_before_unload_tracker.cc
@@ -0,0 +1,48 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/tab_strip/tab_before_unload_tracker.h"
+#include <memory>
+#include "content/public/browser/web_contents.h"
+#include "content/public/browser/web_contents_observer.h"
+
+namespace tab_strip_ui {
+
+TabBeforeUnloadTracker::TabBeforeUnloadTracker(
+    TabCloseCancelledCallback cancelled_callback)
+    : cancelled_callback_(std::move(cancelled_callback)) {}
+TabBeforeUnloadTracker::~TabBeforeUnloadTracker() = default;
+
+void TabBeforeUnloadTracker::Observe(content::WebContents* contents) {
+  observers_[contents] = std::make_unique<TabObserver>(contents, this);
+}
+
+void TabBeforeUnloadTracker::Unobserve(content::WebContents* contents) {
+  observers_.erase(contents);
+}
+
+void TabBeforeUnloadTracker::OnBeforeUnloadDialogCancelled(
+    content::WebContents* contents) {
+  cancelled_callback_.Run(contents);
+}
+
+class TabBeforeUnloadTracker::TabObserver
+    : public content::WebContentsObserver {
+ public:
+  TabObserver(content::WebContents* contents, TabBeforeUnloadTracker* tracker)
+      : content::WebContentsObserver(contents), tracker_(tracker) {}
+  ~TabObserver() override = default;
+
+  // content::WebContentsObserver
+  void WebContentsDestroyed() override { tracker_->Unobserve(web_contents()); }
+
+  void BeforeUnloadDialogCancelled() override {
+    tracker_->OnBeforeUnloadDialogCancelled(web_contents());
+  }
+
+ private:
+  TabBeforeUnloadTracker* tracker_;
+};
+
+}  // namespace tab_strip_ui
diff --git a/chrome/browser/ui/webui/tab_strip/tab_before_unload_tracker.h b/chrome/browser/ui/webui/tab_strip/tab_before_unload_tracker.h
new file mode 100644
index 0000000..7988854
--- /dev/null
+++ b/chrome/browser/ui/webui/tab_strip/tab_before_unload_tracker.h
@@ -0,0 +1,38 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_TAB_STRIP_TAB_BEFORE_UNLOAD_TRACKER_H_
+#define CHROME_BROWSER_UI_WEBUI_TAB_STRIP_TAB_BEFORE_UNLOAD_TRACKER_H_
+
+#include "base/observer_list.h"
+#include "content/public/browser/web_contents.h"
+
+namespace tab_strip_ui {
+
+// This class keeps track of WebContents observers that listen for when a tab
+// is actually closed or when a user cancels out of a beforeunload confirm
+// dialog. The observers are added once a user has swiped on a tab in the
+// WebUI tab strip and is needed to make the swiped tab in the tab strip
+// visible again if a user cancels out of the close flow.
+class TabBeforeUnloadTracker {
+ public:
+  using TabCloseCancelledCallback =
+      base::RepeatingCallback<void(content::WebContents*)>;
+
+  explicit TabBeforeUnloadTracker(TabCloseCancelledCallback cancelled_callback);
+  ~TabBeforeUnloadTracker();
+
+  void Observe(content::WebContents* contents);
+  void Unobserve(content::WebContents* contents);
+  void OnBeforeUnloadDialogCancelled(content::WebContents* contents);
+
+ private:
+  class TabObserver;
+  std::map<content::WebContents*, std::unique_ptr<TabObserver>> observers_;
+  TabCloseCancelledCallback cancelled_callback_;
+};
+
+}  // namespace tab_strip_ui
+
+#endif  // CHROME_BROWSER_UI_WEBUI_TAB_STRIP_TAB_BEFORE_UNLOAD_TRACKER_H_
diff --git a/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.cc b/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.cc
index 249df13..dc90cb0b 100644
--- a/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.cc
+++ b/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.cc
@@ -164,7 +164,10 @@
     : browser_(browser),
       embedder_(embedder),
       thumbnail_tracker_(base::Bind(&TabStripUIHandler::HandleThumbnailUpdate,
-                                    base::Unretained(this))) {}
+                                    base::Unretained(this))),
+      tab_before_unload_tracker_(
+          base::Bind(&TabStripUIHandler::OnTabCloseCancelled,
+                     base::Unretained(this))) {}
 TabStripUIHandler::~TabStripUIHandler() = default;
 
 void TabStripUIHandler::NotifyLayoutChanged() {
@@ -373,6 +376,9 @@
       "closeContainer", base::Bind(&TabStripUIHandler::HandleCloseContainer,
                                    base::Unretained(this)));
   web_ui()->RegisterMessageCallback(
+      "closeTab",
+      base::Bind(&TabStripUIHandler::HandleCloseTab, base::Unretained(this)));
+  web_ui()->RegisterMessageCallback(
       "showBackgroundContextMenu",
       base::Bind(&TabStripUIHandler::HandleShowBackgroundContextMenu,
                  base::Unretained(this)));
@@ -681,6 +687,27 @@
   embedder_->CloseContainer();
 }
 
+void TabStripUIHandler::HandleCloseTab(const base::ListValue* args) {
+  AllowJavascript();
+
+  int tab_id = args->GetList()[0].GetInt();
+  content::WebContents* tab = nullptr;
+  if (!extensions::ExtensionTabUtil::GetTabById(tab_id, browser_->profile(),
+                                                true, &tab)) {
+    // ID didn't refer to a valid tab.
+    DVLOG(1) << "Invalid tab ID";
+    return;
+  }
+
+  bool tab_was_swiped = args->GetList()[1].GetBool();
+  if (tab_was_swiped) {
+    // The unload tracker will automatically unobserve the tab when it
+    // successfully closes.
+    tab_before_unload_tracker_.Observe(tab);
+  }
+  tab->Close();
+}
+
 void TabStripUIHandler::HandleShowBackgroundContextMenu(
     const base::ListValue* args) {
   gfx::PointF point;
@@ -815,6 +842,12 @@
                     base::Value(data_uri));
 }
 
+void TabStripUIHandler::OnTabCloseCancelled(content::WebContents* tab) {
+  tab_before_unload_tracker_.Unobserve(tab);
+  const int tab_id = extensions::ExtensionTabUtil::GetTabId(tab);
+  FireWebUIListener("tab-close-cancelled", base::Value(tab_id));
+}
+
 // Reports a histogram using the format
 // WebUITabStrip.|histogram_fragment|.[tab count bucket].
 void TabStripUIHandler::ReportTabDurationHistogram(
diff --git a/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.h b/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.h
index c1215fb..3221e4c 100644
--- a/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.h
+++ b/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.h
@@ -10,6 +10,7 @@
 #include "chrome/browser/ui/tabs/tab_change_type.h"
 #include "chrome/browser/ui/tabs/tab_group.h"
 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
+#include "chrome/browser/ui/webui/tab_strip/tab_before_unload_tracker.h"
 #include "chrome/browser/ui/webui/tab_strip/thumbnail_tracker.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_ui_message_handler.h"
@@ -49,6 +50,7 @@
   void RegisterMessages() override;
 
  private:
+  FRIEND_TEST_ALL_PREFIXES(TabStripUIHandlerTest, CloseTab);
   FRIEND_TEST_ALL_PREFIXES(TabStripUIHandlerTest, GetGroupVisualData);
   FRIEND_TEST_ALL_PREFIXES(TabStripUIHandlerTest, GroupTab);
   FRIEND_TEST_ALL_PREFIXES(TabStripUIHandlerTest, MoveGroup);
@@ -66,6 +68,7 @@
   void HandleGetGroupVisualData(const base::ListValue* args);
   void HandleGetThemeColors(const base::ListValue* args);
   void HandleCloseContainer(const base::ListValue* args);
+  void HandleCloseTab(const base::ListValue* args);
   void HandleShowBackgroundContextMenu(const base::ListValue* args);
   void HandleShowEditDialogForGroup(const base::ListValue* args);
   void HandleShowTabContextMenu(const base::ListValue* args);
@@ -80,6 +83,7 @@
   void HandleReportTabCreationDuration(const base::ListValue* args);
   void HandleThumbnailUpdate(content::WebContents* tab,
                              ThumbnailTracker::CompressedThumbnailData image);
+  void OnTabCloseCancelled(content::WebContents* tab);
   void ReportTabDurationHistogram(const char* histogram_fragment,
                                   int tab_count,
                                   base::TimeDelta duration);
@@ -87,6 +91,7 @@
   Browser* const browser_;
   TabStripUIEmbedder* const embedder_;
   ThumbnailTracker thumbnail_tracker_;
+  tab_strip_ui::TabBeforeUnloadTracker tab_before_unload_tracker_;
 
   DISALLOW_COPY_AND_ASSIGN(TabStripUIHandler);
 };
diff --git a/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler_unittest.cc b/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler_unittest.cc
index f30bc51..34da3dc 100644
--- a/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler_unittest.cc
+++ b/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler_unittest.cc
@@ -509,3 +509,16 @@
 
   ASSERT_FALSE(browser()->tab_strip_model()->GetTabGroupForTab(0).has_value());
 }
+
+TEST_F(TabStripUIHandlerTest, CloseTab) {
+  AddTab(browser(), GURL("http://foo"));
+  AddTab(browser(), GURL("http://bar"));
+
+  base::ListValue args;
+  args.AppendInteger(extensions::ExtensionTabUtil::GetTabId(
+      browser()->tab_strip_model()->GetWebContentsAt(0)));
+  args.AppendBoolean(false);  // If the tab is closed by swipe.
+  handler()->HandleCloseTab(&args);
+
+  ASSERT_EQ(1, browser()->tab_strip_model()->GetTabCount());
+}
diff --git a/chrome/browser/vr/test/vr_test_suite.cc b/chrome/browser/vr/test/vr_test_suite.cc
index bc215ed7..3f125c6 100644
--- a/chrome/browser/vr/test/vr_test_suite.cc
+++ b/chrome/browser/vr/test/vr_test_suite.cc
@@ -11,7 +11,6 @@
 #include "build/build_config.h"
 #include "content/public/test/browser_task_environment.h"
 #include "mojo/core/embedder/embedder.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/base/ui_base_paths.h"
 
@@ -37,7 +36,6 @@
 #endif
   ui::ResourceBundle::InitSharedInstanceWithPakPath(
       pak_path.AppendASCII("vr_test.pak"));
-  ui::MaterialDesignController::Initialize();
 }
 
 void VrTestSuite::Shutdown() {
diff --git a/chrome/browser/vr/testapp/vr_testapp.cc b/chrome/browser/vr/testapp/vr_testapp.cc
index 8c4f0723..f8447233 100644
--- a/chrome/browser/vr/testapp/vr_testapp.cc
+++ b/chrome/browser/vr/testapp/vr_testapp.cc
@@ -18,7 +18,6 @@
 #include "chrome/browser/vr/testapp/gl_renderer.h"
 #include "chrome/browser/vr/testapp/vr_test_context.h"
 #include "third_party/skia/include/core/SkBitmap.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/display/types/display_snapshot.h"
 #include "ui/display/types/native_display_delegate.h"
 #include "ui/display/types/native_display_observer.h"
@@ -296,7 +295,6 @@
   ui::OzonePlatform::InitializeForUI(params);
   ui::KeyboardLayoutEngineManager::GetKeyboardLayoutEngine()
       ->SetCurrentLayoutByName("us");
-  ui::MaterialDesignController::Initialize();
 
   base::RunLoop run_loop;
 
diff --git a/chrome/common/media_router/mojom/media_router.mojom b/chrome/common/media_router/mojom/media_router.mojom
index 780e185..95e445df 100644
--- a/chrome/common/media_router/mojom/media_router.mojom
+++ b/chrome/common/media_router/mojom/media_router.mojom
@@ -196,14 +196,6 @@
   array<uint8>? data;
 };
 
-struct SinkSearchCriteria {
-  // Input to the search method which each Media Route Provider may interpret
-  // differently.
-  string input;
-  // The user's current hosted domain.
-  string domain;
-};
-
 // Keep in sync with:
 // - RouteRequestResult::ResultCode in route_request_result.h
 // - MediaRouteProviderResult enum in tools/metrics/histograms.xml.
@@ -482,17 +474,6 @@
   // |media_source| parameter.
   UpdateMediaSinks(string media_source);
 
-  // Indicates that the Media Router is interested in finding a sink that
-  // matches |search_criteria| and is compatible with the source urn
-  // |media_source|. |search_criteria| should contain an exact copy of the user
-  // input. The user's current domain is also used to search.  The domain is the
-  // hosted domain of the user's signed-in identity, or empty if the user has no
-  // domain or is not signed in.
-  SearchSinks(string sink_id,
-              string media_source,
-              SinkSearchCriteria search_criteria) =>
-                  (string sink_id);
-
   // Called when the list of MediaSinks discovered by Media Router has been
   // updated. The sinks are supplied to the MediaRouteProvider so that they can
   // be used for other operations, such as route creation.
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
index 5ee76985..f8236e6c 100644
--- a/chrome/common/webui_url_constants.cc
+++ b/chrome/common/webui_url_constants.cc
@@ -97,6 +97,7 @@
 const char kChromeUIMdUserManagerHost[] = "md-user-manager";
 const char kChromeUIMdUserManagerUrl[] = "chrome://md-user-manager/";
 const char kChromeUIMediaEngagementHost[] = "media-engagement";
+const char kChromeUIMediaFeedsHost[] = "media-feeds";
 const char kChromeUIMediaHistoryHost[] = "media-history";
 const char kChromeUIMediaRouterInternalsHost[] = "media-router-internals";
 const char kChromeUIMemoryInternalsHost[] = "memory-internals";
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
index f2a850e..1ae2666 100644
--- a/chrome/common/webui_url_constants.h
+++ b/chrome/common/webui_url_constants.h
@@ -103,6 +103,7 @@
 extern const char kChromeUIMdUserManagerHost[];
 extern const char kChromeUIMdUserManagerUrl[];
 extern const char kChromeUIMediaEngagementHost[];
+extern const char kChromeUIMediaFeedsHost[];
 extern const char kChromeUIMediaHistoryHost[];
 extern const char kChromeUIMediaRouterInternalsHost[];
 extern const char kChromeUIMemoryInternalsHost[];
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ta.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ta.xtb
index a304363d..a3e5ea2 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ta.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ta.xtb
@@ -1,21 +1,37 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ta">
+<translation id="1156061499538526818">உங்கள் பணிக் கணக்கின் கடவுச்சொல் மாற்றப்பட்டுள்ளது. உங்கள் Windows கணக்கை பணிக் கணக்குடன் ஒத்திசைக்க Windows கடவுச்சொல்லை உள்ளிடவும்.</translation>
 <translation id="1383286653814676580">Google அனுமதிச் சான்று வழங்குநர் உள்நுழைவுப் பக்கத்தை இயக்கப் பயன்படுத்தப்படுகிறது.</translation>
+<translation id="200772894174702141">உங்கள் பணிக் கணக்கில் உள்நுழைய முடியவில்லை. சாதனம் இணையத்துடன் இணைக்கப்பட்டுள்ளதை உறுதிப்படுத்தி மீண்டும் முயலவும்.</translation>
+<translation id="2048923169632968961">உங்கள் Windows சுயவிவரத்திற்கு பணிக் கணக்கிற்கான கடவுச்சொல்லை ஒத்திசைக்கும்போது சிக்கல் ஏற்பட்டது. உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
+<translation id="2515346402363002066">உங்கள் அமர்வு காலாவதியாகிவிட்டது. உங்கள் பணிக் கணக்கில் உள்நுழையவும்.</translation>
 <translation id="2844349213149998955">இந்த சாதனத்தில் தனிப்பட்ட கணக்கின் மூலம் உள்நுழைய அனுமதியில்லை. பணிக் கணக்கின் மூலம் உள்நுழையவும்.</translation>
+<translation id="3217145568844727893">தற்போதைய Windows கடவுச்சொல்லை உள்ளிடாமல் நீங்கள் தொடர்ந்தால் இந்தச் சாதனத்தில் உள்ள தரவை நிரந்தரமாக இழக்கலாம்.</translation>
+<translation id="3285576391135346912">பின்வருமாறு முடியும் மின்னஞ்சல் முகவரியைப் பயன்படுத்தி மட்டுமே உள்நுழைய முடியும்: <ph name="EMAIL_DOMAINS" />. பணிக் கணக்கைப் பயன்படுத்தி மீண்டும் முயலவும்.</translation>
 <translation id="3306357053520292004">இந்தக் கம்ப்யூட்டரில் இந்தக் கணக்கைப் பயன்படுத்தி ஏற்கனவே ஒரு பயனர் சேர்க்கப்பட்டுள்ளார். வேறொரு கணக்கில் உள்நுழையவும்.</translation>
+<translation id="3355053591933237049">சாதனம் இணையத்துடன் இணைக்கப்பட்டுள்ளதை உறுதிப்படுத்தி மீண்டும் முயலவும்</translation>
 <translation id="3926852373333893095">Gsuite நிறுவனப் பயனர்கள் மட்டுமே உள்நுழைய அனுமதிக்கப்படுவார்கள்.</translation>
+<translation id="399130515869721714">இந்தச் சாதனத்தில் Chromeமை நிறுவுவதில் சிக்கல் உள்ளதால் Google உள்நுழைவுத் திரையைக் காட்ட முடியாது. உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="4057329986137569701">அகப்பிழை ஏற்பட்டது.</translation>
 <translation id="4267670563222825190">உங்கள் கணக்கிற்கான டொமைன் பயனர் இல்லை. உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="4706454071748629324">புதிய பயனரைச் சேர்க்க முடியவில்லை. இந்தக் கம்ப்யூட்டர் பணிக் கணக்கைப் பயன்படுத்தி ஒரு பயனரை மட்டுமே உருவாக்க அனுமதிக்கும்.</translation>
+<translation id="4744575902940448763">நிறுவனம் உங்கள் சாதனத்தில் கடவுச்சொற்கள் புதுப்பிப்புகளைக் கட்டுப்படுத்தி உள்ளதால் Windows சுயவிவரத்துடன் உங்கள் பணிக் கணக்கின் கடவுச்சொல்லை ஒத்திசைக்க முடியவில்லை. உதவிக்கு உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="5186761973554910131">கடவுச்சொல்லை மாற்ற முயலும்போது தவறான கம்ப்யூட்டர் பெயர் வழங்கப்பட்டது. உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
+<translation id="5265714013989877288">உங்கள் Windows கடவுச்சொல்லை மாற்றும்போது பிழை ஏற்பட்டதால் தொடர முடியவில்லை. உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="6033715878377252112">Windowsஸுக்கான Google அனுமதிச் சான்று வழங்குநர் உதவி நிரல்</translation>
 <translation id="6149399665202317746">Windowsஸுக்கான Google அனுமதிச் சான்று வழங்குநர்</translation>
+<translation id="6243062314475217481">உங்கள் பணிக் கணக்கின் கடவுச்சொல் Windows கடினத்தன்மை தொடர்பான தேவைகளுடன் பொருந்தவில்லை. உதவிக்கு உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="6463752215771576050">நிறுவன மேலாண்மைக்கு இந்தக் கம்ப்யூட்டரைப் பதிவுசெய்ய முடியவில்லை.  வேறொரு பணிக் கணக்கில் உள்நுழையவும்.</translation>
+<translation id="6582876473835446261">Windows கடவுச்சொல் தவறானது. மீண்டும் முயலவும்.</translation>
 <translation id="6657585470893396449">கடவுச்சொல்</translation>
+<translation id="6976261330898712570">இந்தச் சாதனம் உங்கள் நிறுவனத்தின் சாதன நிர்வாகத்தில் பதிவுசெய்யப்படவில்லை. உங்கள் பணிக் கணக்கில் உள்நுழையவும்.</translation>
 <translation id="7209941495304122410">Windows கடவுச்சொல்லை உள்ளிடுக</translation>
+<translation id="74122330823428762">இந்தச் சாதனத்தைப் பூட்டிய பயனர் மட்டுமே உள்நுழைய முடியும்</translation>
 <translation id="7536769223115622137">பணிக் கணக்கைச் சேர்</translation>
 <translation id="8109730953933509335">தவறான பயனர் பெயரை உள்ளிட்டு கடவுச்சொல்லை மாற்ற முயன்றுள்ளீர்கள். உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
+<translation id="8448455363630347124">தவறான கடவுச்சொல்லை அதிக முறை உள்ளிட்டதால் உங்கள் கணக்கு முடக்கப்பட்டுள்ளது. கணக்கை இயக்க உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
+<translation id="8453641970025433267">இந்தக் கணக்கில் உள்நுழைய உங்களின் நிர்வாகி அனுமதிக்கவில்லை. வேறொரு கணக்கு மூலம் உள்நுழையவும்.</translation>
 <translation id="8639729688781680518">Windows கடவுச்சொல் மறந்துவிட்டது</translation>
 <translation id="866458870819756755">பயனரை உருவாக்க முடியவில்லை.</translation>
 <translation id="9055998212250844221">Windowsஸுக்கான Google அனுமதிச் சான்று வழங்குநர் மூலம் பயனர் கணக்கு உருவாக்கப்பட்டுள்ளது</translation>
diff --git a/chrome/installer/setup/BUILD.gn b/chrome/installer/setup/BUILD.gn
index d84ce8f..f2ec4e242 100644
--- a/chrome/installer/setup/BUILD.gn
+++ b/chrome/installer/setup/BUILD.gn
@@ -148,6 +148,7 @@
       "//chrome/install_static:install_static_util",
       "//chrome/install_static/test:test_support",
       "//chrome/installer/mini_installer:unit_tests",
+      "//chrome/installer/util:serial_unittests",
       "//chrome/installer/util:test_support",
       "//components/crash/content/app:test_support",
       "//testing/gmock",
diff --git a/chrome/installer/util/BUILD.gn b/chrome/installer/util/BUILD.gn
index c6581f09..dae16bd 100644
--- a/chrome/installer/util/BUILD.gn
+++ b/chrome/installer/util/BUILD.gn
@@ -278,6 +278,20 @@
     ]
   }
 
+  # This source set contains tests that must run serially. These are linked into
+  # setup_unittests, which does so.
+  source_set("serial_unittests") {
+    testonly = true
+    sources = [ "install_service_work_item_unittest.cc" ]
+    deps = [
+      ":with_no_strings",
+      "//base",
+      "//chrome/install_static:install_static_util",
+      "//chrome/install_static/test:test_support",
+      "//testing/gtest",
+    ]
+  }
+
   test("installer_util_unittests") {
     sources = [
       "advanced_firewall_manager_win_unittest.cc",
@@ -298,7 +312,6 @@
       "experiment_storage_unittest.cc",
       "experiment_unittest.cc",
       "google_update_settings_unittest.cc",
-      "install_service_work_item_unittest.cc",
       "install_util_unittest.cc",
       "l10n_string_util_unittest.cc",
       "logging_installer_unittest.cc",
diff --git a/chrome/installer/util/install_service_work_item_impl.cc b/chrome/installer/util/install_service_work_item_impl.cc
index a766979..527295e1 100644
--- a/chrome/installer/util/install_service_work_item_impl.cc
+++ b/chrome/installer/util/install_service_work_item_impl.cc
@@ -341,12 +341,16 @@
     const base::string16& service_name) const {
   base::win::RegKey key;
 
-  auto result = key.Create(HKEY_LOCAL_MACHINE,
-                           install_static::GetClientStateKeyPath().c_str(),
-                           KEY_SET_VALUE | KEY_WOW64_32KEY);
+  // This assumes that a WorkItem to create the key has already executed before
+  // this WorkItem. this is generally true since one is added in
+  // AddUninstallShortcutWorkItems.
+  auto result = key.Open(HKEY_LOCAL_MACHINE,
+                         install_static::GetClientStateKeyPath().c_str(),
+                         KEY_SET_VALUE | KEY_WOW64_32KEY);
+  DCHECK(result == ERROR_SUCCESS);
   if (result != ERROR_SUCCESS) {
     ::SetLastError(result);
-    PLOG(ERROR) << "key.Create failed";
+    PLOG(ERROR) << "key.Open failed";
     return false;
   }
 
diff --git a/chrome/installer/util/install_service_work_item_unittest.cc b/chrome/installer/util/install_service_work_item_unittest.cc
index 9e71f614..750216c 100644
--- a/chrome/installer/util/install_service_work_item_unittest.cc
+++ b/chrome/installer/util/install_service_work_item_unittest.cc
@@ -14,6 +14,7 @@
 #include "base/strings/stringprintf.h"
 #include "base/win/registry.h"
 #include "chrome/install_static/install_util.h"
+#include "chrome/install_static/test/scoped_install_details.h"
 #include "chrome/installer/util/work_item.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -44,31 +45,34 @@
   }
 
   void SetUp() override {
-    base::win::RegKey key;
-    if (ERROR_SUCCESS ==
-        key.Open(HKEY_LOCAL_MACHINE,
-                 install_static::GetClientStateKeyPath().c_str(),
-                 KEY_READ | KEY_WOW64_32KEY)) {
-      preexisting_clientstate_key_ = true;
-    } else {
-      ASSERT_EQ(ERROR_SUCCESS,
-                key.Create(HKEY_LOCAL_MACHINE,
-                           install_static::GetClientStateKeyPath().c_str(),
-                           KEY_READ | KEY_WOW64_32KEY));
-    }
+    DWORD disposition = 0;
+    ASSERT_EQ(
+        base::win::RegKey().CreateWithDisposition(
+            HKEY_LOCAL_MACHINE, install_static::GetClientStateKeyPath().c_str(),
+            &disposition, KEY_READ | KEY_WOW64_32KEY),
+        ERROR_SUCCESS);
+    preexisting_clientstate_key_ = (disposition == REG_OPENED_EXISTING_KEY);
   }
 
   void TearDown() override {
-    if (!preexisting_clientstate_key_) {
-      base::win::RegKey key;
-      if (key.Open(HKEY_LOCAL_MACHINE,
-                   install_static::GetClientStateKeyPath().c_str(),
-                   DELETE | KEY_WOW64_32KEY)) {
-        EXPECT_EQ(ERROR_SUCCESS, key.DeleteKey(L""));
-      }
-    }
+    // Delete the ClientState key created by this test if it is empty. While it
+    // would be ideal to only delete if !preexisting_clientstate_key_, older
+    // variants of this test failed to delete their key during TearDown.
+    auto result =
+        base::win::RegKey(HKEY_LOCAL_MACHINE, L"", KEY_READ | KEY_WOW64_32KEY)
+            .DeleteEmptyKey(install_static::GetClientStateKeyPath().c_str());
+    // Deletion should have succeeded if the key didn't exist to start with. If
+    // the key existed before the test ran, the delete may have succeeded
+    // (because the key was empty to start with) or may have failed because the
+    // key actually has data that should not be removed.
+    if (!preexisting_clientstate_key_)
+      EXPECT_EQ(result, ERROR_SUCCESS);
+    else if (result != ERROR_SUCCESS)
+      EXPECT_EQ(result, ERROR_DIR_NOT_EMPTY);
   }
 
+  // Set up InstallDetails for a system-level install.
+  const install_static::ScopedInstallDetails install_details_{true};
   bool preexisting_clientstate_key_ = false;
 };
 
diff --git a/chrome/renderer/resources/extensions/media_router_bindings.js b/chrome/renderer/resources/extensions/media_router_bindings.js
index adb0da2..6564c71 100644
--- a/chrome/renderer/resources/extensions/media_router_bindings.js
+++ b/chrome/renderer/resources/extensions/media_router_bindings.js
@@ -827,20 +827,6 @@
 };
 
 /**
- * Called by the provider manager when a sink is found to notify the MR of the
- * sink's ID. The actual sink will be returned through the normal sink list
- * update process, so this helps the MR identify the search result in the
- * list.
- * @param {string} pseudoSinkId  ID of the pseudo sink that started the
- *     search.
- * @param {string} sinkId ID of the newly-found sink.
- */
-MediaRouter.prototype.onSearchSinkIdReceived = function(
-    pseudoSinkId, sinkId) {
-  this.service_.onSearchSinkIdReceived(pseudoSinkId, sinkId);
-};
-
-/**
  * Called by the provider manager to keep the extension from suspending
  * if it enters a state where suspension is undesirable (e.g. there is an
  * active MediaRoute.)
@@ -1100,11 +1086,6 @@
   this.updateMediaSinks = null;
 
   /**
-   * @type {function(string, string, !SinkSearchCriteria): string}
-   */
-  this.searchSinks = null;
-
-  /**
    * @type {function()}
    */
   this.provideSinks = null;
@@ -1160,7 +1141,6 @@
     'connectRouteByRouteId',
     'enableMdnsDiscovery',
     'updateMediaSinks',
-    'searchSinks',
     'provideSinks',
     'createMediaRouteController',
     'onBeforeInvokeHandler'
@@ -1393,32 +1373,6 @@
 };
 
 /**
- * Requests that the provider manager search its providers for a sink matching
- * |searchCriteria| that is compatible with |sourceUrn|. If a sink is found
- * that can be used immediately for route creation, its ID is returned.
- * Otherwise the empty string is returned.
- *
- * @param {string} sinkId Sink ID of the pseudo sink generating the request.
- * @param {string} sourceUrn Media source to be used with the sink.
- * @param {!SinkSearchCriteria} searchCriteria Search criteria for the route
- *     providers.
- * @return {!Promise.<!{sink_id: !string}>} A Promise resolving to either the
- *     sink ID of the sink found by the search that can be used for route
- *     creation, or the empty string if no route can be immediately created.
- */
-MediaRouteProvider.prototype.searchSinks = function(
-    sinkId, sourceUrn, searchCriteria) {
-  this.handlers_.onBeforeInvokeHandler();
- return this.handlers_.searchSinks(sinkId, sourceUrn, searchCriteria).then(
-      sinkId => {
-        return { 'sinkId': sinkId };
-      },
-      () => {
-        return { 'sinkId': '' };
-      });
-};
-
-/**
  * Notifies the provider manager that MediaRouter has discovered a list of
  * sinks.
  * @param {string} providerName
diff --git a/chrome/service/service_process.cc b/chrome/service/service_process.cc
index cb6a871..4e3aeda 100644
--- a/chrome/service/service_process.cc
+++ b/chrome/service/service_process.cc
@@ -53,7 +53,6 @@
 #include "net/url_request/url_fetcher.h"
 #include "services/network/public/cpp/network_switches.h"
 #include "ui/base/l10n/l10n_util.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/base/ui_base_switches.h"
 
@@ -222,7 +221,6 @@
     if (locale.empty())
       locale = kDefaultServiceProcessLocale;
   }
-  ui::MaterialDesignController::Initialize();
   ui::ResourceBundle::InitSharedInstanceWithLocale(
       locale, NULL, ui::ResourceBundle::LOAD_COMMON_RESOURCES);
 
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 657cdac0..a77fe96 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -8,7 +8,6 @@
 import("//build/config/compiler/compiler.gni")
 import("//build/config/crypto.gni")
 import("//build/config/features.gni")
-import("//build/config/linux/gtk/gtk.gni")
 import("//build/config/ui.gni")
 import("//build/toolchain/toolchain.gni")
 import("//build/util/version.gni")
@@ -1059,6 +1058,7 @@
       "../browser/pdf/pdf_extension_test_util.h",
       "../browser/performance_manager/graph/page_node_impl_browsertest.cc",
       "../browser/performance_manager/page_load_tracker_decorator_browsertest.cc",
+      "../browser/performance_manager/tab_properties_decorator_browsertest.cc",
       "../browser/permissions/permission_delegation_browsertest.cc",
       "../browser/permissions/permission_manager_browsertest.cc",
       "../browser/permissions/permission_request_manager_browsertest.cc",
@@ -1327,7 +1327,6 @@
       "../browser/ui/views/device_chooser_browsertest.cc",
       "../browser/ui/views/hats/hats_browsertest.cc",
       "../browser/ui/views/intent_picker_bubble_view_browsertest.cc",
-      "../browser/ui/views/reader_mode/reader_mode_icon_view_browsertest.cc",
       "../browser/ui/views/try_chrome_dialog_win/try_chrome_dialog_browsertest.cc",
       "../browser/ui/views/web_apps/web_app_frame_toolbar_browsertest.cc",
       "../browser/ui/views/web_apps/web_app_minimal_ui_test.cc",
@@ -4895,10 +4894,6 @@
       "../browser/upgrade_detector/get_installed_version_linux_unittest.cc",
     ]
   }
-  if (use_gtk) {
-    sources += [ "../browser/ui/gtk/select_file_dialog_impl_gtk_unittest.cc" ]
-    deps += [ "//build/config/linux/gtk" ]
-  }
 
   if (is_android || is_chromeos) {
     sources += [ "../browser/media/protected_media_identifier_permission_context_unittest.cc" ]
@@ -4916,9 +4911,6 @@
   if (use_gio) {
     configs += [ "//build/linux:gio_config" ]
   }
-  if (!is_chromeos && !use_ozone && is_linux) {
-    deps += [ "//chrome/browser/ui/gtk" ]
-  }
 
   if (enable_service_discovery) {
     sources += [
@@ -4971,6 +4963,7 @@
       "../browser/safe_browsing/cloud_content_scanning/binary_upload_service_unittest.cc",
       "../browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_unittest.cc",
       "../browser/safe_browsing/cloud_content_scanning/deep_scanning_utils_unittest.cc",
+      "../browser/safe_browsing/cloud_content_scanning/file_source_request_unittest.cc",
       "../browser/safe_browsing/cloud_content_scanning/multipart_uploader_unittest.cc",
       "../browser/safe_browsing/download_protection/deep_scanning_request_unittest.cc",
       "../browser/safe_browsing/download_protection/download_feedback_service_unittest.cc",
@@ -5905,11 +5898,6 @@
           # suites, it seems like one or another starts timing out too.
           "../browser/ui/views/keyboard_access_browsertest.cc",
         ]
-        if (!use_ozone) {
-          sources +=
-              [ "../browser/ui/gtk/select_file_dialog_interactive_uitest.cc" ]
-          deps += [ "//build/config/linux/gtk" ]
-        }
       }
       if (!is_chromeos) {
         sources += [ "../browser/ui/views/global_media_controls/media_dialog_view_interactive_browsertest.cc" ]
diff --git a/chrome/test/data/android/render_tests/TabGridIphTest.iph_landscape.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/TabGridIphTest.iph_landscape.Nexus_5-19.png.sha1
index f8554e0..f702da6 100644
--- a/chrome/test/data/android/render_tests/TabGridIphTest.iph_landscape.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/TabGridIphTest.iph_landscape.Nexus_5-19.png.sha1
@@ -1 +1 @@
-3658acf6c513bbd6bb721e35d0e9f1ed2fd5f9a8
\ No newline at end of file
+e158cb32f3405770a0f235c3f7ce8a8d772fa38a
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/TabGridIphTest.iph_landscape.Nexus_5X-23.png.sha1 b/chrome/test/data/android/render_tests/TabGridIphTest.iph_landscape.Nexus_5X-23.png.sha1
index ae14c1f..e262ecb 100644
--- a/chrome/test/data/android/render_tests/TabGridIphTest.iph_landscape.Nexus_5X-23.png.sha1
+++ b/chrome/test/data/android/render_tests/TabGridIphTest.iph_landscape.Nexus_5X-23.png.sha1
@@ -1 +1 @@
-236e00bcc45cb47de9cca93e29a8e4d9b7475f50
\ No newline at end of file
+d1a26778191711bc6aff75749618ed3da0f6c902
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/TabGridIphTest.iph_portrait.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/TabGridIphTest.iph_portrait.Nexus_5-19.png.sha1
index e3cda44..8d94da3 100644
--- a/chrome/test/data/android/render_tests/TabGridIphTest.iph_portrait.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/TabGridIphTest.iph_portrait.Nexus_5-19.png.sha1
@@ -1 +1 @@
-5687e3199646a34e553b9c2f8c1338caaea9a515
\ No newline at end of file
+19d8227dfe1cd90013b5a4111151fc3c0c17b3b3
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/TabGridIphTest.iph_portrait.Nexus_5X-23.png.sha1 b/chrome/test/data/android/render_tests/TabGridIphTest.iph_portrait.Nexus_5X-23.png.sha1
index eb43d0b..bedc2ff 100644
--- a/chrome/test/data/android/render_tests/TabGridIphTest.iph_portrait.Nexus_5X-23.png.sha1
+++ b/chrome/test/data/android/render_tests/TabGridIphTest.iph_portrait.Nexus_5X-23.png.sha1
@@ -1 +1 @@
-4b993838cf4c79cce3bf08914041d1a7bc4f3e00
\ No newline at end of file
+2fae37606db1ebd39c323457ce734bdf58ef0bd9
\ No newline at end of file
diff --git a/chrome/test/data/pdf/two_up_view_feature_test.js b/chrome/test/data/pdf/two_up_view_feature_test.js
new file mode 100644
index 0000000..1bb1964
--- /dev/null
+++ b/chrome/test/data/pdf/two_up_view_feature_test.js
@@ -0,0 +1,36 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+chrome.test.runTests([
+  function testTwoUpViewFeatureDisabled() {
+    const toolbar = document.body.querySelector('#zoom-toolbar');
+    toolbar.twoUpViewEnabled = false;
+
+    const twoUpButton = toolbar.shadowRoot.querySelector('#two-up-view-button');
+    chrome.test.assertTrue(!!twoUpButton);
+    chrome.test.assertTrue(twoUpButton.hidden);
+
+    const fitButton = toolbar.shadowRoot.querySelector('#fit-button');
+    chrome.test.assertTrue(!!fitButton);
+    chrome.test.assertEq(100, fitButton.delay);
+
+    chrome.test.succeed();
+  },
+
+
+  function testTwoUpViewFeatureEnabled() {
+    const toolbar = document.body.querySelector('#zoom-toolbar');
+    toolbar.twoUpViewEnabled = true;
+
+    const twoUpButton = toolbar.shadowRoot.querySelector('#two-up-view-button');
+    chrome.test.assertTrue(!!twoUpButton);
+    chrome.test.assertFalse(twoUpButton.hidden);
+
+    const fitButton = toolbar.shadowRoot.querySelector('#fit-button');
+    chrome.test.assertTrue(!!fitButton);
+    chrome.test.assertEq(150, fitButton.delay);
+
+    chrome.test.succeed();
+  },
+]);
diff --git a/chrome/test/data/pdf/viewport_test.js b/chrome/test/data/pdf/viewport_test.js
index 305ac2ff..bdc0baf 100644
--- a/chrome/test/data/pdf/viewport_test.js
+++ b/chrome/test/data/pdf/viewport_test.js
@@ -240,9 +240,9 @@
   function testGetMostVisiblePageForTwoUpView() {
     const mockWindow = new MockWindow(400, 500);
     const viewport = getZoomableViewport(mockWindow, new MockSizer(), 0, 1, 0);
-    viewport.setTwoUpView(true);
 
-    const documentDimensions = new MockDocumentDimensions(100, 100);
+    const documentDimensions = new MockDocumentDimensions(
+        100, 100, {defaultPageOrientation: 0, twoUpViewEnabled: true});
     documentDimensions.addPageForTwoUpView(100, 0, 300, 400);
     documentDimensions.addPageForTwoUpView(400, 0, 400, 300);
     documentDimensions.addPageForTwoUpView(0, 400, 400, 250);
@@ -601,9 +601,9 @@
     const mockCallback = new MockViewportChangedCallback();
     const viewport = getZoomableViewport(mockWindow, mockSizer, 0, 1, 0);
     viewport.setViewportChangedCallback(mockCallback.callback);
-    viewport.setTwoUpView(true);
 
-    const documentDimensions = new MockDocumentDimensions(800, 750);
+    const documentDimensions = new MockDocumentDimensions(
+        800, 750, {defaultPageOrientation: 0, twoUpViewEnabled: true});
     documentDimensions.addPageForTwoUpView(200, 0, 200, 150);
     documentDimensions.addPageForTwoUpView(400, 0, 400, 200);
     documentDimensions.addPageForTwoUpView(100, 200, 300, 250);
@@ -706,9 +706,9 @@
     const mockCallback = new MockViewportChangedCallback();
     const viewport = getZoomableViewport(mockWindow, mockSizer, 0, 1, 0);
     viewport.setViewportChangedCallback(mockCallback.callback);
-    viewport.setTwoUpView(true);
 
-    const documentDimensions = new MockDocumentDimensions(800, 750);
+    const documentDimensions = new MockDocumentDimensions(
+        800, 750, {defaultPageOrientation: 0, twoUpViewEnabled: true});
     documentDimensions.addPageForTwoUpView(200, 0, 200, 150);
     documentDimensions.addPageForTwoUpView(400, 0, 400, 200);
     documentDimensions.addPageForTwoUpView(100, 200, 300, 250);
@@ -1053,10 +1053,11 @@
 
     chrome.test.assertEq(undefined, viewport.getLayoutOptions());
 
-    viewport.setDocumentDimensions(
-        new MockDocumentDimensions(50, 50, {defaultPageOrientation: 1}));
+    viewport.setDocumentDimensions(new MockDocumentDimensions(
+        50, 50, {defaultPageOrientation: 1, twoUpViewEnabled: true}));
     chrome.test.assertEq(
-        {defaultPageOrientation: 1}, viewport.getLayoutOptions());
+        {defaultPageOrientation: 1, twoUpViewEnabled: true},
+        viewport.getLayoutOptions());
 
     viewport.setDocumentDimensions(new MockDocumentDimensions(50, 50));
     chrome.test.assertEq(undefined, viewport.getLayoutOptions());
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn
index c4cdb16..03f83e92 100644
--- a/chrome/test/data/webui/BUILD.gn
+++ b/chrome/test/data/webui/BUILD.gn
@@ -285,6 +285,7 @@
     "engagement/site_engagement_browsertest.js",
     "interventions_internals_browsertest.js",
     "media/media_engagement_browsertest.js",
+    "media/media_feeds_webui_browsertest.js",
     "media/media_history_webui_browsertest.js",
     "new_tab_page/new_tab_page_browsertest.js",
     "usb_internals_browsertest.js",
diff --git a/chrome/test/data/webui/media/media_feeds_webui_browsertest.js b/chrome/test/data/webui/media/media_feeds_webui_browsertest.js
new file mode 100644
index 0000000..78f841d
--- /dev/null
+++ b/chrome/test/data/webui/media/media_feeds_webui_browsertest.js
@@ -0,0 +1,42 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Test suite for the Media Feeds WebUI.
+ */
+
+GEN('#include "chrome/browser/ui/browser.h"');
+GEN('#include "media/base/media_switches.h"');
+
+function MediaFeedsWebUIBrowserTest() {}
+
+MediaFeedsWebUIBrowserTest.prototype = {
+  __proto__: testing.Test.prototype,
+
+  browsePreload: 'chrome://media-feeds',
+
+  featureList: {enabled: ['media::kMediaFeeds']},
+
+  isAsync: true,
+
+  extraLibraries: [
+    '//third_party/mocha/mocha.js',
+    '//chrome/test/data/webui/mocha_adapter.js',
+  ],
+};
+
+TEST_F('MediaFeedsWebUIBrowserTest', 'All', function() {
+  suiteSetup(function() {
+    return whenPageIsPopulatedForTest();
+  });
+
+  test('check feeds table is loaded', function() {
+    let feedHeaders =
+        Array.from(document.querySelector('#feed-table-header').children);
+
+    assertDeepEquals(['ID', 'Url'], feedHeaders.map(x => x.textContent.trim()));
+  });
+
+  mocha.run();
+});
diff --git a/chrome/test/data/webui/new_tab_page/app_test.js b/chrome/test/data/webui/new_tab_page/app_test.js
index e330bf1a..0d56b6e 100644
--- a/chrome/test/data/webui/new_tab_page/app_test.js
+++ b/chrome/test/data/webui/new_tab_page/app_test.js
@@ -5,7 +5,7 @@
 import 'chrome://new-tab-page/app.js';
 
 import {BrowserProxy} from 'chrome://new-tab-page/browser_proxy.js';
-import {assertStyle, createTestProxy} from 'chrome://test/new_tab_page/test_support.js';
+import {assertNotStyle, assertStyle, createTestProxy} from 'chrome://test/new_tab_page/test_support.js';
 import {flushTasks} from 'chrome://test/test_util.m.js';
 
 suite('NewTabPageAppTest', () => {
@@ -58,6 +58,10 @@
       shortcutBackgroundColor: {value: 0xff00ff00},
       shortcutTextColor: {value: 0xff0000ff},
       isDark: false,
+      backgroundImageUrl: null,
+      backgroundImageAttribution1: '',
+      backgroundImageAttribution2: '',
+      backgroundImageAttributionUrl: null,
     };
 
     // Act.
@@ -69,7 +73,7 @@
         theme, app.shadowRoot.querySelector('ntp-customize-dialog').theme);
   });
 
-  test('setting theme updates background color and most visited', async () => {
+  test('setting theme updates ntp', async () => {
     // Act.
     testProxy.callbackRouterRemote.setTheme({
       type: newTabPage.mojom.ThemeType.DEFAULT,
@@ -84,11 +88,14 @@
     // Assert.
     assertStyle(app.$.background, 'background-color', 'rgb(255, 0, 0)');
     assertStyle(
-        app.shadowRoot.querySelector('ntp-most-visited'),
-        '--icon-background-color', 'rgb(0, 255, 0)');
-    assertStyle(
-        app.shadowRoot.querySelector('ntp-most-visited'), '--tile-title-color',
-        'rgb(0, 0, 255)');
+        app.$.background, '--ntp-theme-shortcut-background-color',
+        'rgb(0, 255, 0)');
+    assertStyle(app.$.background, '--ntp-theme-text-color', 'rgb(0, 0, 255)');
+    assertFalse(app.$.background.hasAttribute('has-background-image'));
+    assertStyle(app.$.backgroundImage, 'display', 'none');
+    assertStyle(app.$.backgroundGradient, 'display', 'none');
+    assertStyle(app.$.backgroundImageAttribution, 'display', 'none');
+    assertStyle(app.$.backgroundImageAttribution2, 'display', 'none');
   });
 
   test('clicking voice search button opens voice search overlay', async () => {
@@ -99,4 +106,59 @@
     // Assert.
     assertTrue(!!app.shadowRoot.querySelector('ntp-voice-search-overlay'));
   });
+
+  test('setting background images shows iframe and gradient', async () => {
+    // Act.
+    const theme = {
+      type: newTabPage.mojom.ThemeType.DEFAULT,
+      info: {chromeThemeId: 0},
+      backgroundColor: {value: 0xffff0000},
+      shortcutBackgroundColor: {value: 0xff00ff00},
+      shortcutTextColor: {value: 0xff0000ff},
+      isDark: false,
+      backgroundImageUrl: {url: 'https://img.png'},
+      backgroundImageAttribution1: '',
+      backgroundImageAttribution2: '',
+      backgroundImageAttributionUrl: null,
+    };
+
+    // Act.
+    testProxy.callbackRouterRemote.setTheme(theme);
+    await testProxy.callbackRouterRemote.$.flushForTesting();
+
+    // Assert.
+    assertNotStyle(app.$.backgroundImage, 'display', 'none');
+    assertNotStyle(app.$.backgroundGradient, 'display', 'none');
+    assertNotStyle(app.$.backgroundImageAttribution, 'text-shadow', 'none');
+    assertEquals(app.$.backgroundImage.path, 'image?https://img.png');
+  });
+
+  test('setting attributions shows attributions', async function() {
+    // Act.
+    const theme = {
+      type: newTabPage.mojom.ThemeType.DEFAULT,
+      info: {chromeThemeId: 0},
+      backgroundColor: {value: 0xffff0000},
+      shortcutBackgroundColor: {value: 0xff00ff00},
+      shortcutTextColor: {value: 0xff0000ff},
+      isDark: false,
+      backgroundImageUrl: null,
+      backgroundImageAttribution1: 'foo',
+      backgroundImageAttribution2: 'bar',
+      backgroundImageAttributionUrl: {url: 'https://info.com'},
+    };
+
+    // Act.
+    testProxy.callbackRouterRemote.setTheme(theme);
+    await testProxy.callbackRouterRemote.$.flushForTesting();
+
+    // Assert.
+    assertNotStyle(app.$.backgroundImageAttribution, 'display', 'none');
+    assertNotStyle(app.$.backgroundImageAttribution2, 'display', 'none');
+    assertEquals(
+        app.$.backgroundImageAttribution.getAttribute('href'),
+        'https://info.com');
+    assertEquals(app.$.backgroundImageAttribution1.textContent.trim(), 'foo');
+    assertEquals(app.$.backgroundImageAttribution2.textContent.trim(), 'bar');
+  });
 });
diff --git a/chrome/test/data/webui/new_tab_page/most_visited_test.js b/chrome/test/data/webui/new_tab_page/most_visited_test.js
index cbffea6..6eca1011 100644
--- a/chrome/test/data/webui/new_tab_page/most_visited_test.js
+++ b/chrome/test/data/webui/new_tab_page/most_visited_test.js
@@ -613,8 +613,9 @@
 
   test('setting color styles tile color', () => {
     // Act.
-    mostVisited.style.setProperty('--tile-title-color', 'blue');
-    mostVisited.style.setProperty('--icon-background-color', 'red');
+    mostVisited.style.setProperty('--ntp-theme-text-color', 'blue');
+    mostVisited.style.setProperty(
+        '--ntp-theme-shortcut-background-color', 'red');
 
     // Assert.
     queryAll('.tile-title').forEach(tile => {
diff --git a/chrome/test/data/webui/settings/password_check_test.js b/chrome/test/data/webui/settings/password_check_test.js
index dfee7d9..9770320 100644
--- a/chrome/test/data/webui/settings/password_check_test.js
+++ b/chrome/test/data/webui/settings/password_check_test.js
@@ -77,10 +77,135 @@
 
     // Test verifies that clicking 'Check again' make proper function call to
     // password manager
-    test('testCheckAgainButton', function() {
-      const checkPasswordSection = createCheckPasswordSection();
-      checkPasswordSection.$.controlPasswordCheckButton.click();
-      return passwordManager.whenCalled('startBulkPasswordCheck');
+    test('testCheckAgainButtonWhenIdle', function() {
+      assertEquals(
+          PasswordCheckState.IDLE, passwordManager.data.checkStatus.state);
+      const section = createCheckPasswordSection();
+      return passwordManager.whenCalled('getPasswordCheckStatus')
+          .then(() => {
+            assert(isElementVisible(section.$.controlPasswordCheckButton));
+            expectEquals(
+                section.i18n('checkPasswordsAgain'),
+                section.$.controlPasswordCheckButton.innerText);
+            section.$.controlPasswordCheckButton.click();
+          })
+          .then(() => passwordManager.whenCalled('startBulkPasswordCheck'));
+    });
+
+    // Test verifies that clicking 'Check again' make proper function call to
+    // password manager
+    test('testStopButtonWhenRunning', function() {
+      passwordManager.data.checkStatus =
+          autofill_test_util.makePasswordCheckStatus(
+              /*state=*/ PasswordCheckState.RUNNING,
+              /*checked=*/ 0,
+              /*remaining=*/ 2);
+      const section = createCheckPasswordSection();
+      return passwordManager.whenCalled('getPasswordCheckStatus')
+          .then(() => {
+            assert(isElementVisible(section.$.controlPasswordCheckButton));
+            expectEquals(
+                section.i18n('checkPasswordsStop'),
+                section.$.controlPasswordCheckButton.innerText);
+            section.$.controlPasswordCheckButton.click();
+          })
+          .then(() => passwordManager.whenCalled('stopBulkPasswordCheck'));
+    });
+
+    // Test verifies that 'Try again' is not visible if users are out of quota.
+    test('testNoRetryAfterHittingQuota', function() {
+      passwordManager.data.checkStatus =
+          autofill_test_util.makePasswordCheckStatus(
+              /*state=*/ PasswordCheckState.QUOTA_LIMIT);
+      const section = createCheckPasswordSection();
+      return passwordManager.whenCalled('getPasswordCheckStatus').then(() => {
+        expectFalse(isElementVisible(section.$.controlPasswordCheckButton));
+      });
+    });
+
+    // Test verifies that 'Try again' is not visible if users have too many
+    // passwords. Instead, there should be a link to their Google Account.
+    test('testNoRetryForTooManyPasswords', function() {
+      passwordManager.data.checkStatus =
+          autofill_test_util.makePasswordCheckStatus(
+              /*state=*/ PasswordCheckState.TOO_MANY_PASSWORDS);
+      const section = createCheckPasswordSection();
+      return passwordManager.whenCalled('getPasswordCheckStatus').then(() => {
+        expectFalse(isElementVisible(section.$.controlPasswordCheckButton));
+        expectTrue(isElementVisible(section.$.linkToGoogleAccount));
+      });
+    });
+
+    // Test verifies that 'Try again' visible and working when users encounter a
+    // generic error.
+    test('testShowRetryAfterGenericError', function() {
+      passwordManager.data.checkStatus =
+          autofill_test_util.makePasswordCheckStatus(
+              /*state=*/ PasswordCheckState.OTHER_ERROR);
+      const section = createCheckPasswordSection();
+      return passwordManager.whenCalled('getPasswordCheckStatus')
+          .then(() => {
+            assert(isElementVisible(section.$.controlPasswordCheckButton));
+            expectEquals(
+                section.i18n('checkPasswordsAgainAfterError'),
+                section.$.controlPasswordCheckButton.innerText);
+            section.$.controlPasswordCheckButton.click();
+          })
+          .then(() => passwordManager.whenCalled('startBulkPasswordCheck'));
+    });
+
+    // Test verifies that 'Try again' visible and working when users encounter a
+    // not-signed-in error.
+    test('testShowRetryAfterSignOutError', function() {
+      passwordManager.data.checkStatus =
+          autofill_test_util.makePasswordCheckStatus(
+              /*state=*/ PasswordCheckState.SIGNED_OUT);
+      const section = createCheckPasswordSection();
+      return passwordManager.whenCalled('getPasswordCheckStatus')
+          .then(() => {
+            assert(isElementVisible(section.$.controlPasswordCheckButton));
+            expectEquals(
+                section.i18n('checkPasswordsAgainAfterError'),
+                section.$.controlPasswordCheckButton.innerText);
+            section.$.controlPasswordCheckButton.click();
+          })
+          .then(() => passwordManager.whenCalled('startBulkPasswordCheck'));
+    });
+
+    // Test verifies that 'Try again' visible and working when users encounter a
+    // no-saved-passwords error.
+    test('testShowRetryAfterNoPasswordsError', function() {
+      passwordManager.data.checkStatus =
+          autofill_test_util.makePasswordCheckStatus(
+              /*state=*/ PasswordCheckState.NO_PASSWORDS);
+      const section = createCheckPasswordSection();
+      return passwordManager.whenCalled('getPasswordCheckStatus')
+          .then(() => {
+            assert(isElementVisible(section.$.controlPasswordCheckButton));
+            expectEquals(
+                section.i18n('checkPasswordsAgainAfterError'),
+                section.$.controlPasswordCheckButton.innerText);
+            section.$.controlPasswordCheckButton.click();
+          })
+          .then(() => passwordManager.whenCalled('startBulkPasswordCheck'));
+    });
+
+    // Test verifies that 'Try again' visible and working when users encounter a
+    // connection error.
+    test('testShowRetryAfterNoConnectionError', function() {
+      passwordManager.data.checkStatus =
+          autofill_test_util.makePasswordCheckStatus(
+              /*state=*/ PasswordCheckState.OFFLINE);
+      const section = createCheckPasswordSection();
+      return passwordManager.whenCalled('getPasswordCheckStatus')
+          .then(() => {
+            assert(isElementVisible(section.$.controlPasswordCheckButton));
+            expectEquals(
+                section.i18n('checkPasswordsAgainAfterError'),
+                section.$.controlPasswordCheckButton.innerText);
+            section.$.controlPasswordCheckButton.click();
+          })
+          .then(() => passwordManager.whenCalled('startBulkPasswordCheck'));
     });
 
     // Test verifies that if no compromised credentials found than list is not
@@ -446,7 +571,8 @@
         assert(isElementVisible(title));
         // TODO(crbug.com/1047726): Check for account redirection.
         expectEquals(
-            section.i18n('checkPasswordsErrorTooManyPasswords'),
+            section.i18n('checkPasswordsErrorTooManyPasswords') + ' ' +
+                section.i18n('checkPasswordsAgainInAccount'),
             title.innerText);
         expectFalse(isElementVisible(section.$.subtitle));
       });
@@ -484,5 +610,32 @@
         expectFalse(isElementVisible(section.$.subtitle));
       });
     });
+
+    // Transform check-button to stop-button if a check is running.
+    test('testButtonChangesTextAccordingToStatus', function() {
+      passwordManager.data.checkStatus =
+          autofill_test_util.makePasswordCheckStatus(PasswordCheckState.IDLE);
+
+      const section = createCheckPasswordSection();
+      return passwordManager.whenCalled('getPasswordCheckStatus').then(() => {
+        assert(isElementVisible(section.$.controlPasswordCheckButton));
+        expectEquals(
+            section.i18n('checkPasswordsAgain'),
+            section.$.controlPasswordCheckButton.innerText);
+
+        // Change status from running to IDLE.
+        assert(!!passwordManager.lastCallback.addPasswordCheckStatusListener);
+        passwordManager.lastCallback.addPasswordCheckStatusListener(
+            autofill_test_util.makePasswordCheckStatus(
+                /*state=*/ PasswordCheckState.RUNNING,
+                /*checked=*/ 0,
+                /*remaining=*/ 2));
+
+        assert(isElementVisible(section.$.controlPasswordCheckButton));
+        expectEquals(
+            section.i18n('checkPasswordsStop'),
+            section.$.controlPasswordCheckButton.innerText);
+      });
+    });
   });
 });
diff --git a/chrome/test/data/webui/settings/test_password_manager_proxy.js b/chrome/test/data/webui/settings/test_password_manager_proxy.js
index eb136b0..95fb3bb0 100644
--- a/chrome/test/data/webui/settings/test_password_manager_proxy.js
+++ b/chrome/test/data/webui/settings/test_password_manager_proxy.js
@@ -14,6 +14,7 @@
     super([
       'requestPlaintextPassword',
       'startBulkPasswordCheck',
+      'stopBulkPasswordCheck',
       'getCompromisedCredentialsInfo',
       'getPasswordCheckStatus',
     ]);
@@ -153,6 +154,11 @@
   }
 
   /** @override */
+  stopBulkPasswordCheck() {
+    this.methodCalled('stopBulkPasswordCheck');
+  }
+
+  /** @override */
   getCompromisedCredentialsInfo() {
     this.methodCalled('getCompromisedCredentialsInfo');
     return Promise.resolve(this.data.leakedCredentials);
diff --git a/chrome/test/data/webui/tab_strip/tab_list_test.js b/chrome/test/data/webui/tab_strip/tab_list_test.js
index 2e7c9a5..54c2cb9 100644
--- a/chrome/test/data/webui/tab_strip/tab_list_test.js
+++ b/chrome/test/data/webui/tab_strip/tab_list_test.js
@@ -9,6 +9,8 @@
 import {TabStripEmbedderProxy} from 'chrome://tab-strip/tab_strip_embedder_proxy.js';
 import {TabsApiProxy} from 'chrome://tab-strip/tabs_api_proxy.js';
 
+import {eventToPromise} from '../test_util.m.js';
+
 import {TestTabStripEmbedderProxy} from './test_tab_strip_embedder_proxy.js';
 import {TestTabsApiProxy} from './test_tabs_api_proxy.js';
 
diff --git a/chrome/test/data/webui/tab_strip/tab_swiper_test.js b/chrome/test/data/webui/tab_strip/tab_swiper_test.js
index 5f971563..439f1eb7 100644
--- a/chrome/test/data/webui/tab_strip/tab_swiper_test.js
+++ b/chrome/test/data/webui/tab_strip/tab_swiper_test.js
@@ -25,7 +25,7 @@
     tabSwiper.startObserving();
   });
 
-  test('swiping does not progress the animation', () => {
+  test('SwipingProgressesAnimation', () => {
     // Set margin top 0 to avoid offsetting the bounding client rect.
     document.body.style.margin = 0;
 
@@ -47,27 +47,33 @@
     let startTop = tabElement.getBoundingClientRect().top;
     assertEquals(startTop, 0);
 
-    // Swiping did not start the animation.
+    // Swipe was enough to start animating the position.
     pointerState.clientY = startY - (TRANSLATE_ANIMATION_THRESHOLD_PX + 1);
     tabElement.dispatchEvent(new PointerEvent('pointermove', pointerState));
     assertEquals(tabElStyle.maxWidth, `${tabWidth}px`);
-    assertEquals(startTop, tabElement.getBoundingClientRect().top);
+    let top = tabElement.getBoundingClientRect().top;
+    assertTrue(top < startTop && top > -1 * SWIPE_FINISH_THRESHOLD_PX);
 
-    // Swipe was enough to close but did not yet animate.
+    // Swipe was enough to start animating max width and opacity.
     pointerState.clientY = startY - (SWIPE_START_THRESHOLD_PX + 1);
     tabElement.dispatchEvent(new PointerEvent('pointermove', pointerState));
-    assertEquals(tabWidth, parseInt(tabElStyle.maxWidth, 10));
-    assertEquals('1', tabElStyle.opacity);
+    assertTrue(
+        parseInt(tabElStyle.maxWidth) > 0 &&
+        parseInt(tabElStyle.maxWidth) < tabWidth);
+    assertTrue(
+        parseFloat(tabElStyle.opacity) > 0 &&
+        parseFloat(tabElStyle.opacity) < 1);
 
-    // Verify animation still not progressed.
+    // Swipe was enough to finish animating.
     pointerState.clientY = startY - (SWIPE_FINISH_THRESHOLD_PX + 1);
     tabElement.dispatchEvent(new PointerEvent('pointermove', pointerState));
-    assertEquals(tabWidth, parseInt(tabElStyle.maxWidth, 10));
-    assertEquals('1', tabElStyle.opacity);
-    assertEquals(startTop, tabElement.getBoundingClientRect().top);
+    assertEquals(tabElStyle.maxWidth, '0px');
+    assertEquals(tabElStyle.opacity, '0');
+    assertEquals(
+        tabElement.getBoundingClientRect().top, -SWIPE_FINISH_THRESHOLD_PX);
   });
 
-  test('finishing the swipe animation fires an event', async () => {
+  test('SwipingPastFinishThresholdFiresEvent', async () => {
     const firedEventPromise = eventToPromise('swipe', tabElement);
     const startY = 50;
     const pointerState = {clientY: startY, pointerId: 1};
@@ -80,7 +86,25 @@
     await firedEventPromise;
   });
 
-  test('swiping and letting go before resets animation', () => {
+  test('SwipingPastStartThresholdFinishesAnimation', async () => {
+    const firedEventPromise = eventToPromise('swipe', tabElement);
+
+    const tabElStyle = window.getComputedStyle(tabElement);
+    const startY = 50;
+
+    const pointerState = {clientY: 50, pointerId: 1};
+    tabElement.dispatchEvent(new PointerEvent('pointerdown', pointerState));
+
+    pointerState.clientY = startY - (SWIPE_START_THRESHOLD_PX + 1);
+    pointerState.movementY = 1; /* Any non-0 value here is fine. */
+    tabElement.dispatchEvent(new PointerEvent('pointermove', pointerState));
+    tabElement.dispatchEvent(new PointerEvent('pointerup', pointerState));
+    await firedEventPromise;
+    assertEquals(tabElStyle.maxWidth, '0px');
+    assertEquals(tabElStyle.opacity, '0');
+  });
+
+  test('NotCompletingSwipePastThreshold', () => {
     tabElement.style.setProperty('--tabstrip-tab-width', '100px');
     const tabElStyle = window.getComputedStyle(tabElement);
     const startY = 50;
@@ -97,7 +121,7 @@
     assertEquals(tabElStyle.opacity, '1');
   });
 
-  test('swiping fast enough fires an event', async () => {
+  test('SwipingAtHighVelocityFinishesAnimation', async () => {
     const tabElStyle = window.getComputedStyle(tabElement);
     const firedEventPromise = eventToPromise('swipe', tabElement);
     const startY = 50;
@@ -112,9 +136,11 @@
     tabElement.dispatchEvent(new PointerEvent('pointerup', pointerState));
 
     await firedEventPromise;
+    assertEquals(tabElStyle.maxWidth, '0px');
+    assertEquals(tabElStyle.opacity, '0');
   });
 
-  test('pointerdown should reset the animation time', async () => {
+  test('PointerDownResetsAnimationTime', async () => {
     tabElement.style.setProperty('--tabstrip-tab-width', '100px');
     const tabElStyle = window.getComputedStyle(tabElement);
     const pointerState = {clientY: 50, pointerId: 1};
diff --git a/chrome/test/data/webui/tab_strip/tab_test.js b/chrome/test/data/webui/tab_strip/tab_test.js
index b16eac8..97d2f18 100644
--- a/chrome/test/data/webui/tab_strip/tab_test.js
+++ b/chrome/test/data/webui/tab_strip/tab_test.js
@@ -66,7 +66,7 @@
     // After animation completes.
     assertEquals('100px', tabElementStyle.paddingRight);
     assertEquals('none', tabElementStyle.maxWidth);
-    assertEquals('matrix(1, 0, 0, 1, 0, 0)', tabElementStyle.transform);
+    assertEquals('none', tabElementStyle.transform);
   });
 
   test('slideIn animations for not the last tab', async () => {
@@ -87,7 +87,7 @@
     // After animation completes.
     assertEquals('100px', tabElementStyle.paddingRight);
     assertEquals('none', tabElementStyle.maxWidth);
-    assertEquals('matrix(1, 0, 0, 1, 0, 0)', tabElementStyle.transform);
+    assertEquals('none', tabElementStyle.transform);
   });
 
   test('slideIn animations right to left for RTL languages', async () => {
@@ -108,7 +108,7 @@
     // After animation completes.
     assertEquals('100px', tabElementStyle.paddingLeft);
     assertEquals('none', tabElementStyle.maxWidth);
-    assertEquals('matrix(1, 0, 0, 1, 0, 0)', tabElementStyle.transform);
+    assertEquals('none', tabElementStyle.transform);
   });
 
   test('slideOut animates out the element', async () => {
diff --git a/chrome/updater/app/app.cc b/chrome/updater/app/app.cc
index e4a82180..495a459 100644
--- a/chrome/updater/app/app.cc
+++ b/chrome/updater/app/app.cc
@@ -13,10 +13,6 @@
 #include "base/task/single_thread_task_executor.h"
 #include "base/task/thread_pool/thread_pool_instance.h"
 #include "base/threading/thread_restrictions.h"
-#include "chrome/updater/crash_client.h"
-#include "chrome/updater/crash_reporter.h"
-#include "chrome/updater/updater_version.h"
-#include "components/crash/core/common/crash_key.h"
 
 namespace updater {
 
@@ -24,16 +20,6 @@
 App::~App() = default;
 
 int App::Run() {
-  crash_reporter::InitializeCrashKeys();
-  static crash_reporter::CrashKeyString<16> crash_key_process_type(
-      "process_type");
-  crash_key_process_type.Set("updater");
-  if (CrashClient::GetInstance()->InitializeCrashReporting())
-    VLOG(1) << "Crash reporting initialized.";
-  else
-    VLOG(1) << "Crash reporting is not available.";
-  StartCrashReporter(UPDATER_VERSION_STRING);
-
   base::ThreadPoolInstance::CreateAndStartWithDefaultParams("Updater");
   base::SingleThreadTaskExecutor main_task_executor(base::MessagePumpType::UI);
   Initialize();
diff --git a/chrome/updater/mac/setup/setup.mm b/chrome/updater/mac/setup/setup.mm
index 100ed74..3278083 100644
--- a/chrome/updater/mac/setup/setup.mm
+++ b/chrome/updater/mac/setup/setup.mm
@@ -88,10 +88,19 @@
 }
 
 bool CopyBundle() {
-  // Copy bundle to "~/Library/Google/GoogleUpdate".
+  // Copy bundle to ~/Library/COMPANY_SHORTNAME_STRING/PRODUCT_FULLNAME_STRING.
+  // e.g. ~/Library/Google/GoogleUpdater
   const base::FilePath dest_path =
       base::mac::GetUserLibraryPath().Append(GetUpdateFolderName());
 
+  if (!base::PathExists(dest_path)) {
+    if (!base::CreateDirectory(dest_path)) {
+      LOG(ERROR) << "Failed to create directory at "
+                 << dest_path.value().c_str();
+      return false;
+    }
+  }
+
   base::FilePath this_executable_path;
   base::PathService::Get(base::FILE_EXE, &this_executable_path);
   const base::FilePath src_path =
@@ -105,7 +114,9 @@
 }
 
 bool DeleteInstallFolder() {
-  // Delete the install folder - "~/Library/Google/GoogleUpdate".
+  // Delete install folder
+  // ~/Library/COMPANY_SHORTNAME_STRING/PRODUCT_FULLNAME_STRING.
+  // e.g. ~/Library/Google/GoogleUpdater
   const base::FilePath dest_path =
       base::mac::GetUserLibraryPath().Append(GetUpdateFolderName());
 
diff --git a/chrome/updater/updater.cc b/chrome/updater/updater.cc
index f991ec7..1862a29d 100644
--- a/chrome/updater/updater.cc
+++ b/chrome/updater/updater.cc
@@ -16,7 +16,9 @@
 #include "chrome/updater/constants.h"
 #include "chrome/updater/crash_client.h"
 #include "chrome/updater/crash_reporter.h"
+#include "chrome/updater/updater_version.h"
 #include "chrome/updater/util.h"
+#include "components/crash/core/common/crash_key.h"
 
 #if defined(OS_WIN)
 #include "chrome/updater/server/win/server.h"
@@ -55,7 +57,20 @@
                        true,    // enable_thread_id
                        true,    // enable_timestamp
                        false);  // enable_tickcount
-  VLOG(1) << "Log file " << settings.log_file_path;
+  VLOG(1) << "Version " << UPDATER_VERSION_STRING << ", log file "
+          << settings.log_file_path;
+}
+
+void InitializeCrashReporting() {
+  crash_reporter::InitializeCrashKeys();
+  static crash_reporter::CrashKeyString<16> crash_key_process_type(
+      "process_type");
+  crash_key_process_type.Set("updater");
+  if (CrashClient::GetInstance()->InitializeCrashReporting())
+    VLOG(1) << "Crash reporting initialized.";
+  else
+    VLOG(1) << "Crash reporting is not available.";
+  StartCrashReporter(UPDATER_VERSION_STRING);
 }
 
 }  // namespace
@@ -64,8 +79,9 @@
   DCHECK(!command_line->HasSwitch(kCrashHandlerSwitch));
 
   if (command_line->HasSwitch(kCrashMeSwitch)) {
-    int* ptr = nullptr;
-    return *ptr;
+    // Records a backtrace in the log, crashes the program, saves a crash dump,
+    // and reports the crash.
+    CHECK(false) << "--crash-me was used.";
   }
 
   if (command_line->HasSwitch(kServerSwitch)) {
@@ -105,6 +121,8 @@
   if (command_line->HasSwitch(kCrashHandlerSwitch))
     return CrashReporterMain();
 
+  InitializeCrashReporting();
+
   return HandleUpdaterCommands(command_line);
 }
 
diff --git a/chromeos/components/quick_answers/quick_answers_client.cc b/chromeos/components/quick_answers/quick_answers_client.cc
index 5e6d8b5d..51451c21 100644
--- a/chromeos/components/quick_answers/quick_answers_client.cc
+++ b/chromeos/components/quick_answers/quick_answers_client.cc
@@ -110,6 +110,17 @@
   result_loader_->Fetch(processed_request.selected_text);
 }
 
+void QuickAnswersClient::OnQuickAnswerClick(ResultType result_type) {
+  // Use default 0 duration for clicks before fetch finish.
+  base::TimeDelta duration;
+  if (!quick_answer_received_time_.is_null()) {
+    // Fetch finish with no result, set the duration to be between fetch
+    // finish and user clicks.
+    duration = base::TimeTicks::Now() - quick_answer_received_time_;
+  }
+  RecordClick(result_type, duration);
+}
+
 void QuickAnswersClient::NotifyEligibilityChanged() {
   DCHECK(delegate_);
   bool is_eligible =
@@ -138,6 +149,7 @@
 void QuickAnswersClient::OnQuickAnswerReceived(
     std::unique_ptr<QuickAnswer> quick_answer) {
   DCHECK(delegate_);
+  quick_answer_received_time_ = base::TimeTicks::Now();
   delegate_->OnQuickAnswerReceived(std::move(quick_answer));
 }
 
diff --git a/chromeos/components/quick_answers/quick_answers_client.h b/chromeos/components/quick_answers/quick_answers_client.h
index a8fb253..6fe8b505 100644
--- a/chromeos/components/quick_answers/quick_answers_client.h
+++ b/chromeos/components/quick_answers/quick_answers_client.h
@@ -24,6 +24,7 @@
 struct QuickAnswer;
 struct QuickAnswersRequest;
 enum class IntentType;
+enum class ResultType;
 
 // A delegate interface for the QuickAnswersClient.
 class QuickAnswersDelegate {
@@ -85,6 +86,9 @@
   // Send a quick answer request. Virtual for testing.
   virtual void SendRequest(const QuickAnswersRequest& quick_answers_request);
 
+  // User clicks on the Quick Answers result. Virtual for testing.
+  virtual void OnQuickAnswerClick(ResultType result_type);
+
   static void SetResultLoaderFactoryForTesting(
       ResultLoaderFactoryCallback* factory);
 
@@ -104,6 +108,8 @@
   ash::mojom::AssistantAllowedState assistant_allowed_state_ =
       ash::mojom::AssistantAllowedState::ALLOWED;
   bool is_eligible_ = false;
+  // Time when the quick answer is received.
+  base::TimeTicks quick_answer_received_time_;
 };
 
 }  // namespace quick_answers
diff --git a/chromeos/constants/chromeos_features.cc b/chromeos/constants/chromeos_features.cc
index 94de3d5..7ea53da6 100644
--- a/chromeos/constants/chromeos_features.cc
+++ b/chromeos/constants/chromeos_features.cc
@@ -254,10 +254,6 @@
 const base::Feature kSessionManagerLongKillTimeout{
     "SessionManagerLongKillTimeout", base::FEATURE_DISABLED_BY_DEFAULT};
 
-// Enables or disables the scrollable shelf.
-const base::Feature kShelfScrollable{"ShelfScrollable",
-                                     base::FEATURE_ENABLED_BY_DEFAULT};
-
 // Enables or disables the shelf hotseat.
 const base::Feature kShelfHotseat{"ShelfHotseat",
                                   base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/chromeos/constants/chromeos_features.h b/chromeos/constants/chromeos_features.h
index ce2a445..ffdee42 100644
--- a/chromeos/constants/chromeos_features.h
+++ b/chromeos/constants/chromeos_features.h
@@ -116,8 +116,6 @@
 COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
 extern const base::Feature kSessionManagerLongKillTimeout;
 COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
-extern const base::Feature kShelfScrollable;
-COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
 extern const base::Feature kShelfHotseat;
 COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
 extern const base::Feature kShowBluetoothDebugLogToggle;
diff --git a/chromeos/constants/chromeos_switches.cc b/chromeos/constants/chromeos_switches.cc
index f23cf3a1..3cdb92f9 100644
--- a/chromeos/constants/chromeos_switches.cc
+++ b/chromeos/constants/chromeos_switches.cc
@@ -562,11 +562,9 @@
 }
 
 bool ShouldShowScrollableShelf() {
-  // If we're showing the new shelf design, also enable scrollable shelf.
-  if (ShouldShowShelfHotseat())
-    return true;
-
-  return base::FeatureList::IsEnabled(features::kShelfScrollable);
+  // TODO(manucornet): Remove this method and simplify conditions depending
+  // on it since it's now always true.
+  return true;
 }
 
 bool ShouldTetherHostScansIgnoreWiredConnections() {
diff --git a/chromeos/profiles/orderfile.newest.txt b/chromeos/profiles/orderfile.newest.txt
index 8c7c0795..4910582 100644
--- a/chromeos/profiles/orderfile.newest.txt
+++ b/chromeos/profiles/orderfile.newest.txt
@@ -1 +1 @@
-chromeos-chrome-orderfile-field-82-4044.31-1583145468-benchmark-82.0.4077.0-r1.orderfile.xz
\ No newline at end of file
+chromeos-chrome-orderfile-field-82-4044.31-1583145468-benchmark-82.0.4079.0-r1.orderfile.xz
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_af.xtb b/chromeos/strings/chromeos_strings_af.xtb
index d2d5fafa..c29c1cca 100644
--- a/chromeos/strings/chromeos_strings_af.xtb
+++ b/chromeos/strings/chromeos_strings_af.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Wagwoord moes al verander geword het</translation>
 <translation id="2049639323467105390">Die toestel word deur <ph name="DOMAIN" /> bestuur.</translation>
 <translation id="2338501278241028356">Skakel Bluetooth aan om toestelle in die omtrek te ontdek</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> pogings oor</translation>
 <translation id="2805756323405976993">Programme</translation>
 <translation id="2872961005593481000">Skakel af</translation>
 <translation id="3008341117444806826">HERLAAI</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Verander wagwoord</translation>
 <translation id="8208861521865154048">Byvoordele</translation>
 <translation id="8747900814994928677">Bevestig verandering</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> pogings oor</translation>
 <translation id="910415269708673980">Herlaai kaartjie vir <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Ontsluit</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_am.xtb b/chromeos/strings/chromeos_strings_am.xtb
index 7bebffb4..164615c2 100644
--- a/chromeos/strings/chromeos_strings_am.xtb
+++ b/chromeos/strings/chromeos_strings_am.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">የይለፍ ቃል ለውጥ ማድረጊያ ጊዜው አልፏል</translation>
 <translation id="2049639323467105390">ይህ መሣሪያ በ<ph name="DOMAIN" /> ነው የሚቀናበረው።</translation>
 <translation id="2338501278241028356">በአቅራቢያ ያሉ መሣሪያዎችን ለማግኘት ብሉቱዝን ያብሩ</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> ሙከራዎች ቀርተዋል</translation>
 <translation id="2805756323405976993">መተግበሪያዎች</translation>
 <translation id="2872961005593481000">ዝጋ</translation>
 <translation id="3008341117444806826">አድስ</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">የይለፍ ቃል ለውጥ</translation>
 <translation id="8208861521865154048">ጥቅማጥቅሞች</translation>
 <translation id="8747900814994928677">ለውጥን አረጋግጥ</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> ቅንብሮች ቀርተዋል</translation>
 <translation id="910415269708673980">የ<ph name="PRINCIPAL_NAME" /> ቲኬትን ያድሱ</translation>
 <translation id="9111102763498581341">ክፈት</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_bg.xtb b/chromeos/strings/chromeos_strings_bg.xtb
index c117bca..e3788ed 100644
--- a/chromeos/strings/chromeos_strings_bg.xtb
+++ b/chromeos/strings/chromeos_strings_bg.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Срокът за промяна на паролата е изтекъл</translation>
 <translation id="2049639323467105390">Това устройство се управлява от <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Включете Bluetooth, за да бъдат открити устройствата в близост</translation>
+<translation id="2375079107209812402">Остават <ph name="ATTEMPTS_LEFT" /> опита</translation>
 <translation id="2805756323405976993">Приложения</translation>
 <translation id="2872961005593481000">Изключване</translation>
 <translation id="3008341117444806826">ОПРЕСНЯВАНЕ</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Промяна на паролата</translation>
 <translation id="8208861521865154048">Предимства</translation>
 <translation id="8747900814994928677">Потвърждаване на промяната</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> Оставащи опити: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="910415269708673980">Опресняване на пропуска за <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Отключване</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_bs.xtb b/chromeos/strings/chromeos_strings_bs.xtb
index bdf9b40..e3a6642 100644
--- a/chromeos/strings/chromeos_strings_bs.xtb
+++ b/chromeos/strings/chromeos_strings_bs.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Vrijeme za promjenu lozinke je isteklo</translation>
 <translation id="2049639323467105390">Ovim uređajem upravlja domena <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Uključite Bluetooth da otkrijete uređaje u blizini</translation>
+<translation id="2375079107209812402">Broj preostalih pokušaja: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="2805756323405976993">Aplikacije</translation>
 <translation id="2872961005593481000">Isključi</translation>
 <translation id="3008341117444806826">OSVJEŽI</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Promijenite lozinku</translation>
 <translation id="8208861521865154048">Privilegije</translation>
 <translation id="8747900814994928677">Potvrdite promjenu</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> Broj preostalih pokušaja: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="910415269708673980">Osvježite tiket za <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Otključaj</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_ca.xtb b/chromeos/strings/chromeos_strings_ca.xtb
index b954842..9678013 100644
--- a/chromeos/strings/chromeos_strings_ca.xtb
+++ b/chromeos/strings/chromeos_strings_ca.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Canvi de contrasenya vençut</translation>
 <translation id="2049639323467105390">Aquest dispositiu està gestionat per <ph name="DOMAIN" /></translation>
 <translation id="2338501278241028356">Activa el Bluetooth per detectar dispositius propers</translation>
+<translation id="2375079107209812402">Intents restants: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="2805756323405976993">Aplicacions</translation>
 <translation id="2872961005593481000">Apaga</translation>
 <translation id="3008341117444806826">ACTUALITZA</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Canvia la contrasenya</translation>
 <translation id="8208861521865154048">Avantatges</translation>
 <translation id="8747900814994928677">Confirma el canvi</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> Intents restants: <ph name="ATTEMPTS_LEFT" />.</translation>
 <translation id="910415269708673980">Actualitza el tiquet de: <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Desbloqueja</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_da.xtb b/chromeos/strings/chromeos_strings_da.xtb
index 371921a..8d92c77 100644
--- a/chromeos/strings/chromeos_strings_da.xtb
+++ b/chromeos/strings/chromeos_strings_da.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Adgangskoden mangler at blive ændret</translation>
 <translation id="2049639323467105390">Denne enhed administreres af <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Slå Bluetooth til for at opdage enheder i nærheden</translation>
+<translation id="2375079107209812402">Der er <ph name="ATTEMPTS_LEFT" /> forsøg tilbage</translation>
 <translation id="2805756323405976993">Apps</translation>
 <translation id="2872961005593481000">Sluk</translation>
 <translation id="3008341117444806826">OPDATER</translation>
@@ -41,6 +42,7 @@
 <translation id="808894953321890993">Skift adgangskode</translation>
 <translation id="8208861521865154048">Fordele</translation>
 <translation id="8747900814994928677">Bekræft ændring</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> forsøg tilbage</translation>
 <translation id="910415269708673980">Gendan billetten for <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Lås op</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_el.xtb b/chromeos/strings/chromeos_strings_el.xtb
index f18a8d6..83f7e9e 100644
--- a/chromeos/strings/chromeos_strings_el.xtb
+++ b/chromeos/strings/chromeos_strings_el.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Εκπρόθεσμη αλλαγή κωδικού πρόσβασης</translation>
 <translation id="2049639323467105390">Η διαχείριση της συσκευής γίνεται από τον τομέα <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Ενεργοποιήστε το Bluetooth, για να εντοπίσετε κοντινές συσκευές</translation>
+<translation id="2375079107209812402">Απομένουν <ph name="ATTEMPTS_LEFT" /> προσπάθειες</translation>
 <translation id="2805756323405976993">Εφαρμογές </translation>
 <translation id="2872961005593481000">Τερματισμός λειτουργίας</translation>
 <translation id="3008341117444806826">ΑΝΑΝΕΩΣΗ</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Αλλαγή κωδικού πρόσβασης</translation>
 <translation id="8208861521865154048">Προνόμια</translation>
 <translation id="8747900814994928677">Επιβεβαίωση αλλαγής</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> προσπάθειες απομένουν.</translation>
 <translation id="910415269708673980">Ανανέωση εισιτηρίου για το <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Ξεκλείδωμα</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_en-GB.xtb b/chromeos/strings/chromeos_strings_en-GB.xtb
index f0888560..f00154b8 100644
--- a/chromeos/strings/chromeos_strings_en-GB.xtb
+++ b/chromeos/strings/chromeos_strings_en-GB.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Password change overdue</translation>
 <translation id="2049639323467105390">This device is managed by <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Turn on Bluetooth to discover nearby devices</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> attempts left</translation>
 <translation id="2805756323405976993">Apps</translation>
 <translation id="2872961005593481000">Shut down</translation>
 <translation id="3008341117444806826">REFRESH</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Change password</translation>
 <translation id="8208861521865154048">Perks</translation>
 <translation id="8747900814994928677">Confirm change</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> attempts left</translation>
 <translation id="910415269708673980">Refresh ticket for <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Unlock</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_et.xtb b/chromeos/strings/chromeos_strings_et.xtb
index ae06887..2798401f 100644
--- a/chromeos/strings/chromeos_strings_et.xtb
+++ b/chromeos/strings/chromeos_strings_et.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Parooli muutmise tähtaeg on möödunud</translation>
 <translation id="2049639323467105390">Seadet haldab <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Lülitage Bluetooth sisse, et läheduses olevaid seadmeid avastada</translation>
+<translation id="2375079107209812402">Jäänud on <ph name="ATTEMPTS_LEFT" /> katset</translation>
 <translation id="2805756323405976993">Rakendused</translation>
 <translation id="2872961005593481000">Lülita välja</translation>
 <translation id="3008341117444806826">VÄRSKENDA</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Muuda parooli</translation>
 <translation id="8208861521865154048">Hüved</translation>
 <translation id="8747900814994928677">Kinnita muudatus</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" />, <ph name="ATTEMPTS_LEFT" /> katset jäänud</translation>
 <translation id="910415269708673980">Kasutaja <ph name="PRINCIPAL_NAME" /> pileti värskendamine</translation>
 <translation id="9111102763498581341">Ava lukk</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_fi.xtb b/chromeos/strings/chromeos_strings_fi.xtb
index ce60a34..351f8e4 100644
--- a/chromeos/strings/chromeos_strings_fi.xtb
+++ b/chromeos/strings/chromeos_strings_fi.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Salasanan vaihto myöhässä</translation>
 <translation id="2049639323467105390">Tätä laitetta hallinnoi <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Löydä lähellä olevat laitteet ottamalla ensin Bluetooth käyttöön.</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> yritystä jäljellä</translation>
 <translation id="2805756323405976993">Sovellukset</translation>
 <translation id="2872961005593481000">Sammuta</translation>
 <translation id="3008341117444806826">PÄIVITÄ</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Vaihda salasana</translation>
 <translation id="8208861521865154048">Edut</translation>
 <translation id="8747900814994928677">Vahvista muutos</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> yritystä jäljellä</translation>
 <translation id="910415269708673980">Päivitä tukipyyntö: <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Poista lukitus</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_hr.xtb b/chromeos/strings/chromeos_strings_hr.xtb
index e8fc64b..ec12471 100644
--- a/chromeos/strings/chromeos_strings_hr.xtb
+++ b/chromeos/strings/chromeos_strings_hr.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Zakašnjela promjena zaporke</translation>
 <translation id="2049639323467105390">Ovim uređajem upravlja <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Uključite Bluetooth da biste otkrili uređaje u blizini</translation>
+<translation id="2375079107209812402">Preostalo pokušaja: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="2805756323405976993">Aplikacije</translation>
 <translation id="2872961005593481000">Isključi</translation>
 <translation id="3008341117444806826">OSVJEŽI</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Promjena zaporke</translation>
 <translation id="8208861521865154048">Pogodnosti</translation>
 <translation id="8747900814994928677">Potvrda promjena</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> Preostalo pokušaja: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="910415269708673980">Osvježite tiket za <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Otključaj</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_hu.xtb b/chromeos/strings/chromeos_strings_hu.xtb
index ad35d352..e9f6f34 100644
--- a/chromeos/strings/chromeos_strings_hu.xtb
+++ b/chromeos/strings/chromeos_strings_hu.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Esedékes a jelszó frissítése</translation>
 <translation id="2049639323467105390">Ezt az eszközt a(z) <ph name="DOMAIN" /> domain kezeli.</translation>
 <translation id="2338501278241028356">Kapcsolja be a Bluetooth-t a közeli eszközök felfedezéséhez</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> próbálkozás maradt</translation>
 <translation id="2805756323405976993">Alkalmazások</translation>
 <translation id="2872961005593481000">Leállítás</translation>
 <translation id="3008341117444806826">FRISSÍTÉS</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Jelszó módosítása</translation>
 <translation id="8208861521865154048">Előnyök</translation>
 <translation id="8747900814994928677">Módosítás megerősítése</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> kísérlet maradt</translation>
 <translation id="910415269708673980">Frissítse a következőhöz tartozó jegyet: <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Feloldás</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb
index 1c08fe0..2a86690 100644
--- a/chromeos/strings/chromeos_strings_id.xtb
+++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Perubahan sandi melewati batas waktu</translation>
 <translation id="2049639323467105390">Perangkat ini dikelola oleh <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Aktifkan Bluetooth untuk menemukan perangkat di sekitar</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> upaya tersisa</translation>
 <translation id="2805756323405976993">Apl</translation>
 <translation id="2872961005593481000">Matikan</translation>
 <translation id="3008341117444806826">PERBARUI</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Ubah sandi</translation>
 <translation id="8208861521865154048">Keuntungan</translation>
 <translation id="8747900814994928677">Konfirmasi perubahan</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> upaya tersisa</translation>
 <translation id="910415269708673980">Perbarui tiket untuk <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Buka kunci</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_is.xtb b/chromeos/strings/chromeos_strings_is.xtb
index 71c07486..a4751f9 100644
--- a/chromeos/strings/chromeos_strings_is.xtb
+++ b/chromeos/strings/chromeos_strings_is.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Breyting á aðgangsorði komin fram yfir tíma</translation>
 <translation id="2049639323467105390">Þessu tæki er stjórnað af <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Kveiktu á Bluetooth til að uppgötva nálæg tæki</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> tilraunir eftir</translation>
 <translation id="2805756323405976993">Forrit</translation>
 <translation id="2872961005593481000">Slökkva</translation>
 <translation id="3008341117444806826">ENDURNÝJA</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Breyta aðgangsorði</translation>
 <translation id="8208861521865154048">Fríðindi</translation>
 <translation id="8747900814994928677">Staðfesta breytingu</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> tilraunir eftir</translation>
 <translation id="910415269708673980">Endurnýja miða fyrir <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Taka úr lás</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_it.xtb b/chromeos/strings/chromeos_strings_it.xtb
index 7e22621..399655e42 100644
--- a/chromeos/strings/chromeos_strings_it.xtb
+++ b/chromeos/strings/chromeos_strings_it.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Modifica della password scaduta</translation>
 <translation id="2049639323467105390">Questo dispositivo è gestito da <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Attiva il Bluetooth per trovare dispositivi nelle vicinanze</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> tentativi rimanenti</translation>
 <translation id="2805756323405976993">App</translation>
 <translation id="2872961005593481000">Spegni</translation>
 <translation id="3008341117444806826">AGGIORNA</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Cambia password</translation>
 <translation id="8208861521865154048">Vantaggi</translation>
 <translation id="8747900814994928677">Conferma modifica</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> tentativi rimanenti</translation>
 <translation id="910415269708673980">Aggiorna la richiesta per <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Sblocca</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb
index 28ffb2a..c674101 100644
--- a/chromeos/strings/chromeos_strings_iw.xtb
+++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">המועד האחרון לשינוי הסיסמה כבר חלף</translation>
 <translation id="2049639323467105390">מכשיר זה מנוהל על ידי <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">‏יש להפעיל את Bluetooth כדי לאתר מכשירים קרובים</translation>
+<translation id="2375079107209812402">נותרו <ph name="ATTEMPTS_LEFT" /> ניסיונות</translation>
 <translation id="2805756323405976993">אפליקציות</translation>
 <translation id="2872961005593481000">כיבוי</translation>
 <translation id="3008341117444806826">רענון</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">שינוי הסיסמה</translation>
 <translation id="8208861521865154048">הטבות</translation>
 <translation id="8747900814994928677">אישור השינוי</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> נותרו <ph name="ATTEMPTS_LEFT" /> ניסיונות</translation>
 <translation id="910415269708673980">רענון הכרטיס עבור <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">בטל נעילה</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb
index 1a8bf95..e435aa8 100644
--- a/chromeos/strings/chromeos_strings_lt.xtb
+++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Vėluojama pakeisti slaptažodį</translation>
 <translation id="2049639323467105390">Įrenginys valdomas „<ph name="DOMAIN" />“.</translation>
 <translation id="2338501278241028356">Įjunkite „Bluetooth“, kad aptiktumėte įrenginius netoliese</translation>
+<translation id="2375079107209812402">Liko bandymų: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="2805756323405976993">Taikomosios programos</translation>
 <translation id="2872961005593481000">Stabdyti</translation>
 <translation id="3008341117444806826">ATNAUJINTI</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Keisti slaptažodį</translation>
 <translation id="8208861521865154048">Privilegijos</translation>
 <translation id="8747900814994928677">Patvirtinti pakeitimą</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" />. Liko bandymų: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="910415269708673980">Atnaujinkite <ph name="PRINCIPAL_NAME" /> bilietą</translation>
 <translation id="9111102763498581341">Atrakinti</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_lv.xtb b/chromeos/strings/chromeos_strings_lv.xtb
index 18da69c..3badce71 100644
--- a/chromeos/strings/chromeos_strings_lv.xtb
+++ b/chromeos/strings/chromeos_strings_lv.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Paroles maiņa ir nokavēta</translation>
 <translation id="2049639323467105390">Šo ierīci pārvalda vietne <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Ieslēdziet Bluetooth, lai atklātu tuvumā esošas ierīces</translation>
+<translation id="2375079107209812402">Vēl <ph name="ATTEMPTS_LEFT" /> mēģinājumi</translation>
 <translation id="2805756323405976993">Lietotnes</translation>
 <translation id="2872961005593481000">Beidzēt</translation>
 <translation id="3008341117444806826">ATSVAIDZINĀT</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Mainīt paroli</translation>
 <translation id="8208861521865154048">Priekšrocības</translation>
 <translation id="8747900814994928677">Apstiprināt izmaiņas</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" />. Atlikušais mēģinājumu skaits: <ph name="ATTEMPTS_LEFT" />.</translation>
 <translation id="910415269708673980">Atsvaidziniet <ph name="PRINCIPAL_NAME" /> biļeti</translation>
 <translation id="9111102763498581341">Atbloķēt</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_mk.xtb b/chromeos/strings/chromeos_strings_mk.xtb
index 27e8008..d25c443 100644
--- a/chromeos/strings/chromeos_strings_mk.xtb
+++ b/chromeos/strings/chromeos_strings_mk.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Измина рокот за промена на лозинката</translation>
 <translation id="2049639323467105390">Овој уред е управуван од <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Вклучете Bluetooth за да откриете места во близина</translation>
+<translation id="2375079107209812402">Преостануваат <ph name="ATTEMPTS_LEFT" /> обиди</translation>
 <translation id="2805756323405976993">Апликации</translation>
 <translation id="2872961005593481000">Исклучи</translation>
 <translation id="3008341117444806826">ОСВЕЖИ</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Промени лозинка</translation>
 <translation id="8208861521865154048">Поволности</translation>
 <translation id="8747900814994928677">Потврдете ја измената</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> Преостанати обиди: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="910415269708673980">Освежете го билетот за <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Отклучи</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb
index a6720d9e..a1fd378 100644
--- a/chromeos/strings/chromeos_strings_ms.xtb
+++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Kata laluan perlu ditukar</translation>
 <translation id="2049639323467105390">Peranti ini diuruskan oleh <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Hidupkan Bluetooth untuk menemui peranti berdekatan</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> percubaan lagi</translation>
 <translation id="2805756323405976993">Apl</translation>
 <translation id="2872961005593481000">Mematikan</translation>
 <translation id="3008341117444806826">MUAT SEMULA</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Tukar kata laluan</translation>
 <translation id="8208861521865154048">Manfaat</translation>
 <translation id="8747900814994928677">Sahkan penukaran</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> percubaan lagi</translation>
 <translation id="910415269708673980">Muat semula tiket untuk <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Buka kunci</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_my.xtb b/chromeos/strings/chromeos_strings_my.xtb
index 623cbbdb..97da0c86 100644
--- a/chromeos/strings/chromeos_strings_my.xtb
+++ b/chromeos/strings/chromeos_strings_my.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">စကားဝှက်ပြောင်းလဲမှု သက်တမ်းကုန်သွားပါပြီ</translation>
 <translation id="2049639323467105390">ဤစက်ပစ္စည်းကို <ph name="DOMAIN" /> မှစီမံသည်။</translation>
 <translation id="2338501278241028356">အနီးတဝိုက်ရှိ စက်ပစ္စည်းများကို ရှာဖွေရန် ဘလူးတုသ်ကို ဖွင့်ပါ</translation>
+<translation id="2375079107209812402">လုပ်ဆောင်ခွင့် <ph name="ATTEMPTS_LEFT" /> ကြိမ် ကျန်သည်</translation>
 <translation id="2805756323405976993">အက်ပ်များ</translation>
 <translation id="2872961005593481000">ပိတ်ရန်</translation>
 <translation id="3008341117444806826">ပြန်လည်စတင်ရန်</translation>
@@ -41,6 +42,7 @@
 <translation id="808894953321890993">စကားဝှက် ပြောင်းရန်</translation>
 <translation id="8208861521865154048">ခံစားခွင့်များ</translation>
 <translation id="8747900814994928677">ပြောင်းလဲမှုကို အတည်ပြုခြင်း</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> လုပ်ဆောင်ခွင့် <ph name="ATTEMPTS_LEFT" /> ကြိမ် ကျန်သည်</translation>
 <translation id="910415269708673980"><ph name="PRINCIPAL_NAME" /> အတွက် လက်မှတ်ကို ပြန်လည်စတင်ပါ</translation>
 <translation id="9111102763498581341">သော့ဖွင့်ရန်</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_nl.xtb b/chromeos/strings/chromeos_strings_nl.xtb
index 4ea0914..3712030 100644
--- a/chromeos/strings/chromeos_strings_nl.xtb
+++ b/chromeos/strings/chromeos_strings_nl.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Wachtwoord moet dringend worden gewijzigd</translation>
 <translation id="2049639323467105390">Dit apparaat wordt beheerd door <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Schakel Bluetooth in om apparaten in de buurt te vinden</translation>
+<translation id="2375079107209812402">Nog <ph name="ATTEMPTS_LEFT" /> pogingen</translation>
 <translation id="2805756323405976993">Apps</translation>
 <translation id="2872961005593481000">Afsluiten</translation>
 <translation id="3008341117444806826">VERNIEUWEN</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Wachtwoord wijzigen</translation>
 <translation id="8208861521865154048">Speciale voordelen</translation>
 <translation id="8747900814994928677">Wijziging bevestigen</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> Nog <ph name="ATTEMPTS_LEFT" /> pogingen</translation>
 <translation id="910415269708673980">Ticket voor <ph name="PRINCIPAL_NAME" /> vernieuwen</translation>
 <translation id="9111102763498581341">Ontgrendelen</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_no.xtb b/chromeos/strings/chromeos_strings_no.xtb
index 789b245..caed03c 100644
--- a/chromeos/strings/chromeos_strings_no.xtb
+++ b/chromeos/strings/chromeos_strings_no.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Det er på høy tid å endre passordet</translation>
 <translation id="2049639323467105390">Denne enheten administreres av <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Slå på Bluetooth for å finne enheter i nærheten</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> forsøk igjen</translation>
 <translation id="2805756323405976993">Apper</translation>
 <translation id="2872961005593481000">Slå av</translation>
 <translation id="3008341117444806826">OPPDATER</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Endre passord</translation>
 <translation id="8208861521865154048">Fordeler</translation>
 <translation id="8747900814994928677">Bekreft endringen</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> forsøk igjen</translation>
 <translation id="910415269708673980">Oppdater saken for <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Lås opp</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_pl.xtb b/chromeos/strings/chromeos_strings_pl.xtb
index 3353160..3a3f9ab 100644
--- a/chromeos/strings/chromeos_strings_pl.xtb
+++ b/chromeos/strings/chromeos_strings_pl.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Zaległa zmiana hasła</translation>
 <translation id="2049639323467105390">To urządzenie jest zarządzane przez: <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Włącz Bluetooth, by wykryć urządzenia w pobliżu</translation>
+<translation id="2375079107209812402">Pozostałe próby: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="2805756323405976993">Aplikacje</translation>
 <translation id="2872961005593481000">Wyłącz</translation>
 <translation id="3008341117444806826">ODŚWIEŻ</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Zmień hasło</translation>
 <translation id="8208861521865154048">Korzyści</translation>
 <translation id="8747900814994928677">Potwierdź zmianę</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> Pozostałe próby: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="910415269708673980">Odśwież bilet przypisany do konta <ph name="PRINCIPAL_NAME" />.</translation>
 <translation id="9111102763498581341">Odblokuj</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_pt-BR.xtb b/chromeos/strings/chromeos_strings_pt-BR.xtb
index b73378cd..96c7e72 100644
--- a/chromeos/strings/chromeos_strings_pt-BR.xtb
+++ b/chromeos/strings/chromeos_strings_pt-BR.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">O prazo para a alteração de senha foi ultrapassado</translation>
 <translation id="2049639323467105390">Este dispositivo é gerenciado por <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Ativar o Bluetooth para descobrir dispositivos nas proximidades</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> tentativas restantes</translation>
 <translation id="2805756323405976993">Apps</translation>
 <translation id="2872961005593481000">Desligar</translation>
 <translation id="3008341117444806826">ATUALIZAR</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Alterar senha</translation>
 <translation id="8208861521865154048">Benefícios</translation>
 <translation id="8747900814994928677">Confirmar alteração</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> tentativas restantes</translation>
 <translation id="910415269708673980">Atualizar tíquete para <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Desbloquear</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_pt-PT.xtb b/chromeos/strings/chromeos_strings_pt-PT.xtb
index 3b3ed3829..7a19613 100644
--- a/chromeos/strings/chromeos_strings_pt-PT.xtb
+++ b/chromeos/strings/chromeos_strings_pt-PT.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Alteração da palavra-passe vencida</translation>
 <translation id="2049639323467105390">Este aparelho é gerido por <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Ativar o Bluetooth para detetar dispositivos próximos</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> tentativas restantes</translation>
 <translation id="2805756323405976993">Aplicações</translation>
 <translation id="2872961005593481000">Encerrar</translation>
 <translation id="3008341117444806826">ATUALIZAR</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Alterar palavra-passe</translation>
 <translation id="8208861521865154048">Benefícios</translation>
 <translation id="8747900814994928677">Confirme a alteração</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> tentativas restantes.</translation>
 <translation id="910415269708673980">Atualize a permissão para <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Desbloquear</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_si.xtb b/chromeos/strings/chromeos_strings_si.xtb
index e87e6c2..fc2810d 100644
--- a/chromeos/strings/chromeos_strings_si.xtb
+++ b/chromeos/strings/chromeos_strings_si.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">මුරපදය වෙනස් කිරීම කල් ගොස් ඇත</translation>
 <translation id="2049639323467105390">උපාංගය <ph name="DOMAIN" /> මගින් කළමනාකරණය කරනු ලබයි.</translation>
 <translation id="2338501278241028356">අවට උපාංග සොයා ගැනීමට බ්ලූටූත් ක්‍රියාත්මක කරන්න</translation>
+<translation id="2375079107209812402">උත්සාහයන් <ph name="ATTEMPTS_LEFT" />ක් ඉතුරුයි</translation>
 <translation id="2805756323405976993">යෙදුම්</translation>
 <translation id="2872961005593481000">වසන්න</translation>
 <translation id="3008341117444806826">නැවුම් කරන්න</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">මුරපදය වෙනස් කරන්න</translation>
 <translation id="8208861521865154048">අමතර වාසි</translation>
 <translation id="8747900814994928677">වෙනස් කිරීම තහවුරු කරන්න</translation>
+<translation id="89415009803968170">උත්සාහ <ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" />ක් ඉතුරුයි</translation>
 <translation id="910415269708673980"><ph name="PRINCIPAL_NAME" /> සඳහා ප්‍රවේශපත්‍රය නැවුම් කරන්න</translation>
 <translation id="9111102763498581341">අගුලු හරන්න</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_sk.xtb b/chromeos/strings/chromeos_strings_sk.xtb
index c6c470a..035b079 100644
--- a/chromeos/strings/chromeos_strings_sk.xtb
+++ b/chromeos/strings/chromeos_strings_sk.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Uplynul termín zmeny hesla</translation>
 <translation id="2049639323467105390">Toto zariadenie je spravované doménou <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Ak chcete nájsť zariadenia v okolí, zapnite Bluetooth</translation>
+<translation id="2375079107209812402">Zostávajúce pokusy: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="2805756323405976993">Aplikácie</translation>
 <translation id="2872961005593481000">Vypnúť</translation>
 <translation id="3008341117444806826">OBNOVIŤ</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Zmeniť heslo</translation>
 <translation id="8208861521865154048">Výhody</translation>
 <translation id="8747900814994928677">Potvrdenie zmeny</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" />. Počet zostávajúcich pokusov: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="910415269708673980">Obnoviť tiket pre <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Odomknúť</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_sr.xtb b/chromeos/strings/chromeos_strings_sr.xtb
index 86c9cb9..502dfd3 100644
--- a/chromeos/strings/chromeos_strings_sr.xtb
+++ b/chromeos/strings/chromeos_strings_sr.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Рок за промену лозинке је истекао</translation>
 <translation id="2049639323467105390">Овим уређајем управља домен <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Укључите Bluetooth да бисте открили уређаје у близини</translation>
+<translation id="2375079107209812402">Преостали покушаји: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="2805756323405976993">Апликације</translation>
 <translation id="2872961005593481000">Искључи</translation>
 <translation id="3008341117444806826">ОСВЕЖИ</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Промени лозинку</translation>
 <translation id="8208861521865154048">Погодности</translation>
 <translation id="8747900814994928677">Потврдите промену</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> Преостали покушаји: <ph name="ATTEMPTS_LEFT" /></translation>
 <translation id="910415269708673980">Освежите тикет за <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Откључај</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_sv.xtb b/chromeos/strings/chromeos_strings_sv.xtb
index f2b01730..f5db131f 100644
--- a/chromeos/strings/chromeos_strings_sv.xtb
+++ b/chromeos/strings/chromeos_strings_sv.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Tiden för att ändra lösenordet har gått ut</translation>
 <translation id="2049639323467105390">Den här enheten hanteras av <ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Aktivera Bluetooth så att det går att upptäcka enheter i närheten</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> försök kvar</translation>
 <translation id="2805756323405976993">Appar</translation>
 <translation id="2872961005593481000">Stäng av</translation>
 <translation id="3008341117444806826">UPPDATERA</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Ändra lösenord</translation>
 <translation id="8208861521865154048">Förmåner</translation>
 <translation id="8747900814994928677">Bekräfta ändring</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> försök kvar</translation>
 <translation id="910415269708673980">Uppdatera biljetten för <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Lås upp</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_sw.xtb b/chromeos/strings/chromeos_strings_sw.xtb
index da2e043..cbb1944 100644
--- a/chromeos/strings/chromeos_strings_sw.xtb
+++ b/chromeos/strings/chromeos_strings_sw.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Muda wa kubadilisha nenosiri umeisha</translation>
 <translation id="2049639323467105390">Kifaa hiki kinadhibitiwa na <ph name="DOMAIN" /> .</translation>
 <translation id="2338501278241028356">Washa Bluetooth ili ugundue vifaa vilivyo karibu</translation>
+<translation id="2375079107209812402">Umebakisha mara <ph name="ATTEMPTS_LEFT" /> za kujaribu</translation>
 <translation id="2805756323405976993">Programu</translation>
 <translation id="2872961005593481000">Zima</translation>
 <translation id="3008341117444806826">ONYESHA UPYA</translation>
@@ -41,6 +42,7 @@
 <translation id="808894953321890993">Badilisha nenosiri</translation>
 <translation id="8208861521865154048">Manufaa</translation>
 <translation id="8747900814994928677">Thibitisha mabadiliko</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> umebakisha mara<ph name="ATTEMPTS_LEFT" /> za kujaribu</translation>
 <translation id="910415269708673980">Onyesha upya tiketi ya <ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Fungua</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_ta.xtb b/chromeos/strings/chromeos_strings_ta.xtb
index ec9c38da9..09d4726 100644
--- a/chromeos/strings/chromeos_strings_ta.xtb
+++ b/chromeos/strings/chromeos_strings_ta.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ta">
 <translation id="1195447618553298278">தெரியாத பிழை.</translation>
+<translation id="1468664791493211953">ஆஃபர்கள்</translation>
 <translation id="1482734542997480527">இந்தச் சாதனத்தை <ph name="ENROLLMENT_DOMAIN" /> நிர்வகிக்கிறது. இது உங்கள் செயல்பாட்டையும் கண்காணிக்கக்கூடும்.</translation>
 <translation id="150962533380566081">தவறான PUK.</translation>
 <translation id="1510238584712386396">துவக்கி</translation>
@@ -39,6 +40,7 @@
 <translation id="7658239707568436148">ரத்து செய்</translation>
 <translation id="7690294790491645610">புதிய கடவுச்சொல்லை உறுதிப்படுத்துக</translation>
 <translation id="808894953321890993">கடவுச்சொல்லை மாற்று</translation>
+<translation id="8208861521865154048">சலுகைகள்</translation>
 <translation id="8747900814994928677">மாற்றத்தை உறுதிப்படுத்துங்கள்</translation>
 <translation id="910415269708673980"><ph name="PRINCIPAL_NAME" /> வலைதளத்திற்கான டிக்கெட்டை ரெஃப்ரெஷ் செய்யவும்</translation>
 <translation id="9111102763498581341">பூட்டைத் திற</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-HK.xtb b/chromeos/strings/chromeos_strings_zh-HK.xtb
index 71621f8..459c883 100644
--- a/chromeos/strings/chromeos_strings_zh-HK.xtb
+++ b/chromeos/strings/chromeos_strings_zh-HK.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">變更密碼已逾期</translation>
 <translation id="2049639323467105390">這部裝置由 <ph name="DOMAIN" /> 管理。</translation>
 <translation id="2338501278241028356">開啟藍牙即可探索附近的裝置</translation>
+<translation id="2375079107209812402">剩餘嘗試次數:<ph name="ATTEMPTS_LEFT" /> 次</translation>
 <translation id="2805756323405976993">應用程式</translation>
 <translation id="2872961005593481000">關閉</translation>
 <translation id="3008341117444806826">更新</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">變更密碼</translation>
 <translation id="8208861521865154048">獎賞</translation>
 <translation id="8747900814994928677">確認變更</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" />剩餘嘗試次數:<ph name="ATTEMPTS_LEFT" /> 次</translation>
 <translation id="910415269708673980">更新 <ph name="PRINCIPAL_NAME" /> 的票證</translation>
 <translation id="9111102763498581341">解鎖</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb
index fd976f2..7cff7e3 100644
--- a/chromeos/strings/chromeos_strings_zh-TW.xtb
+++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">已超過密碼變更期限</translation>
 <translation id="2049639323467105390">這個裝置由 <ph name="DOMAIN" /> 管理。</translation>
 <translation id="2338501278241028356">開啟藍牙即可偵測附近的裝置</translation>
+<translation id="2375079107209812402">剩餘嘗試次數:<ph name="ATTEMPTS_LEFT" /> 次</translation>
 <translation id="2805756323405976993">應用程式</translation>
 <translation id="2872961005593481000">關閉</translation>
 <translation id="3008341117444806826">更新</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">變更密碼</translation>
 <translation id="8208861521865154048">獎勵</translation>
 <translation id="8747900814994928677">確認變更</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" />剩餘嘗試次數:<ph name="ATTEMPTS_LEFT" /> 次</translation>
 <translation id="910415269708673980">更新 <ph name="PRINCIPAL_NAME" /> 的票證</translation>
 <translation id="9111102763498581341">解除鎖定</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_zu.xtb b/chromeos/strings/chromeos_strings_zu.xtb
index f64d831..1733d6f 100644
--- a/chromeos/strings/chromeos_strings_zu.xtb
+++ b/chromeos/strings/chromeos_strings_zu.xtb
@@ -12,6 +12,7 @@
 <translation id="1979103255016296513">Ukushintsha iphasiwedi kudlulelwe isikhathi</translation>
 <translation id="2049639323467105390">Idivayisi iphethwe yi-<ph name="DOMAIN" />.</translation>
 <translation id="2338501278241028356">Vula i-Bluetooth ukuze uthole amadivayisi aseduze</translation>
+<translation id="2375079107209812402"><ph name="ATTEMPTS_LEFT" /> imizamo esele</translation>
 <translation id="2805756323405976993">Izinhlelo zokusebenza</translation>
 <translation id="2872961005593481000">Cisha</translation>
 <translation id="3008341117444806826">VUSELELA</translation>
@@ -42,6 +43,7 @@
 <translation id="808894953321890993">Shintsha iphasiwedi</translation>
 <translation id="8208861521865154048">Izinzuzo</translation>
 <translation id="8747900814994928677">Qinisekisa ushintsho</translation>
+<translation id="89415009803968170"><ph name="ERROR_MESSAGE" /> <ph name="ATTEMPTS_LEFT" /> imizamo esele</translation>
 <translation id="910415269708673980">Vuselela ithikithi le-<ph name="PRINCIPAL_NAME" /></translation>
 <translation id="9111102763498581341">Vula</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/autofill_assistant/browser/interactions.proto b/components/autofill_assistant/browser/interactions.proto
index 460c88ae..b33b5568 100644
--- a/components/autofill_assistant/browser/interactions.proto
+++ b/components/autofill_assistant/browser/interactions.proto
@@ -34,7 +34,6 @@
     ComputeValueProto compute_value = 4;
     SetUserActionsProto set_user_actions = 5;
     EndActionProto end_action = 6;
-    ShowCalendarPopupProto show_calendar_popup = 7;
   }
 }
 
@@ -153,16 +152,3 @@
   // The status to report to the backend.
   optional ProcessedActionStatusProto status = 1;
 }
-
-// Displays a calendar popup that lets the user select a date.
-message ShowCalendarPopupProto {
-  // The date model identifier (both input and output). Must point to a single
-  // DateList. If not set, the calendar will default to the current date.
-  optional string date_model_identifier = 1;
-  // The model identifier for the minimum allowed date. Must point to a single
-  // DateList.
-  optional string min_date_model_identifier = 2;
-  // The model identifier for the minimum allowed date. Must point to a single
-  // DateList.
-  optional string max_date_model_identifier = 3;
-}
diff --git a/components/autofill_assistant/browser/model.proto b/components/autofill_assistant/browser/model.proto
index fc705cb..4594e542 100644
--- a/components/autofill_assistant/browser/model.proto
+++ b/components/autofill_assistant/browser/model.proto
@@ -27,7 +27,6 @@
     BooleanList booleans = 2;
     IntList ints = 3;
     UserActionList user_actions = 4;
-    DateList dates = 5;
   }
 }
 
@@ -47,10 +46,6 @@
   repeated UserActionProto values = 1;
 }
 
-message DateList {
-  repeated DateProto values = 1;
-}
-
 // Next: 22
 enum ProcessedActionStatusProto {
   UNKNOWN_ACTION_STATUS = 0;
@@ -249,29 +244,3 @@
   // A unique identifier for this user action.
   optional string identifier = 3;
 }
-
-message DateProto {
-  optional int64 year = 1;
-
-  // Month of the year in the range [1-12].
-  optional int32 month = 2;
-
-  // Day of the month in the range [1-31].
-  optional int32 day = 3;
-}
-
-message TimeProto {
-  // Hour in the range [0-23].
-  optional int32 hour = 1;
-
-  // Minute in the range [0-59].
-  optional int32 minute = 2;
-
-  // Second in the range [0-59].
-  optional int32 second = 3;
-}
-
-message DateTimeProto {
-  optional DateProto date = 1;
-  optional TimeProto time = 2;
-}
diff --git a/components/autofill_assistant/browser/service.proto b/components/autofill_assistant/browser/service.proto
index 068b88a..814dd0b 100644
--- a/components/autofill_assistant/browser/service.proto
+++ b/components/autofill_assistant/browser/service.proto
@@ -1424,6 +1424,32 @@
   reserved 1;  // stop_action_type
 }
 
+message DateProto {
+  optional int64 year = 1;
+
+  // Month of the year in the range [1-12].
+  optional int32 month = 2;
+
+  // Day of the month in the range [1-31].
+  optional int32 day = 3;
+}
+
+message TimeProto {
+  // Hour in the range [0-23].
+  optional int32 hour = 1;
+
+  // Minute in the range [0-59].
+  optional int32 minute = 2;
+
+  // Second in the range [0-59].
+  optional int32 second = 3;
+}
+
+message DateTimeProto {
+  optional DateProto date = 1;
+  optional TimeProto time = 2;
+}
+
 message DetailsChangesProto {
   // Whether the changes require user approval. This de-emphasize
   // non-highlighted fields.
diff --git a/components/autofill_assistant/browser/value_util.cc b/components/autofill_assistant/browser/value_util.cc
index d32b7dd..299c83b0 100644
--- a/components/autofill_assistant/browser/value_util.cc
+++ b/components/autofill_assistant/browser/value_util.cc
@@ -49,8 +49,6 @@
       return value_a.ints().values() == value_b.ints().values();
     case ValueProto::kUserActions:
       return value_a.user_actions().values() == value_b.user_actions().values();
-    case ValueProto::kDates:
-      return value_a.dates().values() == value_b.dates().values();
     case ValueProto::KIND_NOT_SET:
       return true;
   }
@@ -91,12 +89,6 @@
          value_a.identifier() == value_b.identifier();
 }
 
-// Compares two |DateProto| instances and returns true if they exactly match.
-bool operator==(const DateProto& value_a, const DateProto& value_b) {
-  return value_a.year() == value_b.year() &&
-         value_a.month() == value_b.month() && value_a.day() == value_b.day();
-}
-
 // Intended for debugging. Writes a string representation of |values| to |out|.
 template <typename T>
 std::ostream& WriteRepeatedField(std::ostream& out, const T& values) {
@@ -130,12 +122,6 @@
   return out;
 }
 
-// Intended for debugging. '<<' operator specialization for DateProto.
-std::ostream& operator<<(std::ostream& out, const DateProto& value) {
-  out << value.year() << "-" << value.month() << "-" << value.day();
-  return out;
-}
-
 // Intended for debugging.  Writes a string representation of |value| to |out|.
 std::ostream& operator<<(std::ostream& out, const ValueProto& value) {
   switch (value.kind_case()) {
@@ -151,9 +137,6 @@
     case ValueProto::kUserActions:
       out << value.user_actions().values();
       break;
-    case ValueProto::kDates:
-      out << value.dates().values();
-      break;
     case ValueProto::KIND_NOT_SET:
       break;
   }
@@ -186,15 +169,6 @@
   return value;
 }
 
-ValueProto SimpleValue(const DateProto& proto) {
-  ValueProto value;
-  auto* date = value.mutable_dates()->add_values();
-  date->set_year(proto.year());
-  date->set_month(proto.month());
-  date->set_day(proto.day());
-  return value;
-}
-
 ModelProto::ModelValue SimpleModelValue(const std::string& identifier,
                                         const ValueProto& value) {
   ModelProto::ModelValue model_value;
@@ -239,10 +213,6 @@
         if (value.user_actions().values_size() != target_size)
           return false;
         break;
-      case ValueProto::kDates:
-        if (value.dates().values_size() != target_size)
-          return false;
-        break;
       case ValueProto::KIND_NOT_SET:
         if (target_size != 0) {
           return false;
@@ -291,12 +261,6 @@
                         *result.mutable_user_actions()->add_values() = action;
                       });
         break;
-      case ValueProto::kDates:
-        std::for_each(value.dates().values().begin(),
-                      value.dates().values().end(), [&](const auto& date) {
-                        *result.mutable_dates()->add_values() = date;
-                      });
-        break;
       case ValueProto::KIND_NOT_SET:
         NOTREACHED();
         return base::nullopt;
diff --git a/components/autofill_assistant/browser/value_util.h b/components/autofill_assistant/browser/value_util.h
index 0dc557d..24931a7 100644
--- a/components/autofill_assistant/browser/value_util.h
+++ b/components/autofill_assistant/browser/value_util.h
@@ -31,21 +31,16 @@
 // Custom comparison operator for |UserActionProto|.
 bool operator==(const UserActionProto& value_a, const UserActionProto& value_b);
 
-// Custom comparison operator for |DateProto|.
-bool operator==(const DateProto& value_a, const DateProto& value_b);
-
 // Intended for debugging.
 std::ostream& operator<<(std::ostream& out, const ValueProto& value);
 std::ostream& operator<<(std::ostream& out,
                          const ModelProto::ModelValue& value);
 std::ostream& operator<<(std::ostream& out, const UserActionProto& value);
-std::ostream& operator<<(std::ostream& out, const DateProto& value);
 
 // Convenience constructors.
 ValueProto SimpleValue(bool value);
 ValueProto SimpleValue(const std::string& value);
 ValueProto SimpleValue(int value);
-ValueProto SimpleValue(const DateProto& value);
 ModelProto::ModelValue SimpleModelValue(const std::string& identifier,
                                         const ValueProto& value);
 
diff --git a/components/autofill_assistant/browser/value_util_unittest.cc b/components/autofill_assistant/browser/value_util_unittest.cc
index bd4ced1..83c4326 100644
--- a/components/autofill_assistant/browser/value_util_unittest.cc
+++ b/components/autofill_assistant/browser/value_util_unittest.cc
@@ -9,48 +9,38 @@
 
 namespace value_util {
 
-namespace {
-ValueProto CreateStringValue() {
-  ValueProto value;
-  value.mutable_strings()->add_values("Aurea prima");
-  value.mutable_strings()->add_values("sata est,");
-  value.mutable_strings()->add_values("aetas quae");
-  value.mutable_strings()->add_values("vindice nullo");
-  value.mutable_strings()->add_values("ü万𠜎");
-  return value;
-}
-
-ValueProto CreateIntValue() {
-  ValueProto value;
-  value.mutable_ints()->add_values(1);
-  value.mutable_ints()->add_values(123);
-  value.mutable_ints()->add_values(5);
-  value.mutable_ints()->add_values(-132);
-  return value;
-}
-
-ValueProto CreateBoolValue() {
-  ValueProto value;
-  value.mutable_booleans()->add_values(true);
-  value.mutable_booleans()->add_values(false);
-  value.mutable_booleans()->add_values(true);
-  value.mutable_booleans()->add_values(true);
-  return value;
-}
-
-DateProto CreateDateProto(int year, int month, int day) {
-  DateProto proto;
-  proto.set_year(year);
-  proto.set_month(month);
-  proto.set_day(day);
-  return proto;
-}
-}  // namespace
-
 class ValueUtilTest : public testing::Test {
  public:
   ValueUtilTest() = default;
   ~ValueUtilTest() override {}
+
+  ValueProto CreateStringValue() const {
+    ValueProto value;
+    value.mutable_strings()->add_values("Aurea prima");
+    value.mutable_strings()->add_values("sata est,");
+    value.mutable_strings()->add_values("aetas quae");
+    value.mutable_strings()->add_values("vindice nullo");
+    value.mutable_strings()->add_values("ü万𠜎");
+    return value;
+  }
+
+  ValueProto CreateIntValue() const {
+    ValueProto value;
+    value.mutable_ints()->add_values(1);
+    value.mutable_ints()->add_values(123);
+    value.mutable_ints()->add_values(5);
+    value.mutable_ints()->add_values(-132);
+    return value;
+  }
+
+  ValueProto CreateBoolValue() const {
+    ValueProto value;
+    value.mutable_booleans()->add_values(true);
+    value.mutable_booleans()->add_values(false);
+    value.mutable_booleans()->add_values(true);
+    value.mutable_booleans()->add_values(true);
+    return value;
+  }
 };
 
 TEST_F(ValueUtilTest, DifferentTypesComparison) {
@@ -58,24 +48,18 @@
   ValueProto value_b = CreateStringValue();
   ValueProto value_c = CreateIntValue();
   ValueProto value_d = CreateBoolValue();
-  ValueProto value_e = SimpleValue(CreateDateProto(2020, 8, 30));
 
   EXPECT_FALSE(value_a == value_b);
   EXPECT_FALSE(value_a == value_c);
   EXPECT_FALSE(value_a == value_d);
-  EXPECT_FALSE(value_a == value_e);
   EXPECT_FALSE(value_b == value_c);
   EXPECT_FALSE(value_b == value_d);
-  EXPECT_FALSE(value_b == value_e);
   EXPECT_FALSE(value_c == value_d);
-  EXPECT_FALSE(value_c == value_e);
-  EXPECT_FALSE(value_d == value_e);
 
   EXPECT_TRUE(value_a == value_a);
   EXPECT_TRUE(value_b == value_b);
   EXPECT_TRUE(value_c == value_c);
   EXPECT_TRUE(value_d == value_d);
-  EXPECT_TRUE(value_e == value_e);
 }
 
 TEST_F(ValueUtilTest, EmptyValueComparison) {
@@ -136,19 +120,6 @@
   EXPECT_TRUE(value_a == value_b);
 }
 
-TEST_F(ValueUtilTest, DateComparison) {
-  ValueProto value_a = SimpleValue(CreateDateProto(2020, 4, 18));
-  ValueProto value_b = value_a;
-  EXPECT_TRUE(value_a == value_b);
-
-  *value_a.mutable_dates()->add_values() = CreateDateProto(2020, 6, 14);
-  *value_b.mutable_dates()->add_values() = CreateDateProto(2020, 6, 15);
-  EXPECT_FALSE(value_a == value_b);
-
-  *value_b.mutable_dates()->mutable_values(1) = CreateDateProto(2020, 6, 14);
-  EXPECT_TRUE(value_a == value_b);
-}
-
 TEST_F(ValueUtilTest, AreAllValuesOfType) {
   ValueProto value_a;
   ValueProto value_b;
diff --git a/components/bookmarks/browser/bookmark_client.h b/components/bookmarks/browser/bookmark_client.h
index 7da064d..910fddf 100644
--- a/components/bookmarks/browser/bookmark_client.h
+++ b/components/bookmarks/browser/bookmark_client.h
@@ -10,6 +10,7 @@
 
 #include "base/callback_forward.h"
 #include "base/task/cancelable_task_tracker.h"
+#include "components/bookmarks/browser/bookmark_node.h"
 #include "components/bookmarks/browser/bookmark_storage.h"
 #include "components/favicon_base/favicon_callback.h"
 #include "components/favicon_base/favicon_types.h"
@@ -24,8 +25,6 @@
 namespace bookmarks {
 
 class BookmarkModel;
-class BookmarkNode;
-class BookmarkPermanentNode;
 
 // This class abstracts operations that depends on the embedder's environment,
 // e.g. Chrome.
@@ -66,9 +65,9 @@
   // |url_typed_count_map| must not be null.
   virtual void GetTypedCountForUrls(UrlTypedCountMap* url_typed_count_map);
 
-  // Returns whether the embedder wants permanent node |node|
+  // Returns whether the embedder wants permanent node of type |type|
   // to always be visible or to only show them when not empty.
-  virtual bool IsPermanentNodeVisible(const BookmarkPermanentNode* node) = 0;
+  virtual bool IsPermanentNodeVisibleWhenEmpty(BookmarkNode::Type type) = 0;
 
   // Wrapper around RecordAction defined in base/metrics/user_metrics.h
   // that ensure that the action is posted from the correct thread.
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
index cbf7b658..d9ec806 100644
--- a/components/bookmarks/browser/bookmark_model.cc
+++ b/components/bookmarks/browser/bookmark_model.cc
@@ -58,10 +58,8 @@
                   const std::unique_ptr<BookmarkNode>& n2) {
     DCHECK(n1->is_permanent_node());
     DCHECK(n2->is_permanent_node());
-    bool n1_visible = client_->IsPermanentNodeVisible(
-        static_cast<BookmarkPermanentNode*>(n1.get()));
-    bool n2_visible = client_->IsPermanentNodeVisible(
-        static_cast<BookmarkPermanentNode*>(n2.get()));
+    bool n1_visible = client_->IsPermanentNodeVisibleWhenEmpty(n1->type());
+    bool n2_visible = client_->IsPermanentNodeVisibleWhenEmpty(n2->type());
     return n1_visible != n2_visible && n1_visible;
   }
 
diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc
index c2c1dc68..681766c2 100644
--- a/components/bookmarks/browser/bookmark_node.cc
+++ b/components/bookmarks/browser/bookmark_node.cc
@@ -162,15 +162,22 @@
 
 // BookmarkPermanentNode -------------------------------------------------------
 
-BookmarkPermanentNode::BookmarkPermanentNode(int64_t id, Type type)
-    : BookmarkNode(id, PermanentNodeTypeToGuid(type), GURL(), type, true) {
+BookmarkPermanentNode::BookmarkPermanentNode(int64_t id,
+                                             Type type,
+                                             bool visible_when_empty)
+    : BookmarkNode(id,
+                   PermanentNodeTypeToGuid(type),
+                   GURL(),
+                   type,
+                   /*is_permanent_node=*/true),
+      visible_when_empty_(visible_when_empty) {
   DCHECK(type != URL);
 }
 
 BookmarkPermanentNode::~BookmarkPermanentNode() = default;
 
 bool BookmarkPermanentNode::IsVisible() const {
-  return visible_ || !children().empty();
+  return visible_when_empty_ || !children().empty();
 }
 
 }  // namespace bookmarks
diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks/browser/bookmark_node.h
index 6366123..8cc1a2f8 100644
--- a/components/bookmarks/browser/bookmark_node.h
+++ b/components/bookmarks/browser/bookmark_node.h
@@ -222,17 +222,15 @@
 // Node used for the permanent folders (excluding the root).
 class BookmarkPermanentNode : public BookmarkNode {
  public:
-  BookmarkPermanentNode(int64_t id, Type type);
+  // TODO(mastiz): Remove default value for |visible_when_empty|.
+  BookmarkPermanentNode(int64_t id, Type type, bool visible_when_empty = false);
   ~BookmarkPermanentNode() override;
 
-  // WARNING: this code is used for other projects. Contact noyau@ for details.
-  void set_visible(bool value) { visible_ = value; }
-
   // BookmarkNode overrides:
   bool IsVisible() const override;
 
  private:
-  bool visible_ = false;
+  const bool visible_when_empty_;
 
   DISALLOW_COPY_AND_ASSIGN(BookmarkPermanentNode);
 };
diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc
index 9b8ba38..a6ac086d 100644
--- a/components/bookmarks/browser/bookmark_storage.cc
+++ b/components/bookmarks/browser/bookmark_storage.cc
@@ -241,8 +241,9 @@
   DCHECK(type == BookmarkNode::BOOKMARK_BAR ||
          type == BookmarkNode::OTHER_NODE || type == BookmarkNode::MOBILE);
   std::unique_ptr<BookmarkPermanentNode> node =
-      std::make_unique<BookmarkPermanentNode>(max_id_++, type);
-  node->set_visible(client->IsPermanentNodeVisible(node.get()));
+      std::make_unique<BookmarkPermanentNode>(
+          max_id_++, type,
+          /*visible_when_empty=*/client->IsPermanentNodeVisibleWhenEmpty(type));
 
   int title_id;
   switch (type) {
diff --git a/components/bookmarks/managed/managed_bookmark_service.cc b/components/bookmarks/managed/managed_bookmark_service.cc
index 815a663c..23805a6b 100644
--- a/components/bookmarks/managed/managed_bookmark_service.cc
+++ b/components/bookmarks/managed/managed_bookmark_service.cc
@@ -49,7 +49,6 @@
     node_->set_id(*next_node_id);
     *next_node_id = ManagedBookmarksTracker::LoadInitial(
         node_.get(), initial_bookmarks_.get(), node_->id() + 1);
-    node_->set_visible(!node_->children().empty());
     node_->SetTitle(l10n_util::GetStringUTF16(title_id_));
     return std::move(node_);
   }
@@ -100,8 +99,8 @@
   // Create a BookmarkPermanentNode with a temporary id of 0. It will be
   // populated and assigned a proper id in the LoadManagedNode callback. Until
   // then, it is owned by the returned closure.
-  std::unique_ptr<BookmarkPermanentNode> managed(
-      new BookmarkPermanentNode(0, BookmarkNode::FOLDER));
+  auto managed = std::make_unique<BookmarkPermanentNode>(
+      0, BookmarkNode::FOLDER, /*visible_when_empty=*/false);
 
   managed_node_ = managed.get();
 
diff --git a/components/bookmarks/managed/managed_bookmarks_tracker.cc b/components/bookmarks/managed/managed_bookmarks_tracker.cc
index f8d4849..cd2363f7 100644
--- a/components/bookmarks/managed/managed_bookmarks_tracker.cc
+++ b/components/bookmarks/managed/managed_bookmarks_tracker.cc
@@ -109,9 +109,6 @@
   // Recursively update all the managed bookmarks and folders.
   const base::ListValue* list = prefs_->GetList(prefs::kManagedBookmarks);
   UpdateBookmarks(managed_node_, list);
-
-  // The managed bookmarks folder isn't visible when that pref isn't present.
-  managed_node_->set_visible(!managed_node_->children().empty());
 }
 
 void ManagedBookmarksTracker::UpdateBookmarks(const BookmarkNode* folder,
diff --git a/components/bookmarks/managed/managed_bookmarks_tracker_unittest.cc b/components/bookmarks/managed/managed_bookmarks_tracker_unittest.cc
index 59101166..d3c3c62 100644
--- a/components/bookmarks/managed/managed_bookmarks_tracker_unittest.cc
+++ b/components/bookmarks/managed/managed_bookmarks_tracker_unittest.cc
@@ -59,7 +59,6 @@
     BookmarkPermanentNode* managed_node = owned_managed_node.get();
     ManagedBookmarksTracker::LoadInitial(
         managed_node, prefs_.GetList(prefs::kManagedBookmarks), 101);
-    managed_node->set_visible(!managed_node->children().empty());
     managed_node->SetTitle(l10n_util::GetStringUTF16(
         IDS_BOOKMARK_BAR_MANAGED_FOLDER_DEFAULT_NAME));
 
diff --git a/components/bookmarks/test/test_bookmark_client.cc b/components/bookmarks/test/test_bookmark_client.cc
index 7eab0eb..ab3bf05 100644
--- a/components/bookmarks/test/test_bookmark_client.cc
+++ b/components/bookmarks/test/test_bookmark_client.cc
@@ -58,12 +58,22 @@
   return node && node->HasAncestor(unowned_managed_node_);
 }
 
-bool TestBookmarkClient::IsPermanentNodeVisible(
-    const BookmarkPermanentNode* node) {
-  DCHECK(node->type() == BookmarkNode::BOOKMARK_BAR ||
-         node->type() == BookmarkNode::OTHER_NODE ||
-         node->type() == BookmarkNode::MOBILE || IsManagedNodeRoot(node));
-  return node->type() != BookmarkNode::MOBILE && !IsManagedNodeRoot(node);
+bool TestBookmarkClient::IsPermanentNodeVisibleWhenEmpty(
+    BookmarkNode::Type type) {
+  switch (type) {
+    case bookmarks::BookmarkNode::URL:
+      NOTREACHED();
+      return false;
+    case bookmarks::BookmarkNode::BOOKMARK_BAR:
+    case bookmarks::BookmarkNode::OTHER_NODE:
+      return true;
+    case bookmarks::BookmarkNode::FOLDER:
+    case bookmarks::BookmarkNode::MOBILE:
+      return false;
+  }
+
+  NOTREACHED();
+  return false;
 }
 
 void TestBookmarkClient::RecordAction(const base::UserMetricsAction& action) {
diff --git a/components/bookmarks/test/test_bookmark_client.h b/components/bookmarks/test/test_bookmark_client.h
index 3c610a4..3e866e67 100644
--- a/components/bookmarks/test/test_bookmark_client.h
+++ b/components/bookmarks/test/test_bookmark_client.h
@@ -44,7 +44,7 @@
 
  private:
   // BookmarkClient:
-  bool IsPermanentNodeVisible(const BookmarkPermanentNode* node) override;
+  bool IsPermanentNodeVisibleWhenEmpty(BookmarkNode::Type type) override;
   void RecordAction(const base::UserMetricsAction& action) override;
   LoadManagedNodeCallback GetLoadManagedNodeCallback() override;
   bool CanSetPermanentNodeTitle(const BookmarkNode* permanent_node) override;
diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
index 1203cc6..9ad36e5 100644
--- a/components/content_settings/core/common/content_settings.h
+++ b/components/content_settings/core/common/content_settings.h
@@ -17,7 +17,7 @@
 // Different settings that can be assigned for a particular content type.  We
 // give the user the ability to set these on a global and per-origin basis.
 // A Java counterpart will be generated for this enum.
-// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.settings.website
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.site_settings
 // GENERATED_JAVA_CLASS_NAME_OVERRIDE: ContentSettingValues
 //
 // TODO(nigeltao): migrate the Java users of this enum to the mojom-generated
diff --git a/components/dom_distiller/core/javascript/dom_distiller_viewer.js b/components/dom_distiller/core/javascript/dom_distiller_viewer.js
index e2e54f7b..d32d1b0 100644
--- a/components/dom_distiller/core/javascript/dom_distiller_viewer.js
+++ b/components/dom_distiller/core/javascript/dom_distiller_viewer.js
@@ -134,10 +134,6 @@
       this.update(e.target.value);
     });
 
-    this.element.addEventListener('input', (e) => {
-      this.update(e.target.value);
-    });
-
     this.tickmarks = document.createElement('datalist');
     this.tickmarks.setAttribute('class', 'tickmarks');
     this.element.after(this.tickmarks);
@@ -156,6 +152,8 @@
     this.element.style.setProperty(
         '--fontSizePercent',
         (position / (this.supportedFontSizes.length - 1) * 100) + '%');
+    this.element.setAttribute(
+        'aria-valuetext', this.supportedFontSizes[position] + 'px');
     for (let option = this.tickmarks.firstChild; option != null;
          option = option.nextSibling) {
       const isBeforeThumb = option.value < position;
diff --git a/components/feed/core/proto/BUILD.gn b/components/feed/core/proto/BUILD.gn
index 003907e..0d230b0 100644
--- a/components/feed/core/proto/BUILD.gn
+++ b/components/feed/core/proto/BUILD.gn
@@ -19,52 +19,37 @@
 proto_library("proto_v2") {
   proto_in_dir = "../../../../"
   sources = [
-    "ui/action/feed_action_payload.proto",
-    "ui/action/ui_feed_action.proto",
-    "ui/piet/accessibility.proto",
-    "ui/piet/actions.proto",
-    "ui/piet/binding_refs.proto",
-    "ui/piet/elements.proto",
-    "ui/piet/errors.proto",
-    "ui/piet/form_fields.proto",
-    "ui/piet/gradients.proto",
-    "ui/piet/images.proto",
-    "ui/piet/log_data.proto",
-    "ui/piet/media_queries.proto",
-    "ui/piet/piet.proto",
-    "ui/piet/piet_android_support.proto",
-    "ui/piet/rounded_corners.proto",
-    "ui/piet/shadows.proto",
-    "ui/piet/styles.proto",
-    "ui/piet/text.proto",
-    "ui/stream/stream_structure.proto",
     "v2/store.proto",
-    "wire/action_payload.proto",
-    "wire/action_payload_for_test.proto",
-    "wire/action_request.proto",
-    "wire/action_type.proto",
-    "wire/capability.proto",
-    "wire/client_info.proto",
-    "wire/consistency_token.proto",
-    "wire/content_id.proto",
-    "wire/data_operation.proto",
-    "wire/display_info.proto",
-    "wire/feature.proto",
-    "wire/feed_action.proto",
-    "wire/feed_action_query_data.proto",
-    "wire/feed_action_request.proto",
-    "wire/feed_action_response.proto",
-    "wire/feed_query.proto",
-    "wire/feed_request.proto",
-    "wire/feed_response.proto",
-    "wire/mockserver/mock_server.proto",
-    "wire/payload_metadata.proto",
-    "wire/piet_shared_state_item.proto",
-    "wire/request.proto",
-    "wire/response.proto",
-    "wire/semantic_properties.proto",
-    "wire/token.proto",
-    "wire/version.proto",
+    "v2/wire/action_payload.proto",
+    "v2/wire/action_request.proto",
+    "v2/wire/action_response.proto",
+    "v2/wire/capability.proto",
+    "v2/wire/client_info.proto",
+    "v2/wire/consistency_token.proto",
+    "v2/wire/content_id.proto",
+    "v2/wire/data_operation.proto",
+    "v2/wire/display_info.proto",
+    "v2/wire/duration.proto",
+    "v2/wire/expiration_info.proto",
+    "v2/wire/feature.proto",
+    "v2/wire/feed_action.proto",
+    "v2/wire/feed_action_request.proto",
+    "v2/wire/feed_action_response.proto",
+    "v2/wire/feed_id.proto",
+    "v2/wire/feed_query.proto",
+    "v2/wire/feed_request.proto",
+    "v2/wire/feed_response.proto",
+    "v2/wire/in_place_update_handle.proto",
+    "v2/wire/next_page_token.proto",
+    "v2/wire/payload_metadata.proto",
+    "v2/wire/render_data.proto",
+    "v2/wire/request.proto",
+    "v2/wire/response.proto",
+    "v2/wire/response_status_code.proto",
+    "v2/wire/stream_structure.proto",
+    "v2/wire/templates.proto",
+    "v2/wire/token.proto",
+    "v2/wire/version.proto",
   ]
 }
 
diff --git a/components/feed/core/proto/libraries/api/internal/stream_data.proto b/components/feed/core/proto/libraries/api/internal/stream_data.proto
index 671982ff..e66a0b8 100644
--- a/components/feed/core/proto/libraries/api/internal/stream_data.proto
+++ b/components/feed/core/proto/libraries/api/internal/stream_data.proto
@@ -72,7 +72,7 @@
   optional string content_id = 1;
   oneof share_state {
     // A Piet shared state item.
-    feedwire.PietSharedStateItem piet_shared_state_item = 2;
+    feedwire1.PietSharedStateItem piet_shared_state_item = 2;
   }
 }
 
@@ -156,7 +156,7 @@
 
     // The consistency token used to ensure that we are recording actions to
     // the same server store.
-    feedwire.ConsistencyToken consistency_token = 9;
+    feedwire1.ConsistencyToken consistency_token = 9;
   }
   reserved 8;
 }
@@ -227,7 +227,7 @@
   // When the action was recorded
   optional int64 timestamp_seconds = 4;
 
-  optional feedwire.ActionPayload payload = 6;
+  optional feedwire1.ActionPayload payload = 6;
 
   reserved 1, 5;  // deprecated fields
 }
diff --git a/components/feed/core/proto/ui/action/ui_feed_action.proto b/components/feed/core/proto/ui/action/ui_feed_action.proto
index 4870d99..419ea25 100644
--- a/components/feed/core/proto/ui/action/ui_feed_action.proto
+++ b/components/feed/core/proto/ui/action/ui_feed_action.proto
@@ -106,9 +106,9 @@
   //  latest frequency token as the value of this query param.
   optional string consistency_token_query_param_name = 2;
   // The content ID that was interacted with to cause a URL open.
-  optional feedwire.ContentId content_id = 3;
+  optional feedwire1.ContentId content_id = 3;
   // Roundtripped server data on a per-action level.
-  optional feedwire.ActionPayload payload = 4;
+  optional feedwire1.ActionPayload payload = 4;
 }
 
 // Data needed by Stream to open a context menu.
@@ -121,19 +121,19 @@
   // The ContentId needed by the server to suppress reshowing the dismissed
   // content. This will usually be the ContentId of the card which holds the
   // content, not the ContentId of the content itself.
-  optional feedwire.ContentId content_id = 1;
+  optional feedwire1.ContentId content_id = 1;
 
   // The DataOperations which are needed to actually perform the dismiss on the
   // client. This is typically a singleton list of a remove operation on the
   // Cluster that the content belongs to.
-  repeated feedwire.DataOperation data_operations = 2;
+  repeated feedwire1.DataOperation data_operations = 2;
 
   // Data used by the client to show a confirmation message with option to undo.
   // This confirmation and undo option will only appear if the UndoAction is
   // present and the client can handle this capability.
   optional UndoAction undo_action = 3;
   // Roundtripped server data on a per-action level.
-  optional feedwire.ActionPayload payload = 4;
+  optional feedwire1.ActionPayload payload = 4;
 }
 
 // Data needed by the client to handle the not interested action.
@@ -143,9 +143,9 @@
   // present and the client can handle this capability.
   optional UndoAction undo_action = 1;
   // The data needed by Stream to preform the dismiss.
-  repeated feedwire.DataOperation data_operations = 2;
+  repeated feedwire1.DataOperation data_operations = 2;
   // Roundtripped server data on a per-action level.
-  optional feedwire.ActionPayload payload = 3;
+  optional feedwire1.ActionPayload payload = 3;
   enum RecordedInterestType {
     UNKNOWN_INTEREST_TYPE = 0;
     TOPIC = 1;
diff --git a/components/feed/core/proto/ui/stream/stream_structure.proto b/components/feed/core/proto/ui/stream/stream_structure.proto
index 5cc7ca6..f7d4389 100644
--- a/components/feed/core/proto/ui/stream/stream_structure.proto
+++ b/components/feed/core/proto/ui/stream/stream_structure.proto
@@ -19,7 +19,7 @@
 // Top level feature which shows a stream of cards.  Provides any UI information
 // which may be needed in order to render the stream of cards.
 message Stream {
-  extend feedwire.Feature { optional Stream stream_extension = 185431437; }
+  extend feedwire1.Feature { optional Stream stream_extension = 185431437; }
 
   // Empty for now as don't support any custom information.
 }
@@ -27,7 +27,7 @@
 // Feature which represents a cluster in a Stream. May have a Card or Content
 // as children.
 message Cluster {
-  extend feedwire.Feature { optional Cluster cluster_extension = 190812910; }
+  extend feedwire1.Feature { optional Cluster cluster_extension = 190812910; }
 
   // Empty for now as we don't support any custom information.
 }
@@ -35,7 +35,7 @@
 // Experimental feature which represents a carousel in a Stream. May have a list
 // of Cards or Content as children.
 message Carousel {
-  extend feedwire.Feature { optional Carousel carousel_extension = 244251946; }
+  extend feedwire1.Feature { optional Carousel carousel_extension = 244251946; }
 
   // Please use CL numbers you own for extension numbers.
   extensions 10000 to max;
@@ -44,7 +44,7 @@
 // Feature which represents a full card in a Stream.  Allows metadata to be sent
 // to describe how to render the card.
 message Card {
-  extend feedwire.Feature { optional Card card_extension = 185431438; }
+  extend feedwire1.Feature { optional Card card_extension = 185431438; }
 
   // Please use CL numbers you own for extension numbers.
   extensions 10000 to max;
@@ -90,7 +90,7 @@
 // inside or outside a card. Actual data on what to display will be sent on an
 // extension.
 message Content {
-  extend feedwire.Feature { optional Content content_extension = 185431439; }
+  extend feedwire1.Feature { optional Content content_extension = 185431439; }
 
   enum Type {
     UNKNOWN_CONTENT = 0;
@@ -112,7 +112,7 @@
 
   // Content Ids of Piet Shared States which should be provided to Piet in order
   // to show its content.
-  repeated feedwire.ContentId piet_shared_states = 1;
+  repeated feedwire1.ContentId piet_shared_states = 1;
 
   // The Piet frame to render.
   optional components.feed.core.proto.ui.piet.Frame frame = 2;
diff --git a/components/feed/core/proto/v2/store.proto b/components/feed/core/proto/v2/store.proto
index 95c6ccb9..492412c 100644
--- a/components/feed/core/proto/v2/store.proto
+++ b/components/feed/core/proto/v2/store.proto
@@ -6,9 +6,8 @@
 
 package feedstore;
 
-import "components/feed/core/proto/ui/action/ui_feed_action.proto";
-import "components/feed/core/proto/ui/stream/stream_structure.proto";
-import "components/feed/core/proto/wire/content_id.proto";
+import "components/feed/core/proto/v2/wire/content_id.proto";
+import "components/feed/core/proto/v2/wire/feed_action.proto";
 
 option optimize_for = LITE_RUNTIME;
 
@@ -111,7 +110,24 @@
   // Unix timestamp (seconds) that content was received by Chrome.
   int64 availability_time_seconds = 2;
   RepresentationData representation_data = 3;
-  components.feed.core.proto.ui.stream.OfflineMetadata offline_metadata = 4;
+  OfflineMetadata offline_metadata = 4;
+}
+
+message OfflineMetadata {
+  // Title of the content.
+  string title = 1;
+
+  // Url for image for the content.
+  string image_url = 2;
+
+  // Publisher of the content.
+  string publisher = 3;
+
+  // Url for the favicon for the content.
+  string favicon_url = 4;
+
+  // Short string from the content, typically the start of an article.
+  string snippet = 5;
 }
 
 message Content {
@@ -136,7 +152,7 @@
   // How many times we have tried to upload the action.
   int32 upload_attempt_count = 2;
   // The action to upload.
-  components.feed.core.proto.ui.action.FeedAction action = 3;
+  feedwire.FeedAction action = 3;
 }
 
 // The internal version of the server response. Includes feature tree and
diff --git a/components/feed/core/proto/v2/wire/action_payload.proto b/components/feed/core/proto/v2/wire/action_payload.proto
new file mode 100644
index 0000000..cc072bfb
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/action_payload.proto
@@ -0,0 +1,21 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// The data needed by the server to handle action recording. This information is
+// opaque to the client and will be the information that is round-tripped so the
+// server can properly handle the action. For the Not Interested In action, this
+// data will contain the ids needed to record that the user is not interested
+// in that particular topic or source.
+// NOTE: it is important to keep this to a bare minimum amount of data.
+message ActionPayload {
+  // Reserved fields for renderable unit extensions
+  // Please use CL numbers you own for extension numbers.
+  extensions 257605906;  // ActionPayloadData
+}
diff --git a/components/feed/core/proto/v2/wire/action_request.proto b/components/feed/core/proto/v2/wire/action_request.proto
new file mode 100644
index 0000000..d409f2e
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/action_request.proto
@@ -0,0 +1,23 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// Top level request message.
+message ActionRequest {
+  // Supported versions of request messages are specified as extensions to
+  // the top-level request message.  An enum is used to denote the expected
+  // extensions for this request.
+  enum RequestVersion {
+    UNKNOWN_ACTION_REQUEST_VERSION = 0;
+    FEED_UPLOAD_ACTION = 1;
+  }
+  optional RequestVersion request_version = 1;
+
+  extensions 1000;  // FeedActionRequest
+}
diff --git a/components/feed/core/proto/v2/wire/action_response.proto b/components/feed/core/proto/v2/wire/action_response.proto
new file mode 100644
index 0000000..213bf3a
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/action_response.proto
@@ -0,0 +1,23 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// Top level response message.
+message ActionResponse {
+  // Supported versions of response messages are specified as extensions to
+  // the top-level response message.  An enum is used to denote the expected
+  // extensions for this response.
+  enum ResponseVersion {
+    UNKNOWN_ACTION_RESPONSE_VERSION = 0;
+    FEED_UPLOAD_ACTION_RESPONSE = 1;
+  }
+  optional ResponseVersion response_version = 1;
+
+  extensions 1000;  // FeedActionResponse
+}
diff --git a/components/feed/core/proto/v2/wire/capability.proto b/components/feed/core/proto/v2/wire/capability.proto
new file mode 100644
index 0000000..73b9530
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/capability.proto
@@ -0,0 +1,39 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// Feature capability of either the client or the server.
+// Next ID: 20
+enum Capability {
+  UNKNOWN_CAPABILITY = 0;
+  // The client is capable of a basic UI.
+  BASE_UI = 1;
+
+  INFINITE_FEED = 5;
+  // Enable Dismiss command
+  DISMISS_COMMAND = 9;
+  // Enable Undo in Dismiss
+  UNDO_FOR_DISMISS_COMMAND = 10;
+  REDACTED_11 = 11;
+  // The client is only considered capable of supporting a minimal heirloomed
+  // feed.
+  HEIRLOOMED_FEED = 13;
+  // The client is capable of supporting sports features.
+  SPORTS_FEATURE = 14;
+  // The client is capable of supporting ads content.
+  PAID_CONTENT = 15;
+  // Enable open video command.
+  OPEN_VIDEO_COMMAND = 16;
+  REDACTED_17 = 17;
+  // Enable inline video autoplay.
+  INLINE_VIDEO_AUTOPLAY = 18;
+  // Enable the card menu.
+  CARD_MENU = 19;
+  reserved 2 to 4, 6 to 8, 12;
+}
diff --git a/components/feed/core/proto/v2/wire/client_info.proto b/components/feed/core/proto/v2/wire/client_info.proto
new file mode 100644
index 0000000..a4e7753
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/client_info.proto
@@ -0,0 +1,61 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/display_info.proto";
+import "components/feed/core/proto/v2/wire/version.proto";
+
+// Information about the client performing the request similar to a user-agent
+// string in HTTP.
+// Next ID: 10.
+message ClientInfo {
+  enum PlatformType {
+    UNKNOWN_PLATFORM = 0;
+    ANDROID_ID = 1;  // ANDROID collides with a C++ preprocessor macro.
+    IOS = 2;
+  }
+
+  enum AppType { CHROME = 3; }
+
+  // The type of OS that the client is running.
+  optional PlatformType platform_type = 1;
+
+  // The version of the OS that the client is running.
+  optional Version platform_version = 2;
+
+  // The type of client app.
+  optional AppType app_type = 3;
+
+  // The version of the client app.
+  optional Version app_version = 4;
+
+  // A string identifying the language and region preferences of the client.
+  // Follows the BCP 47 format such as "en-US" or "fr-CA"
+  optional string locale = 5;
+
+  // The information about the screen of the client. This is repeated because
+  // there are some devices that might have multiple display screens.
+  // (Ex fold-able phones)
+  repeated DisplayInfo display_info = 6;
+
+  // Identifier of the user's device. For Android devices, contains a hash of
+  // the gaia email and android_id, which uniquely identifies the device for
+  // the user. Currently set by Android clients version 4.1 and later.
+  optional string client_instance_id = 7;
+
+  // An Android device level identifier used for advertising, required for
+  // conversion tracking, see more at:
+  // https://support.google.com/googleplay/android-developer/answer/6048248
+  optional string advertising_id = 8;
+
+  // Two-letter country code as detected by the device. On Android devices,
+  // this comes from GServices check-in which uses the SIM card MCC (mobile
+  // country code), with fallback to IP geo lookup.
+  optional string device_country = 9;
+}
diff --git a/components/feed/core/proto/v2/wire/consistency_token.proto b/components/feed/core/proto/v2/wire/consistency_token.proto
new file mode 100644
index 0000000..48a6b20
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/consistency_token.proto
@@ -0,0 +1,15 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// A consistency token.
+message ConsistencyToken {
+  // Indicates the min version of storage to read from.
+  optional bytes token = 1;
+}
diff --git a/components/feed/core/proto/v2/wire/content_id.proto b/components/feed/core/proto/v2/wire/content_id.proto
new file mode 100644
index 0000000..b098b30
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/content_id.proto
@@ -0,0 +1,49 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// An identifier for a piece of content served by Now or delivered to the Now
+// client(s).
+// See [INTERNAL LINK] for the design of this feature.
+// ContentId comprises a unique key for all content. The client will never have
+// more than one piece of content with the same ContentID.
+message ContentId {
+  optional string content_domain = 1;
+
+  // The type of content this represents. Generally, this is somewhat redundant,
+  // as this ContentId proto will be embedded within a particular parent proto
+  // that implies its type. It is repeated here for the purpose of making
+  // ContentId fully self-contained, able to completely specify a piece of
+  // content's ID without additional context.
+  // Since Type is one of the components of content's uniqueness, it is safe
+  // and reasonable for two related pieces of content with different types
+  // (e.g. a card and its attached notification) to share the same id and
+  // content_domain, and to differ only in their type.  However, Type is **not**
+  // included when determing if two ContentIds are equivalent.
+  enum Type {
+    // Undefined type - DO NOT USE
+    TYPE_UNDEFINED = 0;
+    CARD = 1;
+    CLUSTER = 3;
+    // A feature, which is the indivisible unit of Feed content.
+    FEATURE = 4;
+    // A ContentId used only for identifying nodes in a tree structure.
+    TREE_STRUCTURE = 7;
+    // A ContentId for a collection.
+    COLLECTION = 8;
+    // A ContentId for a token, e.g. a NextPage token.
+    TOKEN = 9;
+
+    reserved 2;
+  }
+  // The type of content this represents
+  optional Type type = 2;
+
+  optional fixed64 id = 3;
+}
diff --git a/components/feed/core/proto/v2/wire/data_operation.proto b/components/feed/core/proto/v2/wire/data_operation.proto
new file mode 100644
index 0000000..0651eb2
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/data_operation.proto
@@ -0,0 +1,55 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/feature.proto";
+import "components/feed/core/proto/v2/wire/in_place_update_handle.proto";
+import "components/feed/core/proto/v2/wire/payload_metadata.proto";
+import "components/feed/core/proto/v2/wire/render_data.proto";
+import "components/feed/core/proto/v2/wire/templates.proto";
+import "components/feed/core/proto/v2/wire/token.proto";
+
+// An extensible operation to change the state of data on the client.
+message DataOperation {
+  // Next tag: 8
+
+  enum Operation {
+    UNKNOWN_OPERATION = 0;
+    // Remove all stored content of all types
+    CLEAR_ALL = 1;
+    // Update content if it exists, else append to the bottom of the feed
+    UPDATE_OR_APPEND = 2;
+    // Remove the item from the stream
+    REMOVE = 3;
+  }
+
+  // The operation to perform on the data.
+  optional Operation operation = 1;
+
+  // Data common to all payload types.
+  optional PayloadMetadata metadata = 2;
+
+  // The actual data being supplied.
+  oneof payload {
+    // A stream UI level feature such as a cluster or card.
+    Feature feature = 3;
+
+    // A token, capable of making a next page request.
+    Token next_page_token = 5;
+
+    // Information to help render the content in the response.
+    RenderData render_data = 6;
+
+    // A handle for updating one or more pieces of content in place.
+    InPlaceUpdateHandle in_place_update_handle = 8;
+
+    // A collection of templates.
+    Templates templates = 4 [deprecated = true];
+  }
+}
diff --git a/components/feed/core/proto/v2/wire/display_info.proto b/components/feed/core/proto/v2/wire/display_info.proto
new file mode 100644
index 0000000..f12bc74
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/display_info.proto
@@ -0,0 +1,24 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// The information about the client's screen.
+// Next id: 4
+message DisplayInfo {
+  // Density of the screen in physical pixels per density independent pixel
+  // (DIP); see:
+  // http://developer.android.com/reference/android/util/DisplayMetrics.html#density
+  optional float screen_density = 1;
+
+  // The width of the screen in pixels.
+  optional uint32 screen_width_in_pixels = 2;
+
+  // The height of the screen in pixels.
+  optional uint32 screen_height_in_pixels = 3;
+}
diff --git a/components/feed/core/proto/v2/wire/duration.proto b/components/feed/core/proto/v2/wire/duration.proto
new file mode 100644
index 0000000..5f261ae
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/duration.proto
@@ -0,0 +1,15 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto3";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// Copy of third_party/protobuf/src/google/protobuf/duration.proto.
+message Duration {
+  int64 seconds = 1;
+  int32 nanos = 2;
+}
diff --git a/components/feed/core/proto/v2/wire/expiration_info.proto b/components/feed/core/proto/v2/wire/expiration_info.proto
new file mode 100644
index 0000000..326ceb86
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/expiration_info.proto
@@ -0,0 +1,26 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/duration.proto";
+
+/* Information about whether and when a feature should expire and be removed
+ * from Discover. */
+message ExpirationInfo {
+  // Whether the feature can expire.
+  optional bool should_expire = 1;
+
+  // Indicates how long after this response was received the client should wait
+  // before expiring (and hiding) this content. This expiration time is a best
+  // effort, and should not be done while the content is visible on screen.
+  // There are no penalties with showing the content after the expiry, though
+  // some uses of this API (ads in particular) do have SLA's about how often
+  // items can be shown after expiration.
+  optional feedwire.Duration expiration_duration = 2;
+}
diff --git a/components/feed/core/proto/v2/wire/feature.proto b/components/feed/core/proto/v2/wire/feature.proto
new file mode 100644
index 0000000..51568af0
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/feature.proto
@@ -0,0 +1,46 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/content_id.proto";
+import "components/feed/core/proto/v2/wire/expiration_info.proto";
+
+// Features define both the structure and content found in the Stream.
+message Feature {
+  // The ContentId identifying the parent feature for this feature.
+  optional ContentId parent_id = 1;
+
+  // Enum denoting which extension containing the renderable data is associated
+  // with this Feature.
+  enum RenderableUnit {
+    UNKNOWN_RENDERABLE_UNIT = 0;
+    STREAM = 1;
+    CONTENT = 3;
+    CLUSTER = 4;
+    REDACTED_10 = 10;
+    REDACTED_11 = 11;
+    reserved 2, 5, 6, 7, 8, 9;
+  }
+  optional RenderableUnit renderable_unit = 2;
+
+  // Indicates whether this feature should expire, and additional metadata
+  // necessariy to handle expiration. Note that clients may not support
+  // expiration of every type of feature.
+  optional ExpirationInfo expiration_info = 3;
+
+  extensions 185431437;  // Stream
+  extensions 185431438;  // Card
+  extensions 185431439;  // Content
+  extensions 190812910;  // Cluster
+  extensions 194964015;  // Token
+  extensions 286406442;  // REDACTED
+  extensions 286406443;  // REDACTED
+
+  reserved 246375740, 274598443, 274598444, 277068786;
+}
diff --git a/components/feed/core/proto/v2/wire/feed_action.proto b/components/feed/core/proto/v2/wire/feed_action.proto
new file mode 100644
index 0000000..62ae63e
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/feed_action.proto
@@ -0,0 +1,38 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/action_payload.proto";
+import "components/feed/core/proto/v2/wire/content_id.proto";
+
+message FeedAction {
+  // The Id for the content that this action was triggered on.
+  optional ContentId content_id = 1;
+  // Additional logging data that is on a per-action level
+  optional ActionPayload action_payload = 2;
+  // Client-generated data that pertains to the action.
+  optional ClientData client_data = 3;
+  // Next Id: 7
+
+  // The data the client provides to the server.
+  message ClientData {
+    // When the action was recorded on the client
+    optional int64 timestamp_seconds = 1;
+
+    // A monotonically-increasing sequence number that increments per
+    // user + device. Used in experiments to measure action loss between client
+    // and server.
+    optional int64 sequence_number = 2;
+
+    // The duration for the action in milliseconds. In case of view actions this
+    // is the duration for which the content is considered "viewed".
+    optional int64 duration_ms = 3;
+  }
+  reserved 4, 5, 6;
+}
diff --git a/components/feed/core/proto/v2/wire/feed_action_request.proto b/components/feed/core/proto/v2/wire/feed_action_request.proto
new file mode 100644
index 0000000..c889283
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/feed_action_request.proto
@@ -0,0 +1,24 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/action_request.proto";
+import "components/feed/core/proto/v2/wire/consistency_token.proto";
+import "components/feed/core/proto/v2/wire/feed_action.proto";
+
+// Request to upload new actions to the Actions Endpoint
+message FeedActionRequest {
+  extend ActionRequest {
+    optional FeedActionRequest feed_action_request = 1000;
+  }
+  // Data related to recordable actions performed on the client.
+  repeated FeedAction feed_action = 1;
+  // Token used to write to the same storage.
+  optional ConsistencyToken consistency_token = 2;
+}
diff --git a/components/feed/core/proto/v2/wire/feed_action_response.proto b/components/feed/core/proto/v2/wire/feed_action_response.proto
new file mode 100644
index 0000000..6f6456b2
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/feed_action_response.proto
@@ -0,0 +1,22 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/action_response.proto";
+import "components/feed/core/proto/v2/wire/consistency_token.proto";
+
+// A feed action response returns when an action has been successfully uploaded
+// to the server.
+message FeedActionResponse {
+  extend ActionResponse {
+    optional FeedActionResponse feed_action_response = 1000;
+  }
+  // Token used to read or write to the same storage.
+  optional ConsistencyToken consistency_token = 1;
+}
diff --git a/components/feed/core/proto/v2/wire/feed_id.proto b/components/feed/core/proto/v2/wire/feed_id.proto
new file mode 100644
index 0000000..25afaa86
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/feed_id.proto
@@ -0,0 +1,20 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// This proto is used to uniquely identify a Feed of cards.
+// The main use case is for the paginated feed, storing multiple
+// feeds on the server, and needing to identify them individually.
+// It is an empty extension holder because the client should not ever know
+// or care what's in the FeedId, and so we can change the definition
+// of what a FeedId for the server without worrying about users possibly
+// looking into the implementation details.
+message FeedId {
+  extensions 1 to 6;
+}
diff --git a/components/feed/core/proto/v2/wire/feed_query.proto b/components/feed/core/proto/v2/wire/feed_query.proto
new file mode 100644
index 0000000..e69e919fa
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/feed_query.proto
@@ -0,0 +1,52 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/token.proto";
+
+message FeedQuery {
+  enum RequestReason {
+    // Bucket for any not listed. Should not be used (prefer adding a new
+    // request reason)
+    UNKNOWN_REQUEST_REASON = 0;
+
+    // App is manually triggering a request, outside of scheduling a request.
+    // Should be used rarely.
+    MANUAL_REFRESH = 1;
+
+    // Host wants a request to refresh content.
+    SCHEDULED_REFRESH = 2;
+
+    // Host wants a request to load more content.
+    NEXT_PAGE_SCROLL = 3;
+
+    REDACTED_4 = 4;
+
+    // Host wants to update content in place.
+    IN_PLACE_UPDATE = 5;
+  }
+
+  // The reason the query is being initiated.
+  optional RequestReason reason = 1;
+
+  // A collection of Token messages, wrapped in a message so it can be used in a
+  // oneof.
+  message Tokens { repeated Token tokens = 1; }
+
+  oneof token {
+    // The token for requesting the next page of Feed content, to be used with
+    // reason = NEXT_PAGE_SCROLL.
+    Token next_page_token = 3;
+    // Tokens from InPlaceUpdateHandle for content to update in place, if
+    // reason = IN_PLACE_UPDATE.
+    Tokens in_place_update_tokens = 5;
+  }
+
+  reserved 2;
+}
diff --git a/components/feed/core/proto/v2/wire/feed_request.proto b/components/feed/core/proto/v2/wire/feed_request.proto
new file mode 100644
index 0000000..7130c61
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/feed_request.proto
@@ -0,0 +1,39 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/capability.proto";
+import "components/feed/core/proto/v2/wire/client_info.proto";
+import "components/feed/core/proto/v2/wire/consistency_token.proto";
+import "components/feed/core/proto/v2/wire/feed_id.proto";
+import "components/feed/core/proto/v2/wire/feed_query.proto";
+import "components/feed/core/proto/v2/wire/request.proto";
+
+// Request to fetch new data for the feed
+message FeedRequest {
+  extend Request { optional FeedRequest feed_request = 1000; }
+  // Information about the client making the request.
+  optional ClientInfo client_info = 1;
+
+  // Query parameters to fetch feed data.
+  optional FeedQuery feed_query = 2;
+
+  // The list of client supported capabilities.
+  repeated Capability client_capability = 4;
+
+  // Token used to read from/write to the same storage.
+  optional ConsistencyToken consistency_token = 5;
+
+  // Created on the server and used by the client to identify the feed when
+  // clients will store multiple infinite feeds.
+  // See [INTERNAL LINK]
+  repeated FeedId feed_ids_to_preserve = 12;
+
+  reserved 3, 13;
+}
diff --git a/components/feed/core/proto/v2/wire/feed_response.proto b/components/feed/core/proto/v2/wire/feed_response.proto
new file mode 100644
index 0000000..5820920
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/feed_response.proto
@@ -0,0 +1,47 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/capability.proto";
+import "components/feed/core/proto/v2/wire/data_operation.proto";
+import "components/feed/core/proto/v2/wire/feed_id.proto";
+import "components/feed/core/proto/v2/wire/response.proto";
+import "components/feed/core/proto/v2/wire/response_status_code.proto";
+
+// A feed response is  a series of directives to manipulate backend storage,
+// similar to database commands.  Individual data operations contain all the
+// necessary information to manipulate the client state.
+message FeedResponse {
+  extend Response { optional FeedResponse feed_response = 1000; }
+  // DataOperations are applied on the client in order in which they are
+  // received.
+  repeated DataOperation data_operation = 1;
+  // Metadata for the entire FeedResponse.
+  optional FeedResponseMetadata feed_response_metadata = 2;
+
+  // The list of server-response supported capabilities.
+  repeated Capability server_capabilities = 3;
+
+  // The status code for this response.
+  optional ResponseStatusCode response_status_code = 4;
+}
+
+// Data which is relevant for the whole response made by the server.
+message FeedResponseMetadata {
+  // Time at which the server fulfilled this response. This is needed as client
+  // cannot be the source of truth.
+  optional int64 response_time_ms = 1;
+
+  // Created on the server and used by the client to identify the feed when
+  // clients will store multiple infinite feeds.
+  // See [INTERNAL LINK]
+  optional FeedId feed_id = 3;
+
+  reserved 2;
+}
diff --git a/components/feed/core/proto/v2/wire/in_place_update_handle.proto b/components/feed/core/proto/v2/wire/in_place_update_handle.proto
new file mode 100644
index 0000000..382dcad
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/in_place_update_handle.proto
@@ -0,0 +1,26 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/duration.proto";
+import "components/feed/core/proto/v2/wire/token.proto";
+
+// InPlaceUpdateHandle is a handle for the client to send to the server in order
+// to update content in-place.
+message InPlaceUpdateHandle {
+  // Indicates how long after this response ws received the client should wait
+  // before sending the token back to the server. It is not an error to send the
+  // token earlier, but in that case the server may just replace the handle with
+  // and an updated use_after and the same token.
+  optional feedwire.Duration use_after = 1;
+
+  // Opaque token to use in a request for the server to send updated versions of
+  // its associated content.
+  optional Token token = 2;
+}
diff --git a/components/feed/core/proto/v2/wire/next_page_token.proto b/components/feed/core/proto/v2/wire/next_page_token.proto
new file mode 100644
index 0000000..2e7b79d
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/next_page_token.proto
@@ -0,0 +1,16 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/token.proto";
+
+message NextPageToken {
+  extend Token { optional NextPageToken next_page_token_extension = 1002; }
+  optional bytes next_page_token = 1;
+}
diff --git a/components/feed/core/proto/v2/wire/payload_metadata.proto b/components/feed/core/proto/v2/wire/payload_metadata.proto
new file mode 100644
index 0000000..28a7695
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/payload_metadata.proto
@@ -0,0 +1,19 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/content_id.proto";
+
+// Metadata common to all payloads in a DataOperation.
+message PayloadMetadata {
+  // The unique identifier of the payload.
+  optional ContentId content_id = 1;
+
+  reserved 2, 3, 4, 5;
+}
diff --git a/components/feed/core/proto/v2/wire/render_data.proto b/components/feed/core/proto/v2/wire/render_data.proto
new file mode 100644
index 0000000..354fe27e
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/render_data.proto
@@ -0,0 +1,22 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// Contains data to use during client-side rendering of the response, like
+// templates and themes.
+message RenderData {
+  // Enum denoting which extension contains the render data.
+  enum RenderDataType {
+    UNKNOWN_RENDER_DATA_TYPE = 0;
+    XSURFACE = 1;
+  }
+  optional RenderDataType render_data_type = 1;
+
+  extensions 1000;  // ElementsRenderData
+}
diff --git a/components/feed/core/proto/v2/wire/request.proto b/components/feed/core/proto/v2/wire/request.proto
new file mode 100644
index 0000000..ad1a1ed
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/request.proto
@@ -0,0 +1,24 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// Top level request message.
+message Request {
+  // Supported versions of request messages are specified as extensions to
+  // the top-level request message.  An enum is used to denote the expected
+  // extensions for this request.
+  enum RequestVersion {
+    UNKNOWN_REQUEST_VERSION = 0;
+    FEED_QUERY = 1;
+  }
+  optional RequestVersion request_version = 1;
+
+  // Please use CL numbers you own for extension numbers.
+  extensions 1000;  // FeedRequest
+}
diff --git a/components/feed/core/proto/v2/wire/response.proto b/components/feed/core/proto/v2/wire/response.proto
new file mode 100644
index 0000000..19d51acc
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/response.proto
@@ -0,0 +1,24 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// Top level response message.
+message Response {
+  // Supported versions of response messages are specified as extensions to
+  // the top-level response message.  An enum is used to denote the expected
+  // extensions for this response.
+  enum ResponseVersion {
+    UNKNOWN_RESPONSE_VERSION = 0;
+    FEED_RESPONSE = 1;
+  }
+  optional ResponseVersion response_version = 1;
+
+  // Please use CL numbers you own for extension numbers.
+  extensions 1000;  // FeedResponse
+}
diff --git a/components/feed/core/proto/v2/wire/response_status_code.proto b/components/feed/core/proto/v2/wire/response_status_code.proto
new file mode 100644
index 0000000..ec45adb
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/response_status_code.proto
@@ -0,0 +1,23 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// Status for the Feed response.
+enum ResponseStatusCode {
+  UNKNOWN_STATUS_CODE = 0;
+
+  // Eligible for feed and no errors encountered.
+  STATUS_OK = 1;
+
+  // Ineligible for Feed.
+  STATUS_INELIGIBLE_FOR_FEED = 2;
+
+  // No cards.
+  STATUS_NO_CONTENT_RETURNED = 3;
+}
diff --git a/components/feed/core/proto/v2/wire/stream_structure.proto b/components/feed/core/proto/v2/wire/stream_structure.proto
new file mode 100644
index 0000000..cd0281d
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/stream_structure.proto
@@ -0,0 +1,51 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/feature.proto";
+
+// Top level feature which shows a stream of cards.  Provides any UI information
+// which may be needed in order to render the stream of cards.
+message Stream {
+  extend Feature { optional Stream stream_extension = 185431437; }
+}
+
+// Feature which represents a cluster in a Stream. May have a Card or Content
+// as children.
+// TODO Determine if Clusters can be removed.
+message Cluster {
+  extend Feature { optional Cluster cluster_extension = 190812910; }
+
+  // Empty for now as we don't support any custom information.
+}
+
+// Feature which represents a full card in a Stream.  Allows metadata to be sent
+// to describe how to render the card.
+message Card {
+  extend Feature { optional Card card_extension = 185431438; }
+}
+
+// Feature which is able to show actual content in a stream. This could be
+// inside or outside a card. Actual data on what to display will be sent on an
+// extension.
+message Content {
+  extend Feature { optional Content content_extension = 185431439; }
+
+  enum Type {
+    UNKNOWN_CONTENT = 0;
+    XUIKIT = 1;
+  }
+  optional Type type = 1;
+
+  optional bool is_ad = 3;
+
+  extensions 1000;  // ElementsContent
+
+  reserved 2;
+}
diff --git a/components/feed/core/proto/v2/wire/templates.proto b/components/feed/core/proto/v2/wire/templates.proto
new file mode 100644
index 0000000..ad8ec10b
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/templates.proto
@@ -0,0 +1,24 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// Templates provide a way to separate formatting from content.
+// Deprecated: use RenderData instead.
+message Templates {
+  option deprecated = true;
+
+  // Enum denoting which extension contains template data.
+  enum TemplateType {
+    UNKNOWN_TEMPLATE_TYPE = 0;
+    XSURFACE = 1;
+  }
+  optional TemplateType template_type = 1;
+
+  extensions 264680549;  // XSurfaceTemplates
+}
diff --git a/components/feed/core/proto/v2/wire/token.proto b/components/feed/core/proto/v2/wire/token.proto
new file mode 100644
index 0000000..479b7e1
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/token.proto
@@ -0,0 +1,24 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+import "components/feed/core/proto/v2/wire/content_id.proto";
+
+// A structure containing client-opaque data relating to a request.
+message Token {
+  // The ContentId identifying the parent for this feature. Needed for tokens
+  // used in a data operation.
+  optional ContentId parent_id = 2;
+
+  extensions 1001;  // REDACTED
+  extensions 1002;  // NextPageToken
+  extensions 1003;  // InPlaceUpdateToken
+
+  reserved 1, 194964015;
+}
diff --git a/components/feed/core/proto/v2/wire/version.proto b/components/feed/core/proto/v2/wire/version.proto
new file mode 100644
index 0000000..6ead96a
--- /dev/null
+++ b/components/feed/core/proto/v2/wire/version.proto
@@ -0,0 +1,44 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package feedwire;
+
+option optimize_for = LITE_RUNTIME;
+
+// Specification of an application or OS version.
+// A version string typically looks like: 'major.minor.build.revision'
+message Version {
+  optional int32 major = 1;
+  optional int32 minor = 2;
+  optional int32 build = 3;
+  optional int32 revision = 4;
+
+  // The CPU architecture that the native libraries support
+  enum Architecture {
+    UNKNOWN_ARCHITECTURE = 0;
+    ARM = 1;
+    ARM64 = 2;
+    MIPS = 3;
+    MIPS64 = 4;
+    X86 = 5;
+    X86_64 = 6;
+  }
+  optional Architecture architecture = 5;
+
+  // The release stage of the build
+  enum BuildType {
+    UNKNOWN_BUILD_TYPE = 0;
+    DEV = 1;
+    ALPHA = 2;
+    BETA = 3;
+    RELEASE = 4;
+  }
+  optional BuildType build_type = 6;
+
+  // Specific to Android OS versions. Specifies the API version that the OS
+  // supports.
+  optional int32 api_version = 7;
+}
diff --git a/components/feed/core/proto/wire/action_payload.proto b/components/feed/core/proto/wire/action_payload.proto
index dd3db00..96c49df5 100644
--- a/components/feed/core/proto/wire/action_payload.proto
+++ b/components/feed/core/proto/wire/action_payload.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/action_payload_for_test.proto b/components/feed/core/proto/wire/action_payload_for_test.proto
index 539d680..0eef92775 100644
--- a/components/feed/core/proto/wire/action_payload_for_test.proto
+++ b/components/feed/core/proto/wire/action_payload_for_test.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
@@ -19,7 +19,7 @@
   // The mid that represents the topic of the story on the card
   optional string id = 1;
 
-  extend feedwire.ActionPayload {
+  extend feedwire1.ActionPayload {
     optional ActionPayloadForTest action_payload_for_test_extension = 2;
   }
 }
diff --git a/components/feed/core/proto/wire/action_request.proto b/components/feed/core/proto/wire/action_request.proto
index cb68eb6..78b000bb 100644
--- a/components/feed/core/proto/wire/action_request.proto
+++ b/components/feed/core/proto/wire/action_request.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/action_type.proto b/components/feed/core/proto/wire/action_type.proto
index a630f50..f0e8fd6 100644
--- a/components/feed/core/proto/wire/action_type.proto
+++ b/components/feed/core/proto/wire/action_type.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/capability.proto b/components/feed/core/proto/wire/capability.proto
index 14e2027..6bfb7860 100644
--- a/components/feed/core/proto/wire/capability.proto
+++ b/components/feed/core/proto/wire/capability.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/client_info.proto b/components/feed/core/proto/wire/client_info.proto
index 59426d99..c395cca3 100644
--- a/components/feed/core/proto/wire/client_info.proto
+++ b/components/feed/core/proto/wire/client_info.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/consistency_token.proto b/components/feed/core/proto/wire/consistency_token.proto
index 0aeed759..4b7b209 100644
--- a/components/feed/core/proto/wire/consistency_token.proto
+++ b/components/feed/core/proto/wire/consistency_token.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/content_id.proto b/components/feed/core/proto/wire/content_id.proto
index 5df096d8..51ba333 100644
--- a/components/feed/core/proto/wire/content_id.proto
+++ b/components/feed/core/proto/wire/content_id.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/data_operation.proto b/components/feed/core/proto/wire/data_operation.proto
index ac61d46..a917619b 100644
--- a/components/feed/core/proto/wire/data_operation.proto
+++ b/components/feed/core/proto/wire/data_operation.proto
@@ -8,7 +8,7 @@
 import "components/feed/core/proto/wire/payload_metadata.proto";
 import "components/feed/core/proto/ui/piet/piet.proto";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/display_info.proto b/components/feed/core/proto/wire/display_info.proto
index d8f5b85..7d0a2db 100644
--- a/components/feed/core/proto/wire/display_info.proto
+++ b/components/feed/core/proto/wire/display_info.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/feature.proto b/components/feed/core/proto/wire/feature.proto
index f695b80..24741223 100644
--- a/components/feed/core/proto/wire/feature.proto
+++ b/components/feed/core/proto/wire/feature.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/feed_action.proto b/components/feed/core/proto/wire/feed_action.proto
index 29beef4..dce68844 100644
--- a/components/feed/core/proto/wire/feed_action.proto
+++ b/components/feed/core/proto/wire/feed_action.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/feed_action_query_data.proto b/components/feed/core/proto/wire/feed_action_query_data.proto
index 2c6779e..46cd59c 100644
--- a/components/feed/core/proto/wire/feed_action_query_data.proto
+++ b/components/feed/core/proto/wire/feed_action_query_data.proto
@@ -7,7 +7,7 @@
 import "components/feed/core/proto/wire/action_type.proto";
 import "components/feed/core/proto/wire/semantic_properties.proto";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/feed_action_request.proto b/components/feed/core/proto/wire/feed_action_request.proto
index 9bf1102..a82e7ce 100644
--- a/components/feed/core/proto/wire/feed_action_request.proto
+++ b/components/feed/core/proto/wire/feed_action_request.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/feed_action_response.proto b/components/feed/core/proto/wire/feed_action_response.proto
index 570ecf2..4e20163 100644
--- a/components/feed/core/proto/wire/feed_action_response.proto
+++ b/components/feed/core/proto/wire/feed_action_response.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/feed_query.proto b/components/feed/core/proto/wire/feed_query.proto
index 6417a66..2620819 100644
--- a/components/feed/core/proto/wire/feed_query.proto
+++ b/components/feed/core/proto/wire/feed_query.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/feed_request.proto b/components/feed/core/proto/wire/feed_request.proto
index 75b6724..b67a006d 100644
--- a/components/feed/core/proto/wire/feed_request.proto
+++ b/components/feed/core/proto/wire/feed_request.proto
@@ -11,7 +11,7 @@
 import "components/feed/core/proto/wire/feed_query.proto";
 import "components/feed/core/proto/wire/request.proto";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/feed_response.proto b/components/feed/core/proto/wire/feed_response.proto
index 858be4a..ec10148 100644
--- a/components/feed/core/proto/wire/feed_response.proto
+++ b/components/feed/core/proto/wire/feed_response.proto
@@ -8,7 +8,7 @@
 import "components/feed/core/proto/wire/data_operation.proto";
 import "components/feed/core/proto/wire/response.proto";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/mockserver/mock_server.proto b/components/feed/core/proto/wire/mockserver/mock_server.proto
index 242053a..7fc41e4 100644
--- a/components/feed/core/proto/wire/mockserver/mock_server.proto
+++ b/components/feed/core/proto/wire/mockserver/mock_server.proto
@@ -14,7 +14,7 @@
 
 message MockServer {
   // The initial response
-  optional feedwire.Response initial_response = 1;
+  optional feedwire1.Response initial_response = 1;
 
   // conditional responses represent responses for paged content
   repeated ConditionalResponse conditional_responses = 2;
@@ -25,7 +25,7 @@
 /** This represents a response providing updates to the stream. */
 message MockUpdate {
   // The response with the push update
-  optional feedwire.Response response = 1;
+  optional feedwire1.Response response = 1;
 
   // The amount of time to wait, in milliseconds, before the push is triggered.
   // This is relative to the time the GCL file is loaded.
@@ -38,5 +38,5 @@
   optional bytes continuation_token = 1;
 
   // The response to use
-  optional feedwire.Response response = 2;
+  optional feedwire1.Response response = 2;
 }
diff --git a/components/feed/core/proto/wire/payload_metadata.proto b/components/feed/core/proto/wire/payload_metadata.proto
index 9195803..d695087 100644
--- a/components/feed/core/proto/wire/payload_metadata.proto
+++ b/components/feed/core/proto/wire/payload_metadata.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/piet_shared_state_item.proto b/components/feed/core/proto/wire/piet_shared_state_item.proto
index 427eef1..99f4d42 100644
--- a/components/feed/core/proto/wire/piet_shared_state_item.proto
+++ b/components/feed/core/proto/wire/piet_shared_state_item.proto
@@ -7,7 +7,7 @@
 import "components/feed/core/proto/ui/piet/piet.proto";
 import "components/feed/core/proto/wire/content_id.proto";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/request.proto b/components/feed/core/proto/wire/request.proto
index c377a15..a023720 100644
--- a/components/feed/core/proto/wire/request.proto
+++ b/components/feed/core/proto/wire/request.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/response.proto b/components/feed/core/proto/wire/response.proto
index 39f0a3d..1169230 100644
--- a/components/feed/core/proto/wire/response.proto
+++ b/components/feed/core/proto/wire/response.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/semantic_properties.proto b/components/feed/core/proto/wire/semantic_properties.proto
index 939c24ab..d478b77 100644
--- a/components/feed/core/proto/wire/semantic_properties.proto
+++ b/components/feed/core/proto/wire/semantic_properties.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/proto/wire/token.proto b/components/feed/core/proto/wire/token.proto
index 6426552..e14edf2 100644
--- a/components/feed/core/proto/wire/token.proto
+++ b/components/feed/core/proto/wire/token.proto
@@ -6,7 +6,7 @@
 
 import "components/feed/core/proto/wire/feature.proto";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
@@ -15,7 +15,7 @@
 
 // A continuation token (paging token).
 message Token {
-  extend feedwire.Feature { optional Token token_extension = 194964015; }
+  extend feedwire1.Feature { optional Token token_extension = 194964015; }
 
   // Indicates the last position of the current content for a parent.  A request
   // can be made using the next_page_token to get additional features which will
diff --git a/components/feed/core/proto/wire/version.proto b/components/feed/core/proto/wire/version.proto
index f96d979..ba9ef17 100644
--- a/components/feed/core/proto/wire/version.proto
+++ b/components/feed/core/proto/wire/version.proto
@@ -4,7 +4,7 @@
 
 syntax = "proto2";
 
-package feedwire;
+package feedwire1;
 
 option optimize_for = LITE_RUNTIME;
 
diff --git a/components/feed/core/v2/BUILD.gn b/components/feed/core/v2/BUILD.gn
index 79e2872f..26f0b4ae 100644
--- a/components/feed/core/v2/BUILD.gn
+++ b/components/feed/core/v2/BUILD.gn
@@ -10,17 +10,27 @@
 
 source_set("feed_core_v2") {
   sources = [
+    "enums.h",
     "feed_network.cc",
     "feed_network.h",
     "feed_network_impl.cc",
     "feed_network_impl.h",
     "feed_stream.cc",
     "feed_stream.h",
-    "feed_stream_api.h",
     "feed_stream_background.cc",
     "feed_stream_background.h",
+    "master_refresh_throttler.cc",
+    "master_refresh_throttler.h",
     "proto_util.cc",
     "proto_util.h",
+    "public/feed_service.cc",
+    "public/feed_service.h",
+    "public/feed_stream_api.h",
+    "refresh_task_scheduler.h",
+    "scheduling.cc",
+    "scheduling.h",
+    "stream_event_metrics.cc",
+    "stream_event_metrics.h",
     "stream_model.cc",
     "stream_model.h",
     "stream_model/ephemeral_change.cc",
diff --git a/components/feed/core/v2/enums.h b/components/feed/core/v2/enums.h
new file mode 100644
index 0000000..2c6c4364
--- /dev/null
+++ b/components/feed/core/v2/enums.h
@@ -0,0 +1,27 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_FEED_CORE_V2_ENUMS_H_
+#define COMPONENTS_FEED_CORE_V2_ENUMS_H_
+
+#include "components/feed/core/common/enums.h"
+
+namespace feed {
+
+// Describes the behavior for attempting to refresh (over the network) while
+// loading the feed.
+enum class LoadRefreshBehavior {
+  // Wait for feed refresh before showing the result.
+  kWaitForRefresh,
+  // Load what is available locally, begin the refresh, and populate results
+  // below the fold when they are received.
+  kRefreshInline,
+  // Wait a limited amount of time for the network fetch. If the fetch doesn't
+  // complete in time, just show the user what's available locally.
+  kLimitedWaitForRefresh,
+};
+
+}  // namespace feed
+
+#endif  // COMPONENTS_FEED_CORE_V2_ENUMS_H_
diff --git a/components/feed/core/v2/feed_network.cc b/components/feed/core/v2/feed_network.cc
index ebcfe7b..5bca7bf 100644
--- a/components/feed/core/v2/feed_network.cc
+++ b/components/feed/core/v2/feed_network.cc
@@ -4,10 +4,10 @@
 
 #include "components/feed/core/v2/feed_network.h"
 
-#include "components/feed/core/proto/wire/action_request.pb.h"
-#include "components/feed/core/proto/wire/feed_action_response.pb.h"
-#include "components/feed/core/proto/wire/request.pb.h"
-#include "components/feed/core/proto/wire/response.pb.h"
+#include "components/feed/core/proto/v2/wire/action_request.pb.h"
+#include "components/feed/core/proto/v2/wire/feed_action_response.pb.h"
+#include "components/feed/core/proto/v2/wire/request.pb.h"
+#include "components/feed/core/proto/v2/wire/response.pb.h"
 
 namespace feed {
 
diff --git a/components/feed/core/v2/feed_network_impl.cc b/components/feed/core/v2/feed_network_impl.cc
index d8cce0b..beaa0b0 100644
--- a/components/feed/core/v2/feed_network_impl.cc
+++ b/components/feed/core/v2/feed_network_impl.cc
@@ -10,10 +10,10 @@
 #include "base/time/tick_clock.h"
 #include "base/time/time.h"
 #include "components/feed/core/common/pref_names.h"
-#include "components/feed/core/proto/wire/action_request.pb.h"
-#include "components/feed/core/proto/wire/feed_action_response.pb.h"
-#include "components/feed/core/proto/wire/request.pb.h"
-#include "components/feed/core/proto/wire/response.pb.h"
+#include "components/feed/core/proto/v2/wire/action_request.pb.h"
+#include "components/feed/core/proto/v2/wire/feed_action_response.pb.h"
+#include "components/feed/core/proto/v2/wire/request.pb.h"
+#include "components/feed/core/proto/v2/wire/response.pb.h"
 #include "components/prefs/pref_service.h"
 #include "components/signin/public/identity_manager/access_token_info.h"
 #include "components/signin/public/identity_manager/identity_manager.h"
diff --git a/components/feed/core/v2/feed_network_impl_unittest.cc b/components/feed/core/v2/feed_network_impl_unittest.cc
index ce2056c..e3003d1 100644
--- a/components/feed/core/v2/feed_network_impl_unittest.cc
+++ b/components/feed/core/v2/feed_network_impl_unittest.cc
@@ -14,10 +14,10 @@
 #include "base/test/simple_test_tick_clock.h"
 #include "base/test/task_environment.h"
 #include "components/feed/core/common/pref_names.h"
-#include "components/feed/core/proto/wire/action_request.pb.h"
-#include "components/feed/core/proto/wire/feed_action_response.pb.h"
-#include "components/feed/core/proto/wire/request.pb.h"
-#include "components/feed/core/proto/wire/response.pb.h"
+#include "components/feed/core/proto/v2/wire/action_request.pb.h"
+#include "components/feed/core/proto/v2/wire/feed_action_response.pb.h"
+#include "components/feed/core/proto/v2/wire/request.pb.h"
+#include "components/feed/core/proto/v2/wire/response.pb.h"
 #include "components/prefs/testing_pref_service.h"
 #include "components/signin/public/identity_manager/identity_test_environment.h"
 #include "net/http/http_response_headers.h"
diff --git a/components/feed/core/v2/feed_stream.cc b/components/feed/core/v2/feed_stream.cc
index 56df3531..310419be 100644
--- a/components/feed/core/v2/feed_stream.cc
+++ b/components/feed/core/v2/feed_stream.cc
@@ -5,32 +5,54 @@
 #include "components/feed/core/v2/feed_stream.h"
 
 #include "base/bind.h"
+#include "base/metrics/histogram_macros.h"
+#include "base/time/clock.h"
+#include "base/time/tick_clock.h"
+#include "components/feed/core/common/pref_names.h"
 #include "components/feed/core/shared_prefs/pref_names.h"
 #include "components/feed/core/v2/feed_network.h"
 #include "components/feed/core/v2/feed_stream_background.h"
+#include "components/feed/core/v2/refresh_task_scheduler.h"
+#include "components/feed/core/v2/scheduling.h"
 #include "components/prefs/pref_service.h"
 
 namespace feed {
 
 FeedStream::FeedStream(
+    RefreshTaskScheduler* refresh_task_scheduler,
+    EventObserver* stream_event_observer,
+    Delegate* delegate,
     PrefService* profile_prefs,
     FeedNetwork* feed_network,
     base::Clock* clock,
     base::TickClock* tick_clock,
     scoped_refptr<base::SequencedTaskRunner> background_task_runner)
-    : profile_prefs_(profile_prefs),
+    : refresh_task_scheduler_(refresh_task_scheduler),
+      stream_event_observer_(stream_event_observer),
+      delegate_(delegate),
+      profile_prefs_(profile_prefs),
       feed_network_(feed_network),
       clock_(clock),
       tick_clock_(tick_clock),
       background_task_runner_(background_task_runner),
       background_(std::make_unique<FeedStreamBackground>()),
-      task_queue_(this) {
+      task_queue_(this),
+      user_classifier_(profile_prefs, clock),
+      refresh_throttler_(profile_prefs, clock) {
   // TODO(harringtond): Use these members.
-  (void)clock_;
-  (void)tick_clock_;
   (void)feed_network_;
 }
 
+void FeedStream::InitializeScheduling() {
+  if (!IsArticlesListVisible()) {
+    refresh_task_scheduler_->Cancel();
+    return;
+  }
+
+  refresh_task_scheduler_->EnsureScheduled(
+      GetUserClassTriggerThreshold(GetUserClass(), TriggerType::kFixedTimer));
+}
+
 FeedStream::~FeedStream() {
   // Delete |background_| in the background sequence.
   background_task_runner_->PostTask(
@@ -47,6 +69,117 @@
   return profile_prefs_->GetBoolean(prefs::kArticlesListVisible);
 }
 
+UserClass FeedStream::GetUserClass() {
+  return user_classifier_.GetUserClass();
+}
+
+base::Time FeedStream::GetLastFetchTime() {
+  const base::Time fetch_time =
+      profile_prefs_->GetTime(feed::prefs::kLastFetchAttemptTime);
+  // Ignore impossible time values.
+  if (fetch_time > clock_->Now())
+    return base::Time();
+  return fetch_time;
+}
+
 void FeedStream::OnTaskQueueIsIdle() {}
 
+// TODO(harringtond): Ensure this function gets test coverage when fetching
+// functionality is added.
+ShouldRefreshResult FeedStream::ShouldRefresh(TriggerType trigger) {
+  if (delegate_->IsOffline()) {
+    return ShouldRefreshResult::kDontRefreshNetworkOffline;
+  }
+
+  if (!delegate_->IsEulaAccepted()) {
+    return ShouldRefreshResult::kDontRefreshEulaNotAccepted;
+  }
+
+  if (!IsArticlesListVisible()) {
+    return ShouldRefreshResult::kDontRefreshArticlesHidden;
+  }
+
+  // TODO(harringtond): |suppress_refreshes_until_| was historically used for
+  // privacy purposes after clearing data to make sure sync data made it to the
+  // server. I'm not sure we need this now. But also, it was documented as not
+  // affecting manually triggered refreshes, but coded in a way that it does.
+  // I've tried to keep the same functionality as the old feed code, but we
+  // should revisit this.
+  if (tick_clock_->NowTicks() < suppress_refreshes_until_) {
+    return ShouldRefreshResult::kDontRefreshRefreshSuppressed;
+  }
+
+  const UserClass user_class = GetUserClass();
+
+  if (clock_->Now() - GetLastFetchTime() <
+      GetUserClassTriggerThreshold(user_class, trigger)) {
+    return ShouldRefreshResult::kDontRefreshNotStale;
+  }
+
+  if (!refresh_throttler_.RequestQuota(user_class)) {
+    return ShouldRefreshResult::kDontRefreshRefreshThrottled;
+  }
+
+  UMA_HISTOGRAM_ENUMERATION("ContentSuggestions.Feed.Scheduler.RefreshTrigger",
+                            trigger);
+
+  return ShouldRefreshResult::kShouldRefresh;
+}
+
+void FeedStream::OnEulaAccepted() {
+  MaybeTriggerRefresh(TriggerType::kForegrounded);
+}
+
+void FeedStream::OnHistoryDeleted() {
+  // Due to privacy, we should not fetch for a while (unless the user
+  // explicitly asks for new suggestions) to give sync the time to propagate
+  // the changes in history to the server.
+  suppress_refreshes_until_ =
+      tick_clock_->NowTicks() + kSuppressRefreshDuration;
+  ClearAll();
+}
+
+void FeedStream::OnCacheDataCleared() {
+  ClearAll();
+}
+
+void FeedStream::OnSignedIn() {
+  ClearAll();
+}
+
+void FeedStream::OnSignedOut() {
+  ClearAll();
+}
+
+void FeedStream::OnEnterForeground() {
+  MaybeTriggerRefresh(TriggerType::kForegrounded);
+}
+
+void FeedStream::ExecuteRefreshTask() {
+  if (!IsArticlesListVisible()) {
+    // While the check and cancel isn't strictly necessary, a long lived session
+    // could be issuing refreshes due to the background trigger while articles
+    // are not visible.
+    refresh_task_scheduler_->Cancel();
+    return;
+  }
+  MaybeTriggerRefresh(TriggerType::kFixedTimer);
+}
+
+void FeedStream::ClearAll() {
+  // TODO(harringtond): How should we handle in-progress tasks.
+  stream_event_observer_->OnClearAll(clock_->Now() - GetLastFetchTime());
+
+  // TODO(harringtond): This should result in clearing feed data
+  // and _maybe_ triggering refresh with TriggerType::kNtpShown.
+  // That work should be embedded in a task.
+}
+
+void FeedStream::MaybeTriggerRefresh(TriggerType trigger,
+                                     bool clear_all_before_refresh) {
+  stream_event_observer_->OnMaybeTriggerRefresh(trigger,
+                                                clear_all_before_refresh);
+  // TODO(harringtond): Implement refresh (with LoadStreamTask).
+}
+
 }  // namespace feed
diff --git a/components/feed/core/v2/feed_stream.h b/components/feed/core/v2/feed_stream.h
index 24724757..5f636ac 100644
--- a/components/feed/core/v2/feed_stream.h
+++ b/components/feed/core/v2/feed_stream.h
@@ -10,7 +10,10 @@
 #include "base/memory/scoped_refptr.h"
 #include "base/sequenced_task_runner.h"
 #include "base/task_runner_util.h"
-#include "components/feed/core/v2/feed_stream_api.h"
+#include "components/feed/core/common/enums.h"
+#include "components/feed/core/common/user_classifier.h"
+#include "components/feed/core/v2/master_refresh_throttler.h"
+#include "components/feed/core/v2/public/feed_stream_api.h"
 #include "components/offline_pages/task/task_queue.h"
 
 class PrefService;
@@ -22,6 +25,7 @@
 
 namespace feed {
 class FeedNetwork;
+class RefreshTaskScheduler;
 class FeedStreamBackground;
 
 // Implements FeedStreamApi. |FeedStream| additionally exposes functionality
@@ -29,7 +33,27 @@
 class FeedStream : public FeedStreamApi,
                    public offline_pages::TaskQueue::Delegate {
  public:
-  FeedStream(PrefService* profile_prefs,
+  class Delegate {
+   public:
+    // Returns true if Chrome's EULA has been accepted.
+    virtual bool IsEulaAccepted() = 0;
+    // Returns true if the device is offline.
+    virtual bool IsOffline() = 0;
+  };
+
+  // An observer of stream events for testing and for tracking metrics.
+  // Concrete implementation should have no observable effects on the Feed.
+  class EventObserver {
+   public:
+    virtual void OnMaybeTriggerRefresh(TriggerType trigger,
+                                       bool clear_all_before_refresh) = 0;
+    virtual void OnClearAll(base::TimeDelta time_since_last_clear) = 0;
+  };
+
+  FeedStream(RefreshTaskScheduler* refresh_task_scheduler,
+             EventObserver* stream_event_observer,
+             Delegate* delegate,
+             PrefService* profile_prefs,
              FeedNetwork* feed_network,
              base::Clock* clock,
              base::TickClock* tick_clock,
@@ -39,6 +63,9 @@
   FeedStream(const FeedStream&) = delete;
   FeedStream& operator=(const FeedStream&) = delete;
 
+  // Initializes scheduling. This should be called at startup.
+  void InitializeScheduling();
+
   // FeedStreamApi.
   void SetArticlesListVisible(bool is_visible) override;
   bool IsArticlesListVisible() override;
@@ -46,6 +73,34 @@
   // offline_pages::TaskQueue::Delegate.
   void OnTaskQueueIsIdle() override;
 
+  // Event indicators. These functions are called from an external source
+  // to indicate an event.
+
+  // Called when Chrome's EULA has been accepted. This should happen when
+  // Delegate::IsEulaAccepted() changes from false to true.
+  void OnEulaAccepted();
+  // Invoked when Chrome is foregrounded.
+  void OnEnterForeground();
+  // The user signed in to Chrome.
+  void OnSignedIn();
+  // The user signed out of Chrome.
+  void OnSignedOut();
+  // The user has deleted their Chrome history.
+  void OnHistoryDeleted();
+  // Chrome's cached data was cleared.
+  void OnCacheDataCleared();
+  // Invoked by RefreshTaskScheduler's scheduled task.
+  void ExecuteRefreshTask();
+
+  // State shared for the sake of implementing FeedStream. Typically these
+  // functions are used by tasks.
+
+  // Returns the computed UserClass for the active user.
+  UserClass GetUserClass();
+
+  // Returns the time of the last content fetch.
+  base::Time GetLastFetchTime();
+
   // Provides access to |FeedStreamBackground|.
   // PostTask's to |background_callback| in the background thread. When
   // complete, executes |foreground_result_callback| with the result.
@@ -61,6 +116,19 @@
   }
 
  private:
+  void MaybeTriggerRefresh(TriggerType trigger,
+                           bool clear_all_before_refresh = false);
+
+  // Determines whether or not a fetch should be allowed.
+  // If a fetch is allowed, quota is reserved with the assumption that a fetch
+  // will follow shortly.
+  ShouldRefreshResult ShouldRefresh(TriggerType trigger);
+
+  void ClearAll();
+
+  RefreshTaskScheduler* refresh_task_scheduler_;
+  EventObserver* stream_event_observer_;
+  Delegate* delegate_;
   PrefService* profile_prefs_;
   FeedNetwork* feed_network_;
   base::Clock* clock_;
@@ -71,6 +139,11 @@
   std::unique_ptr<FeedStreamBackground> background_;
 
   offline_pages::TaskQueue task_queue_;
+
+  // Mutable state.
+  UserClassifier user_classifier_;
+  MasterRefreshThrottler refresh_throttler_;
+  base::TimeTicks suppress_refreshes_until_;
 };
 
 }  // namespace feed
diff --git a/components/feed/core/v2/feed_stream_unittest.cc b/components/feed/core/v2/feed_stream_unittest.cc
index 340536a..80e9305 100644
--- a/components/feed/core/v2/feed_stream_unittest.cc
+++ b/components/feed/core/v2/feed_stream_unittest.cc
@@ -3,13 +3,16 @@
 // found in the LICENSE file.
 
 #include "components/feed/core/v2/feed_stream.h"
+#include "base/optional.h"
 #include "base/test/bind_test_util.h"
 #include "base/test/simple_test_clock.h"
 #include "base/test/simple_test_tick_clock.h"
 #include "base/test/task_environment.h"
+#include "components/feed/core/common/pref_names.h"
 #include "components/feed/core/shared_prefs/pref_names.h"
 #include "components/feed/core/v2/feed_network.h"
 #include "components/feed/core/v2/feed_stream_background.h"
+#include "components/feed/core/v2/refresh_task_scheduler.h"
 #include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/testing_pref_service.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -19,6 +22,7 @@
 
 class TestFeedNetwork : public FeedNetwork {
  public:
+  // FeedNetwork implementation.
   void SendQueryRequest(
       const feedwire::Request& request,
       base::OnceCallback<void(QueryRequestResult)> callback) override {}
@@ -28,22 +32,58 @@
   void CancelRequests() override {}
 };
 
-class FeedStreamTest : public testing::Test {
+class FakeRefreshTaskScheduler : public RefreshTaskScheduler {
+ public:
+  // RefreshTaskScheduler implementation.
+  void EnsureScheduled(base::TimeDelta period) override {
+    scheduled_period = period;
+  }
+  void Cancel() override { canceled = true; }
+  void RefreshTaskComplete() override { refresh_task_complete = true; }
+
+  base::Optional<base::TimeDelta> scheduled_period;
+  bool canceled = false;
+  bool refresh_task_complete = false;
+};
+
+class TestEventObserver : public FeedStream::EventObserver {
+ public:
+  // FeedStreamUnittest::StreamEventObserver.
+  void OnMaybeTriggerRefresh(TriggerType trigger,
+                             bool clear_all_before_refresh) override {
+    refresh_trigger_type = trigger;
+  }
+  void OnClearAll(base::TimeDelta time_since_last_clear) override {
+    this->time_since_last_clear = time_since_last_clear;
+  }
+
+  // Test access.
+
+  base::Optional<base::TimeDelta> time_since_last_clear;
+  base::Optional<TriggerType> refresh_trigger_type;
+};
+
+class FeedStreamTest : public testing::Test, public FeedStream::Delegate {
  public:
   void SetUp() override {
     feed::prefs::RegisterFeedSharedProfilePrefs(profile_prefs_.registry());
-
+    feed::RegisterProfilePrefs(profile_prefs_.registry());
     stream_ = std::make_unique<FeedStream>(
-        &profile_prefs_, &network_, &clock_, &tick_clock_,
-        task_environment_.GetMainThreadTaskRunner());
+        &refresh_scheduler_, &event_observer_, this, &profile_prefs_, &network_,
+        &clock_, &tick_clock_, task_environment_.GetMainThreadTaskRunner());
   }
 
+  // FeedStream::Delegate.
+  bool IsEulaAccepted() override { return true; }
+  bool IsOffline() override { return false; }
+
  protected:
+  TestEventObserver event_observer_;
   TestingPrefServiceSimple profile_prefs_;
   TestFeedNetwork network_;
   base::SimpleTestClock clock_;
   base::SimpleTestTickClock tick_clock_;
-
+  FakeRefreshTaskScheduler refresh_scheduler_;
   std::unique_ptr<FeedStream> stream_;
   base::test::SingleThreadTaskEnvironment task_environment_;
 };
@@ -86,5 +126,29 @@
   EXPECT_EQ(5, result_received);
 }
 
+TEST_F(FeedStreamTest, RefreshIsScheduledOnInitialize) {
+  stream_->InitializeScheduling();
+  EXPECT_TRUE(refresh_scheduler_.scheduled_period);
+}
+
+TEST_F(FeedStreamTest, ScheduledRefreshTriggersRefresh) {
+  stream_->InitializeScheduling();
+  stream_->ExecuteRefreshTask();
+
+  EXPECT_EQ(TriggerType::kFixedTimer, event_observer_.refresh_trigger_type);
+  // TODO(harringtond): Once we actually perform the refresh, make sure
+  // RefreshTaskComplete() is called.
+  // EXPECT_TRUE(refresh_scheduler_.refresh_task_complete);
+}
+
+TEST_F(FeedStreamTest, DoNotRefreshIfArticlesListIsHidden) {
+  stream_->SetArticlesListVisible(false);
+  stream_->InitializeScheduling();
+  stream_->ExecuteRefreshTask();
+
+  EXPECT_TRUE(refresh_scheduler_.canceled);
+  EXPECT_FALSE(event_observer_.refresh_trigger_type);
+}
+
 }  // namespace
 }  // namespace feed
diff --git a/components/feed/core/v2/master_refresh_throttler.cc b/components/feed/core/v2/master_refresh_throttler.cc
new file mode 100644
index 0000000..bf2ae92
--- /dev/null
+++ b/components/feed/core/v2/master_refresh_throttler.cc
@@ -0,0 +1,38 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/feed/core/v2/master_refresh_throttler.h"
+
+#include "components/prefs/pref_service.h"
+
+namespace feed {
+
+MasterRefreshThrottler::MasterRefreshThrottler(PrefService* profile_prefs,
+                                               base::Clock* clock)
+    : rare_throttler_(UserClass::kRareSuggestionsViewer, profile_prefs, clock),
+      active_viewer_throttler_(UserClass::kActiveSuggestionsViewer,
+                               profile_prefs,
+                               clock),
+      active_consumer_throttler_(UserClass::kActiveSuggestionsConsumer,
+                                 profile_prefs,
+                                 clock)
+
+{}
+
+bool MasterRefreshThrottler::RequestQuota(UserClass user_class) {
+  return GetThrottler(user_class).RequestQuota();
+}
+
+RefreshThrottler& MasterRefreshThrottler::GetThrottler(UserClass user_class) {
+  switch (user_class) {
+    case UserClass::kRareSuggestionsViewer:
+      return rare_throttler_;
+    case UserClass::kActiveSuggestionsViewer:
+      return active_viewer_throttler_;
+    case UserClass::kActiveSuggestionsConsumer:
+      return active_consumer_throttler_;
+  }
+}
+
+}  // namespace feed
diff --git a/components/feed/core/v2/master_refresh_throttler.h b/components/feed/core/v2/master_refresh_throttler.h
new file mode 100644
index 0000000..9c5c45f
--- /dev/null
+++ b/components/feed/core/v2/master_refresh_throttler.h
@@ -0,0 +1,37 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_FEED_CORE_V2_MASTER_REFRESH_THROTTLER_H_
+#define COMPONENTS_FEED_CORE_V2_MASTER_REFRESH_THROTTLER_H_
+
+#include "components/feed/core/common/enums.h"
+#include "components/feed/core/common/refresh_throttler.h"
+#include "components/feed/core/common/user_classifier.h"
+
+class PrefService;
+
+namespace feed {
+
+// A refresh throttler that supports all |UserClass|es.
+// TODO(harringtond): When v2 is the only Feed implementation, make
+// |RefreshThrottler| a private implementation detail of this class.
+class MasterRefreshThrottler {
+ public:
+  MasterRefreshThrottler(PrefService* profile_prefs, base::Clock* clock);
+
+  MasterRefreshThrottler(const MasterRefreshThrottler&) = delete;
+  MasterRefreshThrottler& operator=(const MasterRefreshThrottler&) = delete;
+
+  bool RequestQuota(UserClass user_class);
+
+ private:
+  RefreshThrottler& GetThrottler(UserClass user_class);
+
+  RefreshThrottler rare_throttler_;
+  RefreshThrottler active_viewer_throttler_;
+  RefreshThrottler active_consumer_throttler_;
+};
+
+}  // namespace feed
+#endif  // COMPONENTS_FEED_CORE_V2_MASTER_REFRESH_THROTTLER_H_
diff --git a/components/feed/core/v2/proto_util.cc b/components/feed/core/v2/proto_util.cc
index 56b2917..a47e3ae4 100644
--- a/components/feed/core/v2/proto_util.cc
+++ b/components/feed/core/v2/proto_util.cc
@@ -9,15 +9,18 @@
 
 bool Equal(const feedwire::ContentId& a, const feedwire::ContentId& b) {
   return a.content_domain() == b.content_domain() && a.id() == b.id() &&
-         a.table() == b.table();
+         a.type() == b.type();
 }
 
 bool CompareContentId(const feedwire::ContentId& a,
                       const feedwire::ContentId& b) {
-  const int a_id = a.id();  // tie() needs l-values
+  // Local variables because tie() needs l-values.
+  const int a_id = a.id();
   const int b_id = b.id();
-  return std::tie(a.content_domain(), a_id, a.table()) <
-         std::tie(b.content_domain(), b_id, b.table());
+  const feedwire::ContentId::Type a_type = a.type();
+  const feedwire::ContentId::Type b_type = b.type();
+  return std::tie(a.content_domain(), a_id, a_type) <
+         std::tie(b.content_domain(), b_id, b_type);
 }
 
 }  // namespace feed
diff --git a/components/feed/core/v2/proto_util.h b/components/feed/core/v2/proto_util.h
index 14b239f..71bcd77 100644
--- a/components/feed/core/v2/proto_util.h
+++ b/components/feed/core/v2/proto_util.h
@@ -5,7 +5,7 @@
 #ifndef COMPONENTS_FEED_CORE_V2_PROTO_UTIL_H_
 #define COMPONENTS_FEED_CORE_V2_PROTO_UTIL_H_
 
-#include "components/feed/core/proto/wire/content_id.pb.h"
+#include "components/feed/core/proto/v2/wire/content_id.pb.h"
 
 // Helper functions/classes for dealing with feed proto messages.
 
diff --git a/components/feed/core/v2/public/feed_service.cc b/components/feed/core/v2/public/feed_service.cc
new file mode 100644
index 0000000..602c809
--- /dev/null
+++ b/components/feed/core/v2/public/feed_service.cc
@@ -0,0 +1,13 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/feed/core/v2/public/feed_service.h"
+
+namespace feed {
+
+FeedService::FeedService(std::unique_ptr<FeedStreamApi> stream)
+    : stream_(std::move(stream)) {}
+FeedService::~FeedService() = default;
+
+}  // namespace feed
diff --git a/components/feed/core/v2/public/feed_service.h b/components/feed/core/v2/public/feed_service.h
new file mode 100644
index 0000000..7baf8749
--- /dev/null
+++ b/components/feed/core/v2/public/feed_service.h
@@ -0,0 +1,27 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_FEED_CORE_V2_PUBLIC_FEED_SERVICE_H_
+#define COMPONENTS_FEED_CORE_V2_PUBLIC_FEED_SERVICE_H_
+
+#include <memory>
+#include "components/feed/core/v2/public/feed_stream_api.h"
+#include "components/keyed_service/core/keyed_service.h"
+
+namespace feed {
+
+class FeedService : public KeyedService {
+ public:
+  explicit FeedService(std::unique_ptr<FeedStreamApi> stream);
+  ~FeedService() override;
+
+  FeedStreamApi* GetStream() { return stream_.get(); }
+
+ private:
+  std::unique_ptr<FeedStreamApi> stream_;
+};
+
+}  // namespace feed
+
+#endif  // COMPONENTS_FEED_CORE_V2_PUBLIC_FEED_SERVICE_H_
diff --git a/components/feed/core/v2/feed_stream_api.h b/components/feed/core/v2/public/feed_stream_api.h
similarity index 73%
rename from components/feed/core/v2/feed_stream_api.h
rename to components/feed/core/v2/public/feed_stream_api.h
index 6aace42..fd83917 100644
--- a/components/feed/core/v2/feed_stream_api.h
+++ b/components/feed/core/v2/public/feed_stream_api.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_FEED_CORE_V2_FEED_STREAM_API_H_
-#define COMPONENTS_FEED_CORE_V2_FEED_STREAM_API_H_
+#ifndef COMPONENTS_FEED_CORE_V2_PUBLIC_FEED_STREAM_API_H_
+#define COMPONENTS_FEED_CORE_V2_PUBLIC_FEED_STREAM_API_H_
 
 namespace feed {
 
@@ -20,4 +20,4 @@
 
 }  // namespace feed
 
-#endif  // COMPONENTS_FEED_CORE_V2_FEED_STREAM_API_H_
+#endif  // COMPONENTS_FEED_CORE_V2_PUBLIC_FEED_STREAM_API_H_
diff --git a/components/feed/core/v2/refresh_task_scheduler.h b/components/feed/core/v2/refresh_task_scheduler.h
new file mode 100644
index 0000000..2128614
--- /dev/null
+++ b/components/feed/core/v2/refresh_task_scheduler.h
@@ -0,0 +1,31 @@
+
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_FEED_CORE_V2_REFRESH_TASK_SCHEDULER_H_
+#define COMPONENTS_FEED_CORE_V2_REFRESH_TASK_SCHEDULER_H_
+
+#include "base/time/time.h"
+
+namespace feed {
+
+// Schedules a repeating background task for refreshing the Feed.
+// When the scheduled task executes, it calls FeedStream::ExecuteRefreshTask().
+class RefreshTaskScheduler {
+ public:
+  RefreshTaskScheduler() = default;
+
+  // Schedules the task if it is not yet scheduled, or if the scheduling
+  // period changes.
+  virtual void EnsureScheduled(base::TimeDelta period) = 0;
+  // Cancel the task if it was previously scheduled.
+  virtual void Cancel() = 0;
+  // After FeedStream::ExecuteRefreshTask is called, the callee must call this
+  // function to indicate the work is complete.
+  virtual void RefreshTaskComplete() = 0;
+};
+
+}  // namespace feed
+
+#endif  // COMPONENTS_FEED_CORE_V2_REFRESH_TASK_SCHEDULER_H_
diff --git a/components/feed/core/v2/scheduling.cc b/components/feed/core/v2/scheduling.cc
new file mode 100644
index 0000000..8ea45b1
--- /dev/null
+++ b/components/feed/core/v2/scheduling.cc
@@ -0,0 +1,55 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/feed/core/v2/scheduling.h"
+#include "base/time/time.h"
+
+namespace feed {
+
+base::TimeDelta GetUserClassTriggerThreshold(UserClass user_class,
+                                             TriggerType trigger) {
+  switch (user_class) {
+    case UserClass::kRareSuggestionsViewer:
+      switch (trigger) {
+        case TriggerType::kNtpShown:
+          return base::TimeDelta::FromHours(4);
+        case TriggerType::kForegrounded:
+          return base::TimeDelta::FromHours(24);
+        case TriggerType::kFixedTimer:
+          return base::TimeDelta::FromHours(96);
+      }
+    case UserClass::kActiveSuggestionsViewer:
+      switch (trigger) {
+        case TriggerType::kNtpShown:
+          return base::TimeDelta::FromHours(4);
+        case TriggerType::kForegrounded:
+          return base::TimeDelta::FromHours(24);
+        case TriggerType::kFixedTimer:
+          return base::TimeDelta::FromHours(48);
+      }
+    case UserClass::kActiveSuggestionsConsumer:
+      switch (trigger) {
+        case TriggerType::kNtpShown:
+          return base::TimeDelta::FromHours(1);
+        case TriggerType::kForegrounded:
+          return base::TimeDelta::FromHours(12);
+        case TriggerType::kFixedTimer:
+          return base::TimeDelta::FromHours(24);
+      }
+  }
+}
+
+LoadRefreshBehavior DetermineLoadRefreshBehavior(UserClass user_class,
+                                                 bool has_content,
+                                                 base::TimeDelta content_age) {
+  if (!has_content)
+    return LoadRefreshBehavior::kWaitForRefresh;
+  if (content_age >
+      GetUserClassTriggerThreshold(user_class, TriggerType::kForegrounded))
+    return LoadRefreshBehavior::kLimitedWaitForRefresh;
+  // TODO(harringtond): We are probably not going to support |kRefreshInline|.
+  return LoadRefreshBehavior::kRefreshInline;
+}
+
+}  // namespace feed
diff --git a/components/feed/core/v2/scheduling.h b/components/feed/core/v2/scheduling.h
new file mode 100644
index 0000000..27ddc1f
--- /dev/null
+++ b/components/feed/core/v2/scheduling.h
@@ -0,0 +1,31 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_FEED_CORE_V2_SCHEDULING_H_
+#define COMPONENTS_FEED_CORE_V2_SCHEDULING_H_
+
+#include "base/time/time.h"
+#include "components/feed/core/v2/enums.h"
+
+namespace feed {
+constexpr base::TimeDelta kSuppressRefreshDuration =
+    base::TimeDelta::FromMinutes(30);
+
+// Returns a duration, T, depending on the UserClass and TriggerType.
+// The following should be true:
+// - At most one fetch is attempted per T.
+// - Content is considered stale if time since last fetch is > T. We'll prefer
+//   to refresh stale content before showing it. See LoadRefreshBehavior.
+// - For TriggerType::kFixedTimer, T is the time between scheduled fetches.
+base::TimeDelta GetUserClassTriggerThreshold(UserClass user_class,
+                                             TriggerType trigger);
+
+// Determines which LoadRefreshBehavior should be used when refreshing the
+// stream.
+LoadRefreshBehavior DetermineLoadRefreshBehavior(UserClass user_class,
+                                                 bool has_content,
+                                                 base::TimeDelta content_age);
+}  // namespace feed
+
+#endif  // COMPONENTS_FEED_CORE_V2_SCHEDULING_H_
diff --git a/components/feed/core/v2/stream_event_metrics.cc b/components/feed/core/v2/stream_event_metrics.cc
new file mode 100644
index 0000000..3de72f3
--- /dev/null
+++ b/components/feed/core/v2/stream_event_metrics.cc
@@ -0,0 +1,23 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+#include "components/feed/core/v2/stream_event_metrics.h"
+
+#include "base/metrics/histogram_macros.h"
+
+namespace feed {
+
+void StreamEventMetrics::OnMaybeTriggerRefresh(TriggerType trigger,
+                                               bool clear_all_before_refresh) {
+  // TODO(harringtond): Either add UMA for this or remove it.
+}
+
+void StreamEventMetrics::OnClearAll(base::TimeDelta time_since_last_clear) {
+  UMA_HISTOGRAM_CUSTOM_TIMES(
+      "ContentSuggestions.Feed.Scheduler.TimeSinceLastFetchOnClear",
+      time_since_last_clear, base::TimeDelta::FromSeconds(1),
+      base::TimeDelta::FromDays(7),
+      /*bucket_count=*/50);
+}
+
+}  // namespace feed
diff --git a/components/feed/core/v2/stream_event_metrics.h b/components/feed/core/v2/stream_event_metrics.h
new file mode 100644
index 0000000..745b241
--- /dev/null
+++ b/components/feed/core/v2/stream_event_metrics.h
@@ -0,0 +1,21 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_FEED_CORE_V2_STREAM_EVENT_METRICS_H_
+#define COMPONENTS_FEED_CORE_V2_STREAM_EVENT_METRICS_H_
+
+#include "components/feed/core/v2/feed_stream.h"
+
+namespace feed {
+
+// Reports UMA metrics for stream events.
+class StreamEventMetrics : public FeedStream::EventObserver {
+ public:
+  void OnMaybeTriggerRefresh(TriggerType trigger,
+                             bool clear_all_before_refresh) override;
+  void OnClearAll(base::TimeDelta time_since_last_clear) override;
+};
+}  // namespace feed
+
+#endif  // COMPONENTS_FEED_CORE_V2_STREAM_EVENT_METRICS_H_
diff --git a/components/feed/core/v2/stream_model.cc b/components/feed/core/v2/stream_model.cc
index 357c3189..29eade67 100644
--- a/components/feed/core/v2/stream_model.cc
+++ b/components/feed/core/v2/stream_model.cc
@@ -10,7 +10,7 @@
 #include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
 #include "components/feed/core/proto/v2/store.pb.h"
-#include "components/feed/core/proto/wire/content_id.pb.h"
+#include "components/feed/core/proto/v2/wire/content_id.pb.h"
 
 namespace feed {
 
diff --git a/components/feed/core/v2/stream_model.h b/components/feed/core/v2/stream_model.h
index fc509b2..17b1890b 100644
--- a/components/feed/core/v2/stream_model.h
+++ b/components/feed/core/v2/stream_model.h
@@ -10,7 +10,7 @@
 #include <string>
 #include <vector>
 #include "components/feed/core/proto/v2/store.pb.h"
-#include "components/feed/core/proto/wire/content_id.pb.h"
+#include "components/feed/core/proto/v2/wire/content_id.pb.h"
 #include "components/feed/core/v2/proto_util.h"
 #include "components/feed/core/v2/stream_model/ephemeral_change.h"
 #include "components/feed/core/v2/stream_model/feature_tree.h"
diff --git a/components/feed/core/v2/stream_model_unittest.cc b/components/feed/core/v2/stream_model_unittest.cc
index ffabf3c..1b1ee4e 100644
--- a/components/feed/core/v2/stream_model_unittest.cc
+++ b/components/feed/core/v2/stream_model_unittest.cc
@@ -5,8 +5,9 @@
 #include "components/feed/core/v2/stream_model.h"
 
 #include "base/optional.h"
+#include "base/strings/string_number_conversions.h"
 #include "components/feed/core/proto/v2/store.pb.h"
-#include "components/feed/core/proto/wire/content_id.pb.h"
+#include "components/feed/core/proto/v2/wire/content_id.pb.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace feed {
@@ -15,48 +16,46 @@
 using EphemeralChangeId = StreamModel::EphemeralChangeId;
 using ContentRevision = StreamModel::ContentRevision;
 
-ContentId MakeContentId(const std::string& domain, const std::string& table) {
+ContentId MakeContentId(const std::string& domain, int id_number) {
   ContentId id;
   id.set_content_domain(domain);
-  id.set_table(table);
+  id.set_id(id_number);
   return id;
 }
 
-ContentId MakeClusterId(const std::string& name) {
-  return MakeContentId("cluster", name);
+ContentId MakeClusterId(int id_number) {
+  return MakeContentId("cluster", id_number);
 }
 
-ContentId MakeContentContentId(const std::string& name) {
-  return MakeContentId("content", name);
+ContentId MakeContentContentId(int id_number) {
+  return MakeContentId("content", id_number);
 }
-ContentId MakeRootId(const std::string& name = "root") {
-  return MakeContentId("stream", name);
+ContentId MakeRootId(int id_number = 0) {
+  return MakeContentId("stream", id_number);
 }
 
-feedstore::StreamStructure MakeStream(const std::string& name = "root") {
+feedstore::StreamStructure MakeStream(int id_number = 0) {
   feedstore::StreamStructure result;
   result.set_type(feedstore::StreamStructure::STREAM);
   result.set_operation(feedstore::StreamStructure::UPDATE_OR_APPEND);
-  *result.mutable_content_id() = MakeRootId(name);
+  *result.mutable_content_id() = MakeRootId(id_number);
   return result;
 }
 
-feedstore::StreamStructure MakeCluster(const std::string& name,
-                                       ContentId parent) {
+feedstore::StreamStructure MakeCluster(int id_number, ContentId parent) {
   feedstore::StreamStructure result;
   result.set_type(feedstore::StreamStructure::CLUSTER);
   result.set_operation(feedstore::StreamStructure::UPDATE_OR_APPEND);
-  *result.mutable_content_id() = MakeClusterId(name);
+  *result.mutable_content_id() = MakeClusterId(id_number);
   *result.mutable_parent_id() = parent;
   return result;
 }
 
-feedstore::StreamStructure MakeContentNode(const std::string& name,
-                                           ContentId parent) {
+feedstore::StreamStructure MakeContentNode(int id_number, ContentId parent) {
   feedstore::StreamStructure result;
   result.set_type(feedstore::StreamStructure::CONTENT);
   result.set_operation(feedstore::StreamStructure::UPDATE_OR_APPEND);
-  *result.mutable_content_id() = MakeContentContentId(name);
+  *result.mutable_content_id() = MakeContentContentId(id_number);
   *result.mutable_parent_id() = parent;
   return result;
 }
@@ -68,10 +67,10 @@
   return result;
 }
 
-feedstore::Content MakeContent(const std::string& name) {
+feedstore::Content MakeContent(int id_number) {
   feedstore::Content result;
-  *result.mutable_content_id() = MakeContentContentId(name);
-  result.set_frame("f:" + name);
+  *result.mutable_content_id() = MakeContentContentId(id_number);
+  result.set_frame("f:" + base::NumberToString(id_number));
   return result;
 }
 
@@ -103,12 +102,12 @@
 std::vector<feedstore::DataOperation> MakeTypicalStreamOperations() {
   return {
       MakeOperation(MakeStream()),
-      MakeOperation(MakeCluster("A", MakeRootId())),
-      MakeOperation(MakeContentNode("A", MakeClusterId("A"))),
-      MakeOperation(MakeContent("A")),
-      MakeOperation(MakeCluster("B", MakeRootId())),
-      MakeOperation(MakeContentNode("B", MakeClusterId("B"))),
-      MakeOperation(MakeContent("B")),
+      MakeOperation(MakeCluster(0, MakeRootId())),
+      MakeOperation(MakeContentNode(0, MakeClusterId(0))),
+      MakeOperation(MakeContent(0)),
+      MakeOperation(MakeCluster(1, MakeRootId())),
+      MakeOperation(MakeContentNode(1, MakeClusterId(1))),
+      MakeOperation(MakeContent(1)),
   };
 }
 
@@ -145,7 +144,7 @@
   model.ExecuteOperations(MakeTypicalStreamOperations());
 
   EXPECT_TRUE(observer.ContentListChanged());
-  EXPECT_EQ(std::vector<std::string>({"f:A", "f:B"}), GetContentFrames(model));
+  EXPECT_EQ(std::vector<std::string>({"f:0", "f:1"}), GetContentFrames(model));
 }
 
 TEST(StreamModelTest, AddContentWithoutRoot) {
@@ -153,9 +152,9 @@
   StreamModel model(&observer);
 
   std::vector<feedstore::DataOperation> operations{
-      MakeOperation(MakeCluster("A", MakeRootId())),
-      MakeOperation(MakeContentNode("A", MakeClusterId("A"))),
-      MakeOperation(MakeContent("A")),
+      MakeOperation(MakeCluster(0, MakeRootId())),
+      MakeOperation(MakeContentNode(0, MakeClusterId(0))),
+      MakeOperation(MakeContent(0)),
   };
   model.ExecuteOperations(operations);
 
@@ -170,12 +169,12 @@
 
   std::vector<feedstore::DataOperation> operations{
       MakeOperation(MakeStream()),
-      MakeOperation(MakeContentNode("A", MakeRootId())),
-      MakeOperation(MakeContent("A")),
+      MakeOperation(MakeContentNode(0, MakeRootId())),
+      MakeOperation(MakeContent(0)),
   };
   model.ExecuteOperations(operations);
 
-  EXPECT_EQ(std::vector<std::string>({"f:A"}), GetContentFrames(model));
+  EXPECT_EQ(std::vector<std::string>({"f:0"}), GetContentFrames(model));
 }
 
 TEST(StreamModelTest, AddRootAsChild) {
@@ -183,11 +182,11 @@
   TestObserver observer;
   StreamModel model(&observer);
   feedstore::StreamStructure stream_with_parent = MakeStream();
-  *stream_with_parent.mutable_parent_id() = MakeContentContentId("A");
+  *stream_with_parent.mutable_parent_id() = MakeContentContentId(0);
   std::vector<feedstore::DataOperation> operations{
       MakeOperation(MakeStream()),
-      MakeOperation(MakeContentNode("A", MakeRootId())),
-      MakeOperation(MakeContent("A")),
+      MakeOperation(MakeContentNode(0, MakeRootId())),
+      MakeOperation(MakeContent(0)),
       MakeOperation(stream_with_parent),
   };
 
@@ -206,8 +205,8 @@
 
   std::vector<feedstore::DataOperation> operations{
       MakeOperation(MakeStream()),
-      MakeOperation(MakeContentNode("A", MakeRootId())),
-      MakeOperation(MakeContent("A")),
+      MakeOperation(MakeContentNode(0, MakeRootId())),
+      MakeOperation(MakeContent(0)),
       MakeOperation(stream_as_cluster),
   };
 
@@ -222,11 +221,11 @@
 
   std::vector<feedstore::DataOperation> operations =
       MakeTypicalStreamOperations();
-  operations.push_back(MakeOperation(MakeRemove(MakeClusterId("A"))));
+  operations.push_back(MakeOperation(MakeRemove(MakeClusterId(0))));
 
   model.ExecuteOperations(operations);
 
-  EXPECT_EQ(std::vector<std::string>({"f:B"}), GetContentFrames(model));
+  EXPECT_EQ(std::vector<std::string>({"f:1"}), GetContentFrames(model));
 }
 
 TEST(StreamModelTest, RemoveContent) {
@@ -235,11 +234,11 @@
 
   std::vector<feedstore::DataOperation> operations =
       MakeTypicalStreamOperations();
-  operations.push_back(MakeOperation(MakeRemove(MakeContentContentId("A"))));
+  operations.push_back(MakeOperation(MakeRemove(MakeContentContentId(0))));
 
   model.ExecuteOperations(operations);
 
-  EXPECT_EQ(std::vector<std::string>({"f:B"}), GetContentFrames(model));
+  EXPECT_EQ(std::vector<std::string>({"f:1"}), GetContentFrames(model));
 }
 
 TEST(StreamModelTest, RemoveRoot) {
@@ -266,7 +265,7 @@
 
   model.ExecuteOperations(operations);
 
-  EXPECT_EQ(std::vector<std::string>({"f:A", "f:B"}), GetContentFrames(model));
+  EXPECT_EQ(std::vector<std::string>({"f:0", "f:1"}), GetContentFrames(model));
 }
 
 TEST(StreamModelTest, SwitchStreams) {
@@ -275,26 +274,24 @@
 
   std::vector<feedstore::DataOperation> operations =
       MakeTypicalStreamOperations();
-  operations.push_back(MakeOperation(MakeStream("root2")));
-  operations.push_back(
-      MakeOperation(MakeContentNode("F", MakeRootId("root2"))));
-  operations.push_back(MakeOperation(MakeContent("F")));
+  operations.push_back(MakeOperation(MakeStream(2)));
+  operations.push_back(MakeOperation(MakeContentNode(9, MakeRootId(2))));
+  operations.push_back(MakeOperation(MakeContent(9)));
 
   model.ExecuteOperations(operations);
 
   // The last stream added becomes the root, so only children of 'root2' are
   // included.
-  EXPECT_EQ(std::vector<std::string>({"f:F"}), GetContentFrames(model));
+  EXPECT_EQ(std::vector<std::string>({"f:9"}), GetContentFrames(model));
 
   // Adding the original stream back will re-activate it.
   model.ExecuteOperations({MakeOperation(MakeStream())});
 
-  EXPECT_EQ(std::vector<std::string>({"f:A", "f:B"}), GetContentFrames(model));
+  EXPECT_EQ(std::vector<std::string>({"f:0", "f:1"}), GetContentFrames(model));
 
   // Removing 'root' will now make 'root2' active again.
   model.ExecuteOperations({MakeOperation(MakeRemove(MakeRootId()))});
-  EXPECT_EQ(std::vector<std::string>({"f:F"}), GetContentFrames(model));
-  LOG(ERROR) << "VS:" << sizeof(std::vector<int>);
+  EXPECT_EQ(std::vector<std::string>({"f:9"}), GetContentFrames(model));
 }
 
 TEST(StreamModelTest, RemoveAndUpdateCluster) {
@@ -305,12 +302,12 @@
 
   std::vector<feedstore::DataOperation> operations =
       MakeTypicalStreamOperations();
-  operations.push_back(MakeOperation(MakeRemove(MakeClusterId("A"))));
-  operations.push_back(MakeOperation(MakeCluster("A", MakeRootId())));
+  operations.push_back(MakeOperation(MakeRemove(MakeClusterId(0))));
+  operations.push_back(MakeOperation(MakeCluster(0, MakeRootId())));
 
   model.ExecuteOperations(operations);
 
-  EXPECT_EQ(std::vector<std::string>({"f:A", "f:B"}), GetContentFrames(model));
+  EXPECT_EQ(std::vector<std::string>({"f:0", "f:1"}), GetContentFrames(model));
 }
 
 TEST(StreamModelTest, RemoveAndAppendToNewParent) {
@@ -320,12 +317,12 @@
 
   std::vector<feedstore::DataOperation> operations =
       MakeTypicalStreamOperations();
-  operations.push_back(MakeOperation(MakeRemove(MakeClusterId("A"))));
-  operations.push_back(MakeOperation(MakeCluster("A", MakeClusterId("B"))));
+  operations.push_back(MakeOperation(MakeRemove(MakeClusterId(0))));
+  operations.push_back(MakeOperation(MakeCluster(0, MakeClusterId(1))));
 
   model.ExecuteOperations(operations);
 
-  EXPECT_EQ(std::vector<std::string>({"f:A", "f:B"}), GetContentFrames(model));
+  EXPECT_EQ(std::vector<std::string>({"f:0", "f:1"}), GetContentFrames(model));
 }
 
 TEST(StreamModelTest, EphemeralNewCluster) {
@@ -336,13 +333,13 @@
   observer.Clear();
 
   model.CreateEphemeralChange({
-      MakeOperation(MakeCluster("C", MakeRootId())),
-      MakeOperation(MakeContentNode("C", MakeClusterId("C"))),
-      MakeOperation(MakeContent("C")),
+      MakeOperation(MakeCluster(2, MakeRootId())),
+      MakeOperation(MakeContentNode(2, MakeClusterId(2))),
+      MakeOperation(MakeContent(2)),
   });
 
   EXPECT_TRUE(observer.ContentListChanged());
-  EXPECT_EQ(std::vector<std::string>({"f:A", "f:B", "f:C"}),
+  EXPECT_EQ(std::vector<std::string>({"f:0", "f:1", "f:2"}),
             GetContentFrames(model));
 }
 
@@ -352,9 +349,9 @@
 
   model.ExecuteOperations(MakeTypicalStreamOperations());
   EphemeralChangeId change_id = model.CreateEphemeralChange({
-      MakeOperation(MakeCluster("C", MakeRootId())),
-      MakeOperation(MakeContentNode("C", MakeClusterId("C"))),
-      MakeOperation(MakeContent("C")),
+      MakeOperation(MakeCluster(2, MakeRootId())),
+      MakeOperation(MakeContentNode(2, MakeClusterId(2))),
+      MakeOperation(MakeContent(2)),
   });
 
   EXPECT_TRUE(model.CommitEphemeralChange(change_id));
@@ -362,7 +359,7 @@
   // Can't reject after commit.
   EXPECT_FALSE(model.RejectEphemeralChange(change_id));
 
-  EXPECT_EQ(std::vector<std::string>({"f:A", "f:B", "f:C"}),
+  EXPECT_EQ(std::vector<std::string>({"f:0", "f:1", "f:2"}),
             GetContentFrames(model));
 }
 
@@ -372,9 +369,9 @@
 
   model.ExecuteOperations(MakeTypicalStreamOperations());
   EphemeralChangeId change_id = model.CreateEphemeralChange({
-      MakeOperation(MakeCluster("C", MakeRootId())),
-      MakeOperation(MakeContentNode("C", MakeClusterId("C"))),
-      MakeOperation(MakeContent("C")),
+      MakeOperation(MakeCluster(2, MakeRootId())),
+      MakeOperation(MakeContentNode(2, MakeClusterId(2))),
+      MakeOperation(MakeContent(2)),
   });
   observer.Clear();
 
@@ -383,7 +380,7 @@
   // Can't commit after reject.
   EXPECT_FALSE(model.CommitEphemeralChange(change_id));
 
-  EXPECT_EQ(std::vector<std::string>({"f:A", "f:B"}), GetContentFrames(model));
+  EXPECT_EQ(std::vector<std::string>({"f:0", "f:1"}), GetContentFrames(model));
 }
 
 TEST(StreamModelTest, RejectFirstEphemeralChange) {
@@ -392,15 +389,15 @@
 
   model.ExecuteOperations(MakeTypicalStreamOperations());
   EphemeralChangeId change_id1 = model.CreateEphemeralChange({
-      MakeOperation(MakeCluster("C", MakeRootId())),
-      MakeOperation(MakeContentNode("C", MakeClusterId("C"))),
-      MakeOperation(MakeContent("C")),
+      MakeOperation(MakeCluster(2, MakeRootId())),
+      MakeOperation(MakeContentNode(2, MakeClusterId(2))),
+      MakeOperation(MakeContent(2)),
   });
 
   model.CreateEphemeralChange({
-      MakeOperation(MakeCluster("D", MakeRootId())),
-      MakeOperation(MakeContentNode("D", MakeClusterId("D"))),
-      MakeOperation(MakeContent("D")),
+      MakeOperation(MakeCluster(3, MakeRootId())),
+      MakeOperation(MakeContentNode(3, MakeClusterId(3))),
+      MakeOperation(MakeContent(3)),
   });
   observer.Clear();
 
@@ -409,7 +406,7 @@
   // Can't commit after reject.
   EXPECT_FALSE(model.CommitEphemeralChange(change_id1));
 
-  EXPECT_EQ(std::vector<std::string>({"f:A", "f:B", "f:D"}),
+  EXPECT_EQ(std::vector<std::string>({"f:0", "f:1", "f:3"}),
             GetContentFrames(model));
 }
 
diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc
index c66192a..7a60bc52 100644
--- a/components/omnibox/browser/omnibox_field_trial.cc
+++ b/components/omnibox/browser/omnibox_field_trial.cc
@@ -608,7 +608,7 @@
   }
 
   // Touch-optimized UI always swaps title and URL.
-  if (ui::MaterialDesignController::touch_ui())
+  if (ui::MaterialDesignController::GetInstance()->touch_ui())
     return EMPHASIZE_WHEN_NONEMPTY;
 
   // Look up the parameter named kEmphasizeTitlesRule + "_" + input.type(),
diff --git a/components/password_manager/core/browser/multi_store_form_fetcher.cc b/components/password_manager/core/browser/multi_store_form_fetcher.cc
index 66c60545..0bd7ada 100644
--- a/components/password_manager/core/browser/multi_store_form_fetcher.cc
+++ b/components/password_manager/core/browser/multi_store_form_fetcher.cc
@@ -80,9 +80,6 @@
     BrowserSavePasswordProgressLogger(client_->GetLogManager())
         .LogNumber(Logger::STRING_ON_GET_STORE_RESULTS_METHOD, results.size());
   }
-
-  // TODO(crbug.com/1002000): implement password store migration.
-
   ProcessPasswordStoreResults(std::move(partial_results_));
 }
 
diff --git a/components/payments/content/android/BUILD.gn b/components/payments/content/android/BUILD.gn
index abdbdb6..ba075f8 100644
--- a/components/payments/content/android/BUILD.gn
+++ b/components/payments/content/android/BUILD.gn
@@ -74,6 +74,7 @@
     "//url:gurl_java",
     "//url:origin_java",
   ]
+  srcjar_deps = [ ":error_strings_generated_srcjar" ]
 }
 
 java_cpp_strings("error_strings_generated_srcjar") {
diff --git a/components/payments/content/android/java/src/org/chromium/components/payments/intent/WebPaymentIntentHelper.java b/components/payments/content/android/java/src/org/chromium/components/payments/intent/WebPaymentIntentHelper.java
index 5c9ada97..812f45f 100644
--- a/components/payments/content/android/java/src/org/chromium/components/payments/intent/WebPaymentIntentHelper.java
+++ b/components/payments/content/android/java/src/org/chromium/components/payments/intent/WebPaymentIntentHelper.java
@@ -4,12 +4,15 @@
 
 package org.chromium.components.payments.intent;
 
+import android.app.Activity;
+import android.content.Intent;
 import android.os.Bundle;
 import android.os.Parcelable;
 import android.util.JsonWriter;
 
 import androidx.annotation.Nullable;
 
+import org.chromium.components.payments.ErrorStrings;
 import org.chromium.components.payments.intent.WebPaymentIntentHelperType.PaymentCurrencyAmount;
 import org.chromium.components.payments.intent.WebPaymentIntentHelperType.PaymentDetailsModifier;
 import org.chromium.components.payments.intent.WebPaymentIntentHelperType.PaymentItem;
@@ -20,6 +23,7 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 
 /**
@@ -51,11 +55,65 @@
     private static final String EXTRA_DEPRECATED_METHOD_NAME = "methodName";
     private static final String EXTRA_DEPRECATED_ORIGIN = "origin";
 
+    // Response from the payment app.
+    private static final String EXTRA_DEPRECATED_RESPONSE_INSTRUMENT_DETAILS = "instrumentDetails";
+    private static final String EXTRA_RESPONSE_DETAILS = "details";
+    private static final String EXTRA_RESPONSE_METHOD_NAME = "methodName";
+
     private static final String EMPTY_JSON_DATA = "{}";
 
+    /** Invoked to report error for {@link #parsePaymentResponse}. */
+    public interface PaymentErrorCallback {
+        /** @param errorString The string that explains the error. */
+        void onError(String errorString);
+    }
+
+    /** Invoked to receive parsed data for {@link #parsePaymentResponse}. */
+    public interface PaymentSuccessCallback {
+        /**
+         * @param methodName The method name parsed from the intent response.
+         * @param details The instrument details parsed from the intent response.
+         */
+        void onSuccess(String methodName, String details);
+    }
+
     /**
-     * Build the 'extra' property for an intent.
+     * Parse the Payment Intent response.
+     * @param resultCode Result code of the requested intent.
+     * @param data The intent response data.
+     * @param errorCallback Callback to handle parsing errors. Invoked synchronously.
+     * @param successCallback Callback to receive the parsed data. Invoked synchronously.
+     **/
+    public static void parsePaymentResponse(int resultCode, Intent data,
+            PaymentErrorCallback errorCallback, PaymentSuccessCallback successCallback) {
+        if (data == null) {
+            errorCallback.onError(ErrorStrings.MISSING_INTENT_DATA);
+        } else if (data.getExtras() == null) {
+            errorCallback.onError(ErrorStrings.MISSING_INTENT_EXTRAS);
+        } else if (resultCode == Activity.RESULT_CANCELED) {
+            errorCallback.onError(ErrorStrings.RESULT_CANCELED);
+        } else if (resultCode != Activity.RESULT_OK) {
+            errorCallback.onError(String.format(
+                    Locale.US, ErrorStrings.UNRECOGNIZED_ACTIVITY_RESULT, resultCode));
+        } else {
+            String details = data.getExtras().getString(EXTRA_RESPONSE_DETAILS);
+            if (details == null) {
+                details = data.getExtras().getString(EXTRA_DEPRECATED_RESPONSE_INSTRUMENT_DETAILS);
+            }
+            if (details == null) details = EMPTY_JSON_DATA;
+            String methodName = data.getExtras().getString(EXTRA_RESPONSE_METHOD_NAME);
+            if (methodName == null) methodName = "";
+            // TODO(crbug.com/1026667): Support payer data delegation for native apps instead of
+            // returning empty PayerData.
+            successCallback.onSuccess(/*methodName=*/methodName, /*details=*/details);
+        }
+    }
+
+    /**
+     * Create an intent to invoke a native payment app.
      *
+     * @param packageName The name of the package of the payment app.
+     * @param activityName The name of the payment activity in the payment app.
      * @param id The unique identifier of the PaymentRequest.
      * @param merchantName The name of the merchant.
      * @param schemelessOrigin The schemeless origin of this merchant
@@ -68,9 +126,48 @@
      * @param total The total amount.
      * @param displayItems The shopping cart items.
      * @param modifiers The relevant payment details modifiers.
-     * @return the 'extra' property built for the intent.
+     * @return The intent to invoke the payment app.
      */
-    public static Bundle buildExtras(@Nullable String id, @Nullable String merchantName,
+    public static Intent createPayIntent(String packageName, String activityName, String id,
+            String merchantName, String schemelessOrigin, String schemelessIframeOrigin,
+            byte[][] certificateChain, Map<String, PaymentMethodData> methodDataMap,
+            PaymentItem total, List<PaymentItem> displayItems,
+            Map<String, PaymentDetailsModifier> modifiers) {
+        Intent payIntent = new Intent();
+        payIntent.setClassName(packageName, activityName);
+        payIntent.setAction(ACTION_PAY);
+        payIntent.putExtras(buildExtras(id, merchantName, schemelessOrigin, schemelessIframeOrigin,
+                certificateChain, methodDataMap, total, displayItems, modifiers));
+        return payIntent;
+    }
+
+    /**
+     * Create an intent to invoke a service that can answer "is ready to pay" query, or null of
+     * none.
+     *
+     * @param packageName The name of the package of the payment app.
+     * @param serviceName The name of the service.
+     * @param schemelessOrigin The schemeless origin of this merchant
+     * @param schemelessIframeOrigin The schemeless origin of the iframe that invoked PaymentRequest
+     * @param certificateChain The site certificate chain of the merchant. Can be null for localhost
+     *                         or local file, which are secure contexts without SSL.
+     * @param methodDataMap The payment-method specific data for all applicable payment methods,
+     *                         e.g., whether the app should be invoked in test or production, a
+     *                         merchant identifier, or a public key.
+     * @return The intent to invoke the service.
+     */
+    public static Intent createIsReadyToPayIntent(String packageName, String serviceName,
+            String schemelessOrigin, String schemelessIframeOrigin, byte[][] certificateChain,
+            Map<String, PaymentMethodData> methodDataMap) {
+        Intent isReadyToPayIntent = new Intent();
+        isReadyToPayIntent.setClassName(packageName, serviceName);
+        isReadyToPayIntent.putExtras(buildExtras(/*id=*/null,
+                /*merchantName=*/null, schemelessOrigin, schemelessIframeOrigin, certificateChain,
+                methodDataMap, /*total=*/null, /*displayItems=*/null, /*modifiers=*/null));
+        return isReadyToPayIntent;
+    }
+
+    private static Bundle buildExtras(@Nullable String id, @Nullable String merchantName,
             String schemelessOrigin, String schemelessIframeOrigin,
             @Nullable byte[][] certificateChain, Map<String, PaymentMethodData> methodDataMap,
             @Nullable PaymentItem total, @Nullable List<PaymentItem> displayItems,
diff --git a/components/pdf_strings.grdp b/components/pdf_strings.grdp
index 822b2e9..406d802 100644
--- a/components/pdf_strings.grdp
+++ b/components/pdf_strings.grdp
@@ -46,6 +46,15 @@
     <message name="IDS_PDF_TOOLTIP_FIT_WIDTH" desc="Button tooltip for the button which zooms a PDF so that the width of a single page fills the window horizontally">
       Fit to width
     </message>
+    <!-- TODO(nigi): Remove the translateable="false" attributes for messages
+    IDS_PDF_TOOLTIP_TWO_UP_VIEW_ENABLE and IDS_PDF_TOOLTIP_TWO_UP_VIEW_DISABLE
+    once their tooltips are finalized. -->
+    <message name="IDS_PDF_TOOLTIP_TWO_UP_VIEW_ENABLE" desc="Button tooltip for the button which enables displaying two pages of a PDF on the screen horizontally" translateable="false">
+      Enable two-up view
+    </message>
+    <message name="IDS_PDF_TOOLTIP_TWO_UP_VIEW_DISABLE" desc="Button tooltip for the button which stops displaying two pages of a PDF on the screen horizontally" translateable="false">
+      Disable two-up view
+    </message>
     <message name="IDS_PDF_TOOLTIP_ZOOM_IN" desc="Button tooltip for the button which zooms in a PDF, so that the document appears larger">
       Zoom in
     </message>
diff --git a/components/performance_manager/decorators/tab_properties_decorator.cc b/components/performance_manager/decorators/tab_properties_decorator.cc
index d23d6d1..67919ea 100644
--- a/components/performance_manager/decorators/tab_properties_decorator.cc
+++ b/components/performance_manager/decorators/tab_properties_decorator.cc
@@ -50,6 +50,11 @@
 TabPropertiesDecorator::Data::Data() = default;
 TabPropertiesDecorator::Data::~Data() = default;
 
+const TabPropertiesDecorator::Data* TabPropertiesDecorator::Data::FromPageNode(
+    const PageNode* page_node) {
+  return TabPropertiesDataImpl::Get(PageNodeImpl::FromNode(page_node));
+}
+
 TabPropertiesDecorator::Data*
 TabPropertiesDecorator::Data::GetOrCreateForTesting(PageNode* page_node) {
   return TabPropertiesDataImpl::GetOrCreate(PageNodeImpl::FromNode(page_node));
diff --git a/components/performance_manager/graph/node_attached_data_impl.h b/components/performance_manager/graph/node_attached_data_impl.h
index f3134c01..147244f6 100644
--- a/components/performance_manager/graph/node_attached_data_impl.h
+++ b/components/performance_manager/graph/node_attached_data_impl.h
@@ -108,7 +108,7 @@
 // -- user_of_foo.cc --
 // Foo* foo = Foo::GetOrCreate(page_node);
 // foo->DoSomething();
-// DHCECK_EQ(foo, Foo::Get(page_node));
+// DCHECK_EQ(foo, Foo::Get(page_node));
 // DCHECK(Foo::Destroy(page_node));
 // -- user_of_foo.cc --
 
diff --git a/components/performance_manager/public/decorators/tab_properties_decorator.h b/components/performance_manager/public/decorators/tab_properties_decorator.h
index d9df4862..19df245 100644
--- a/components/performance_manager/public/decorators/tab_properties_decorator.h
+++ b/components/performance_manager/public/decorators/tab_properties_decorator.h
@@ -42,6 +42,7 @@
   // Indicates if a PageNode belongs to a tab strip.
   virtual bool IsInTabStrip() const = 0;
 
+  static const Data* FromPageNode(const PageNode* page_node);
   static Data* GetOrCreateForTesting(PageNode* page_node);
 };
 
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 621ff3f..41d4f17 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -61,6 +61,10 @@
       Ist diese Richtlinie eingestellt, dann kann der Nutzer sie weder ändern noch überschreiben.</translation>
 <translation id="1062011392452772310">Remote-Bescheinigung (Remote Attestation) für das Gerät aktivieren</translation>
 <translation id="1062407476771304334">Ersetzen</translation>
+<translation id="1073983258515362346">Diese Richtlinie gibt Informationen zur Hintergrundbeleuchtung eines Geräts aus.
+
+      Wenn sie auf "false" gesetzt oder nicht konfiguriert ist, werden keine Informationen ausgegeben.
+      Ist sie auf "true" gesetzt, werden Informationen zur Hintergrundbeleuchtung des Geräts ausgegeben.</translation>
 <translation id="1078643757670228170">Diese Richtlinie ist veraltet und wird in Version 82 von <ph name="PRODUCT_OS_NAME" /> entfernt. Bitte verwenden Sie stattdessen die Richtlinie "<ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />".
 
           Diese Richtlinie gibt an, nach welcher Inaktivitätsspanne des Nutzers im Netzbetrieb eine Warnmeldung angezeigt wird.
@@ -334,6 +338,7 @@
       wird Unified Desktop deaktiviert und kann vom Nutzer nicht aktiviert werden.</translation>
 <translation id="1474273443907024088">TLS-Funktion "False Start" deaktivieren</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
+<translation id="1486021504508098388">Informationen zur Hintergrundbeleuchtung ausgeben</translation>
 <translation id="1502843533062797703">Blockieren von Codeeinschleusungen durch Drittanbieter-Software aktivieren</translation>
 <translation id="1507382822467487898">
           Hiermit wird konfiguriert, welche MAC-Adresse (Media Access Control) verwendet wird, wenn das Gerät angedockt wird.
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index 374ba22d..0c283d6 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -62,6 +62,10 @@
       Si configuras esta política, el usuario no podrá cambiarla ni anularla.</translation>
 <translation id="1062011392452772310">Habilita la atestación remota para el dispositivo.</translation>
 <translation id="1062407476771304334">Reemplazar</translation>
+<translation id="1073983258515362346">Envía información sobre la luz de fondo del dispositivo.
+
+      Si se establece la política como falsa o no se establece, no se enviará la información.
+      Si se establece como verdadera, se enviará información sobre la luz de fondo del dispositivo.</translation>
 <translation id="1078643757670228170">Ten en cuenta que esta política es obsoleta y se eliminará en la versión 82 de <ph name="PRODUCT_OS_NAME" />. En su lugar, utiliza <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
 
           Especifica el período sin intervención del usuario después del cual se apagará la pantalla cuando el dispositivo esté funcionando con CA.
@@ -337,6 +341,7 @@
       En ese caso, el usuario no podrá habilitar la función.</translation>
 <translation id="1474273443907024088">Inhabilitar TLS False Start</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
+<translation id="1486021504508098388">Enviar información sobre la luz de fondo</translation>
 <translation id="1502843533062797703">Habilitar el bloqueo de inserción de software de terceros</translation>
 <translation id="1507382822467487898">
           Configura la dirección MAC (Control de acceso de medio) que se usará cuando un conector está enchufado al dispositivo.
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 899efdb..3d210b9 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -63,6 +63,10 @@
       Si cette règle est définie, l'utilisateur ne peut pas la modifier ni l'ignorer.</translation>
 <translation id="1062011392452772310">Activer l'attestation à distance pour l'appareil</translation>
 <translation id="1062407476771304334">Remplacer</translation>
+<translation id="1073983258515362346">Transmettre les informations concernant le rétroéclairage d'un appareil.
+
+      Si la règle est définie sur "False" ou n'est pas définie, ces informations ne sont pas transmises.
+      Si elle est définie sur "True", les informations concernant le rétroéclairage de l'appareil sont transmises.</translation>
 <translation id="1078643757670228170">Cette règle étant obsolète, elle sera supprimée dans la version 82 de <ph name="PRODUCT_OS_NAME" />. (Veuillez utiliser la règle <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.)
 
           Elle permet de spécifier le délai d'inactivité de l'utilisateur au terme duquel l'écran est éteint (lorsque l'appareil fonctionne sur secteur).
@@ -341,6 +345,7 @@
       fonctionnalité.</translation>
 <translation id="1474273443907024088">Désactiver TLS False Start</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
+<translation id="1486021504508098388">Transmettre les informations concernant le rétroéclairage</translation>
 <translation id="1502843533062797703">Activer le blocage de l'injection de logiciels tiers</translation>
 <translation id="1507382822467487898">
           Permet de définir quelle l'adresse MAC (Media Access Control, contrôle d'accès au support) est utilisée lorsqu'une station d'accueil est connectée à l'appareil.
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index c61dc2d..cf4c1fe 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -61,6 +61,10 @@
       Jika kebijakan ini ditetapkan, pengguna tidak dapat mengubah atau menggantinya.</translation>
 <translation id="1062011392452772310">Mengaktifkan pengesahan jarak jauh untuk perangkat tersebut</translation>
 <translation id="1062407476771304334">Ganti</translation>
+<translation id="1073983258515362346">Melaporkan informasi tentang lampu latar perangkat.
+
+      Jika kebijakan ditetapkan ke false, atau tidak ditetapkan, informasi tidak akan dilaporkan.
+      Jika ditetapkan ke true, informasi lampu latar perangkat akan dilaporkan.</translation>
 <translation id="1078643757670228170">Perhatikan bahwa kebijakan ini sudah tidak digunakan lagi dan akan dihapus di <ph name="PRODUCT_OS_NAME" /> versi 82. Sebagai gantinya, gunakan <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
 
           Menentukan durasi waktu tanpa input pengguna sebelum layar dinonaktifkan saat menggunakan daya AC.
@@ -315,6 +319,11 @@
 
       Jika kebijakan dibiarkan tidak disetel, nilai default 'MultiProfileUserBehaviorMustBePrimary' berlaku untuk pengguna yang dikelola oleh perusahaan dan 'MultiProfileUserBehaviorUnrestricted' akan digunakan untuk pengguna yang tidak dikelola.</translation>
 <translation id="1465619815762735808">Klik untuk memainkan</translation>
+<translation id="1467633031685836974">Fitur ini akan mengizinkan hyperlink dan navigasi URL kolom URL untuk menargetkan teks tertentu di halaman web, yang akan di-scroll setelah halaman web selesai dimuat.
+
+Jika Anda mengaktifkan atau tidak mengonfigurasi kebijakan ini, scroll halaman web ke fragmen teks tertentu melalui URL akan diaktifkan.
+
+Jika Anda menonaktifkan kebijakan ini, scroll halaman web ke fragmen teks tertentu melalui URL akan dinonaktifkan.</translation>
 <translation id="1468707346106619889">Jika kebijakan ini disetel ke true, Desktop Terpadu diizinkan dan
       diaktifkan secara default, yang memungkinkan aplikasi merentangkan beberapa tampilan.
       Pengguna dapat menonaktifkan Desktop Terpadu untuk tampilan individual dengan menghapus centang
@@ -324,6 +333,7 @@
       dinonaktifkan. Dalam kasus ini, pengguna tidak dapat mengaktifkan fitur tersebut.</translation>
 <translation id="1474273443907024088">Nonaktifkan TLS False Start</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
+<translation id="1486021504508098388">Melaporkan info lampu latar</translation>
 <translation id="1502843533062797703">Aktifkan pemblokiran injeksi software pihak ketiga</translation>
 <translation id="1507382822467487898">
           Mengonfigurasi alamat MAC (kontrol akses media) mana yang akan digunakan saat dok terhubung ke perangkat.
@@ -3415,6 +3425,7 @@
           Nilai kebijakan harus ditetapkan dalam milidetik. Nilai dijepit agar kurang dari penundaan waktu menganggur.</translation>
 <translation id="6097601282776163274">Mengaktifkan pengumpulan data anonim yang menyertakan URL</translation>
 <translation id="6099853574908182288">Mode warna pencetakan default</translation>
+<translation id="6102342563050263313">Mengaktifkan scroll ke teks yang ditentukan di fragmen URL</translation>
 <translation id="6107642964266628393">Mengontrol cara dan waktu update Chrome OS diterapkan.</translation>
 <translation id="6111936128861357925">Izinkan Game Dinosaur Easter Egg</translation>
 <translation id="6114416803310251055">tak lagi digunakan</translation>
@@ -4379,6 +4390,9 @@
 <translation id="7713608076604149344">Batasan download</translation>
 <translation id="7715711044277116530">Persentase yang digunakan untuk menskalakan penundaan layar redup dalam mode presentasi</translation>
 <translation id="7717938661004793600">Mengonfigurasikan fitur aksesibilitas <ph name="PRODUCT_OS_NAME" />.</translation>
+<translation id="7724652568947700864">Jika kebijakan ini ditetapkan, semua jenis data yang ditentukan akan dikecualikan dari sinkronisasi, baik untuk Google Sync maupun sinkronisasi profil roaming. Hal ini berguna untuk mengurangi ukuran profil roaming atau membatasi jenis data yang diupload ke Server Google Sync.
+
+      Jenis data saat ini untuk kebijakan ini adalah: "bookmarks", "preferences", "passwords", "autofill", "themes", "typedUrls", "extensions", "apps", "tabs", "wifiConfiguration". Nama-nama tersebut peka huruf besar atau kecil.</translation>
 <translation id="7731026922044991970">Kembalikan cookie di semua situs ke perilaku <ph name="ATTRIBUTE_SAMESITE_NAME" /> lama</translation>
 <translation id="7747447585227954402">Izinkan perangkat menggunakan <ph name="PLUGIN_VM_NAME" /> di <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="7749024457938190837">Ekstensi diizinkan melewati dialog konfirmasi ketika mengirimkan pekerjaan cetak melalui API chrome.printing</translation>
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index a7bcf554..7f2fc228 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -319,6 +319,11 @@
 
       Se la norma non viene impostata, per gli utenti gestiti dall'azienda viene applicato il valore predefinito "MultiProfileUserBehaviorMustBePrimary", mentre per gli utenti non gestiti viene applicato il valore "MultiProfileUserBehaviorUnrestricted".</translation>
 <translation id="1465619815762735808">Click to play</translation>
+<translation id="1467633031685836974">Questa funzionalità consente di indirizzare link ipertestuali e navigazioni degli URL nella barra degli indirizzi a testo specifico in una pagina web, a cui si passa al termine del caricamento della pagina.
+
+Se attivi o non configuri questo criterio, viene attivato lo scorrimento della pagina web ai frammenti di testo specifici tramite URL.
+
+Se disattivi questo criterio, lo scorrimento della pagina web ai frammenti di testo specifici tramite URL viene disattivato.</translation>
 <translation id="1468707346106619889">Se le norme sono impostate su "true", la modalità Desktop unificato è consentita e
       attivata per impostazione predefinita, il che significa che le applicazioni includono diverse visualizzazioni.
       L'utente può disattivare la modalità Desktop unificato per le singole visualizzazioni deselezionandola
@@ -3380,6 +3385,7 @@
 Il valore della norma deve essere specificato in millisecondi. I valori devono essere minori del ritardo di inattività.</translation>
 <translation id="6097601282776163274">Attiva la raccolta di dati anonimizzati con chiave URL</translation>
 <translation id="6099853574908182288">Modalità di stampa a colori predefinita</translation>
+<translation id="6102342563050263313">Attiva scorrimento al testo specificato in frammenti di URL</translation>
 <translation id="6107642964266628393">Consente di stabilire come e quando applicare gli aggiornamenti di Chrome OS.</translation>
 <translation id="6111936128861357925">Attiva il gioco del dinosauro</translation>
 <translation id="6114416803310251055">obsoleto</translation>
@@ -4364,6 +4370,9 @@
 <translation id="7713608076604149344">Limitazioni dei download</translation>
 <translation id="7715711044277116530">Percentuale di regolazione del ritardo di oscuramento dello schermo in modalità di presentazione</translation>
 <translation id="7717938661004793600">Configura le funzioni di accessibilità di <ph name="PRODUCT_OS_NAME" />.</translation>
+<translation id="7724652568947700864">Se questo criterio viene impostato, tutti i tipi di dati specificati verranno esclusi dalla sincronizzazione sia per Google Sync sia per la sincronizzazione del profilo di roaming. Questa operazione può essere utile per ridurre le dimensioni del profilo di roaming o per limitare il tipo di dati caricati sui server di Google Sync.
+
+      Attualmente i tipi di dati per questo criterio sono: "bookmarks", "preferences", "passwords", "autofill", "themes", "typedUrls", "extensions", "apps", "tabs", "wifiConfiguration". Per tali nomi viene fatta distinzione tra maiuscole e minuscole.</translation>
 <translation id="7731026922044991970">Ripristina il comportamento <ph name="ATTRIBUTE_SAMESITE_NAME" /> precedente per i cookie su tutti i siti</translation>
 <translation id="7747447585227954402">Consenti ai dispositivi di usare <ph name="PLUGIN_VM_NAME" /> su <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="7749024457938190837">Estensioni consentite per ignorare la finestra di dialogo di conferma durante l'invio di processi di stampa tramite l'API chrome.printing</translation>
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index 1617006..de65978 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -64,6 +64,10 @@
       このポリシーを設定した場合、ユーザーはパスワードを変更したりオーバーライドしたりすることはできません。</translation>
 <translation id="1062011392452772310">デバイスのリモート認証を有効にする</translation>
 <translation id="1062407476771304334">置換</translation>
+<translation id="1073983258515362346">デバイスのバックライトに関する情報を報告します。
+
+      このポリシーを false に設定するか未設定のままにした場合、この情報は報告されません。
+      このポリシーを true に設定した場合、デバイスのバックライトに関する情報が報告されます。</translation>
 <translation id="1078643757670228170">このポリシーはサポートが終了しており、<ph name="PRODUCT_OS_NAME" /> バージョン 82 で削除されます。代わりに <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> を使用してください。
 
           AC 電源での使用中、ユーザー入力が行われなくなってから画面をオフにするまでの時間を指定します。
@@ -338,6 +342,7 @@
       できません。</translation>
 <translation id="1474273443907024088">TLS False Start を無効にする</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
+<translation id="1486021504508098388">バックライト情報を報告する</translation>
 <translation id="1502843533062797703">第三者ソフトウェアからのコードの挿入をブロックする</translation>
 <translation id="1507382822467487898">
           ホルダーがデバイスに装着されているときに使用される MAC(メディア アクセス制御)アドレスを設定します。
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index b56238c4..4754f52 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -63,6 +63,10 @@
       이 정책을 설정하면 사용자는 변경하거나 재정의할 수 없습니다.</translation>
 <translation id="1062011392452772310">기기에 대한 원격 인증을 사용합니다.</translation>
 <translation id="1062407476771304334">바꾸기</translation>
+<translation id="1073983258515362346">기기의 백라이트에 관한 정보를 보고합니다.
+
+      정책이 False로 설정되거나 설정되지 않으면 정보가 보고되지 않습니다.
+      True로 설정된 경우 기기의 백라이트 정보가 보고됩니다.</translation>
 <translation id="1078643757670228170">이 정책은 지원이 중단되었으며 <ph name="PRODUCT_OS_NAME" /> 버전 82에서 삭제될 예정입니다. 대신 <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> 정책을 사용하세요.
 
           AC 전원으로 실행할 때 사용자 입력이 없어서 화면이 꺼지기까지 걸리는 시간을 지정합니다.
@@ -340,6 +344,7 @@
       사용 중지됩니다. 이 경우 사용자가 기능을 사용 설정할 수 없습니다.</translation>
 <translation id="1474273443907024088">TLS False Start 사용 안함</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
+<translation id="1486021504508098388">백라이트 정보 보고</translation>
 <translation id="1502843533062797703">타사 소프트웨어 삽입 차단 사용</translation>
 <translation id="1507382822467487898">
           기기에 도크가 연결되었을 때 어떤 미디어 액세스 컨트롤(MAC) 주소가 사용될지 설정합니다.
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index bcac106b..7374df77 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -334,6 +334,11 @@
 
       Als dit beleid niet wordt ingesteld, is de standaardwaarde 'MultiProfileUserBehaviorMustBePrimary' van toepassing op gebruikers die op ondernemingsniveau worden beheerd en wordt 'MultiProfileUserBehaviorUnrestricted' gebruikt voor niet-beheerde gebruikers.</translation>
 <translation id="1465619815762735808">Klikken om af te spelen</translation>
+<translation id="1467633031685836974">Met deze functie kan URL-navigatie via hyperlinks en de adresbalk specifieke tekst binnen een webpagina targeten. Er wordt naar de tekst gescrolld nadat de webpagina is geladen.
+
+Als je dit beleid inschakelt of niet configureert, wordt op de webpagina naar specifieke tekstfragmenten scrollen via de URL ingeschakeld.
+
+Als je dit beleid uitschakelt, wordt op de webpagina naar specifieke tekstfragmenten scrollen via de URL uitgeschakeld.</translation>
 <translation id="1468707346106619889">Als dit beleid is ingesteld op 'True', is Unified Desktop toegestaan en
       standaard ingeschakeld, waardoor apps op meerdere schermen worden weergegeven.
       De gebruiker kan Unified Desktop uitschakelen voor afzonderlijke schermen door
@@ -3480,6 +3485,7 @@
           De beleidswaarde moet worden gespecificeerd in milliseconden. Waarden worden vastgezet op een lagere waarde dan de inactiviteitsdrempel.</translation>
 <translation id="6097601282776163274">Aan URL's gekoppelde, geanonimiseerde gegevens verzamelen</translation>
 <translation id="6099853574908182288">Standaard kleurenmodus voor afdrukken</translation>
+<translation id="6102342563050263313">Scrollen naar opgegeven tekst in URL-fragmenten inschakelen</translation>
 <translation id="6107642964266628393">Bepaalt hoe en wanneer Chrome OS-updates worden toegepast.</translation>
 <translation id="6111936128861357925">Easter egg-dinosaurusgame toestaan</translation>
 <translation id="6114416803310251055">verouderd</translation>
@@ -4471,6 +4477,9 @@
 <translation id="7713608076604149344">Downloadbeperkingen</translation>
 <translation id="7715711044277116530">Percentage waarmee de dimvertraging van het scherm in de presentatiemodus wordt geschaald</translation>
 <translation id="7717938661004793600">Toegankelijkheidsfuncties van <ph name="PRODUCT_OS_NAME" /> configureren.</translation>
+<translation id="7724652568947700864">Als dit beleid is ingesteld, worden alle opgegeven gegevenstypen uitgesloten van synchronisatie voor zowel Google Sync als synchronisatie van roaming-profielen. Dit kan handig zijn om het roaming-profiel te verkleinen of het type gegevens te beperken dat wordt geüpload naar de Google Sync-servers.
+
+      De huidige gegevenstypen voor dit beleid zijn: 'bookmarks', 'preferences', 'passwords', 'autofill', 'themes', 'typedUrls', 'extensions', 'apps', 'tabs', 'wifiConfiguration'. Die namen zijn hoofdlettergevoelig.</translation>
 <translation id="7731026922044991970">Het verouderde gedrag van <ph name="ATTRIBUTE_SAMESITE_NAME" /> voor cookies op alle sites terugzetten</translation>
 <translation id="7747447585227954402">Toestaan dat apparaten een <ph name="PLUGIN_VM_NAME" /> gebruiken op <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="7749024457938190837">Extensies die het bevestigingsdialoogvenster mogen overslaan als ze afdruktaken sturen via chrome.printing API</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 482e49bc..1545ee9 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -327,6 +327,11 @@
 
       Se a política não for configurada, o valor padrão "MultiProfileUserBehaviorMustBePrimary" será aplicado aos usuários gerenciados pela empresa, e "MultiProfileUserBehaviorUnrestricted" será usado para usuários não gerenciados.</translation>
 <translation id="1465619815762735808">Clique para reproduzir</translation>
+<translation id="1467633031685836974">Esse recurso permite que navegações de URL de hiperlinks e da barra de endereço busquem textos específicos em uma página da Web, rolando para o local desejado assim que o carregamento é concluído.
+
+Se você ativar ou não configurar essa política, a rolagem via URL para fragmentos de texto específicos em páginas da Web será ativada.
+
+Se você desativar essa política, a rolagem via URL para fragmentos de texto específicos será desativada.</translation>
 <translation id="1468707346106619889">Se essa política for configurada como "true", a área de trabalho unificada será
       ativada por padrão, o que permite que os aplicativos abranjam várias telas.
       O usuário pode desativar a área de trabalho unificada para telas individuais desmarcando-a
@@ -3390,6 +3395,7 @@
           O valor da política deve ser especificado em milissegundos. Os valores são fixados para serem menores que o tempo de espera de inatividade.</translation>
 <translation id="6097601282776163274">Ativar a coleta de dados anônimos inseridos no URL</translation>
 <translation id="6099853574908182288">Modo de cor de impressão padrão</translation>
+<translation id="6102342563050263313">Permitir rolagem para texto especificado em fragmentos de URL</translation>
 <translation id="6107642964266628393">Controla como e quando as atualizações do Chrome OS são aplicadas.</translation>
 <translation id="6111936128861357925">Permitir jogo easter egg de dinossauro</translation>
 <translation id="6114416803310251055">obsoleto</translation>
@@ -4373,6 +4379,9 @@
 <translation id="7713608076604149344">Restrições de downloads</translation>
 <translation id="7715711044277116530">Percentual pelo qual calcular o intervalo de escurecimento da tela no modo de apresentação</translation>
 <translation id="7717938661004793600">Configurar recursos de acessibilidade do <ph name="PRODUCT_OS_NAME" />.</translation>
+<translation id="7724652568947700864">Se essa política for definida, todos os tipos de dados especificados serão excluídos da sincronização, tanto para o Google Sync quanto para a sincronização de perfil de roaming. Isso pode ser benéfico para reduzir o tamanho do perfil de roaming ou limitar o tipo de dado que será enviado aos servidores do Google Sync.
+
+      Atualmente, os tipos de dados para a política são: "bookmarks", "preferences", "passwords", "autofill", "themes", "typedUrls", "extensions", "apps", "tabs" e "wifiConfiguration". Esses nomes têm diferenciação de letras maiúsculas e minúsculas.</translation>
 <translation id="7731026922044991970">Reverter para o comportamento <ph name="ATTRIBUTE_SAMESITE_NAME" /> legado para os cookies em todos os sites</translation>
 <translation id="7747447585227954402">Permite que dispositivos usem um <ph name="PLUGIN_VM_NAME" /> no <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="7749024457938190837">Extensões com permissão para pular a caixa de diálogo de confirmação ao enviar trabalhos de impressão por meio da API chrome.printing</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 9ceaac7..95d5312 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -64,6 +64,10 @@
       Если для этого правила установлено значение, пользователь не может его изменить или переопределить.</translation>
 <translation id="1062011392452772310">Включает удаленную проверку устройства</translation>
 <translation id="1062407476771304334">Заменить</translation>
+<translation id="1073983258515362346">Позволяет передавать информацию о подсветке устройства.
+
+      Если правило не настроено или задано значение False, сведения не отправляются.
+      Если указано значение True, данные передаются.</translation>
 <translation id="1078643757670228170">Правило больше не поддерживается и будет удалено из <ph name="PRODUCT_OS_NAME" /> 82. Вместо него используйте следующее: <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
 
           Определяет время бездействия при работе от сети электропитания, после которого выключается экран.
@@ -333,6 +337,7 @@
 Если вы выберете False или не укажете значение, режим будет отключен. Пользователь не сможет включить его самостоятельно.</translation>
 <translation id="1474273443907024088">Позволяет отключить TLS False Start</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
+<translation id="1486021504508098388">Передача информации о подсветке</translation>
 <translation id="1502843533062797703">Запретить ПО независимых производителей передавать код</translation>
 <translation id="1507382822467487898">
           Определяет, какой MAC-адрес (адрес управления доступом к среде) будет использоваться при подключении устройства к док-станции.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index e606187..708dd38 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -61,6 +61,10 @@
       หากมีการตั้งค่านโยบายนี้ ผู้ใช้จะเปลี่ยนแปลงหรือลบล้างนโยบายไม่ได้</translation>
 <translation id="1062011392452772310">เปิดใช้งานการยืนยันระยะไกลสำหรับอุปกรณ์</translation>
 <translation id="1062407476771304334">แทนที่</translation>
+<translation id="1073983258515362346">รายงานข้อมูลเกี่ยวกับแบ็กไลต์ของอุปกรณ์
+
+      หากตั้งค่านโยบายเป็น "เท็จ" หรือไม่ได้ตั้งค่า จะไม่มีการรายงานข้อมูล
+      หากตั้งค่านโยบายเป็น "จริง" จะมีการรายงานข้อมูลแบ็กไลต์ของอุปกรณ์</translation>
 <translation id="1078643757670228170">โปรดทราบว่าจะมีการเลิกใช้งานและนำนโยบายนี้ออกใน <ph name="PRODUCT_OS_NAME" /> เวอร์ชัน 82 โปรดใช้ <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> แทน
 
           ระบุระยะเวลาก่อนปิดหน้าจอหลังจากไม่มีการป้อนข้อมูลจากผู้ใช้ ขณะทำงานโดยเสียบปลั๊ก
@@ -335,6 +339,7 @@
       ปิดใช้งาน ซึ่งในกรณีนี้ ผู้ใช้จะเปิดใช้งานฟีเจอร์นี้ไม่ได้</translation>
 <translation id="1474273443907024088">ปิดใช้ TLS False Start</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
+<translation id="1486021504508098388">รายงานข้อมูลแบ็กไลต์</translation>
 <translation id="1502843533062797703">เปิดใช้การบล็อกการแทรกซอฟต์แวร์ของบุคคลที่สาม</translation>
 <translation id="1507382822467487898">
           กำหนดค่าว่าจะใช้ที่อยู่ MAC (Media Access Control หรือตัวควบคุมการเข้าถึงสื่อ) ใดเมื่อแท่นชาร์จเชื่อมต่อกับอุปกรณ์
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index ea7dc8f..b471c4e 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -65,6 +65,10 @@
       Bu politika ayarlanırsa, kullanıcı tarafından değiştirilemez veya geçersiz kılınamaz.</translation>
 <translation id="1062011392452772310">Cihaz için uzaktan doğrulamayı etkinleştir</translation>
 <translation id="1062407476771304334">Değiştir</translation>
+<translation id="1073983258515362346">Bir cihazın arka ışıkları ile ilgili bilgileri rapor edin.
+
+      Bu politika false (yanlış) değerine ayarlanırsa veya ayarlanmadan bırakılırsa bilgi raporlanmaz.
+      True (doğru) değerine ayarlanırsa cihazın arka ışık bilgileri raporlanır.</translation>
 <translation id="1078643757670228170">Bu politikanın artık kullanılmadığını ve <ph name="PRODUCT_OS_NAME" /> sürüm 82'de kaldırılacağını unutmayın. Lütfen bunun yerine <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> politikasını kullanın.
 
           AC gücüyle çalışırken, ekran kapatılmadan önce kullanıcı girişi olmadan geçecek süreyi belirtir.
@@ -329,6 +333,7 @@
       Birleşik Masaüstü devre dışı kalır. Bu durumda kullanıcı bu özelliği kullanamaz.</translation>
 <translation id="1474273443907024088">TLS Yanlış Başlatma'yı devre dışı bırak</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
+<translation id="1486021504508098388">Arka ışık bilgilerini raporla</translation>
 <translation id="1502843533062797703">Üçüncü taraf yazılımı yerleştirme engellemesini etkinleştirin</translation>
 <translation id="1507382822467487898">
           Cihaza bir yerleştirme yuvası bağlandığında hangi MAC (medya erişim denetimi) adresinin kullanılacağını yapılandırır.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index 5592a7c1..9557f439 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -64,6 +64,10 @@
       Nếu bạn đặt chính sách này, thì người dùng sẽ không thể thay đổi hoặc ghi đè chính sách.</translation>
 <translation id="1062011392452772310">Cho phép chứng thực từ xa cho thiết bị</translation>
 <translation id="1062407476771304334">Thay thế</translation>
+<translation id="1073983258515362346">Báo cáo thông tin về đèn nền của thiết bị.
+
+      Nếu bạn không đặt chính sách này hoặc đặt chính sách thành false, thì thông tin sẽ không được báo cáo.
+      Nếu bạn đặt chính sách này thành true, thì thông tin về đèn nền của thiết bị sẽ được báo cáo.</translation>
 <translation id="1078643757670228170">Xin lưu ý rằng chính sách này không được dùng nữa và sẽ bị xóa trong <ph name="PRODUCT_OS_NAME" /> phiên bản 82. Thay vào đó, vui lòng sử dụng <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
 
           Chỉ định khoảng thời gian kể từ khi người dùng không có thao tác nhập cho đến thời điểm màn hình bị tắt khi chạy trên nguồn AC.
@@ -341,6 +345,7 @@
       sẽ bị tắt. Trong trường hợp này, người dùng không thể bật tính năng đó.</translation>
 <translation id="1474273443907024088">Tắt Khởi động giả TLS</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
+<translation id="1486021504508098388">Báo cáo thông tin về đèn nền</translation>
 <translation id="1502843533062797703">Cho phép chặn phần mềm bên thứ ba thêm mã thực thi</translation>
 <translation id="1507382822467487898">
           Định cấu hình địa chỉ MAC (điều khiển truy cập phương tiện) sẽ được sử dụng khi kết nối đế sạc với thiết bị.
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index ee360f63a..a153dc4 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -61,6 +61,10 @@
       如果设置了此政策,用户将无法更改或覆盖它。</translation>
 <translation id="1062011392452772310">为设备启用远程认证</translation>
 <translation id="1062407476771304334">替换</translation>
+<translation id="1073983258515362346">报告与设备背光有关的信息。
+
+      如果此政策设为 false 或未设置,系统将不会报告这些信息。
+      如果此政策设为 true,系统将会报告设备的背光信息。</translation>
 <translation id="1078643757670228170">请注意,此政策已被弃用,并将在 <ph name="PRODUCT_OS_NAME" />版本 82 中移除。请改用 <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />。
 
           指定当使用交流电源供电时系统应在设备闲置多久后关闭屏幕。
@@ -316,6 +320,7 @@
       如果此政策设为 false 或未设置,系统将停用“统一桌面”功能。在这种情况下,用户将无法启用该功能。</translation>
 <translation id="1474273443907024088">停用 TLS False Start</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
+<translation id="1486021504508098388">报告背光信息</translation>
 <translation id="1502843533062797703">禁止插入第三方软件</translation>
 <translation id="1507382822467487898">
           配置当基座连接到设备时使用哪个 MAC(媒体访问控制)地址。
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index 37bcd4e..a2484c1 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -64,6 +64,10 @@
       設定這項政策後,使用者即無法變更或覆寫。</translation>
 <translation id="1062011392452772310">為裝置啟用遠端認證機制</translation>
 <translation id="1062407476771304334">取代</translation>
+<translation id="1073983258515362346">回報有關裝置背光的資訊。
+
+      如果將這項政策設為 False 或未設定,系統將不會回報這項資訊。
+      如果設為 True,系統會回報裝置背光的資訊。</translation>
 <translation id="1078643757670228170">請注意,這項政策已遭淘汰,並將在 <ph name="PRODUCT_OS_NAME" />第 82 版中移除。請改用 <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />。
 
           指定 AC 供電時的閒置時間長度。如果使用者在這段時間內沒有任何動作,系統就會關閉螢幕。
@@ -319,6 +323,11 @@
 
       如未設定這項政策,系統將會對受企業管理的使用者套用預設值「MultiProfileUserBehaviorMustBePrimary」,並對不屬於管理化環境的使用者使用「MultiProfileUserBehaviorUnrestricted」。</translation>
 <translation id="1465619815762735808">點擊執行</translation>
+<translation id="1467633031685836974">這項功能可讓超連結和網址列的網址導覽功能鎖定網頁中的特定文字。當網頁載入完成後,系統會將頁面捲動至該文字的顯示位置。
+
+如果啟用或不設定這項政策,系統會啟用透過網址將網頁捲動至特定文字片段的功能。
+
+如果停用這項政策,系統會停用透過網址將網頁捲動至特定文字片段的功能。</translation>
 <translation id="1468707346106619889">如果將這項政策設為 true,即可允許使用整合桌面,
       並預設啟用整合桌面,讓應用程式擴展到多個畫面。
       使用者如要為個別畫面停用整合桌面,可在顯示設定中
@@ -328,6 +337,7 @@
       在這種情況下,使用者將無法啟用這項功能。</translation>
 <translation id="1474273443907024088">停用 TLS False Start</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
+<translation id="1486021504508098388">回報背光資訊</translation>
 <translation id="1502843533062797703">啟用禁止第三方軟體置入可執行程式碼的政策</translation>
 <translation id="1507382822467487898">
           設定當裝置插入座架時,要使用的 MAC (媒體存取控制) 位址。
@@ -3381,6 +3391,7 @@
           指定政策值時需以毫秒為單位。該值必須小於閒置延遲時間值。</translation>
 <translation id="6097601282776163274">啟用輸入網址匿名資料收集功能</translation>
 <translation id="6099853574908182288">預設列印色彩模式</translation>
+<translation id="6102342563050263313">啟用捲動至網址片段所指定文字的功能</translation>
 <translation id="6107642964266628393">控管 Chrome 作業系統的更新方式和更新時間。</translation>
 <translation id="6111936128861357925">允許 Dinosaur Easter Egg Game (恐龍復活節彩蛋遊戲)</translation>
 <translation id="6114416803310251055">淘汰的</translation>
@@ -4341,6 +4352,9 @@
 <translation id="7713608076604149344">下載限制</translation>
 <translation id="7715711044277116530">簡報模式中的螢幕調暗延遲時間延長百分比</translation>
 <translation id="7717938661004793600">設定 <ph name="PRODUCT_OS_NAME" /> 無障礙功能。</translation>
+<translation id="7724652568947700864">如果設定了這項政策,系統會將所有指定的資料類型從同步處理作業 (包含 Google Sync 和漫遊設定檔的同步處理作業) 中排除。這有助於縮減漫遊設定檔的大小,或限制上傳到 Google Sync 伺服器的資料類型。
+
+      這項政策目前涵蓋的資料類型為:「bookmarks」、「preferences」、「passwords」、「autofill」、「themes」、「typedUrls」、「extensions」、「apps」、「tabs」、「wifiConfiguration」。這些名稱有大小寫之分。</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="7749024457938190837">這些擴充功能在透過 chrome.printing API 傳送列印工作時,可以略過確認對話方塊</translation>
diff --git a/components/safe_browsing/content/web_ui/safe_browsing_ui.cc b/components/safe_browsing/content/web_ui/safe_browsing_ui.cc
index c57483c..1043ca8b 100644
--- a/components/safe_browsing/content/web_ui/safe_browsing_ui.cc
+++ b/components/safe_browsing/content/web_ui/safe_browsing_ui.cc
@@ -285,16 +285,7 @@
 
 void WebUIInfoSingleton::UnregisterWebUIInstance(SafeBrowsingUIHandler* webui) {
   base::Erase(webui_instances_, webui);
-  if (!HasListener()) {
-    ClearCSBRRsSent();
-    ClearClientDownloadRequestsSent();
-    ClearClientDownloadResponsesReceived();
-    ClearPGEvents();
-    ClearPGPings();
-    ClearRTLookupPings();
-    ClearLogMessages();
-    ClearDeepScans();
-  }
+  MaybeClearData();
 }
 
 network::mojom::CookieManager* WebUIInfoSingleton::GetCookieManager() {
@@ -304,6 +295,11 @@
   return cookie_manager_remote_.get();
 }
 
+void WebUIInfoSingleton::ClearListenerForTesting() {
+  has_test_listener_ = false;
+  MaybeClearData();
+}
+
 void WebUIInfoSingleton::InitializeCookieManager() {
   DCHECK(network_context_);
 
@@ -321,6 +317,20 @@
   }
 }
 
+void WebUIInfoSingleton::MaybeClearData() {
+  if (!HasListener()) {
+    ClearCSBRRsSent();
+    ClearClientDownloadRequestsSent();
+    ClearClientDownloadResponsesReceived();
+    ClearPGEvents();
+    ClearPGPings();
+    ClearRTLookupPings();
+    ClearLogMessages();
+    ClearDeepScans();
+    ClearReportingEvents();
+  }
+}
+
 namespace {
 #if BUILDFLAG(SAFE_BROWSING_DB_LOCAL)
 
@@ -627,6 +637,9 @@
 
   dict.SetBoolean("request_ap_verdicts", cdr.request_ap_verdicts());
 
+  if (!cdr.access_token().empty())
+    dict.SetString("access_token", cdr.access_token());
+
   base::Value* request_tree = &dict;
   std::string request_serialized;
   JSONStringValueSerializer serializer(&request_serialized);
diff --git a/components/safe_browsing/content/web_ui/safe_browsing_ui.h b/components/safe_browsing/content/web_ui/safe_browsing_ui.h
index 35ae248..5dfaba1 100644
--- a/components/safe_browsing/content/web_ui/safe_browsing_ui.h
+++ b/components/safe_browsing/content/web_ui/safe_browsing_ui.h
@@ -419,12 +419,16 @@
 
   void AddListenerForTesting() { has_test_listener_ = true; }
 
+  void ClearListenerForTesting();
+
  private:
   WebUIInfoSingleton();
   ~WebUIInfoSingleton();
 
   void InitializeCookieManager();
 
+  void MaybeClearData();
+
   friend struct base::DefaultSingletonTraits<WebUIInfoSingleton>;
 
   // List of ClientDownloadRequests sent since since the oldest currently open
diff --git a/components/safe_browsing/core/features.cc b/components/safe_browsing/core/features.cc
index f62ad84..74a4c46 100644
--- a/components/safe_browsing/core/features.cc
+++ b/components/safe_browsing/core/features.cc
@@ -41,6 +41,9 @@
 const base::Feature kContentComplianceEnabled{
     "SafeBrowsingContentComplianceEnabled", base::FEATURE_DISABLED_BY_DEFAULT};
 
+const base::Feature kDownloadRequestWithToken{
+    "SafeBrowsingDownloadRequestWithToken", base::FEATURE_DISABLED_BY_DEFAULT};
+
 const base::Feature kMalwareScanEnabled{"SafeBrowsingMalwareScanEnabled",
                                         base::FEATURE_DISABLED_BY_DEFAULT};
 
@@ -131,6 +134,7 @@
     {&kCaptureSafetyNetId, true},
     {&kCommittedSBInterstitials, true},
     {&kContentComplianceEnabled, true},
+    {&kDownloadRequestWithToken, true},
     {&kMalwareScanEnabled, true},
     {&kPasswordProtectionForSavedPasswords, true},
     {&kPasswordProtectionShowDomainsForSavedPasswords, true},
diff --git a/components/safe_browsing/core/features.h b/components/safe_browsing/core/features.h
index 283b834..30119df 100644
--- a/components/safe_browsing/core/features.h
+++ b/components/safe_browsing/core/features.h
@@ -47,6 +47,10 @@
 // sent for scanning.
 extern const base::Feature kContentComplianceEnabled;
 
+// Enable the addition of access tokens to download pings for enhanced
+// protection users.
+extern const base::Feature kDownloadRequestWithToken;
+
 // Enable Chrome Safe Browsing enhanced protection.
 extern const base::Feature kEnhancedProtection;
 
diff --git a/components/safe_browsing/core/proto/csd.proto b/components/safe_browsing/core/proto/csd.proto
index 47c8e44..19eadd8 100644
--- a/components/safe_browsing/core/proto/csd.proto
+++ b/components/safe_browsing/core/proto/csd.proto
@@ -715,7 +715,11 @@
   optional int32 archive_file_count = 68;
   optional int32 archive_directory_count = 69;
 
-  // next available tag number: 70;
+  // Only for display on chrome://safe-browsing. The actual token is sent in the
+  // "Authorization: Bearer" header
+  optional string access_token = 78;
+
+  // next available tag number: 79;
 }
 
 message ReferrerChainOptions {
diff --git a/components/services/storage/public/mojom/indexed_db_control_test.mojom b/components/services/storage/public/mojom/indexed_db_control_test.mojom
index e07f02e..a2e954b 100644
--- a/components/services/storage/public/mojom/indexed_db_control_test.mojom
+++ b/components/services/storage/public/mojom/indexed_db_control_test.mojom
@@ -15,9 +15,32 @@
   CORRUPTION_YES,
 };
 
+enum FailClass {
+  NOTHING,
+  LEVELDB_ITERATOR,
+  LEVELDB_DIRECT_TRANSACTION,
+  LEVELDB_TRANSACTION,
+  LEVELDB_DATABASE,
+};
+
+enum FailMethod {
+  NOTHING,
+  COMMIT,
+  COMMIT_DISK_FULL,
+  GET,
+  SEEK,
+  WRITE,
+};
+
+// A test-only interface for creating fake failures in IndexedDB methods.
+interface MockFailureInjector {
+  // Causes indexeddb to fail in a given way on a given call.
+  FailOperation(FailClass failure_class, FailMethod failure_method,
+                int32 instance_num, int32 call_num) => ();
+};
+
 // A test-only interface extending storage.mojom.IndexedDBControl.
 interface IndexedDBControlTest {
-
   // Gets the root data path for storage.
   GetBaseDataPathForTesting() => (mojo_base.mojom.FilePath path);
 
@@ -53,4 +76,18 @@
 
   // Compacts the backing store for a given origin.
   CompactBackingStoreForTesting(url.mojom.Origin origin) => ();
+
+  // Overrides IndexedDB with a mock class factory that can inject failures
+  // at specific points.  For now, because this is static, there can only
+  // be one of these bound at a single time.
+  //
+  // Note: in order for this not to be flaky, this should be called before
+  // using the IndexedDB system in any way to ensure that that the default
+  // class factory isn't used before the testing one is set.
+  BindMockFailureSingletonForTesting(
+      pending_receiver<MockFailureInjector> receiver);
+
+  // Return keys used in WriteToIndexedDBForTesting.
+  GetDatabaseKeysForTesting() =>
+      (string schema_version_key, string data_version_key);
 };
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb
index 3e24e9f..6079e56e3 100644
--- a/components/strings/components_strings_af.xtb
+++ b/components/strings/components_strings_af.xtb
@@ -815,6 +815,7 @@
 <translation id="4466881336512663640">Vormveranderinge sal verloor word. Is jy seker jy wil voortgaan?</translation>
 <translation id="4477350412780666475">Volgende snit</translation>
 <translation id="4482953324121162758">Hierdie werf sal nie vertaal word nie.</translation>
+<translation id="4486757593530038591">Wanneer dit aan is, kan werwe nie jou blaai-aktiwiteit op verskillende werwe gebruik om advertensies te personaliseer nie. Kenmerke op sommige werwe kan breek.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Hierdie kenmerke word by verstek gedeaktiveer. Hulle sal nie in toekomstige weergawes van Chrome beskikbaar wees nie.</translation>
 <translation id="4493480324863638523">Ongeldige URL. Moet 'n URL met 'n standaardskema wees, byvoorbeeld, http://example.com of https://example.com.</translation>
@@ -1052,6 +1053,7 @@
 <translation id="549333378215107354">Grootte 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Bestuurde boekmerke</translation>
+<translation id="5510481203689988000">Hierdie instelling word in webkoekie-instellings beheer.</translation>
 <translation id="5510766032865166053">Dit is dalk geskuif of uitgevee.</translation>
 <translation id="5523118979700054094">Beleidnaam</translation>
 <translation id="55293785478302737">Randhegting</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index 500f00e..45ae769 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -810,6 +810,7 @@
 <translation id="4466881336512663640">የቅጽ ለውጦች ይጠፋሉ። እርግጠኛ ነዎት መቀጠል ይፈልጋሉ?</translation>
 <translation id="4477350412780666475">ቀጣይ ትራክ</translation>
 <translation id="4482953324121162758">ይህ ጣቢያ አይተረጎምም።</translation>
+<translation id="4486757593530038591">ሲበራ ጣቢያዎች ማስታወቂያዎችን ግላዊነት ለማላበስ በተለያዩ ጣቢያዎች ላይ እንቅስቃሴዎን መጠቀም አይችሉም። በአንዳንድ ጣቢያዎች ላይ ያሉ ባህሪያት ሊሰበሩ ይችላሉ።</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">እነዚህ ባህሪዎች በነባሪነት ተሰናክሏል። በወደፊት የChrome ስሪቶች ላይ አይገኙም።</translation>
 <translation id="4493480324863638523">ልክ ያልሆነ ዩአርኤል። ደረጃውን የጠበቀ ቅርጸ አጻጻፍ ያለው ዩአርኤል መሆን አለበት፣ ለምሳሌ፦ http://example.com ወይም https://example.com.</translation>
@@ -1047,6 +1048,7 @@
 <translation id="549333378215107354">መጠን 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">የተዳደሩ እልባቶች</translation>
+<translation id="5510481203689988000">ይህ ቅንብር በኩኪዎች ቅንብሮች ውስጥ ቁጥጥር ይደረግበታል።</translation>
 <translation id="5510766032865166053">ተወስዶ ወይም ተሰርዞ ሊሆን ይችላል።</translation>
 <translation id="5523118979700054094">የመምሪያ ስም</translation>
 <translation id="55293785478302737">ጫፍ ስፋ</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index df8e2dc..ce9961e 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -813,6 +813,7 @@
 <translation id="4466881336512663640">Промените във формуляра ще бъдат заличени. Наистина ли искате да продължите?</translation>
 <translation id="4477350412780666475">Следващ запис</translation>
 <translation id="4482953324121162758">Този сайт няма да се превежда.</translation>
+<translation id="4486757593530038591">Когато тази функция е включена, сайтовете не могат да използват активността ви при сърфиране на различните сайтове, за да персонализират рекламите. Функциите в някои сайтове може да не работят правилно.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Тези функции са деактивирани по подразбиране. Те няма да бъдат налице в бъдещите версии на Chrome.</translation>
 <translation id="4493480324863638523">Невалиден URL адрес. Трябва да е URL адрес със стандартна схема, напр. http://example.com или https://example.com.</translation>
@@ -1050,6 +1051,7 @@
 <translation id="549333378215107354">Размер 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Управлявани отметки</translation>
+<translation id="5510481203689988000">Тази настройка се контролира от настройките за „бисквитките“.</translation>
 <translation id="5510766032865166053">Възможно е да е преместен или изтрит.</translation>
 <translation id="5523118979700054094">Име на правилото</translation>
 <translation id="55293785478302737">Зашиване на ръба</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index e1aa132..0ba7e56 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -815,6 +815,7 @@
 <translation id="4466881336512663640">Izgubit ćete izmjene obrasca Jeste li sigurni da želite nastaviti?</translation>
 <translation id="4477350412780666475">Sljedeća numera</translation>
 <translation id="4482953324121162758">Ova web lokacija neće biti prevedena.</translation>
+<translation id="4486757593530038591">Kada je funkcija uključena, web lokacije neće moći koristiti vašu aktivnost pregledanja na različitim web lokacijama radi prilagođavanja oglasa. Moguće je da će funkcije na nekim web lokacijama prestati s radom.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Ove funkcije su onemogućene u zadanim postavkama. Neće biti dostupne u budućim verzijama Chromea.</translation>
 <translation id="4493480324863638523">Nevažeći URL. Mora biti URL sa standardnom šemom, npr. http://example.com ili https://example.com.</translation>
@@ -1052,6 +1053,7 @@
 <translation id="549333378215107354">Veličina 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Upravljane oznake</translation>
+<translation id="5510481203689988000">Ovom postavkom se upravlja u postavkama kolačića.</translation>
 <translation id="5510766032865166053">Moguće je da je premješten ili izbrisan.</translation>
 <translation id="5523118979700054094">Naziv pravila</translation>
 <translation id="55293785478302737">Uvez uz rub</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index cfe2507e..fe0e340 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -809,6 +809,7 @@
 <translation id="4466881336512663640">Es perdran els canvis fets al formulari. Confirmes que vols continuar?</translation>
 <translation id="4477350412780666475">Pista següent</translation>
 <translation id="4482953324121162758">Aquest lloc web no es traduirà.</translation>
+<translation id="4486757593530038591">Quan aquesta opció està activada, els llocs web no poden fer servir la teva activitat de navegació en diferents llocs web per personalitzar els anuncis. Pot ser que les funcions d'alguns llocs web no funcionin.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Aquestes funcions estan desactivades de manera predeterminada. Deixaran d'estar disponibles en versions futures de Chrome.</translation>
 <translation id="4493480324863638523">L'URL no és vàlid. Ha de tenir un esquema estàndard, com ara "http://example.com" o "https://example.com".</translation>
@@ -1045,6 +1046,7 @@
 <translation id="549333378215107354">Mida 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Adreces d'interès gestionades</translation>
+<translation id="5510481203689988000">Aquesta opció es controla des de la configuració de les galetes.</translation>
 <translation id="5510766032865166053">És possible que s'hagi mogut o s'hagi suprimit.</translation>
 <translation id="5523118979700054094">Nom de la política</translation>
 <translation id="55293785478302737">Cosit de la vora</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index 0168f55d..f7fcac7f 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -815,6 +815,7 @@
 <translation id="4466881336512663640">Du mister eventuelle formularændringer. Er du sikker på, at du vil fortsætte?</translation>
 <translation id="4477350412780666475">Næste nummer</translation>
 <translation id="4482953324121162758">Dette website kan ikke oversættes.</translation>
+<translation id="4486757593530038591">Når dette er slået til, kan websites ikke anvende din browseraktivitet på andre websites til at tilpasse annoncer. Funktioner på visse websites virker muligvis ikke.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Disse funktioner er som standard deaktiveret. De vil ikke være tilgængelige i fremtidige versioner af Chrome.</translation>
 <translation id="4493480324863638523">Webadressen er ugyldig. Webadressen skal indeholde et standardskema, f.eks. http://eksempel.dk eller https://eksempel.dk.</translation>
@@ -1052,6 +1053,7 @@
 <translation id="549333378215107354">Størrelse 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Administrerede bogmærker</translation>
+<translation id="5510481203689988000">Denne indstilling administreres i indstillingerne for cookies.</translation>
 <translation id="5510766032865166053">Den kan være blevet flyttet eller slettet.</translation>
 <translation id="5523118979700054094">Navn på politik</translation>
 <translation id="55293785478302737">Kanthæftning</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index fe706616..11ff946 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -816,6 +816,7 @@
 <translation id="4466881336512663640">Οι αλλαγές που πραγματοποιήθηκαν στη φόρμα θα χαθούν. Είστε βέβαιοι ότι θέλετε να συνεχίσετε;</translation>
 <translation id="4477350412780666475">Επόμενο κομμάτι</translation>
 <translation id="4482953324121162758">Αυτός ο ιστότοπος δεν θα μεταφραστεί.</translation>
+<translation id="4486757593530038591">Όταν είναι ενεργοποιημένο, οι ιστότοποι δεν μπορούν να χρησιμοποιήσουν τη δραστηριότητα περιήγησής σας μεταξύ διαφορετικών ιστοτόπων για εξατομίκευση διαφημίσεων. Μπορεί να παρουσιαστούν προβλήματα στις λειτουργίες ορισμένων ιστοτόπων.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Αυτές οι λειτουργίες είναι απενεργοποιημένες από προεπιλογή. Δεν θα είναι διαθέσιμες σε μελλοντικές εκδόσεις του Chrome.</translation>
 <translation id="4493480324863638523">Μη έγκυρο URL. Πρέπει να είναι ένα URL με βασική μορφή, π.χ. http://example.com ή https://example.com.</translation>
@@ -1053,6 +1054,7 @@
 <translation id="549333378215107354">Μέγεθος 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Διαχειριζόμενοι σελιδοδείκτες</translation>
+<translation id="5510481203689988000">Αυτή η ρύθμιση ελέγχεται από τις ρυθμίσεις cookie.</translation>
 <translation id="5510766032865166053">Ενδέχεται να έχει μετακινηθεί ή να έχει διαγραφεί.</translation>
 <translation id="5523118979700054094">Όνομα πολιτικής</translation>
 <translation id="55293785478302737">Ραφή στο άκρο</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb
index d47ba52..d8204ea 100644
--- a/components/strings/components_strings_en-GB.xtb
+++ b/components/strings/components_strings_en-GB.xtb
@@ -811,6 +811,7 @@
 <translation id="4466881336512663640">Form changes will be lost. Are you sure that you want to continue?</translation>
 <translation id="4477350412780666475">Next track</translation>
 <translation id="4482953324121162758">This site will not be translated.</translation>
+<translation id="4486757593530038591">When on, sites can’t use your browsing activity across different sites to personalise ads. Features on some sites may break.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">These features are disabled by default. They will not be available in future versions of Chrome.</translation>
 <translation id="4493480324863638523">Invalid URL. Must be a URL with a standard scheme, e.g. http://example.com or https://example.com.</translation>
@@ -1047,6 +1048,7 @@
 <translation id="549333378215107354">Size 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Managed bookmarks</translation>
+<translation id="5510481203689988000">This setting is controlled in Cookie settings.</translation>
 <translation id="5510766032865166053">It may have been moved or deleted.</translation>
 <translation id="5523118979700054094">Policy name</translation>
 <translation id="55293785478302737">Edge stitch</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index 0c7aec1..9a7dd2ce 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -815,6 +815,7 @@
 <translation id="4466881336512663640">Vormil tehtud muudatused lähevad kaotsi. Kas soovite kindlasti jätkata?</translation>
 <translation id="4477350412780666475">Järgmine lugu</translation>
 <translation id="4482953324121162758">Seda saiti ei tõlgita.</translation>
+<translation id="4486757593530038591">Kui on sisse lülitatud, ei saa saidid reklaamide isikupärastamiseks eri saitidel teie sirvimistegevust kasutada. Mõne saidi funktsioonid ei pruugi töötada.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Need funktsioonid on vaikimisi peatatud. Need ei ole Chrome'i tulevastes versioonides saadaval.</translation>
 <translation id="4493480324863638523">Sobimatu URL. Peab olema standardskeemiga URL, nt http://example.com või https://example.com.</translation>
@@ -1052,6 +1053,7 @@
 <translation id="549333378215107354">Suurus 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Hallatud järjehoidjad</translation>
+<translation id="5510481203689988000">Seda seadet saab hallata küpsisefailide seadetes.</translation>
 <translation id="5510766032865166053">See võidi teisaldada või kustutada.</translation>
 <translation id="5523118979700054094">Reegli nimi</translation>
 <translation id="55293785478302737">Servaõmblus</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index fd3f6be..02cac0f2 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -816,6 +816,7 @@
 <translation id="4466881336512663640">Lomakkeen muutokset menetetään. Haluatko varmasti jatkaa?</translation>
 <translation id="4477350412780666475">Seuraava kappale</translation>
 <translation id="4482953324121162758">Tätä sivustoa ei käännetä.</translation>
+<translation id="4486757593530038591">Kun tämä on käytössä, sivustot eivät voi personoida sinulle mainoksia selaustoimintasi perusteella. Joidenkin sivustojen ominaisuudet saattavat lakata toimimasta.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Nämä ominaisuudet ovat oletuksena poissa käytöstä. Ne eivät ole käytettävissä Chromen tulevissa versioissa.</translation>
 <translation id="4493480324863638523">Virheellinen URL-osoite URL-osoitteen on oltava vakiomallien mukainen, esimerkiksi "http://example.com" tai "https://example.com".</translation>
@@ -1053,6 +1054,7 @@
 <translation id="549333378215107354">Koko 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Hallinnoidut kirjanmerkit</translation>
+<translation id="5510481203689988000">Tätä asetusta ylläpidetään evästeasetuksissa.</translation>
 <translation id="5510766032865166053">Se on voitu siirtää tai poistaa.</translation>
 <translation id="5523118979700054094">Käytännön nimi</translation>
 <translation id="55293785478302737">Reunasidonta</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index 275a218..dfd8785 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -814,6 +814,7 @@
 <translation id="4466881336512663640">Izgubit će se promjene koje ste unijeli u obrazac. Jeste li sigurni da želite nastaviti?</translation>
 <translation id="4477350412780666475">Sljedeća pjesma</translation>
 <translation id="4482953324121162758">Ova web-lokacija neće biti prevedena.</translation>
+<translation id="4486757593530038591">Kad je ta značajka uključena, web-lokacije ne mogu prilagođavati oglase na temelju vaše aktivnosti pregledavanja na različitim web-lokacijama. Značajke na nekim web-lokacijama mogu prestati funkcionirati.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Ove su značajke onemogućene prema zadanim postavkama. Neće biti dostupne u budućim verzijama Chromea.</translation>
 <translation id="4493480324863638523">URL nije važeći. URL mora imati standardnu shemu, na primjer http://example.com ili https://example.com.</translation>
@@ -1051,6 +1052,7 @@
 <translation id="549333378215107354">Veličina 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Upravljane oznake</translation>
+<translation id="5510481203689988000">Tom se postavkom upravlja u postavkama kolačića.</translation>
 <translation id="5510766032865166053">Datoteka je možda premještena ili izbrisana.</translation>
 <translation id="5523118979700054094">Naziv pravila</translation>
 <translation id="55293785478302737">Rubni šav</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index c90bf6a..11d6df2c 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -811,6 +811,7 @@
 <translation id="4466881336512663640">Az űrlapon végzett módosítások elvesznek. Biztosan folytatni szeretné?</translation>
 <translation id="4477350412780666475">Következő szám</translation>
 <translation id="4482953324121162758">Nem fordítjuk le ezt a webhelyet.</translation>
+<translation id="4486757593530038591">Ha be van kapcsolva, a webhelyek nem használhatják fel az Ön különböző webhelyeken végzett böngészési tevékenységeit a hirdetések személyre szabásához. Előfordulhat, hogy bizonyos webhelyek funkciói nem működnek megfelelően.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Ezek a funkciók alapértelmezés szerint le vannak tiltva. A Chrome későbbi verzióiban nem állnak majd rendelkezésre.</translation>
 <translation id="4493480324863638523">Érvénytelen URL. Az URL-nek szabványos sémával kell rendelkeznie, például http://example.com vagy https://example.com.</translation>
@@ -1048,6 +1049,7 @@
 <translation id="549333378215107354">Méret: 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Kezelt könyvjelzők</translation>
+<translation id="5510481203689988000">Ez a beállítás a cookie-beállításokban vezérelhető.</translation>
 <translation id="5510766032865166053">Előfordulhat, hogy át lett helyezve, vagy törölve lett.</translation>
 <translation id="5523118979700054094">Az irányelv neve</translation>
 <translation id="55293785478302737">Éltűzés</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index 1de1cf2..c06c30c5 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -814,6 +814,7 @@
 <translation id="4466881336512663640">Perubahan pada formulir akan hilang. Yakin ingin melanjutkan?</translation>
 <translation id="4477350412780666475">Lagu Berikutnya</translation>
 <translation id="4482953324121162758">Situs ini tidak akan diterjemahkan.</translation>
+<translation id="4486757593530038591">Jika diaktifkan, situs tidak dapat menggunakan aktivitas penjelajahan di situs lain untuk mempersonalisasi iklan. Fitur di beberapa situs mungkin error.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Fitur ini dinonaktifkan secara default. Fitur ini tidak akan tersedia pada versi mendatang Chrome.</translation>
 <translation id="4493480324863638523">URL tidak valid. Harus berupa URL dengan skema standar, misalnya http://example.com atau https://example.com.</translation>
@@ -1051,6 +1052,7 @@
 <translation id="549333378215107354">Ukuran 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Mengelola bookmark</translation>
+<translation id="5510481203689988000">Setelan ini dikontrol di setelan Cookie.</translation>
 <translation id="5510766032865166053">File mungkin telah dipindahkan atau dihapus.</translation>
 <translation id="5523118979700054094">Nama kebijakan</translation>
 <translation id="55293785478302737">Jahitan tepi</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb
index 01834e7..bff741a 100644
--- a/components/strings/components_strings_is.xtb
+++ b/components/strings/components_strings_is.xtb
@@ -816,6 +816,7 @@
 <translation id="4466881336512663640">Breytingar á eyðublaði glatast. Viltu örugglega halda áfram?</translation>
 <translation id="4477350412780666475">Næsta lag</translation>
 <translation id="4482953324121162758">Þetta vefsvæði verður ekki þýtt.</translation>
+<translation id="4486757593530038591">Þegar kveikt er á þessu geta vefsvæði ekki notað vafranotkun þína á mismunandi vefsvæðum til að sérsníða auglýsingar. Ekki er víst að allir eiginleikar á öllum síðum virki.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Sjálfgefið er að slökkva á þessum eiginleikum. Þeir verða ekki tiltækir í síðari útgáfum Chrome.</translation>
 <translation id="4493480324863638523">Ógild vefslóð. Verður að vera vefslóð með hefðbundinni framsetningu, t.d. http://example.com or https://example.com.</translation>
@@ -1053,6 +1054,7 @@
 <translation id="549333378215107354">Stærð 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Stýrð bókamerki</translation>
+<translation id="5510481203689988000">Fótsporastillingar stjórna þessari stillingu.</translation>
 <translation id="5510766032865166053">Hugsanlega var hún færð til eða henni eytt.</translation>
 <translation id="5523118979700054094">Heiti reglu</translation>
 <translation id="55293785478302737">Saumur</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index 4f390919..db12f78 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -812,6 +812,7 @@
 <translation id="4466881336512663640">Le modifiche apportate al modulo andranno perse. Vuoi continuare?</translation>
 <translation id="4477350412780666475">Traccia successiva</translation>
 <translation id="4482953324121162758">Questo sito non verrà tradotto.</translation>
+<translation id="4486757593530038591">Se attivi questa opzione, i siti non possono usare la tua attività di navigazione su diversi siti per personalizzare gli annunci. Le funzionalità su alcuni siti potrebbero non essere disponibili.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Queste funzionalità sono disattivate per impostazione predefinita. Non saranno disponibili nelle future versioni di Chrome.</translation>
 <translation id="4493480324863638523">URL non valido. Deve essere un URL con schema standard, ad esempio http://example.com o https://example.com.</translation>
@@ -1049,6 +1050,7 @@
 <translation id="549333378215107354">Dimensione 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Preferiti gestiti</translation>
+<translation id="5510481203689988000">È possibile gestire questa impostazione nelle impostazioni Cookie.</translation>
 <translation id="5510766032865166053">Potrebbe essere stato spostato o eliminato.</translation>
 <translation id="5523118979700054094">Nome criterio</translation>
 <translation id="55293785478302737">Impuntura</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index 65e2888..a9a9560 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -813,6 +813,7 @@
 <translation id="4466881336512663640">השינויים בטופס יתבטלו. להמשיך?</translation>
 <translation id="4477350412780666475">הטראק הבא</translation>
 <translation id="4482953324121162758">האתר הזה לא יתורגם.</translation>
+<translation id="4486757593530038591">כשהאפשרות מופעלת, אתרים לא יכולים להשתמש בפעילות הגלישה שלך באתרים שונים כדי להציג מודעות בהתאמה אישית. ייתכנו שיבושים בפעולה של תכונות באתרים מסוימים.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">‏התכונות האלה מושבתות כברירת מחדל. הן לא יהיו זמינות בגרסאות עתידיות של Chrome.</translation>
 <translation id="4493480324863638523">‏כתובת URL לא חוקית. הסכימה של כתובת ה-URL צריכה להיות רגילה, כלומר: http://example.com או https://example.com.</translation>
@@ -1055,6 +1056,7 @@
 <translation id="549333378215107354">גודל 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">סימניות מנוהלות</translation>
+<translation id="5510481203689988000">‏ההגדרה הזו מנוהלת בהגדרות הקשורות לקובצי Cookie.</translation>
 <translation id="5510766032865166053">ייתכן שהוא הועבר או נמחק.</translation>
 <translation id="5523118979700054094">שם מדיניות</translation>
 <translation id="55293785478302737">הידוק קצוות</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index ca4acd63..4fb7ce1d 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -816,6 +816,7 @@
 <translation id="4466881336512663640">Formos pakeitimai bus prarasti. Ar tikrai norite tęsti?</translation>
 <translation id="4477350412780666475">Kitas takelis</translation>
 <translation id="4482953324121162758">Ši svetainė nebus verčiama.</translation>
+<translation id="4486757593530038591">Įjungus svetainės negalės naudoti jūsų naršymo veiklos skirtingose svetainėse, kad galėtų suasmeninti skelbimus. Funkcijos gali neveikti tam tikrose svetainėse.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Šios funkcijos išjungtos pagal numatytuosius nustatymus. Jos nebus pasiekiamos būsimų versijų naršyklėje „Chrome“.</translation>
 <translation id="4493480324863638523">Netinkamas URL. Tai turi būti įprastos schemos URL, pvz., http://example.com arba https://example.com.</translation>
@@ -1053,6 +1054,7 @@
 <translation id="549333378215107354">Dydis: 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Tvarkomos žymės</translation>
+<translation id="5510481203689988000">Šis nustatymas valdomas slapukų nustatymuose.</translation>
 <translation id="5510766032865166053">Galbūt jis perkeltas arba ištrintas.</translation>
 <translation id="5523118979700054094">Politikos pavadinimas</translation>
 <translation id="55293785478302737">Kraštų sukabinimas</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index 4417699..97bca8e 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -812,6 +812,7 @@
 <translation id="4466881336512663640">Veidlapas izmaiņas tiks zaudētas. Vai tiešām vēlaties turpināt?</translation>
 <translation id="4477350412780666475">Nākamais ieraksts</translation>
 <translation id="4482953324121162758">Šī vietne netiks tulkota.</translation>
+<translation id="4486757593530038591">Kad ir ieslēgta šī opcija, vietnes nevar izmantot jūsu pārlūkošanas darbības dažādās vietnēs, lai personalizētu reklāmas. Noteiktās vietnēs funkcijas var nedarboties.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Šīs funkcijas ir atspējotas pēc noklusējuma. Turpmākajās Chrome versijās tās nebūs pieejamas.</translation>
 <translation id="4493480324863638523">Nederīgs URL. Vietrādim URL ir jābūt ar standarta shēmu, piemēram, “http://example.com” vai “https://example.com”.</translation>
@@ -1049,6 +1050,7 @@
 <translation id="549333378215107354">3. izmērs</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Pārvaldītās grāmatzīmes</translation>
+<translation id="5510481203689988000">Šo iestatījumu var kontrolēt sadaļā Sīkfaili.</translation>
 <translation id="5510766032865166053">Iespējams, tas ir pārvietots vai izdzēsts.</translation>
 <translation id="5523118979700054094">Politikas nosaukums</translation>
 <translation id="55293785478302737">Malu sašuvums</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb
index 1b02cb7..4c56e77b 100644
--- a/components/strings/components_strings_mk.xtb
+++ b/components/strings/components_strings_mk.xtb
@@ -815,6 +815,7 @@
 <translation id="4466881336512663640">Промените на формуларот ќе се изгубат. Сигурно сакате да продолжите?</translation>
 <translation id="4477350412780666475">Следна песна</translation>
 <translation id="4482953324121162758">Сајтов нема да се преведе.</translation>
+<translation id="4486757593530038591">Кога е вклучено, сајтовите не можат да ја користат вашата активност од прелистувањето на различни сајтови за персонализирање на рекламите. Функциите на некои сајтови може да не функционираат.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Функцииве се стандардно оневозможени. Нема да бидат достапни во идните верзии на Chrome.</translation>
 <translation id="4493480324863638523">Неважечка URL-адреса. Мора да биде URL-адреса со стандардна шема, на пример, http://example.com или https://example.com.</translation>
@@ -1052,6 +1053,7 @@
 <translation id="549333378215107354">Големина 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Управувани обележувачи</translation>
+<translation id="5510481203689988000">Поставкава се контролира во поставките за колачиња.</translation>
 <translation id="5510766032865166053">Можеби е преместена или избришана.</translation>
 <translation id="5523118979700054094">Име на правило</translation>
 <translation id="55293785478302737">Шиење на работ</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index 8a97f2d..b1a22f3 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -816,6 +816,7 @@
 <translation id="4466881336512663640">Perubahan borang akan hilang. Adakah anda pasti mahu meneruskan?</translation>
 <translation id="4477350412780666475">Lagu Seterusnya</translation>
 <translation id="4482953324121162758">Tapak ini tidak akan diterjemah.</translation>
+<translation id="4486757593530038591">Apabila kuki dihidupkan, tapak tidak boleh menggunakan aktiviti penyemakan imbas anda di tapak lain untuk memperibadikan iklan. Ciri di sesetengah tapak mungkin rosak.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Ciri ini dilumpuhkan secara lalai. Ciri ini tidak akan tersedia pada versi Chrome akan datang.</translation>
 <translation id="4493480324863638523">URL tidak sah. Mestilah URL dengan skema standard, mis http://example.com atau https://example.com.</translation>
@@ -1053,6 +1054,7 @@
 <translation id="549333378215107354">Saiz 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Penanda halaman terurus</translation>
+<translation id="5510481203689988000">Tetapan ini dikawal dalam tetapan Kuki.</translation>
 <translation id="5510766032865166053">Fail mungkin telah dipindahkan atau dipadamkan.</translation>
 <translation id="5523118979700054094">Nama dasar</translation>
 <translation id="55293785478302737">Jahitan tepi</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb
index 70e2bdc9..dc17f216 100644
--- a/components/strings/components_strings_my.xtb
+++ b/components/strings/components_strings_my.xtb
@@ -815,6 +815,7 @@
 <translation id="4466881336512663640">ပုံစံ အပြောင်းအလဲများကို သိမ်းမည်မဟုတ်ပါ။ ရှေ့ဆက်လိုသည်မှာ သေချာသလား။</translation>
 <translation id="4477350412780666475">နောက်တစ်ပုဒ်</translation>
 <translation id="4482953324121162758">ဤဝဘ်ဆိုက်ကို ဘာသာပြန်မည် မဟုတ်ပါ။</translation>
+<translation id="4486757593530038591">ဖွင့်ထားလျှင် ဝဘ်ဆိုက်များသည် ကြော်ငြာများကို ပုဂ္ဂိုလ်ရေးသီးသန့် ပြုလုပ်ရန်အတွက် သင့်ကြည့်ရှုခြင်းများကို မတူညီသည့်ဝဘ်ဆိုက်များအကြား အသုံးပြုနိုင်တော့မည် မဟုတ်ပါ။ အချို့ဝဘ်ဆိုက်များပေါ်ရှိ ဝန်ဆောင်မှုများ ရပ်သွားနိုင်ပါသည်။</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">မူရင်းသတ်မှတ်ချက်အနေနှင့် ဤဝန်ဆောင်မှုများကို ပိတ်ထားပါသည်။ ၎င်းတို့သည် Chrome ၏ လာမည့်ဗားရှင်းများတွင် ပါဝင်တော့မည်မဟုတ်ပါ။</translation>
 <translation id="4493480324863638523">URL မမှန်ကန်ပါ။ URL တွင် စံစနစ်တစ်ခု ရှိရမည်၊ ဥပမာ e.g http://example.com သို့မဟုတ် https://example.com။</translation>
@@ -1052,6 +1053,7 @@
 <translation id="549333378215107354">အရွယ်အစား ၃</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">စီမံကွပ်ကဲသည့် စာညှပ်များ</translation>
+<translation id="5510481203689988000">ဤဆက်တင်ကို 'ကွတ်ကီး' ဆက်တင်များတွင် ထိန်းချုပ်ပါသည်။</translation>
 <translation id="5510766032865166053">၎င်းကို ဖယ်ရှား သို့မဟုတ် ဖျက်ပစ် လိုက်ခြင်းဖြစ်နိုင်ပါသည်။</translation>
 <translation id="5523118979700054094">မူဝါဒ အမည်</translation>
 <translation id="55293785478302737">အစွန်းတွင် အပ်ချည်ဖြင့်ချုပ်ရန်</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index a6e576a04..ad15556 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -804,6 +804,7 @@
 <translation id="4466881336512663640">Hiermee gaan formulierwijzigingen verloren. Weet je zeker dat je wilt doorgaan?</translation>
 <translation id="4477350412780666475">Volgend nummer</translation>
 <translation id="4482953324121162758">Deze site wordt niet vertaald.</translation>
+<translation id="4486757593530038591">Als deze optie is ingeschakeld, kunnen sites je browse-activiteit op verschillende sites niet gebruiken om advertenties te personaliseren. Functies op bepaalde sites werken mogelijk niet meer.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Deze functies zijn standaard uitgeschakeld. Ze zijn niet meer beschikbaar in toekomstige versies van Chrome.</translation>
 <translation id="4493480324863638523">Ongeldige URL. Dit moet een URL met een standaardschema zijn, zoals http://example.com of https://example.com.</translation>
@@ -1040,6 +1041,7 @@
 <translation id="549333378215107354">Grootte 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Beheerde bladwijzers</translation>
+<translation id="5510481203689988000">Deze instelling wordt beheerd in de instellingen voor cookies.</translation>
 <translation id="5510766032865166053">Het bestand is mogelijk verplaatst of verwijderd.</translation>
 <translation id="5523118979700054094">Beleidsnaam</translation>
 <translation id="55293785478302737">Inbinden met nietjes</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index ef8c3f4c..c99eb4d 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -815,6 +815,7 @@
 <translation id="4466881336512663640">Endringer i skjemaet går tapt. Er du sikker på at du vil fortsette?</translation>
 <translation id="4477350412780666475">Neste spor</translation>
 <translation id="4482953324121162758">Dette nettstedet oversettes ikke.</translation>
+<translation id="4486757593530038591">Når dette er påslått, kan ikke nettsteder bruke nettleseraktiviteten din på tvers av ulike nettsteder for å vise deg personlig tilpassede annonser. Det kan hende at funksjonene på enkelte nettsteder slutter å fungere</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Som standard er disse funksjonene avslått. De kommer ikke til å være tilgjengelige i fremtidige versjoner av Chrome.</translation>
 <translation id="4493480324863638523">Ugyldig nettadresse. Dette må være en nettadresse på standardformat, f.eks. http://example.com eller https://example.com.</translation>
@@ -1052,6 +1053,7 @@
 <translation id="549333378215107354">Størrelse 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Administrerte bokmerker</translation>
+<translation id="5510481203689988000">Denne innstillingen styres i innstillinger for informasjonskapsler.</translation>
 <translation id="5510766032865166053">Den kan ha blitt flyttet eller slettet.</translation>
 <translation id="5523118979700054094">Navn på retningslinje</translation>
 <translation id="55293785478302737">Kantstifting</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index a91306c7..c9a3aa71 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -815,6 +815,7 @@
 <translation id="4466881336512663640">Zmiany w formularzu zostaną utracone. Na pewno chcesz kontynuować?</translation>
 <translation id="4477350412780666475">Następny utwór</translation>
 <translation id="4482953324121162758">Ta strona nie będzie tłumaczona.</translation>
+<translation id="4486757593530038591">Gdy to ustawienie jest włączone, witryny nie mogą wykorzystywać Twojej aktywności związanej z przeglądaniem różnych stron do personalizowania reklam. Funkcje niektórych witryn mogą nie działać prawidłowo.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Te funkcje są domyślnie wyłączone. Nie będą dostępne w kolejnych wersjach Chrome.</translation>
 <translation id="4493480324863638523">Nieprawidłowy URL. URL musi być zgodny ze schematem standardowym, np. http://example.com lub https://example.com</translation>
@@ -1052,6 +1053,7 @@
 <translation id="549333378215107354">Rozmiar 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Zakładki zarządzane</translation>
+<translation id="5510481203689988000">Tym ustawieniem zarządza się w ustawieniach plików cookie.</translation>
 <translation id="5510766032865166053">Mógł zostać przeniesiony lub usunięty.</translation>
 <translation id="5523118979700054094">Nazwa zasady</translation>
 <translation id="55293785478302737">Zszywanie wzdłuż krawędzi</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index 0514e21f..b5666d0 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -809,6 +809,7 @@
 <translation id="4466881336512663640">As alterações no formulário serão perdidas. Tem certeza de que quer continuar?</translation>
 <translation id="4477350412780666475">Próxima faixa</translation>
 <translation id="4482953324121162758">Este site não será traduzido.</translation>
+<translation id="4486757593530038591">Quando ativado, os sites não podem usar atividades de navegação entre sites diferentes para personalizar anúncios. Os recursos de alguns sites podem falhar.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Esses recursos são desativados por padrão e não estarão disponíveis em versões futuras do Chrome.</translation>
 <translation id="4493480324863638523">URL inválido. É necessário um URL com um esquema padrão, como http://example.com ou https://example.com.</translation>
@@ -1045,6 +1046,7 @@
 <translation id="549333378215107354">Tamanho 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Favoritos gerenciados</translation>
+<translation id="5510481203689988000">Essa configuração é controlada nas configurações de cookies.</translation>
 <translation id="5510766032865166053">Talvez tenha sido movido ou excluído.</translation>
 <translation id="5523118979700054094">Nome da política</translation>
 <translation id="55293785478302737">Costurar borda</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index 15ffa3a..82adff79 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -815,6 +815,7 @@
 <translation id="4466881336512663640">As alterações ao formulário serão perdidas. Tem a certeza de que pretende continuar?</translation>
 <translation id="4477350412780666475">Faixa seguinte</translation>
 <translation id="4482953324121162758">Este site não será traduzido.</translation>
+<translation id="4486757593530038591">Quando ativada, os sites não podem utilizar a sua atividade de navegação em diferentes sites para personalizar anúncios. As funcionalidades em alguns sites podem falhar.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Estas funcionalidades estão desativadas por predefinição. Não estarão disponíveis em versões futuras do Chrome.</translation>
 <translation id="4493480324863638523">URL inválido. Tem de ser um URL com um esquema padrão, por exemplo, http://example.com ou https://example.com.</translation>
@@ -1052,6 +1053,7 @@
 <translation id="549333378215107354">Tamanho 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Marcadores geridos</translation>
+<translation id="5510481203689988000">Esta definição é controlada nas Definições de cookies.</translation>
 <translation id="5510766032865166053">Pode ter sido movido ou eliminado.</translation>
 <translation id="5523118979700054094">Nome da política</translation>
 <translation id="55293785478302737">Coser extremidade</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb
index 7edf5344..5d817b4e 100644
--- a/components/strings/components_strings_si.xtb
+++ b/components/strings/components_strings_si.xtb
@@ -810,6 +810,7 @@
 <translation id="4466881336512663640">පෝරමයේ වෙනස්කම් අහිමි වෙයි. ඔබට ඉදිරියට යායුතු බව ඔබට තහවුරුද?</translation>
 <translation id="4477350412780666475">ඊළඟ ඛණ්ඩය</translation>
 <translation id="4482953324121162758">මෙම වෙබ් අඩවිය පරිවර්තන නොකෙරේ.</translation>
+<translation id="4486757593530038591">සක්‍රීය වූ විට, දැන්වීම් පුද්ගලායනයට වෙබ් අඩවිවලට විවිධ වෙබ් අඩවි හරහා ඔබේ බ්‍රවුස් කිරීමේ ක්‍රියාකාරකම් භාවිත කළ නොහැක. සමහර වෙබ් අඩවි මත විශේෂාංග කැඩී ගිය හැක.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">මෙම විශේෂාංග පෙරනිමි ලෙස අබල කර ඇත. ඒවා Chrome හි අනාගත අනුවාදවල නොලැබේ.</translation>
 <translation id="4493480324863638523">අවලංගු URL. සම්මත සැලැස්මක් සහිත URL එකක් විය යුතුමයි, උදා: http://example.com හෝ https://example.com.</translation>
@@ -1047,6 +1048,7 @@
 <translation id="549333378215107354">ප්‍රමාණය 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">පාලිත පොත්සලකුණු</translation>
+<translation id="5510481203689988000">මෙම සැකසීම කුකී සැකසීම් තුළ පාලන‌ කෙරේ.</translation>
 <translation id="5510766032865166053">එය ගෙන ගොස් හෝ මකා තිබීමට හැකිය.</translation>
 <translation id="5523118979700054094">ප්‍රතිපත්තියේ නම</translation>
 <translation id="55293785478302737">දාර මැස්ම</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb
index 15afbe6e..e0668c8 100644
--- a/components/strings/components_strings_sk.xtb
+++ b/components/strings/components_strings_sk.xtb
@@ -805,6 +805,7 @@
 <translation id="4466881336512663640">Zmeny formulára sa odstránia. Naozaj chcete pokračovať?</translation>
 <translation id="4477350412780666475">Ďalšia stopa</translation>
 <translation id="4482953324121162758">Tento web nebude preložený.</translation>
+<translation id="4486757593530038591">Keď je táto možnosť zapnutá, weby nemôžu prispôsobovať reklamy na základe vašej aktivity prehliadania na rôznych weboch. Funkcie na niektorých weboch môžu zlyhávať.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Tieto funkcie sú predvolene vypnuté. V budúcich verziách Chromu nebudú k dispozícii.</translation>
 <translation id="4493480324863638523">Neplatná webová adresa. Je nutné použiť webovú adresu so štandardnou schémou, napr. http://example.com alebo https://example.com.</translation>
@@ -1041,6 +1042,7 @@
 <translation id="549333378215107354">Veľkosť 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Spravované záložky</translation>
+<translation id="5510481203689988000">Toto nastavenie je ovládané v rámci nastavení súborov cookie</translation>
 <translation id="5510766032865166053">Mohol byť prenesený alebo odstránený.</translation>
 <translation id="5523118979700054094">Názov pravidla</translation>
 <translation id="55293785478302737">Zošiť hrebeňovou väzbou</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index 732b0f6..7323216 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -815,6 +815,7 @@
 <translation id="4466881336512663640">Промене обрасца се неће сачувати. Желите ли стварно да наставите?</translation>
 <translation id="4477350412780666475">Следећа песма</translation>
 <translation id="4482953324121162758">Овај сајт неће бити преведен.</translation>
+<translation id="4486757593530038591">Када је ово укључено, сајтови не могу да користе активности прегледања на различитим сајтовима за персонализацију огласа. Функције на неким сајтовима могу да престану са радом.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Ове функције су подразумевано онемогућене. Оне неће бити доступне у будућим верзијама Chrome-а.</translation>
 <translation id="4493480324863638523">URL је неважећи. URL мора да има стандардну шему, нпр. http://example.com или https://example.com.</translation>
@@ -1052,6 +1053,7 @@
 <translation id="549333378215107354">Величина 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Обележивачи којим се управља</translation>
+<translation id="5510481203689988000">Ово подешавање се контролише у подешавањима колачића.</translation>
 <translation id="5510766032865166053">Можда је премештен или избрисан.</translation>
 <translation id="5523118979700054094">Назив смерница</translation>
 <translation id="55293785478302737">Спајање ивица шавом</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index 39b27a6..3224c1a5 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -815,6 +815,7 @@
 <translation id="4466881336512663640">Ändringar i formuläret ändras inte. Vill du fortsätta?</translation>
 <translation id="4477350412780666475">Nästa spår</translation>
 <translation id="4482953324121162758">Den här webbplatsen översätts inte.</translation>
+<translation id="4486757593530038591">När detta är aktiverat kan en webbplats inte anpassa annonser utifrån din aktivitet på webben. Funktioner på vissa webbplatser kan sluta fungera.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">De här funktionerna är inaktiverade som standard. I kommande versioner av Chrome kommer de inte längre att vara tillgängliga.</translation>
 <translation id="4493480324863638523">Ogiltig webbadress. Måste vara en webbadress med ett standardprotokoll, t.ex. http://example.com eller https://example.com.</translation>
@@ -1052,6 +1053,7 @@
 <translation id="549333378215107354">Storlek 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Hanterade bokmärken</translation>
+<translation id="5510481203689988000">Den här inställningen styrs i inställningarna för cookies.</translation>
 <translation id="5510766032865166053">Den kan ha flyttats eller tagits bort.</translation>
 <translation id="5523118979700054094">Policynamn</translation>
 <translation id="55293785478302737">Kanthäftning</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index 26b70a3..44e7897a 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -813,6 +813,7 @@
 <translation id="4466881336512663640">Haitahifadhi mabadiliko uliyofanya kwenye fomu. Je, una uhakika unataka kuendelea?</translation>
 <translation id="4477350412780666475">Wimbo Unaofuata</translation>
 <translation id="4482953324121162758">Haitatafsiri tovuti hii.</translation>
+<translation id="4486757593530038591">Ukiwasha, tovuti haziwezi kutumia shughuli zako za kuvinjari kwenye tovuti tofauti ili kukuonyesha matangazo yanayokufaa zaidi. Huenda vipengele kwenye baadhi ya tovuti vikakosa kufanya kazi.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Vipengele hivi vimezimwa kwa chaguomsingi. Havitapatikana katika matoleo yajayo ya Chrome.</translation>
 <translation id="4493480324863638523">URL si sahihi. Lazima iwe URL yenye mfumo wa kawaida, k.m. http://example.com or https://example.com.</translation>
@@ -1049,6 +1050,7 @@
 <translation id="549333378215107354">Ukubwa wa 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Alamisho zinazosimamiwa</translation>
+<translation id="5510481203689988000">Mipangilio hii inadhibitiwa katika mipangilio ya Vidakuzi.</translation>
 <translation id="5510766032865166053">Huenda imehamishwa au imefutwa.</translation>
 <translation id="5523118979700054094">Jina la sera</translation>
 <translation id="55293785478302737">Mshono wa ncha</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index cf6040bd..2b1dbba0 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -309,6 +309,7 @@
 <translation id="2289385804009217824">டிரிம்</translation>
 <translation id="2292556288342944218">உங்கள் இணைய அணுகல் தடுக்கப்பட்டது</translation>
 <translation id="2297722699537546652">B5 (என்வலப்)</translation>
+<translation id="2300306941146563769">பதிவேற்றப்படவில்லை</translation>
 <translation id="2310021320168182093">Chou2 (என்வலப்)</translation>
 <translation id="2315864634253056100">இந்தத் தளத்தின் பெயரும் <ph name="LOOKALIKE_DOMAIN" /> என்ற தளத்தின் பெயரும் ஒரே மாதிரியாக இருப்பது போல் தெரிகிறது. தீங்கிழைப்பவர்கள் சில நேரங்களில் கண்டுபிடிக்கவே முடியாத அளவிற்கு வலை முகவரியை சிறிது மாற்றி போலியான தளங்களை உருவாக்குவார்கள்.</translation>
 <translation id="2316887270356262533">1 மெ.பை. அளவிற்கும் குறைவான இடத்தைக் காலியாக்கும். நீங்கள் அடுத்த முறை பார்வையிடும் போது, சில தளங்கள் மிகவும் மெதுவாக ஏற்றப்படலாம்.</translation>
@@ -432,6 +433,7 @@
 <translation id="2909946352844186028">நெட்வொர்க் மாற்றம் கண்டறியப்பட்டது.</translation>
 <translation id="2910133103376701357">உங்கள் சாதனத்தையும் கணக்கையும் நிர்வகிப்பது: <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="2911973620368911614">பணிக் கணக்கு தொடர்பான பயனர் ஐடி</translation>
+<translation id="2915068235268646559">சிதைவு அறிக்கை பெறப்பட்ட நேரம்: <ph name="CRASH_TIME" /></translation>
 <translation id="2916038427272391327">பிற நிரல்களை மூடவும்</translation>
 <translation id="2922350208395188000">சேவையகச் சான்றிதழை சோதிக்க முடியவில்லை.</translation>
 <translation id="2925673989565098301">டெலிவரி முறை</translation>
@@ -440,6 +442,7 @@
 <translation id="2930577230479659665">டிரிம் ஆஃப்டர் ஈச் காப்பி</translation>
 <translation id="2934466151127459956">Government-Letter</translation>
 <translation id="2941952326391522266">இது <ph name="DOMAIN" /> தான் என்பதை இந்தச் சேவையகம் உறுதிப்படுத்தவில்லை; இதன் பாதுகாப்புச் சான்றிதழ் <ph name="DOMAIN2" /> இலிருந்து பெறப்பட்டது. இது தவறான உள்ளமைவால் ஏற்பட்டிருக்கலாம் அல்லது தீங்கிழைப்பவர் உங்கள் இணைப்பில் குறுக்கிட்டிருக்கலாம்.</translation>
+<translation id="2943895734390379394">பதிவேற்ற நேரம்:</translation>
 <translation id="2948083400971632585">இணைப்பிற்காக உள்ளமைத்த எந்த பிராக்சிகளையும் நீங்கள் அமைப்புகள் பக்கத்திலிருந்து முடக்கலாம்.</translation>
 <translation id="2951588413176968965">எனது அஞ்சல் பெட்டி</translation>
 <translation id="295526156371527179">எச்சரிக்கை: இது டிக்‌ஷனரி இல்லை என்பதால் கொள்கையில் குறிப்பிட்டபடி ஒன்றிணைக்கப்படவில்லை.</translation>
@@ -1061,6 +1064,7 @@
 <translation id="563324245173044180">ஏமாற்றத்தக்க உள்ளடக்கம் தடுக்கப்பட்டது.</translation>
 <translation id="5644090287519800334">சைடு 1 இமேஜ் X ஷிஃப்ட்</translation>
 <translation id="5645854190134202180">இரண்டாம் ஷிஃப்ட்</translation>
+<translation id="5654927323611874862">பதிவேற்றப்பட்ட சிதைவு அறிக்கை ஐடி:</translation>
 <translation id="5659593005791499971">மின்னஞ்சல்</translation>
 <translation id="5663614846592581799">9x11 (என்வலப்)</translation>
 <translation id="5663955426505430495">கூடுதல் செயல்பாடுகளுக்காக இந்தச் சாதனத்தின் நிர்வாகி சில நீட்டிப்புகளை நிறுவியுள்ளார். உங்கள் தரவில் சிலவற்றை இந்த நீட்டிப்புகள் அணுகும்.</translation>
@@ -1366,6 +1370,7 @@
 <translation id="7079718277001814089">இந்தத் தளத்தில் மால்வேர் உள்ளது</translation>
 <translation id="7081308185095828845">உங்கள் சாதனத்தில் இந்த அம்சம் இல்லை</translation>
 <translation id="7083258188081898530">தட்டு 9</translation>
+<translation id="7086090958708083563">பயனர் கோரிய பதிவேற்றம்</translation>
 <translation id="7087282848513945231">மாகாணம்</translation>
 <translation id="7090678807593890770">Googleளில் <ph name="LINK" />ஐத் தேடவும்</translation>
 <translation id="7108338896283013870">மறை</translation>
@@ -1527,6 +1532,7 @@
 <translation id="7704050614460855821"><ph name="BEGIN_LINK" /><ph name="SITE" /> (பாதுகாப்பற்ற தளம்) க்குச் செல்லவும்<ph name="END_LINK" /></translation>
 <translation id="7714464543167945231">சான்றிதழ்</translation>
 <translation id="7716147886133743102">உங்கள் நிர்வாகி தடுத்துள்ளார்</translation>
+<translation id="7716375162095500223">புறக்கணிக்கப்பட்டது அல்லது இன்னும் புதுப்பிக்கப்படவில்லை</translation>
 <translation id="7716424297397655342">தற்காலிகச் சேமிப்பிலிருந்து இந்தத் தளத்தை ஏற்ற முடியவில்லை</translation>
 <translation id="7723047071702270851">கார்டைத் திருத்தவும்</translation>
 <translation id="7740996059027112821">நிலையானது</translation>
@@ -1671,6 +1677,7 @@
 <translation id="8340095855084055290"><ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
 <translation id="834457929814110454">உங்கள் பாதுகாப்பிற்கான ஆபத்தைப் புரிந்துகொண்டால், தீங்கான நிரல்களை அகற்றும் முன் <ph name="BEGIN_LINK" />இந்தத் தளத்தைப் பார்வையிடலாம்<ph name="END_LINK" />.</translation>
 <translation id="8349305172487531364">புக்மார்க் பட்டி</translation>
+<translation id="8355270400102541638">அகச் சிதைவுச் சூழல்:</translation>
 <translation id="8363502534493474904">விமானப் பயன்முறையை முடக்குதல்</translation>
 <translation id="8364627913115013041">அமைக்கப்படவில்லை.</translation>
 <translation id="8368476060205742148">Google Play சேவைகள்</translation>
@@ -1691,6 +1698,7 @@
 <translation id="8461694314515752532">ஒத்திசைக்கப்பட்ட தரவை எனது ஒத்திசைவுக் கடவுச்சொற்றொடர் மூலம் என்கிரிப்ட் செய்</translation>
 <translation id="8466379296835108687">{COUNT,plural, =1{1 கிரெடிட் கார்டு}other{# கிரெடிட் கார்டுகள்}}</translation>
 <translation id="8473863474539038330">முகவரிகள் மற்றும் பல</translation>
+<translation id="8474910779563686872">டெவெலப்பர் விவரங்களைக் காட்டு</translation>
 <translation id="8479754468255770962">ஸ்டேப்பில் பாட்டம் லெஃப்ட்</translation>
 <translation id="8483780878231876732">Google கணக்கில் உள்ள கார்டுகளைப் பயன்படுத்த, Chromeமில் உள்நுழையவும்</translation>
 <translation id="8488350697529856933">இதற்குப் பொருந்தும்</translation>
@@ -1816,6 +1824,7 @@
 இந்த முறை <ph name="SITE" /> உடன் இணைவதற்கு Chromium முயற்சித்தபோது வழக்கத்திற்கு மாறான, தவறான நற்சான்றிதழ்களை இணையதளம் வழங்கியது. தாக்குபவர் தன்னை <ph name="SITE" /> ஆகக் காட்ட முயற்சிக்கும் போது அல்லது இணைப்பை வைஃபை உள்நுழைவுத் திரை குறுக்கிடும் போது இது ஏற்படலாம். இருப்பினும், தரவு எதுவும் பரிமாற்றப்படுவதற்கு முன் Chromium இணைப்பை நிறுத்தியதால் உங்கள் தகவல் பாதுகாப்பாகவே இருக்கிறது.</translation>
 <translation id="9106062320799175032">பில்லிங் முகவரியைச் சேர்க்கவும்</translation>
 <translation id="9114524666733003316">கார்டை உறுதிசெய்கிறது...</translation>
+<translation id="9119042192571987207">பதிவேற்றப்பட்டது</translation>
 <translation id="9128870381267983090">நெட்வொர்க்குடன் இணையவும்</translation>
 <translation id="9137013805542155359">அசலைக் காண்பி</translation>
 <translation id="9141013498910525015">முகவரிகளை நிர்வகி</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb
index 25fd0c5..185be0a49 100644
--- a/components/strings/components_strings_zh-HK.xtb
+++ b/components/strings/components_strings_zh-HK.xtb
@@ -807,6 +807,7 @@
 <translation id="4466881336512663640">您對表單所作的變更將會遺失。您確定要繼續嗎?</translation>
 <translation id="4477350412780666475">下一首曲目</translation>
 <translation id="4482953324121162758">系統不會翻譯此網站。</translation>
+<translation id="4486757593530038591">開啟這項功能時,網站不會根據你在各網站的瀏覽活動放送個人化廣告。某些網站的功能可能會無法正常運作。</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">這些功能預設為停用。日後發佈的 Chrome 版本將不再提供這些功能。</translation>
 <translation id="4493480324863638523">網址無效。必須為有標準配置的網址,例如 http://example.com 或 https://example.com。</translation>
@@ -1043,6 +1044,7 @@
 <translation id="549333378215107354">粗幼:3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">受管理書籤</translation>
+<translation id="5510481203689988000">你可以在 Cookie 設定中控管這項設定。</translation>
 <translation id="5510766032865166053">此檔案可能已被移動或刪除。</translation>
 <translation id="5523118979700054094">政策名稱</translation>
 <translation id="55293785478302737">邊緣釘裝</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index 011ffb2..65e71c2 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -809,6 +809,7 @@
 <translation id="4466881336512663640">你對表單所做變更將會遺失。確定要繼續嗎?</translation>
 <translation id="4477350412780666475">下一首曲目</translation>
 <translation id="4482953324121162758">系統不會翻譯這個網站。</translation>
+<translation id="4486757593530038591">開啟這項功能時,網站不會根據你在各網站的瀏覽活動放送個人化廣告。某些網站的功能可能會無法正常運作。</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">這些功能預設為停用。日後發布的 Chrome 版本將不再提供這些功能。</translation>
 <translation id="4493480324863638523">網址無效。網址必須採用標準架構,例如 http://example.com 或 https://example.com。</translation>
@@ -1045,6 +1046,7 @@
 <translation id="549333378215107354">粗細:3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">受管理書籤</translation>
+<translation id="5510481203689988000">你可以在 Cookie 設定中控管這項設定。</translation>
 <translation id="5510766032865166053">檔案可能已移至其他位置或遭到刪除。</translation>
 <translation id="5523118979700054094">政策名稱</translation>
 <translation id="55293785478302737">邊緣裝訂</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
index 3a319331..1dab468f 100644
--- a/components/strings/components_strings_zu.xtb
+++ b/components/strings/components_strings_zu.xtb
@@ -812,6 +812,7 @@
 <translation id="4466881336512663640">Izinguquko zefomu zizolahleka. Ingabe uqinisekile ukuthi ufuna ukuqhubeka?</translation>
 <translation id="4477350412780666475">Ithrekhi elandelayo</translation>
 <translation id="4482953324121162758">Leli sayithi ngeke lihunyushwe.</translation>
+<translation id="4486757593530038591">Uma kuvuliwe, amasayithi awakwazi ukusebenzisa umsebenzi wokuphequlula kuwo wonke amasayithi ahlukahlukene ukwenza ngezifiso izikhangiso. Izici ezikwamanye amasayithi zingase zinqamuke.</translation>
 <translation id="4490717597759821841">A7</translation>
 <translation id="4492519888999857993">Lezi zici zikhutshazwe ngokuzenzakalela. Ngeke zize zitholakale kuzinguqulo ezizayo ze-Chrome.</translation>
 <translation id="4493480324863638523">I-URLengavumelekile. Kumele kube i-URL ene-schema esijwayelekile, isb. i-http://example.com noma i-https://example.com.</translation>
@@ -1049,6 +1050,7 @@
 <translation id="549333378215107354">Usayizi 3</translation>
 <translation id="5509762909502811065">B0</translation>
 <translation id="5509780412636533143">Amabhukhimakhi aphethwe</translation>
+<translation id="5510481203689988000">Lesi silungiselelo silawulwa kuzilungiselelo zamakhukhi.</translation>
 <translation id="5510766032865166053">Kungenzeka ihanjisiwe noma isusiwe.</translation>
 <translation id="5523118979700054094">Igama le nqubomgomo</translation>
 <translation id="55293785478302737">Ukuthunga umphetho</translation>
diff --git a/components/sync/driver/profile_sync_service.cc b/components/sync/driver/profile_sync_service.cc
index a243e9f..fa90b203 100644
--- a/components/sync/driver/profile_sync_service.cc
+++ b/components/sync/driver/profile_sync_service.cc
@@ -80,6 +80,21 @@
   SYNC_INITIAL_STATE_LIMIT
 };
 
+// These values are persisted to logs. Entries should not be renumbered and
+// numeric values should never be reused. When adding values, be certain to also
+// update the corresponding definition in enums.xml.
+enum class LocalSyncTransportDataStartupState {
+  kValidData = 0,
+  kEmptyCacheGuid = 1,
+  kEmptyBirthday = 2,
+  kGaiaIdMismatch = 3,
+  kMaxValue = kGaiaIdMismatch
+};
+
+void LogSyncTransportDataState(LocalSyncTransportDataStartupState status) {
+  UMA_HISTOGRAM_ENUMERATION("Sync.LocalSyncTransportDataStartupState", status);
+}
+
 void RecordSyncInitialState(SyncService::DisableReasonSet disable_reasons,
                             bool first_setup_complete) {
   SyncInitialState sync_state = CAN_START;
@@ -169,6 +184,8 @@
   // ShutdownReason::DISABLE_SYNC. Let's return false here anyway to make sure
   // all prefs are cleared and a new random cache GUID generated.
   if (sync_prefs.GetCacheGuid().empty()) {
+    LogSyncTransportDataState(
+        LocalSyncTransportDataStartupState::kEmptyCacheGuid);
     return false;
   }
 
@@ -179,6 +196,8 @@
   // protocol violations (fetching updates requires that the request either has
   // a birthday, or there should be no progress marker).
   if (sync_prefs.GetBirthday().empty()) {
+    LogSyncTransportDataState(
+        LocalSyncTransportDataStartupState::kEmptyBirthday);
     return false;
   }
 
@@ -187,10 +206,13 @@
   // (IsLocalSyncEnabled()), the authenticated account is always empty.
   if (sync_prefs.GetGaiaId() != core_account_info.gaia) {
     DLOG(WARNING) << "Found mismatching gaia ID in sync preferences";
+    LogSyncTransportDataState(
+        LocalSyncTransportDataStartupState::kGaiaIdMismatch);
     return false;
   }
 
   // All good: local sync data looks initialized and valid.
+  LogSyncTransportDataState(LocalSyncTransportDataStartupState::kValidData);
   return true;
 }
 
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 502e47f..e10cad9 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -869,6 +869,8 @@
     "frame_host/cross_process_frame_connector.h",
     "frame_host/debug_urls.cc",
     "frame_host/debug_urls.h",
+    "frame_host/file_chooser_impl.cc",
+    "frame_host/file_chooser_impl.h",
     "frame_host/form_submission_throttle.cc",
     "frame_host/form_submission_throttle.h",
     "frame_host/frame_navigation_entry.cc",
@@ -1057,6 +1059,8 @@
     "indexed_db/indexed_db_value.cc",
     "indexed_db/indexed_db_value.h",
     "indexed_db/list_set.h",
+    "indexed_db/mock_browsertest_indexed_db_class_factory.cc",
+    "indexed_db/mock_browsertest_indexed_db_class_factory.h",
     "indexed_db/transaction_impl.cc",
     "indexed_db/transaction_impl.h",
     "initiator_csp_context.cc",
diff --git a/content/browser/bluetooth/web_bluetooth_service_impl.cc b/content/browser/bluetooth/web_bluetooth_service_impl.cc
index 0bdcae4b..f37ee42 100644
--- a/content/browser/bluetooth/web_bluetooth_service_impl.cc
+++ b/content/browser/bluetooth/web_bluetooth_service_impl.cc
@@ -705,6 +705,25 @@
   RequestDeviceImpl(std::move(options), std::move(callback), GetAdapter());
 }
 
+void WebBluetoothServiceImpl::GetDevices(GetDevicesCallback callback) {
+  if (GetBluetoothAllowed() != blink::mojom::WebBluetoothResult::SUCCESS ||
+      !BluetoothAdapterFactoryWrapper::Get().IsLowEnergySupported()) {
+    std::move(callback).Run({});
+    return;
+  }
+
+  auto* adapter = GetAdapter();
+  if (adapter) {
+    GetDevicesImpl(std::move(callback), adapter);
+    return;
+  }
+
+  BluetoothAdapterFactoryWrapper::Get().AcquireAdapter(
+      this,
+      base::BindOnce(&WebBluetoothServiceImpl::GetDevicesImpl,
+                     weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
+}
+
 void WebBluetoothServiceImpl::RemoteServerConnect(
     const blink::WebBluetoothDeviceId& device_id,
     mojo::PendingAssociatedRemote<blink::mojom::WebBluetoothServerClient>
@@ -1421,6 +1440,38 @@
                      weak_ptr_factory_.GetWeakPtr(), copyable_callback));
 }
 
+void WebBluetoothServiceImpl::GetDevicesImpl(
+    GetDevicesCallback callback,
+    scoped_refptr<device::BluetoothAdapter> adapter) {
+  if (base::FeatureList::IsEnabled(
+          features::kWebBluetoothNewPermissionsBackend)) {
+    BluetoothDelegate* delegate =
+        GetContentClient()->browser()->GetBluetoothDelegate();
+    if (!delegate) {
+      std::move(callback).Run({});
+      return;
+    }
+
+    std::move(callback).Run(delegate->GetPermittedDevices(render_frame_host_));
+    return;
+  }
+
+  // BluetoothAllowedDevices does not provide a way to get all of the permitted
+  // devices, so instead return all of the allowed devices that are currently
+  // known to the system.
+  std::vector<blink::mojom::WebBluetoothDevicePtr> web_bluetooth_devices;
+  for (const auto* device : adapter->GetDevices()) {
+    const blink::WebBluetoothDeviceId* device_id =
+        allowed_devices().GetDeviceId(device->GetAddress());
+    if (!device_id || !allowed_devices().IsAllowedToGATTConnect(*device_id))
+      continue;
+
+    web_bluetooth_devices.push_back(
+        blink::mojom::WebBluetoothDevice::New(*device_id, device->GetName()));
+  }
+  std::move(callback).Run(std::move(web_bluetooth_devices));
+}
+
 void WebBluetoothServiceImpl::RemoteServerGetPrimaryServicesImpl(
     const blink::WebBluetoothDeviceId& device_id,
     blink::mojom::WebBluetoothGATTQueryQuantity quantity,
diff --git a/content/browser/bluetooth/web_bluetooth_service_impl.h b/content/browser/bluetooth/web_bluetooth_service_impl.h
index c81d0579..94b68ae 100644
--- a/content/browser/bluetooth/web_bluetooth_service_impl.h
+++ b/content/browser/bluetooth/web_bluetooth_service_impl.h
@@ -7,6 +7,7 @@
 
 #include <memory>
 #include <string>
+#include <unordered_map>
 #include <vector>
 
 #include "base/gtest_prod_util.h"
@@ -196,6 +197,7 @@
   void GetAvailability(GetAvailabilityCallback callback) override;
   void RequestDevice(blink::mojom::WebBluetoothRequestDeviceOptionsPtr options,
                      RequestDeviceCallback callback) override;
+  void GetDevices(GetDevicesCallback callback) override;
   void RemoteServerConnect(
       const blink::WebBluetoothDeviceId& device_id,
       mojo::PendingAssociatedRemote<blink::mojom::WebBluetoothServerClient>
@@ -251,6 +253,9 @@
       RequestDeviceCallback callback,
       scoped_refptr<device::BluetoothAdapter> adapter);
 
+  void GetDevicesImpl(GetDevicesCallback callback,
+                      scoped_refptr<device::BluetoothAdapter> adapter);
+
   void RequestScanningStartImpl(
       mojo::AssociatedRemote<blink::mojom::WebBluetoothScanClient> client,
       blink::mojom::WebBluetoothRequestLEScanOptionsPtr options,
diff --git a/content/browser/browser_plugin/browser_plugin_embedder.cc b/content/browser/browser_plugin/browser_plugin_embedder.cc
index 50a3bcc..5e6c510 100644
--- a/content/browser/browser_plugin/browser_plugin_embedder.cc
+++ b/content/browser/browser_plugin/browser_plugin_embedder.cc
@@ -159,7 +159,8 @@
   *mouse_unlocked |= static_cast<WebContentsImpl*>(guest)
                          ->GetBrowserPluginGuest()
                          ->mouse_locked();
-  guest->GotResponseToLockMouseRequest(false);
+  guest->GotResponseToLockMouseRequest(
+      blink::mojom::PointerLockResult::kUserRejected);
 
   // Returns false to iterate over all guests.
   return false;
diff --git a/content/browser/browser_plugin/browser_plugin_guest.cc b/content/browser/browser_plugin/browser_plugin_guest.cc
index 138b91e..6eb5400 100644
--- a/content/browser/browser_plugin/browser_plugin_guest.cc
+++ b/content/browser/browser_plugin/browser_plugin_guest.cc
@@ -151,13 +151,6 @@
   SendTextInputTypeChangedToView(rwhv);
 }
 
-bool BrowserPluginGuest::LockMouse(bool allowed) {
-  if (!attached() || (mouse_locked_ == allowed))
-    return false;
-
-  return embedder_web_contents()->GotResponseToLockMouseRequest(allowed);
-}
-
 WebContentsImpl* BrowserPluginGuest::CreateNewGuestWindow(
     const WebContents::CreateParams& params) {
   WebContentsImpl* new_contents =
diff --git a/content/browser/browser_plugin/browser_plugin_guest.h b/content/browser/browser_plugin/browser_plugin_guest.h
index f9b9625..92be1fe 100644
--- a/content/browser/browser_plugin/browser_plugin_guest.h
+++ b/content/browser/browser_plugin/browser_plugin_guest.h
@@ -133,10 +133,6 @@
                 bool focused,
                 blink::mojom::FocusType focus_type);
 
-  // Sets the lock state of the pointer. Returns true if |allowed| is true and
-  // the mouse has been successfully locked.
-  bool LockMouse(bool allowed);
-
   // Return true if the mouse is locked.
   bool mouse_locked() const { return mouse_locked_; }
 
diff --git a/content/browser/cache_storage/cache_storage_scheduler.cc b/content/browser/cache_storage/cache_storage_scheduler.cc
index cc20f191..64dbc0d 100644
--- a/content/browser/cache_storage/cache_storage_scheduler.cc
+++ b/content/browser/cache_storage/cache_storage_scheduler.cc
@@ -25,13 +25,7 @@
 // Maximum parallel shared operations.  This constant was selected via
 // experimentation.  We tried 4, 16, and 64 for the limit.  16 was clearly
 // better than 4, but 64 was did not provide significant further benefit.
-// TODO(crbug/1007994): Enable parallel shared operations on android after
-//                      performance regressions are addressed.
-#if defined(OS_ANDROID)
-constexpr int kDefaultMaxSharedOps = 1;
-#else
 constexpr int kDefaultMaxSharedOps = 16;
-#endif
 
 const base::FeatureParam<int> kCacheStorageMaxSharedOps{
     &features::kCacheStorageParallelOps, "max_shared_ops",
diff --git a/content/browser/frame_host/cross_process_frame_connector.cc b/content/browser/frame_host/cross_process_frame_connector.cc
index 20e9ced..7da142a 100644
--- a/content/browser/frame_host/cross_process_frame_connector.cc
+++ b/content/browser/frame_host/cross_process_frame_connector.cc
@@ -25,7 +25,6 @@
 #include "gpu/ipc/common/gpu_messages.h"
 #include "third_party/blink/public/common/input/web_input_event.h"
 #include "third_party/blink/public/mojom/frame/intrinsic_sizing_info.mojom.h"
-#include "ui/base/ui_base_switches_util.h"
 #include "ui/gfx/geometry/dip_util.h"
 
 namespace content {
@@ -265,11 +264,12 @@
     root_view->Focus();
 }
 
-bool CrossProcessFrameConnector::LockMouse(bool request_unadjusted_movement) {
+blink::mojom::PointerLockResult CrossProcessFrameConnector::LockMouse(
+    bool request_unadjusted_movement) {
   RenderWidgetHostViewBase* root_view = GetRootRenderWidgetHostView();
   if (root_view)
     return root_view->LockMouse(request_unadjusted_movement);
-  return false;
+  return blink::mojom::PointerLockResult::kWrongDocument;
 }
 
 void CrossProcessFrameConnector::UnlockMouse() {
diff --git a/content/browser/frame_host/cross_process_frame_connector.h b/content/browser/frame_host/cross_process_frame_connector.h
index 146d368a..0d43d56 100644
--- a/content/browser/frame_host/cross_process_frame_connector.h
+++ b/content/browser/frame_host/cross_process_frame_connector.h
@@ -96,7 +96,8 @@
   bool BubbleScrollEvent(const blink::WebGestureEvent& event) override;
   bool HasFocus() override;
   void FocusRootView() override;
-  bool LockMouse(bool request_unadjusted_movement) override;
+  blink::mojom::PointerLockResult LockMouse(
+      bool request_unadjusted_movement) override;
   void UnlockMouse() override;
   void EnableAutoResize(const gfx::Size& min_size,
                         const gfx::Size& max_size) override;
diff --git a/content/browser/frame_host/file_chooser_impl.cc b/content/browser/frame_host/file_chooser_impl.cc
new file mode 100644
index 0000000..4660d3c
--- /dev/null
+++ b/content/browser/frame_host/file_chooser_impl.cc
@@ -0,0 +1,193 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/frame_host/file_chooser_impl.h"
+
+#include "content/browser/child_process_security_policy_impl.h"
+#include "content/browser/frame_host/render_frame_host_delegate.h"
+#include "content/browser/frame_host/render_frame_host_impl.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/storage_partition.h"
+#include "mojo/public/cpp/bindings/self_owned_receiver.h"
+
+namespace content {
+
+FileChooserImpl::FileSelectListenerImpl::~FileSelectListenerImpl() {
+#if DCHECK_IS_ON()
+  DCHECK(was_file_select_listener_function_called_)
+      << "Must call either FileSelectListener::FileSelected() or "
+         "FileSelectListener::FileSelectionCanceled()";
+  // TODO(avi): Turn on the DCHECK on the following line. This cannot yet be
+  // done because I can't say for sure that I know who all the callers who bind
+  // blink::mojom::FileChooser are. https://crbug.com/1054811
+  /* DCHECK(was_fullscreen_block_set_) << "The fullscreen block was not set"; */
+#endif
+  if (owner_)
+    owner_->ResetListenerImpl();
+}
+
+void FileChooserImpl::FileSelectListenerImpl::SetFullscreenBlock(
+    base::ScopedClosureRunner fullscreen_block) {
+#if DCHECK_IS_ON()
+  DCHECK(!was_fullscreen_block_set_)
+      << "Fullscreen block must only be set once";
+  was_fullscreen_block_set_ = true;
+#endif
+  fullscreen_block_ = std::move(fullscreen_block);
+}
+
+void FileChooserImpl::FileSelectListenerImpl::FileSelected(
+    std::vector<blink::mojom::FileChooserFileInfoPtr> files,
+    const base::FilePath& base_dir,
+    blink::mojom::FileChooserParams::Mode mode) {
+#if DCHECK_IS_ON()
+  DCHECK(!was_file_select_listener_function_called_)
+      << "Must not call both of FileSelectListener::FileSelected() and "
+         "FileSelectListener::FileSelectionCanceled()";
+  was_file_select_listener_function_called_ = true;
+#endif
+  if (owner_)
+    owner_->FileSelected(std::move(files), base_dir, mode);
+}
+
+void FileChooserImpl::FileSelectListenerImpl::FileSelectionCanceled() {
+#if DCHECK_IS_ON()
+  DCHECK(!was_file_select_listener_function_called_)
+      << "Should not call both of FileSelectListener::FileSelected() and "
+         "FileSelectListener::FileSelectionCanceled()";
+  was_file_select_listener_function_called_ = true;
+#endif
+  if (owner_)
+    owner_->FileSelectionCanceled();
+}
+
+void FileChooserImpl::FileSelectListenerImpl::
+    SetListenerFunctionCalledTrueForTesting() {
+#if DCHECK_IS_ON()
+  was_file_select_listener_function_called_ = true;
+#endif
+}
+
+// static
+void FileChooserImpl::Create(
+    RenderFrameHostImpl* render_frame_host,
+    mojo::PendingReceiver<blink::mojom::FileChooser> receiver) {
+  mojo::MakeSelfOwnedReceiver(
+      std::make_unique<FileChooserImpl>(render_frame_host),
+      std::move(receiver));
+}
+
+FileChooserImpl::FileChooserImpl(RenderFrameHostImpl* render_frame_host)
+    : render_frame_host_(render_frame_host) {
+  Observe(WebContents::FromRenderFrameHost(render_frame_host));
+}
+
+FileChooserImpl::~FileChooserImpl() {
+  if (listener_impl_)
+    listener_impl_->ResetOwner();
+}
+
+void FileChooserImpl::OpenFileChooser(blink::mojom::FileChooserParamsPtr params,
+                                      OpenFileChooserCallback callback) {
+  if (listener_impl_ || !render_frame_host_) {
+    std::move(callback).Run(nullptr);
+    return;
+  }
+  callback_ = std::move(callback);
+  auto listener = std::make_unique<FileSelectListenerImpl>(this);
+  listener_impl_ = listener.get();
+  // Do not allow messages with absolute paths in them as this can permit a
+  // renderer to coerce the browser to perform I/O on a renderer controlled
+  // path.
+  if (params->default_file_name != params->default_file_name.BaseName()) {
+    mojo::ReportBadMessage(
+        "FileChooser: The default file name must not be an absolute path.");
+    listener->FileSelectionCanceled();
+    return;
+  }
+  render_frame_host_->delegate()->RunFileChooser(render_frame_host_,
+                                                 std::move(listener), *params);
+}
+
+void FileChooserImpl::EnumerateChosenDirectory(
+    const base::FilePath& directory_path,
+    EnumerateChosenDirectoryCallback callback) {
+  if (listener_impl_ || !render_frame_host_) {
+    std::move(callback).Run(nullptr);
+    return;
+  }
+  callback_ = std::move(callback);
+  auto listener = std::make_unique<FileSelectListenerImpl>(this);
+  listener_impl_ = listener.get();
+  auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
+  if (policy->CanReadFile(render_frame_host_->GetProcess()->GetID(),
+                          directory_path)) {
+    render_frame_host_->delegate()->EnumerateDirectory(
+        render_frame_host_, std::move(listener), directory_path);
+  } else {
+    listener->FileSelectionCanceled();
+  }
+}
+
+void FileChooserImpl::FileSelected(
+    std::vector<blink::mojom::FileChooserFileInfoPtr> files,
+    const base::FilePath& base_dir,
+    blink::mojom::FileChooserParams::Mode mode) {
+  listener_impl_ = nullptr;
+  if (!render_frame_host_)
+    return;
+  storage::FileSystemContext* file_system_context = nullptr;
+  const int pid = render_frame_host_->GetProcess()->GetID();
+  auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
+  // Grant the security access requested to the given files.
+  for (const auto& file : files) {
+    if (mode == blink::mojom::FileChooserParams::Mode::kSave) {
+      policy->GrantCreateReadWriteFile(pid, file->get_native_file()->file_path);
+    } else {
+      if (file->is_file_system()) {
+        if (!file_system_context) {
+          file_system_context =
+              BrowserContext::GetStoragePartition(
+                  render_frame_host_->GetProcess()->GetBrowserContext(),
+                  render_frame_host_->GetSiteInstance())
+                  ->GetFileSystemContext();
+        }
+        policy->GrantReadFileSystem(
+            pid, file_system_context->CrackURL(file->get_file_system()->url)
+                     .mount_filesystem_id());
+      } else {
+        policy->GrantReadFile(pid, file->get_native_file()->file_path);
+      }
+    }
+  }
+  std::move(callback_).Run(FileChooserResult::New(std::move(files), base_dir));
+}
+
+void FileChooserImpl::FileSelectionCanceled() {
+  listener_impl_ = nullptr;
+  if (!render_frame_host_)
+    return;
+  std::move(callback_).Run(nullptr);
+}
+
+void FileChooserImpl::ResetListenerImpl() {
+  listener_impl_ = nullptr;
+}
+
+void FileChooserImpl::RenderFrameHostChanged(RenderFrameHost* old_host,
+                                             RenderFrameHost* new_host) {
+  if (old_host == render_frame_host_)
+    render_frame_host_ = nullptr;
+}
+
+void FileChooserImpl::RenderFrameDeleted(RenderFrameHost* render_frame_host) {
+  if (render_frame_host == render_frame_host_)
+    render_frame_host_ = nullptr;
+}
+
+void FileChooserImpl::WebContentsDestroyed() {
+  render_frame_host_ = nullptr;
+}
+
+}  // namespace content
diff --git a/content/browser/frame_host/file_chooser_impl.h b/content/browser/frame_host/file_chooser_impl.h
new file mode 100644
index 0000000..223364352
--- /dev/null
+++ b/content/browser/frame_host/file_chooser_impl.h
@@ -0,0 +1,96 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_FRAME_HOST_FILE_CHOOSER_IMPL_H_
+#define CONTENT_BROWSER_FRAME_HOST_FILE_CHOOSER_IMPL_H_
+
+#include "base/callback_helpers.h"
+#include "content/common/content_export.h"
+#include "content/public/browser/file_select_listener.h"
+#include "content/public/browser/web_contents_observer.h"
+#include "third_party/blink/public/mojom/choosers/file_chooser.mojom.h"
+
+namespace content {
+
+class RenderFrameHostImpl;
+
+// An implementation of blink::mojom::FileChooser and FileSelectListener
+// associated to RenderFrameHost.
+class CONTENT_EXPORT FileChooserImpl : public blink::mojom::FileChooser,
+                                       public content::WebContentsObserver {
+  using FileChooserResult = blink::mojom::FileChooserResult;
+
+ public:
+  class CONTENT_EXPORT FileSelectListenerImpl
+      : public content::FileSelectListener {
+   public:
+    explicit FileSelectListenerImpl(FileChooserImpl* owner) : owner_(owner) {}
+    ~FileSelectListenerImpl() override;
+    void SetFullscreenBlock(base::ScopedClosureRunner fullscreen_block);
+    void ResetOwner() { owner_ = nullptr; }
+
+    // FileSelectListener overrides:
+
+    void FileSelected(std::vector<blink::mojom::FileChooserFileInfoPtr> files,
+                      const base::FilePath& base_dir,
+                      blink::mojom::FileChooserParams::Mode mode) override;
+
+    void FileSelectionCanceled() override;
+
+   protected:
+    // This sets |was_file_select_listener_function_called_| to true so that
+    // tests can pass with mocked overrides of this class.
+    void SetListenerFunctionCalledTrueForTesting();
+
+   private:
+    FileChooserImpl* owner_;
+    base::ScopedClosureRunner fullscreen_block_;
+#if DCHECK_IS_ON()
+    bool was_file_select_listener_function_called_ = false;
+    bool was_fullscreen_block_set_ = false;
+#endif
+  };
+
+  static void Create(RenderFrameHostImpl* render_frame_host,
+                     mojo::PendingReceiver<blink::mojom::FileChooser> receiver);
+
+  explicit FileChooserImpl(RenderFrameHostImpl* render_frame_host);
+
+  ~FileChooserImpl() override;
+
+  void FileSelected(std::vector<blink::mojom::FileChooserFileInfoPtr> files,
+                    const base::FilePath& base_dir,
+                    blink::mojom::FileChooserParams::Mode mode);
+
+  void FileSelectionCanceled();
+
+  void ResetListenerImpl();
+
+  // content::WebContentsObserver overrides:
+
+  void OpenFileChooser(blink::mojom::FileChooserParamsPtr params,
+                       OpenFileChooserCallback callback) override;
+
+  void EnumerateChosenDirectory(
+      const base::FilePath& directory_path,
+      EnumerateChosenDirectoryCallback callback) override;
+
+ private:
+  // content::WebContentsObserver overrides:
+
+  void RenderFrameHostChanged(RenderFrameHost* old_host,
+                              RenderFrameHost* new_host) override;
+
+  void RenderFrameDeleted(RenderFrameHost* render_frame_host) override;
+
+  void WebContentsDestroyed() override;
+
+  RenderFrameHostImpl* render_frame_host_;
+  FileSelectListenerImpl* listener_impl_ = nullptr;
+  base::OnceCallback<void(blink::mojom::FileChooserResultPtr)> callback_;
+};
+
+}  // namespace content
+
+#endif  // CONTENT_BROWSER_FRAME_HOST_FILE_CHOOSER_IMPL_H_
diff --git a/content/browser/frame_host/render_frame_host_delegate.cc b/content/browser/frame_host/render_frame_host_delegate.cc
index e8b2f82..4cd3417 100644
--- a/content/browser/frame_host/render_frame_host_delegate.cc
+++ b/content/browser/frame_host/render_frame_host_delegate.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "content/browser/frame_host/render_frame_host_delegate.h"
+
 #include <stddef.h>
 #include <memory>
 #include <utility>
@@ -10,8 +12,6 @@
 #include "base/callback.h"
 #include "base/strings/string16.h"
 #include "build/build_config.h"
-#include "content/browser/frame_host/render_frame_host_delegate.h"
-#include "content/public/browser/file_select_listener.h"
 #include "ipc/ipc_message.h"
 #include "third_party/blink/public/mojom/mediastream/media_stream.mojom-shared.h"
 #include "ui/gfx/native_widget_types.h"
@@ -40,14 +40,14 @@
 
 void RenderFrameHostDelegate::RunFileChooser(
     RenderFrameHost* render_frame_host,
-    std::unique_ptr<FileSelectListener> listener,
+    std::unique_ptr<FileChooserImpl::FileSelectListenerImpl> listener,
     const blink::mojom::FileChooserParams& params) {
   listener->FileSelectionCanceled();
 }
 
 void RenderFrameHostDelegate::EnumerateDirectory(
     RenderFrameHost* render_frame_host,
-    std::unique_ptr<FileSelectListener> listener,
+    std::unique_ptr<FileChooserImpl::FileSelectListenerImpl> listener,
     const base::FilePath& path) {
   listener->FileSelectionCanceled();
 }
diff --git a/content/browser/frame_host/render_frame_host_delegate.h b/content/browser/frame_host/render_frame_host_delegate.h
index fc312f0..f9a2d4be 100644
--- a/content/browser/frame_host/render_frame_host_delegate.h
+++ b/content/browser/frame_host/render_frame_host_delegate.h
@@ -15,6 +15,7 @@
 #include "base/optional.h"
 #include "build/build_config.h"
 #include "components/viz/common/surfaces/surface_id.h"
+#include "content/browser/frame_host/file_chooser_impl.h"
 #include "content/browser/frame_host/render_frame_host_impl.h"
 #include "content/browser/webui/web_ui_impl.h"
 #include "content/common/content_export.h"
@@ -77,7 +78,6 @@
 }
 
 namespace content {
-class FileSelectListener;
 class FrameTreeNode;
 class InterstitialPage;
 class PageState;
@@ -183,21 +183,24 @@
       std::vector<blink::mojom::FaviconURLPtr> candidates) {}
 
   // Called when a file selection is to be done.
+  //
   // Overrides of this function must call either listener->FileSelected() or
   // listener->FileSelectionCanceled().
   virtual void RunFileChooser(
       RenderFrameHost* render_frame_host,
-      std::unique_ptr<content::FileSelectListener> listener,
+      std::unique_ptr<FileChooserImpl::FileSelectListenerImpl> listener,
       const blink::mojom::FileChooserParams& params);
 
   // Request to enumerate a directory.  This is equivalent to running the file
   // chooser in directory-enumeration mode and having the user select the given
   // directory.
+  //
   // Overrides of this function must call either listener->FileSelected() or
   // listener->FileSelectionCanceled().
-  virtual void EnumerateDirectory(RenderFrameHost* render_frame_host,
-                                  std::unique_ptr<FileSelectListener> listener,
-                                  const base::FilePath& directory_path);
+  virtual void EnumerateDirectory(
+      RenderFrameHost* render_frame_host,
+      std::unique_ptr<FileChooserImpl::FileSelectListenerImpl> listener,
+      const base::FilePath& directory_path);
 
   // The pending page load was canceled, so the address bar should be updated.
   virtual void DidCancelLoading() {}
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 7c3574b..ecc4d59 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -53,6 +53,7 @@
 #include "content/browser/frame_host/back_forward_cache_impl.h"
 #include "content/browser/frame_host/cross_process_frame_connector.h"
 #include "content/browser/frame_host/debug_urls.h"
+#include "content/browser/frame_host/file_chooser_impl.h"
 #include "content/browser/frame_host/frame_tree.h"
 #include "content/browser/frame_host/frame_tree_node.h"
 #include "content/browser/frame_host/input/input_injector_impl.h"
@@ -142,7 +143,6 @@
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/content_browser_client.h"
 #include "content/public/browser/download_manager.h"
-#include "content/public/browser/file_select_listener.h"
 #include "content/public/browser/global_routing_id.h"
 #include "content/public/browser/media_player_watch_time.h"
 #include "content/public/browser/network_service_instance.h"
@@ -621,185 +621,6 @@
       navigation_client(std::move(navigation_client)),
       navigation_initiator(std::move(navigation_initiator)) {}
 
-// An implementation of blink::mojom::FileChooser and FileSelectListener
-// associated to RenderFrameHost.
-class FileChooserImpl : public blink::mojom::FileChooser,
-                        public content::WebContentsObserver {
-  using FileChooserResult = blink::mojom::FileChooserResult;
-
- public:
-  static void Create(
-      RenderFrameHostImpl* render_frame_host,
-      mojo::PendingReceiver<blink::mojom::FileChooser> receiver) {
-    mojo::MakeSelfOwnedReceiver(
-        std::make_unique<FileChooserImpl>(render_frame_host),
-        std::move(receiver));
-  }
-
-  explicit FileChooserImpl(RenderFrameHostImpl* render_frame_host)
-      : render_frame_host_(render_frame_host) {
-    Observe(WebContents::FromRenderFrameHost(render_frame_host));
-  }
-
-  ~FileChooserImpl() override {
-    if (proxy_)
-      proxy_->ResetOwner();
-  }
-
-  void OpenFileChooser(blink::mojom::FileChooserParamsPtr params,
-                       OpenFileChooserCallback callback) override {
-    if (proxy_ || !render_frame_host_) {
-      std::move(callback).Run(nullptr);
-      return;
-    }
-    callback_ = std::move(callback);
-    auto listener = std::make_unique<ListenerProxy>(this);
-    proxy_ = listener.get();
-    // Do not allow messages with absolute paths in them as this can permit a
-    // renderer to coerce the browser to perform I/O on a renderer controlled
-    // path.
-    if (params->default_file_name != params->default_file_name.BaseName()) {
-      mojo::ReportBadMessage(
-          "FileChooser: The default file name should not be an absolute path.");
-      listener->FileSelectionCanceled();
-      return;
-    }
-    render_frame_host_->delegate()->RunFileChooser(
-        render_frame_host_, std::move(listener), *params);
-  }
-
-  void EnumerateChosenDirectory(
-      const base::FilePath& directory_path,
-      EnumerateChosenDirectoryCallback callback) override {
-    if (proxy_ || !render_frame_host_) {
-      std::move(callback).Run(nullptr);
-      return;
-    }
-    callback_ = std::move(callback);
-    auto listener = std::make_unique<ListenerProxy>(this);
-    proxy_ = listener.get();
-    auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
-    if (policy->CanReadFile(render_frame_host_->GetProcess()->GetID(),
-                            directory_path)) {
-      render_frame_host_->delegate()->EnumerateDirectory(
-          render_frame_host_, std::move(listener), directory_path);
-    } else {
-      listener->FileSelectionCanceled();
-    }
-  }
-
-  void FileSelected(std::vector<blink::mojom::FileChooserFileInfoPtr> files,
-                    const base::FilePath& base_dir,
-                    blink::mojom::FileChooserParams::Mode mode) {
-    proxy_ = nullptr;
-    if (!render_frame_host_)
-      return;
-    storage::FileSystemContext* file_system_context = nullptr;
-    const int pid = render_frame_host_->GetProcess()->GetID();
-    auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
-    // Grant the security access requested to the given files.
-    for (const auto& file : files) {
-      if (mode == blink::mojom::FileChooserParams::Mode::kSave) {
-        policy->GrantCreateReadWriteFile(pid,
-                                         file->get_native_file()->file_path);
-      } else {
-        if (file->is_file_system()) {
-          if (!file_system_context) {
-            file_system_context =
-                BrowserContext::GetStoragePartition(
-                    render_frame_host_->GetProcess()->GetBrowserContext(),
-                    render_frame_host_->GetSiteInstance())
-                    ->GetFileSystemContext();
-          }
-          policy->GrantReadFileSystem(
-              pid, file_system_context->CrackURL(file->get_file_system()->url)
-                       .mount_filesystem_id());
-        } else {
-          policy->GrantReadFile(pid, file->get_native_file()->file_path);
-        }
-      }
-    }
-    std::move(callback_).Run(
-        FileChooserResult::New(std::move(files), base_dir));
-  }
-
-  void FileSelectionCanceled() {
-    proxy_ = nullptr;
-    if (!render_frame_host_)
-      return;
-    std::move(callback_).Run(nullptr);
-  }
-
-  void ResetProxy() { proxy_ = nullptr; }
-
- private:
-  class ListenerProxy : public content::FileSelectListener {
-   public:
-    explicit ListenerProxy(FileChooserImpl* owner) : owner_(owner) {}
-    ~ListenerProxy() override {
-#if DCHECK_IS_ON()
-      DCHECK(was_file_select_listener_function_called_)
-          << "Should call either FileSelectListener::FileSelected() or "
-             "FileSelectListener::FileSelectionCanceled()";
-#endif
-      if (owner_)
-        owner_->ResetProxy();
-    }
-    void ResetOwner() { owner_ = nullptr; }
-
-    // FileSelectListener overrides:
-
-    void FileSelected(std::vector<blink::mojom::FileChooserFileInfoPtr> files,
-                      const base::FilePath& base_dir,
-                      blink::mojom::FileChooserParams::Mode mode) override {
-#if DCHECK_IS_ON()
-      DCHECK(!was_file_select_listener_function_called_)
-          << "Should not call both of FileSelectListener::FileSelected() and "
-             "FileSelectListener::FileSelectionCanceled()";
-      was_file_select_listener_function_called_ = true;
-#endif
-      if (owner_)
-        owner_->FileSelected(std::move(files), base_dir, mode);
-    }
-
-    void FileSelectionCanceled() override {
-#if DCHECK_IS_ON()
-      DCHECK(!was_file_select_listener_function_called_)
-          << "Should not call both of FileSelectListener::FileSelected() and "
-             "FileSelectListener::FileSelectionCanceled()";
-      was_file_select_listener_function_called_ = true;
-#endif
-      if (owner_)
-        owner_->FileSelectionCanceled();
-    }
-
-   private:
-    FileChooserImpl* owner_;
-#if DCHECK_IS_ON()
-    bool was_file_select_listener_function_called_ = false;
-#endif
-  };
-
-  // content::WebContentsObserver overrides:
-
-  void RenderFrameHostChanged(RenderFrameHost* old_host,
-                              RenderFrameHost* new_host) override {
-    if (old_host == render_frame_host_)
-      render_frame_host_ = nullptr;
-  }
-
-  void RenderFrameDeleted(RenderFrameHost* render_frame_host) override {
-    if (render_frame_host == render_frame_host_)
-      render_frame_host_ = nullptr;
-  }
-
-  void WebContentsDestroyed() override { render_frame_host_ = nullptr; }
-
-  RenderFrameHostImpl* render_frame_host_;
-  ListenerProxy* proxy_ = nullptr;
-  base::OnceCallback<void(blink::mojom::FileChooserResultPtr)> callback_;
-};
-
 // static
 RenderFrameHost* RenderFrameHost::FromID(GlobalFrameRoutingId id) {
   return RenderFrameHostImpl::FromID(id);
diff --git a/content/browser/indexed_db/indexed_db_backing_store.h b/content/browser/indexed_db/indexed_db_backing_store.h
index 54036c2..6862f7a 100644
--- a/content/browser/indexed_db/indexed_db_backing_store.h
+++ b/content/browser/indexed_db/indexed_db_backing_store.h
@@ -247,11 +247,13 @@
     };
 
     const blink::IndexedDBKey& key() const { return *current_key_; }
-    bool Continue(leveldb::Status* s) { return Continue(NULL, NULL, SEEK, s); }
+    bool Continue(leveldb::Status* s) {
+      return Continue(nullptr, nullptr, SEEK, s);
+    }
     bool Continue(const blink::IndexedDBKey* key,
                   IteratorState state,
                   leveldb::Status* s) {
-      return Continue(key, NULL, state, s);
+      return Continue(key, nullptr, state, s);
     }
     bool Continue(const blink::IndexedDBKey* key,
                   const blink::IndexedDBKey* primary_key,
diff --git a/content/browser/indexed_db/indexed_db_browsertest.cc b/content/browser/indexed_db/indexed_db_browsertest.cc
index 6ca0e13..aa86f38e 100644
--- a/content/browser/indexed_db/indexed_db_browsertest.cc
+++ b/content/browser/indexed_db/indexed_db_browsertest.cc
@@ -30,7 +30,6 @@
 #include "components/services/storage/public/mojom/indexed_db_control.mojom-test-utils.h"
 #include "content/browser/blob_storage/chrome_blob_storage_context.h"
 #include "content/browser/browser_main_loop.h"
-#include "content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h"
 #include "content/browser/web_contents/web_contents_impl.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_task_traits.h"
@@ -60,8 +59,10 @@
 #include "url/origin.h"
 
 using base::ASCIIToUTF16;
-using storage::QuotaManager;
 using storage::DatabaseUtil;
+using storage::QuotaManager;
+using storage::mojom::FailClass;
+using storage::mojom::FailMethod;
 
 namespace content {
 
@@ -72,22 +73,17 @@
  public:
   IndexedDBBrowserTest() = default;
 
-  void SetUp() override {
-    GetTestClassFactory()->Reset();
-    IndexedDBClassFactory::SetIndexedDBClassFactoryGetter(GetIDBClassFactory);
-
+  void SetUpOnMainThread() override {
     // Some tests need more space than the default used for browser tests.
     static storage::QuotaSettings quota_settings =
         storage::GetHardCodedSettings(100 * 1024 * 1024);
     StoragePartition::SetDefaultQuotaSettingsForTesting(&quota_settings);
 
-    ContentBrowserTest::SetUp();
+    GetControlTest()->BindMockFailureSingletonForTesting(
+        failure_injector_.BindNewPipeAndPassReceiver());
   }
 
-  void TearDown() override {
-    IndexedDBClassFactory::SetIndexedDBClassFactoryGetter(nullptr);
-    ContentBrowserTest::TearDown();
-  }
+  void TearDownOnMainThread() override { failure_injector_.reset(); }
 
   bool UseProductionQuotaSettings() override {
     // So that the browser test harness doesn't call
@@ -99,8 +95,21 @@
                      FailMethod failure_method,
                      int fail_on_instance_num,
                      int fail_on_call_num) {
-    GetTestClassFactory()->FailOperation(
-        failure_class, failure_method, fail_on_instance_num, fail_on_call_num);
+    base::RunLoop loop;
+    FailOperationWithCallback(failure_class, failure_method,
+                              fail_on_instance_num, fail_on_call_num,
+                              loop.QuitClosure());
+    loop.Run();
+  }
+
+  void FailOperationWithCallback(FailClass failure_class,
+                                 FailMethod failure_method,
+                                 int fail_on_instance_num,
+                                 int fail_on_call_num,
+                                 base::OnceClosure callback) {
+    failure_injector_->FailOperation(failure_class, failure_method,
+                                     fail_on_instance_num, fail_on_call_num,
+                                     std::move(callback));
   }
 
   void SimpleTest(const GURL& test_url,
@@ -140,15 +149,6 @@
     EXPECT_EQ(expected_title16, title_watcher.WaitAndGetTitle());
   }
 
-  // TODO(enne): remove this in favor of GetControl below.
-  IndexedDBContextImpl* GetContext(Shell* browser = nullptr) {
-    if (!browser)
-      browser = shell();
-    StoragePartition* partition = BrowserContext::GetDefaultStoragePartition(
-        browser->web_contents()->GetBrowserContext());
-    return partition->GetIndexedDBContextImplForTesting();
-  }
-
   storage::mojom::IndexedDBControl& GetControl(Shell* browser = nullptr) {
     if (!browser)
       browser = shell();
@@ -274,18 +274,9 @@
     loop.Run();
   }
 
- protected:
-  static MockBrowserTestIndexedDBClassFactory* GetTestClassFactory() {
-    static ::base::LazyInstance<MockBrowserTestIndexedDBClassFactory>::Leaky
-        s_factory = LAZY_INSTANCE_INITIALIZER;
-    return s_factory.Pointer();
-  }
-
-  static IndexedDBClassFactory* GetIDBClassFactory() {
-    return GetTestClassFactory();
-  }
-
  private:
+  mojo::Remote<storage::mojom::MockFailureInjector> failure_injector_;
+
   DISALLOW_COPY_AND_ASSIGN(IndexedDBBrowserTest);
 };
 
@@ -381,13 +372,26 @@
 }
 
 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTest, NegativeDBSchemaVersion) {
+  return;
   const GURL database_open_url = GetTestUrl("indexeddb", "database_test.html");
   const url::Origin origin = url::Origin::Create(database_open_url);
   // Create the database.
   SimpleTest(database_open_url);
   // -10, little endian.
   std::string value = "\xF6\xFF\xFF\xFF\xFF\xFF\xFF\xFF";
-  WriteToIndexedDB(origin, SchemaVersionKey::Encode(), value);
+
+  auto control_test = GetControlTest();
+  base::RunLoop loop;
+  std::string key;
+  control_test->GetDatabaseKeysForTesting(
+      base::BindLambdaForTesting([&](const std::string& schema_version_key,
+                                     const std::string& data_version_key) {
+        key = schema_version_key;
+        loop.Quit();
+      }));
+  loop.Run();
+
+  WriteToIndexedDB(origin, key, value);
   // Crash the tab to ensure no old navigations are picked up.
   CrashTab(shell()->web_contents());
   SimpleTest(GetTestUrl("indexeddb", "open_bad_db.html"));
@@ -400,7 +404,19 @@
   SimpleTest(database_open_url);
   // -10, little endian.
   std::string value = "\xF6\xFF\xFF\xFF\xFF\xFF\xFF\xFF";
-  WriteToIndexedDB(origin, DataVersionKey::Encode(), value);
+
+  auto control_test = GetControlTest();
+  base::RunLoop loop;
+  std::string key;
+  control_test->GetDatabaseKeysForTesting(
+      base::BindLambdaForTesting([&](const std::string& schema_version_key,
+                                     const std::string& data_version_key) {
+        key = data_version_key;
+        loop.Quit();
+      }));
+  loop.Run();
+
+  WriteToIndexedDB(origin, key, value);
   // Crash the tab to ensure no old navigations are picked up.
   CrashTab(shell()->web_contents());
   SimpleTest(GetTestUrl("indexeddb", "open_bad_db.html"));
@@ -758,7 +774,7 @@
   //   #2: IndexedDBTransaction::Commit - the test's "readwrite" transaction)
   const int instance_num = 2;
   const int call_num = 1;
-  FailOperation(FAIL_CLASS_LEVELDB_TRANSACTION, FAIL_METHOD_COMMIT_DISK_FULL,
+  FailOperation(FailClass::LEVELDB_TRANSACTION, FailMethod::COMMIT_DISK_FULL,
                 instance_num, call_num);
   SimpleTest(GetTestUrl("indexeddb", "disk_full_on_commit.html"));
 }
@@ -870,8 +886,8 @@
     http_response->set_code(net::HTTP_OK);
     return std::move(http_response);
   } else if (request_path == "fail" && !request_query.empty()) {
-    FailClass failure_class = FAIL_CLASS_NOTHING;
-    FailMethod failure_method = FAIL_METHOD_NOTHING;
+    FailClass failure_class = FailClass::NOTHING;
+    FailMethod failure_method = FailMethod::NOTHING;
     int instance_num = 1;
     int call_num = 1;
     std::string fail_class;
@@ -901,29 +917,29 @@
     }
 
     if (fail_class == "LevelDBTransaction") {
-      failure_class = FAIL_CLASS_LEVELDB_TRANSACTION;
+      failure_class = FailClass::LEVELDB_TRANSACTION;
       if (fail_method == "Get")
-        failure_method = FAIL_METHOD_GET;
+        failure_method = FailMethod::GET;
       else if (fail_method == "Commit")
-        failure_method = FAIL_METHOD_COMMIT;
+        failure_method = FailMethod::COMMIT;
       else
         NOTREACHED() << "Unknown method: \"" << fail_method << "\"";
     } else if (fail_class == "LevelDBIterator") {
-      failure_class = FAIL_CLASS_LEVELDB_ITERATOR;
+      failure_class = FailClass::LEVELDB_ITERATOR;
       if (fail_method == "Seek")
-        failure_method = FAIL_METHOD_SEEK;
+        failure_method = FailMethod::SEEK;
       else
         NOTREACHED() << "Unknown method: \"" << fail_method << "\"";
     } else if (fail_class == "LevelDBDatabase") {
-      failure_class = FAIL_CLASS_LEVELDB_DATABASE;
+      failure_class = FailClass::LEVELDB_DATABASE;
       if (fail_method == "Write")
-        failure_method = FAIL_METHOD_WRITE;
+        failure_method = FailMethod::WRITE;
       else
         NOTREACHED() << "Unknown method: \"" << fail_method << "\"";
     } else if (fail_class == "LevelDBDirectTransaction") {
-      failure_class = FAIL_CLASS_LEVELDB_DIRECT_TRANSACTION;
+      failure_class = FailClass::LEVELDB_DIRECT_TRANSACTION;
       if (fail_method == "Get")
-        failure_method = FAIL_METHOD_GET;
+        failure_method = FailMethod::GET;
       else
         NOTREACHED() << "Unknown method: \"" << fail_method << "\"";
     } else {
@@ -933,7 +949,13 @@
     DCHECK_GE(instance_num, 1);
     DCHECK_GE(call_num, 1);
 
-    test->FailOperation(failure_class, failure_method, instance_num, call_num);
+    base::RunLoop loop;
+    task_runner->PostTask(
+        FROM_HERE,
+        base::BindOnce(&IndexedDBBrowserTest::FailOperationWithCallback,
+                       base::Unretained(test), failure_class, failure_method,
+                       instance_num, call_num, loop.QuitClosure()));
+    loop.Run();
 
     std::unique_ptr<net::test_server::BasicHttpResponse> http_response(
         new net::test_server::BasicHttpResponse);
@@ -1109,14 +1131,7 @@
 
 // The V2 schema corruption test runs in a separate class to avoid corrupting
 // an IDB store that other tests use.
-class IndexedDBBrowserTestV2SchemaCorruption : public IndexedDBBrowserTest {
- public:
-  void SetUp() override {
-    GetTestClassFactory()->Reset();
-    IndexedDBClassFactory::SetIndexedDBClassFactoryGetter(GetIDBClassFactory);
-    ContentBrowserTest::SetUp();
-  }
-};
+class IndexedDBBrowserTestV2SchemaCorruption : public IndexedDBBrowserTest {};
 
 // Verify the V2 schema corruption lifecycle:
 // - create a current version backing store (v3 or later)
@@ -1187,12 +1202,6 @@
 // This test is for https://crbug.com/1039446.
 class IndexedDBBrowserTestBlobKeyCorruption : public IndexedDBBrowserTest {
  public:
-  void SetUp() override {
-    GetTestClassFactory()->Reset();
-    IndexedDBClassFactory::SetIndexedDBClassFactoryGetter(GetIDBClassFactory);
-    ContentBrowserTest::SetUp();
-  }
-
   int64_t GetNextBlobNumber(const url::Origin& origin, int64_t database_id) {
     int64_t number;
 
diff --git a/content/browser/indexed_db/indexed_db_connection.h b/content/browser/indexed_db/indexed_db_connection.h
index 2b301c4d..3cf9037f 100644
--- a/content/browser/indexed_db/indexed_db_connection.h
+++ b/content/browser/indexed_db/indexed_db_connection.h
@@ -117,7 +117,7 @@
   base::flat_map<int64_t, std::unique_ptr<IndexedDBTransaction>> transactions_;
 
   // The callbacks_ member is cleared when the connection is closed.
-  // May be NULL in unit tests.
+  // May be nullptr in unit tests.
   scoped_refptr<IndexedDBDatabaseCallbacks> callbacks_;
   std::vector<std::unique_ptr<IndexedDBObserver>> active_observers_;
 
diff --git a/content/browser/indexed_db/indexed_db_context_impl.cc b/content/browser/indexed_db/indexed_db_context_impl.cc
index ac628bb..c10215e 100644
--- a/content/browser/indexed_db/indexed_db_context_impl.cc
+++ b/content/browser/indexed_db/indexed_db_context_impl.cc
@@ -39,6 +39,7 @@
 #include "content/browser/indexed_db/indexed_db_quota_client.h"
 #include "content/browser/indexed_db/indexed_db_tracing.h"
 #include "content/browser/indexed_db/indexed_db_transaction.h"
+#include "content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h"
 #include "storage/browser/database/database_util.h"
 #include "storage/common/database/database_identifier.h"
 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom.h"
@@ -57,6 +58,16 @@
 
 namespace {
 
+static MockBrowserTestIndexedDBClassFactory* GetTestClassFactory() {
+  static ::base::LazyInstance<MockBrowserTestIndexedDBClassFactory>::Leaky
+      s_factory = LAZY_INSTANCE_INITIALIZER;
+  return s_factory.Pointer();
+}
+
+static IndexedDBClassFactory* GetTestIDBClassFactory() {
+  return GetTestClassFactory();
+}
+
 bool IsAllowedPath(const std::vector<base::FilePath>& allowed_paths,
                    const base::FilePath& candidate_path) {
   for (const base::FilePath& allowed_path : allowed_paths) {
@@ -579,6 +590,28 @@
   std::move(callback).Run();
 }
 
+void IndexedDBContextImpl::BindMockFailureSingletonForTesting(
+    mojo::PendingReceiver<storage::mojom::MockFailureInjector> receiver) {
+  // Lazily instantiate the GetTestClassFactory.
+  if (!mock_failure_injector_.has_value())
+    mock_failure_injector_.emplace(GetTestClassFactory());
+
+  // TODO(enne): this should really not be a static setter.
+  CHECK(!mock_failure_injector_->is_bound());
+  GetTestClassFactory()->Reset();
+  IndexedDBClassFactory::SetIndexedDBClassFactoryGetter(GetTestIDBClassFactory);
+
+  mock_failure_injector_->Bind(std::move(receiver));
+  mock_failure_injector_->set_disconnect_handler(base::BindOnce([]() {
+    IndexedDBClassFactory::SetIndexedDBClassFactoryGetter(nullptr);
+  }));
+}
+
+void IndexedDBContextImpl::GetDatabaseKeysForTesting(
+    GetDatabaseKeysForTestingCallback callback) {
+  std::move(callback).Run(SchemaVersionKey::Encode(), DataVersionKey::Encode());
+}
+
 void IndexedDBContextImpl::ForceCloseSync(
     const Origin& origin,
     storage::mojom::ForceCloseReason reason) {
diff --git a/content/browser/indexed_db/indexed_db_context_impl.h b/content/browser/indexed_db/indexed_db_context_impl.h
index 3b6732b..f3806a0 100644
--- a/content/browser/indexed_db/indexed_db_context_impl.h
+++ b/content/browser/indexed_db/indexed_db_context_impl.h
@@ -120,6 +120,11 @@
       GetPathForBlobForTestingCallback callback) override;
   void CompactBackingStoreForTesting(const url::Origin& origin,
                                      base::OnceClosure callback) override;
+  void BindMockFailureSingletonForTesting(
+      mojo::PendingReceiver<storage::mojom::MockFailureInjector> receiver)
+      override;
+  void GetDatabaseKeysForTesting(
+      GetDatabaseKeysForTestingCallback callback) override;
 
   // TODO(enne): fix internal indexeddb callers to use ForceClose async instead.
   void ForceCloseSync(const url::Origin& origin,
@@ -241,6 +246,8 @@
 
   mojo::ReceiverSet<storage::mojom::IndexedDBControl> receivers_;
   mojo::ReceiverSet<storage::mojom::IndexedDBControlTest> test_receivers_;
+  base::Optional<mojo::Receiver<storage::mojom::MockFailureInjector>>
+      mock_failure_injector_;
   mojo::RemoteSet<storage::mojom::IndexedDBObserver> observers_;
 
   DISALLOW_COPY_AND_ASSIGN(IndexedDBContextImpl);
diff --git a/content/browser/indexed_db/indexed_db_cursor.h b/content/browser/indexed_db/indexed_db_cursor.h
index 4b0ecc1..b3f8d2fc 100644
--- a/content/browser/indexed_db/indexed_db_cursor.h
+++ b/content/browser/indexed_db/indexed_db_cursor.h
@@ -48,7 +48,7 @@
     return cursor_->primary_key();
   }
   IndexedDBValue* Value() const {
-    return (cursor_type_ == indexed_db::CURSOR_KEY_ONLY) ? NULL
+    return (cursor_type_ == indexed_db::CURSOR_KEY_ONLY) ? nullptr
                                                          : cursor_->value();
   }
 
diff --git a/content/browser/indexed_db/indexed_db_factory_impl.cc b/content/browser/indexed_db/indexed_db_factory_impl.cc
index 7f92c52..7d3ae3ed 100644
--- a/content/browser/indexed_db/indexed_db_factory_impl.cc
+++ b/content/browser/indexed_db/indexed_db_factory_impl.cc
@@ -449,7 +449,7 @@
 
 void IndexedDBFactoryImpl::HandleBackingStoreFailure(const Origin& origin) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  // NULL after ContextDestroyed() called, and in some unit tests.
+  // nullptr after ContextDestroyed() called, and in some unit tests.
   if (!context_)
     return;
   context_->ForceCloseSync(
@@ -574,7 +574,7 @@
 
 void IndexedDBFactoryImpl::BlobFilesCleaned(const url::Origin& origin) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  // NULL after ContextDestroyed() called, and in some unit tests.
+  // nullptr after ContextDestroyed() called, and in some unit tests.
   if (!context_)
     return;
   context_->BlobFilesCleaned(origin);
diff --git a/content/browser/indexed_db/indexed_db_internals_ui.cc b/content/browser/indexed_db/indexed_db_internals_ui.cc
index e64498dd..8af1508 100644
--- a/content/browser/indexed_db/indexed_db_internals_ui.cc
+++ b/content/browser/indexed_db/indexed_db_internals_ui.cc
@@ -15,7 +15,6 @@
 #include "base/task/thread_pool.h"
 #include "base/threading/platform_thread.h"
 #include "base/values.h"
-#include "content/browser/indexed_db/indexed_db_context_impl.h"
 #include "content/grit/dev_ui_content_resources.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_task_traits.h"
diff --git a/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc b/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc
index 3b6960e..4d2f46e2 100644
--- a/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc
+++ b/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc
@@ -21,6 +21,9 @@
 #include "third_party/leveldatabase/env_chromium.h"
 #include "third_party/leveldatabase/src/include/leveldb/status.h"
 
+using storage::mojom::FailClass;
+using storage::mojom::FailMethod;
+
 namespace {
 
 class FunctionTracer {
@@ -121,15 +124,15 @@
         fail_method_(fail_method),
         fail_on_call_num_(fail_on_call_num),
         current_call_num_(0) {
-    DCHECK(fail_method != FAIL_METHOD_NOTHING);
+    DCHECK(fail_method != FailMethod::NOTHING);
     DCHECK_GT(fail_on_call_num, 0);
   }
-  ~LevelDBTestDatabase() override {}
+  ~LevelDBTestDatabase() override = default;
 
   leveldb::Status Get(const base::StringPiece& key,
                       std::string* value,
                       bool* found) override {
-    if (fail_method_ != FAIL_METHOD_GET ||
+    if (fail_method_ != FailMethod::GET ||
         ++current_call_num_ != fail_on_call_num_)
       return TransactionalLevelDBDatabase::Get(key, value, found);
     *found = false;
@@ -137,7 +140,7 @@
   }
 
   leveldb::Status Write(LevelDBWriteBatch* write_batch) override {
-    if ((fail_method_ != FAIL_METHOD_WRITE) ||
+    if ((fail_method_ != FailMethod::WRITE) ||
         ++current_call_num_ != fail_on_call_num_)
       return TransactionalLevelDBDatabase::Write(write_batch);
     return leveldb::Status::Corruption("Corrupted for the test");
@@ -158,15 +161,15 @@
         fail_method_(fail_method),
         fail_on_call_num_(fail_on_call_num),
         current_call_num_(0) {
-    DCHECK(fail_method != FAIL_METHOD_NOTHING);
+    DCHECK(fail_method != FailMethod::NOTHING);
     DCHECK_GT(fail_on_call_num, 0);
   }
-  ~LevelDBTestDirectTransaction() override {}
+  ~LevelDBTestDirectTransaction() override = default;
 
   leveldb::Status Get(const base::StringPiece& key,
                       std::string* value,
                       bool* found) override {
-    if (fail_method_ != FAIL_METHOD_GET ||
+    if (fail_method_ != FailMethod::GET ||
         ++current_call_num_ != fail_on_call_num_)
       return LevelDBTestDirectTransaction::Get(key, value, found);
 
@@ -190,14 +193,14 @@
         fail_method_(fail_method),
         fail_on_call_num_(fail_on_call_num),
         current_call_num_(0) {
-    DCHECK(fail_method != FAIL_METHOD_NOTHING);
+    DCHECK(fail_method != FailMethod::NOTHING);
     DCHECK_GT(fail_on_call_num, 0);
   }
 
   leveldb::Status Get(const base::StringPiece& key,
                       std::string* value,
                       bool* found) override {
-    if (fail_method_ != FAIL_METHOD_GET ||
+    if (fail_method_ != FailMethod::GET ||
         ++current_call_num_ != fail_on_call_num_)
       return TransactionalLevelDBTransaction::Get(key, value, found);
 
@@ -206,13 +209,13 @@
   }
 
   leveldb::Status Commit(bool sync_on_commit) override {
-    if ((fail_method_ != FAIL_METHOD_COMMIT &&
-         fail_method_ != FAIL_METHOD_COMMIT_DISK_FULL) ||
+    if ((fail_method_ != FailMethod::COMMIT &&
+         fail_method_ != FailMethod::COMMIT_DISK_FULL) ||
         ++current_call_num_ != fail_on_call_num_)
       return TransactionalLevelDBTransaction::Commit(sync_on_commit);
 
     // TODO(jsbell): Consider parameterizing the failure mode.
-    if (fail_method_ == FAIL_METHOD_COMMIT_DISK_FULL) {
+    if (fail_method_ == FailMethod::COMMIT_DISK_FULL) {
       return leveldb_env::MakeIOError("dummy filename", "Disk Full",
                                       leveldb_env::kWritableFileAppend,
                                       base::File::FILE_ERROR_NO_SPACE);
@@ -235,8 +238,9 @@
                           std::unique_ptr<LevelDBScope> scope,
                           int tx_num)
       : TransactionalLevelDBTransaction(db, std::move(scope)),
-        commit_tracer_(s_class_name, "Commit", tx_num),
-        get_tracer_(s_class_name, "Get", tx_num) {}
+        class_name_("LevelDBTransaction"),
+        commit_tracer_(class_name_, "Commit", tx_num),
+        get_tracer_(class_name_, "Get", tx_num) {}
 
   leveldb::Status Get(const base::StringPiece& key,
                       std::string* value,
@@ -251,16 +255,14 @@
   }
 
  private:
-  static const std::string s_class_name;
+  const std::string class_name_;
 
-  ~LevelDBTraceTransaction() override {}
+  ~LevelDBTraceTransaction() override = default;
 
   FunctionTracer commit_tracer_;
   FunctionTracer get_tracer_;
 };
 
-const std::string LevelDBTraceTransaction::s_class_name = "LevelDBTransaction";
-
 class LevelDBTraceIterator : public TransactionalLevelDBIterator {
  public:
   LevelDBTraceIterator(std::unique_ptr<leveldb::Iterator> iterator,
@@ -272,17 +274,18 @@
                                      std::move(db),
                                      std::move(txn),
                                      std::move(snapshot)),
-        is_valid_tracer_(s_class_name, "IsValid", inst_num),
-        seek_to_last_tracer_(s_class_name, "SeekToLast", inst_num),
-        seek_tracer_(s_class_name, "Seek", inst_num),
-        next_tracer_(s_class_name, "Next", inst_num),
-        prev_tracer_(s_class_name, "Prev", inst_num),
-        key_tracer_(s_class_name, "Key", inst_num),
-        value_tracer_(s_class_name, "Value", inst_num) {}
-  ~LevelDBTraceIterator() override {}
+        class_name_("LevelDBIterator"),
+        is_valid_tracer_(class_name_, "IsValid", inst_num),
+        seek_to_last_tracer_(class_name_, "SeekToLast", inst_num),
+        seek_tracer_(class_name_, "Seek", inst_num),
+        next_tracer_(class_name_, "Next", inst_num),
+        prev_tracer_(class_name_, "Prev", inst_num),
+        key_tracer_(class_name_, "Key", inst_num),
+        value_tracer_(class_name_, "Value", inst_num) {}
+  ~LevelDBTraceIterator() override = default;
 
  private:
-  static const std::string s_class_name;
+  const std::string class_name_;
 
   bool IsValid() const override {
     is_valid_tracer_.log_call();
@@ -322,8 +325,6 @@
   mutable FunctionTracer value_tracer_;
 };
 
-const std::string LevelDBTraceIterator::s_class_name = "LevelDBIterator";
-
 class LevelDBTestIterator : public content::TransactionalLevelDBIterator {
  public:
   LevelDBTestIterator(std::unique_ptr<leveldb::Iterator> iterator,
@@ -343,7 +344,7 @@
 
  private:
   leveldb::Status Seek(const base::StringPiece& target) override {
-    if (fail_method_ != FAIL_METHOD_SEEK ||
+    if (fail_method_ != FailMethod::SEEK ||
         ++current_call_num_ != fail_on_call_num_)
       return TransactionalLevelDBIterator::Seek(target);
     return leveldb::Status::Corruption("Corrupted for test");
@@ -355,11 +356,12 @@
 };
 
 MockBrowserTestIndexedDBClassFactory::MockBrowserTestIndexedDBClassFactory()
-    : failure_class_(FAIL_CLASS_NOTHING),
-      failure_method_(FAIL_METHOD_NOTHING),
+    : failure_class_(FailClass::NOTHING),
+      failure_method_(FailMethod::NOTHING),
       only_trace_calls_(false) {}
 
-MockBrowserTestIndexedDBClassFactory::~MockBrowserTestIndexedDBClassFactory() {}
+MockBrowserTestIndexedDBClassFactory::~MockBrowserTestIndexedDBClassFactory() =
+    default;
 
 TransactionalLevelDBFactory&
 MockBrowserTestIndexedDBClassFactory::transactional_leveldb_factory() {
@@ -406,15 +408,15 @@
     std::unique_ptr<LevelDBScopes> scopes,
     scoped_refptr<base::SequencedTaskRunner> task_runner,
     size_t max_open_iterators) {
-  instance_count_[FAIL_CLASS_LEVELDB_DATABASE] =
-      instance_count_[FAIL_CLASS_LEVELDB_DATABASE] + 1;
-  if (failure_class_ == FAIL_CLASS_LEVELDB_DATABASE &&
-      instance_count_[FAIL_CLASS_LEVELDB_DATABASE] ==
-          fail_on_instance_num_[FAIL_CLASS_LEVELDB_DATABASE]) {
+  instance_count_[FailClass::LEVELDB_DATABASE] =
+      instance_count_[FailClass::LEVELDB_DATABASE] + 1;
+  if (failure_class_ == FailClass::LEVELDB_DATABASE &&
+      instance_count_[FailClass::LEVELDB_DATABASE] ==
+          fail_on_instance_num_[FailClass::LEVELDB_DATABASE]) {
     return std::make_unique<LevelDBTestDatabase>(
         std::move(state), std::move(scopes), this, std::move(task_runner),
         max_open_iterators, failure_method_,
-        fail_on_call_num_[FAIL_CLASS_LEVELDB_DATABASE]);
+        fail_on_call_num_[FailClass::LEVELDB_DATABASE]);
   } else {
     return DefaultTransactionalLevelDBFactory::CreateLevelDBDatabase(
         std::move(state), std::move(scopes), std::move(task_runner),
@@ -425,14 +427,14 @@
 std::unique_ptr<LevelDBDirectTransaction>
 MockBrowserTestIndexedDBClassFactory::CreateLevelDBDirectTransaction(
     TransactionalLevelDBDatabase* db) {
-  instance_count_[FAIL_CLASS_LEVELDB_DIRECT_TRANSACTION] =
-      instance_count_[FAIL_CLASS_LEVELDB_DIRECT_TRANSACTION] + 1;
-  if (failure_class_ == FAIL_CLASS_LEVELDB_DIRECT_TRANSACTION &&
-      instance_count_[FAIL_CLASS_LEVELDB_DIRECT_TRANSACTION] ==
-          fail_on_instance_num_[FAIL_CLASS_LEVELDB_DIRECT_TRANSACTION]) {
+  instance_count_[FailClass::LEVELDB_DIRECT_TRANSACTION] =
+      instance_count_[FailClass::LEVELDB_DIRECT_TRANSACTION] + 1;
+  if (failure_class_ == FailClass::LEVELDB_DIRECT_TRANSACTION &&
+      instance_count_[FailClass::LEVELDB_DIRECT_TRANSACTION] ==
+          fail_on_instance_num_[FailClass::LEVELDB_DIRECT_TRANSACTION]) {
     return std::make_unique<LevelDBTestDirectTransaction>(
         db, failure_method_,
-        fail_on_call_num_[FAIL_CLASS_LEVELDB_DIRECT_TRANSACTION]);
+        fail_on_call_num_[FailClass::LEVELDB_DIRECT_TRANSACTION]);
   } else {
     return DefaultTransactionalLevelDBFactory::CreateLevelDBDirectTransaction(
         db);
@@ -443,18 +445,18 @@
 MockBrowserTestIndexedDBClassFactory::CreateLevelDBTransaction(
     TransactionalLevelDBDatabase* db,
     std::unique_ptr<LevelDBScope> scope) {
-  instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] =
-      instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] + 1;
+  instance_count_[FailClass::LEVELDB_TRANSACTION] =
+      instance_count_[FailClass::LEVELDB_TRANSACTION] + 1;
   if (only_trace_calls_) {
     return base::MakeRefCounted<LevelDBTraceTransaction>(
-        db, std::move(scope), instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION]);
+        db, std::move(scope), instance_count_[FailClass::LEVELDB_TRANSACTION]);
   } else {
-    if (failure_class_ == FAIL_CLASS_LEVELDB_TRANSACTION &&
-        instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] ==
-            fail_on_instance_num_[FAIL_CLASS_LEVELDB_TRANSACTION]) {
+    if (failure_class_ == FailClass::LEVELDB_TRANSACTION &&
+        instance_count_[FailClass::LEVELDB_TRANSACTION] ==
+            fail_on_instance_num_[FailClass::LEVELDB_TRANSACTION]) {
       return base::MakeRefCounted<LevelDBTestTransaction>(
           db, std::move(scope), failure_method_,
-          fail_on_call_num_[FAIL_CLASS_LEVELDB_TRANSACTION]);
+          fail_on_call_num_[FailClass::LEVELDB_TRANSACTION]);
     } else {
       return DefaultTransactionalLevelDBFactory::CreateLevelDBTransaction(
           db, std::move(scope));
@@ -468,19 +470,19 @@
     base::WeakPtr<TransactionalLevelDBDatabase> db,
     base::WeakPtr<TransactionalLevelDBTransaction> txn,
     std::unique_ptr<LevelDBSnapshot> snapshot) {
-  instance_count_[FAIL_CLASS_LEVELDB_ITERATOR] =
-      instance_count_[FAIL_CLASS_LEVELDB_ITERATOR] + 1;
+  instance_count_[FailClass::LEVELDB_ITERATOR] =
+      instance_count_[FailClass::LEVELDB_ITERATOR] + 1;
   if (only_trace_calls_) {
     return std::make_unique<LevelDBTraceIterator>(
         std::move(iterator), db, std::move(txn), std::move(snapshot),
-        instance_count_[FAIL_CLASS_LEVELDB_ITERATOR]);
+        instance_count_[FailClass::LEVELDB_ITERATOR]);
   } else {
-    if (failure_class_ == FAIL_CLASS_LEVELDB_ITERATOR &&
-        instance_count_[FAIL_CLASS_LEVELDB_ITERATOR] ==
-            fail_on_instance_num_[FAIL_CLASS_LEVELDB_ITERATOR]) {
+    if (failure_class_ == FailClass::LEVELDB_ITERATOR &&
+        instance_count_[FailClass::LEVELDB_ITERATOR] ==
+            fail_on_instance_num_[FailClass::LEVELDB_ITERATOR]) {
       return std::make_unique<LevelDBTestIterator>(
           std::move(iterator), db, std::move(txn), std::move(snapshot),
-          failure_method_, fail_on_call_num_[FAIL_CLASS_LEVELDB_ITERATOR]);
+          failure_method_, fail_on_call_num_[FailClass::LEVELDB_ITERATOR]);
     } else {
       return DefaultTransactionalLevelDBFactory::CreateIterator(
           std::move(iterator), db, std::move(txn), std::move(snapshot));
@@ -489,26 +491,29 @@
 }
 
 void MockBrowserTestIndexedDBClassFactory::FailOperation(
-    FailClass failure_class,
-    FailMethod failure_method,
+    storage::mojom::FailClass failure_class,
+    storage::mojom::FailMethod failure_method,
     int fail_on_instance_num,
-    int fail_on_call_num) {
+    int fail_on_call_num,
+    base::OnceClosure callback) {
   VLOG(0) << "FailOperation: class=" << failure_class
           << ", method=" << failure_method
           << ", instanceNum=" << fail_on_instance_num
           << ", callNum=" << fail_on_call_num;
-  DCHECK(failure_class != FAIL_CLASS_NOTHING);
-  DCHECK(failure_method != FAIL_METHOD_NOTHING);
+  DCHECK(failure_class != FailClass::NOTHING);
+  DCHECK(failure_method != FailMethod::NOTHING);
   failure_class_ = failure_class;
   failure_method_ = failure_method;
   fail_on_instance_num_[failure_class_] = fail_on_instance_num;
   fail_on_call_num_[failure_class_] = fail_on_call_num;
   instance_count_.clear();
+
+  std::move(callback).Run();
 }
 
 void MockBrowserTestIndexedDBClassFactory::Reset() {
-  failure_class_ = FAIL_CLASS_NOTHING;
-  failure_method_ = FAIL_METHOD_NOTHING;
+  failure_class_ = FailClass::NOTHING;
+  failure_method_ = FailMethod::NOTHING;
   instance_count_.clear();
   fail_on_instance_num_.clear();
   fail_on_call_num_.clear();
diff --git a/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h b/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h
index 9a2826ad..a9c818d 100644
--- a/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h
+++ b/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h
@@ -13,10 +13,12 @@
 
 #include "components/services/storage/indexed_db/scopes/scopes_lock_manager.h"
 #include "components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_factory.h"
+#include "components/services/storage/public/mojom/indexed_db_control_test.mojom.h"
 #include "content/browser/indexed_db/indexed_db_backing_store.h"
 #include "content/browser/indexed_db/indexed_db_class_factory.h"
 #include "content/browser/indexed_db/indexed_db_database.h"
 #include "content/browser/indexed_db/indexed_db_task_helper.h"
+#include "content/common/content_export.h"
 #include "third_party/blink/public/common/indexeddb/web_idb_types.h"
 
 namespace content {
@@ -30,26 +32,10 @@
 class TransactionalLevelDBTransaction;
 class TransactionalLevelDBDatabase;
 
-enum FailClass {
-  FAIL_CLASS_NOTHING,
-  FAIL_CLASS_LEVELDB_ITERATOR,
-  FAIL_CLASS_LEVELDB_DIRECT_TRANSACTION,
-  FAIL_CLASS_LEVELDB_TRANSACTION,
-  FAIL_CLASS_LEVELDB_DATABASE,
-};
-
-enum FailMethod {
-  FAIL_METHOD_NOTHING,
-  FAIL_METHOD_COMMIT,
-  FAIL_METHOD_COMMIT_DISK_FULL,
-  FAIL_METHOD_GET,
-  FAIL_METHOD_SEEK,
-  FAIL_METHOD_WRITE,
-};
-
-class MockBrowserTestIndexedDBClassFactory
+class CONTENT_EXPORT MockBrowserTestIndexedDBClassFactory
     : public IndexedDBClassFactory,
-      public DefaultTransactionalLevelDBFactory {
+      public DefaultTransactionalLevelDBFactory,
+      public storage::mojom::MockFailureInjector {
  public:
   MockBrowserTestIndexedDBClassFactory();
   ~MockBrowserTestIndexedDBClassFactory() override;
@@ -90,18 +76,19 @@
       base::WeakPtr<TransactionalLevelDBTransaction> txn,
       std::unique_ptr<LevelDBSnapshot> snapshot) override;
 
-  void FailOperation(FailClass failure_class,
-                     FailMethod failure_method,
+  void FailOperation(storage::mojom::FailClass failure_class,
+                     storage::mojom::FailMethod failure_method,
                      int fail_on_instance_num,
-                     int fail_on_call_num);
+                     int fail_on_call_num,
+                     base::OnceClosure callback) override;
   void Reset();
 
  private:
-  FailClass failure_class_;
-  FailMethod failure_method_;
-  std::map<FailClass, int> instance_count_;
-  std::map<FailClass, int> fail_on_instance_num_;
-  std::map<FailClass, int> fail_on_call_num_;
+  storage::mojom::FailClass failure_class_;
+  storage::mojom::FailMethod failure_method_;
+  std::map<storage::mojom::FailClass, int> instance_count_;
+  std::map<storage::mojom::FailClass, int> fail_on_instance_num_;
+  std::map<storage::mojom::FailClass, int> fail_on_call_num_;
   bool only_trace_calls_;
 };
 
diff --git a/content/browser/mojo_sandbox_browsertest.cc b/content/browser/mojo_sandbox_browsertest.cc
index b0b2eea..16b2847 100644
--- a/content/browser/mojo_sandbox_browsertest.cc
+++ b/content/browser/mojo_sandbox_browsertest.cc
@@ -7,9 +7,16 @@
 #include <utility>
 
 #include "base/bind.h"
+#include "base/containers/span.h"
 #include "base/macros.h"
+#include "base/memory/read_only_shared_memory_region.h"
+#include "base/memory/shared_memory_mapping.h"
+#include "base/memory/unsafe_shared_memory_region.h"
+#include "base/memory/writable_shared_memory_region.h"
 #include "base/run_loop.h"
+#include "base/strings/string_piece.h"
 #include "base/task/post_task.h"
+#include "base/test/bind_test_util.h"
 #include "content/browser/utility_process_host.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
@@ -25,7 +32,7 @@
 
 class MojoSandboxTest : public ContentBrowserTest {
  public:
-  MojoSandboxTest() {}
+  MojoSandboxTest() = default;
 
   void SetUpOnMainThread() override {
     base::RunLoop run_loop;
@@ -62,9 +69,9 @@
   DISALLOW_COPY_AND_ASSIGN(MojoSandboxTest);
 };
 
-IN_PROC_BROWSER_TEST_F(MojoSandboxTest, SubprocessSharedBuffer) {
-  // Ensures that a shared buffer can be created within a sandboxed process.
-
+// Ensures that a read-only shared memory region can be created within a
+// sandboxed process.
+IN_PROC_BROWSER_TEST_F(MojoSandboxTest, SubprocessReadOnlySharedMemoryRegion) {
   mojo::Remote<mojom::TestService> test_service;
   base::PostTask(
       FROM_HERE, {BrowserThread::IO},
@@ -78,22 +85,79 @@
   bool got_response = false;
   base::RunLoop run_loop;
   test_service.set_disconnect_handler(run_loop.QuitClosure());
-  test_service->CreateSharedBuffer(
+  test_service->CreateReadOnlySharedMemoryRegion(
       kTestMessage,
+      base::BindLambdaForTesting([&](base::ReadOnlySharedMemoryRegion region) {
+        got_response = true;
+        ASSERT_TRUE(region.IsValid());
+        base::ReadOnlySharedMemoryMapping mapping = region.Map();
+        ASSERT_TRUE(mapping.IsValid());
+        auto span = mapping.GetMemoryAsSpan<const char>();
+        EXPECT_EQ(kTestMessage, base::StringPiece(span.data(), span.size()));
+        run_loop.Quit();
+      }));
+  run_loop.Run();
+  EXPECT_TRUE(got_response);
+}
+
+// Ensures that a writable shared memory region can be created within a
+// sandboxed process.
+IN_PROC_BROWSER_TEST_F(MojoSandboxTest, SubprocessWritableSharedMemoryRegion) {
+  mojo::Remote<mojom::TestService> test_service;
+  base::PostTask(
+      FROM_HERE, {BrowserThread::IO},
       base::BindOnce(
-          [](base::OnceClosure quit_closure, bool* got_response,
-             mojo::ScopedSharedBufferHandle buffer) {
-            ASSERT_TRUE(buffer.is_valid());
-            mojo::ScopedSharedBufferMapping mapping =
-                buffer->Map(kTestMessage.size());
-            ASSERT_TRUE(mapping);
-            std::string contents(static_cast<const char*>(mapping.get()),
-                                 kTestMessage.size());
-            EXPECT_EQ(kTestMessage, contents);
-            *got_response = true;
-            std::move(quit_closure).Run();
+          [](UtilityProcessHost* host,
+             mojo::PendingReceiver<mojom::TestService> receiver) {
+            host->GetChildProcess()->BindReceiver(std::move(receiver));
           },
-          run_loop.QuitClosure(), &got_response));
+          host_.get(), test_service.BindNewPipeAndPassReceiver()));
+
+  bool got_response = false;
+  base::RunLoop run_loop;
+  test_service.set_disconnect_handler(run_loop.QuitClosure());
+  test_service->CreateWritableSharedMemoryRegion(
+      kTestMessage,
+      base::BindLambdaForTesting([&](base::WritableSharedMemoryRegion region) {
+        got_response = true;
+        ASSERT_TRUE(region.IsValid());
+        base::WritableSharedMemoryMapping mapping = region.Map();
+        ASSERT_TRUE(mapping.IsValid());
+        auto span = mapping.GetMemoryAsSpan<const char>();
+        EXPECT_EQ(kTestMessage, base::StringPiece(span.data(), span.size()));
+        run_loop.Quit();
+      }));
+  run_loop.Run();
+  EXPECT_TRUE(got_response);
+}
+
+// Ensures that an unsafe shared memory region can be created within a
+// sandboxed process.
+IN_PROC_BROWSER_TEST_F(MojoSandboxTest, SubprocessUnsafeSharedMemoryRegion) {
+  mojo::Remote<mojom::TestService> test_service;
+  base::PostTask(
+      FROM_HERE, {BrowserThread::IO},
+      base::BindOnce(
+          [](UtilityProcessHost* host,
+             mojo::PendingReceiver<mojom::TestService> receiver) {
+            host->GetChildProcess()->BindReceiver(std::move(receiver));
+          },
+          host_.get(), test_service.BindNewPipeAndPassReceiver()));
+
+  bool got_response = false;
+  base::RunLoop run_loop;
+  test_service.set_disconnect_handler(run_loop.QuitClosure());
+  test_service->CreateUnsafeSharedMemoryRegion(
+      kTestMessage,
+      base::BindLambdaForTesting([&](base::UnsafeSharedMemoryRegion region) {
+        got_response = true;
+        ASSERT_TRUE(region.IsValid());
+        base::WritableSharedMemoryMapping mapping = region.Map();
+        ASSERT_TRUE(mapping.IsValid());
+        auto span = mapping.GetMemoryAsSpan<const char>();
+        EXPECT_EQ(kTestMessage, base::StringPiece(span.data(), span.size()));
+        run_loop.Quit();
+      }));
   run_loop.Run();
   EXPECT_TRUE(got_response);
 }
diff --git a/content/browser/native_file_system/file_system_chooser.cc b/content/browser/native_file_system/file_system_chooser.cc
index 76db527..9455817a 100644
--- a/content/browser/native_file_system/file_system_chooser.cc
+++ b/content/browser/native_file_system/file_system_chooser.cc
@@ -115,11 +115,14 @@
       file_types_(ConvertAcceptsToFileTypeInfo(accepts, include_accepts_all)) {}
 
 // static
-void FileSystemChooser::CreateAndShow(WebContents* web_contents,
-                                      const Options& options,
-                                      ResultCallback callback) {
+void FileSystemChooser::CreateAndShow(
+    WebContents* web_contents,
+    const Options& options,
+    ResultCallback callback,
+    base::ScopedClosureRunner fullscreen_block) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
-  auto* listener = new FileSystemChooser(options.type(), std::move(callback));
+  auto* listener = new FileSystemChooser(options.type(), std::move(callback),
+                                         std::move(fullscreen_block));
   listener->dialog_ = ui::SelectFileDialog::Create(
       listener,
       GetContentClient()->browser()->CreateSelectFilePolicy(web_contents));
@@ -154,8 +157,11 @@
 
 FileSystemChooser::FileSystemChooser(
     blink::mojom::ChooseFileSystemEntryType type,
-    ResultCallback callback)
-    : callback_(std::move(callback)), type_(type) {}
+    ResultCallback callback,
+    base::ScopedClosureRunner fullscreen_block)
+    : callback_(std::move(callback)),
+      type_(type),
+      fullscreen_block_(std::move(fullscreen_block)) {}
 
 FileSystemChooser::~FileSystemChooser() {
   if (dialog_)
diff --git a/content/browser/native_file_system/file_system_chooser.h b/content/browser/native_file_system/file_system_chooser.h
index 7ec7e2a..60828b22 100644
--- a/content/browser/native_file_system/file_system_chooser.h
+++ b/content/browser/native_file_system/file_system_chooser.h
@@ -5,6 +5,7 @@
 #ifndef CONTENT_BROWSER_NATIVE_FILE_SYSTEM_FILE_SYSTEM_CHOOSER_H_
 #define CONTENT_BROWSER_NATIVE_FILE_SYSTEM_FILE_SYSTEM_CHOOSER_H_
 
+#include "base/callback_helpers.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/task_runner.h"
@@ -49,10 +50,12 @@
 
   static void CreateAndShow(WebContents* web_contents,
                             const Options& options,
-                            ResultCallback callback);
+                            ResultCallback callback,
+                            base::ScopedClosureRunner fullscreen_block);
 
   FileSystemChooser(blink::mojom::ChooseFileSystemEntryType type,
-                    ResultCallback callback);
+                    ResultCallback callback,
+                    base::ScopedClosureRunner fullscreen_block);
 
  private:
   ~FileSystemChooser() override;
@@ -67,6 +70,7 @@
 
   ResultCallback callback_;
   blink::mojom::ChooseFileSystemEntryType type_;
+  base::ScopedClosureRunner fullscreen_block_;
 
   scoped_refptr<ui::SelectFileDialog> dialog_;
 };
diff --git a/content/browser/native_file_system/file_system_chooser_unittest.cc b/content/browser/native_file_system/file_system_chooser_unittest.cc
index 925bd1f9..8fc9c43 100644
--- a/content/browser/native_file_system/file_system_chooser_unittest.cc
+++ b/content/browser/native_file_system/file_system_chooser_unittest.cc
@@ -34,7 +34,8 @@
             std::move(accepts), include_accepts_all),
         base::BindLambdaForTesting(
             [&](blink::mojom::NativeFileSystemErrorPtr,
-                std::vector<base::FilePath>) { loop.Quit(); }));
+                std::vector<base::FilePath>) { loop.Quit(); }),
+        base::ScopedClosureRunner());
     loop.Run();
   }
 
diff --git a/content/browser/native_file_system/native_file_system_manager_impl.cc b/content/browser/native_file_system/native_file_system_manager_impl.cc
index 4a49bf3..f66f994 100644
--- a/content/browser/native_file_system/native_file_system_manager_impl.cc
+++ b/content/browser/native_file_system/native_file_system_manager_impl.cc
@@ -4,6 +4,7 @@
 
 #include "content/browser/native_file_system/native_file_system_manager_impl.h"
 
+#include "base/callback_helpers.h"
 #include "base/files/file_path.h"
 #include "base/logging.h"
 #include "base/metrics/histogram_functions.h"
@@ -74,9 +75,11 @@
   }
 
   // Drop fullscreen mode so that the user sees the URL bar.
-  web_contents->ForSecurityDropFullscreen();
+  base::ScopedClosureRunner fullscreen_block =
+      web_contents->ForSecurityDropFullscreen();
 
-  FileSystemChooser::CreateAndShow(web_contents, options, std::move(callback));
+  FileSystemChooser::CreateAndShow(web_contents, options, std::move(callback),
+                                   std::move(fullscreen_block));
 }
 
 bool CreateOrTruncateFile(const base::FilePath& path) {
diff --git a/content/browser/payments/payment_app_provider_impl.cc b/content/browser/payments/payment_app_provider_impl.cc
index c587ace..0c0b62f3 100644
--- a/content/browser/payments/payment_app_provider_impl.cc
+++ b/content/browser/payments/payment_app_provider_impl.cc
@@ -122,6 +122,17 @@
 // called.
 class RespondWithCallbacks : public PaymentHandlerResponseCallback {
  public:
+  static RespondWithCallbacks* CreateForCanMakePayment(
+      BrowserContext* browser_context,
+      scoped_refptr<ServiceWorkerVersion> service_worker_version,
+      PaymentAppProvider::PaymentEventResultCallback callback) {
+    RespondWithCallbacks* callbacks = new RespondWithCallbacks(
+        browser_context, ServiceWorkerMetrics::EventType::CAN_MAKE_PAYMENT,
+        service_worker_version, PaymentAppProvider::InvokePaymentAppCallback(),
+        /*event_callback=*/std::move(callback));
+    return callbacks;
+  }
+
   static RespondWithCallbacks* CreateForInvoke(
       BrowserContext* browser_context,
       scoped_refptr<ServiceWorkerVersion> service_worker_version,
@@ -136,14 +147,13 @@
     return callbacks;
   }
 
-  static RespondWithCallbacks* CreateForEvent(
+  static RespondWithCallbacks* CreateForAbort(
       BrowserContext* browser_context,
-      ServiceWorkerMetrics::EventType event_type,
       scoped_refptr<ServiceWorkerVersion> service_worker_version,
       PaymentAppProvider::PaymentEventResultCallback callback) {
     RespondWithCallbacks* callbacks = new RespondWithCallbacks(
-        browser_context, event_type, service_worker_version,
-        PaymentAppProvider::InvokePaymentAppCallback(),
+        browser_context, ServiceWorkerMetrics::EventType::ABORT_PAYMENT,
+        service_worker_version, PaymentAppProvider::InvokePaymentAppCallback(),
         /*event_callback=*/std::move(callback));
     return callbacks;
   }
@@ -325,9 +335,8 @@
   // This object self-deletes after either success or error callback is
   // invoked.
   RespondWithCallbacks* invocation_callbacks =
-      RespondWithCallbacks::CreateForEvent(
-          browser_context, ServiceWorkerMetrics::EventType::ABORT_PAYMENT,
-          active_version, std::move(callback));
+      RespondWithCallbacks::CreateForAbort(browser_context, active_version,
+                                           std::move(callback));
 
   active_version->endpoint()->DispatchAbortPaymentEvent(
       invocation_callbacks->BindNewPipeAndPassRemote(),
@@ -356,9 +365,8 @@
   // This object self-deletes after either success or error callback is
   // invoked.
   RespondWithCallbacks* invocation_callbacks =
-      RespondWithCallbacks::CreateForEvent(
-          browser_context, ServiceWorkerMetrics::EventType::CAN_MAKE_PAYMENT,
-          active_version, std::move(callback));
+      RespondWithCallbacks::CreateForCanMakePayment(
+          browser_context, active_version, std::move(callback));
 
   active_version->endpoint()->DispatchCanMakePaymentEvent(
       std::move(event_data), invocation_callbacks->BindNewPipeAndPassRemote(),
diff --git a/content/browser/pointer_lock_browsertest.cc b/content/browser/pointer_lock_browsertest.cc
index fee8a3d..f1aa36f 100644
--- a/content/browser/pointer_lock_browsertest.cc
+++ b/content/browser/pointer_lock_browsertest.cc
@@ -38,7 +38,12 @@
   void RequestToLockMouse(WebContents* web_contents,
                           bool user_gesture,
                           bool last_unlocked_by_target) override {
-    web_contents->GotResponseToLockMouseRequest(user_gesture);
+    if (user_gesture)
+      web_contents->GotResponseToLockMouseRequest(
+          blink::mojom::PointerLockResult::kSuccess);
+    else
+      web_contents->GotResponseToLockMouseRequest(
+          blink::mojom::PointerLockResult::kRequiresUserGesture);
   }
 
   void LostMouseLock() override {}
@@ -62,13 +67,14 @@
       UnlockMouse();
   }
 
-  bool LockMouse(bool request_unadjusted_movement) override {
+  blink::mojom::PointerLockResult LockMouse(
+      bool request_unadjusted_movement) override {
     event_handler()->mouse_locked_ = true;
     event_handler()->mouse_locked_unadjusted_movement_ =
         request_unadjusted_movement
             ? std::make_unique<ScopedEnableUnadjustedMouseEventsForTesting>()
             : nullptr;
-    return true;
+    return blink::mojom::PointerLockResult::kSuccess;
   }
 
   void UnlockMouse() override {
diff --git a/content/browser/pointer_lock_browsertest_mac.mm b/content/browser/pointer_lock_browsertest_mac.mm
index e2cbbaa..1aa33d5 100644
--- a/content/browser/pointer_lock_browsertest_mac.mm
+++ b/content/browser/pointer_lock_browsertest_mac.mm
@@ -19,13 +19,14 @@
       UnlockMouse();
   }
 
-  bool LockMouse(bool request_unadjusted_movement) override {
+  blink::mojom::PointerLockResult LockMouse(
+      bool request_unadjusted_movement) override {
     if (request_unadjusted_movement)
-      return false;
+      return blink::mojom::PointerLockResult::kUnsupportedOptions;
 
     mouse_locked_ = true;
 
-    return true;
+    return blink::mojom::PointerLockResult::kSuccess;
   }
 
   void UnlockMouse() override {
diff --git a/content/browser/renderer_host/frame_connector_delegate.cc b/content/browser/renderer_host/frame_connector_delegate.cc
index 05266c9..4a2eb5d 100644
--- a/content/browser/renderer_host/frame_connector_delegate.cc
+++ b/content/browser/renderer_host/frame_connector_delegate.cc
@@ -77,8 +77,9 @@
   return false;
 }
 
-bool FrameConnectorDelegate::LockMouse(bool request_unadjusted_movement) {
-  return false;
+blink::mojom::PointerLockResult FrameConnectorDelegate::LockMouse(
+    bool request_unadjusted_movement) {
+  return blink::mojom::PointerLockResult::kUnknownError;
 }
 
 void FrameConnectorDelegate::EnableAutoResize(const gfx::Size& min_size,
diff --git a/content/browser/renderer_host/frame_connector_delegate.h b/content/browser/renderer_host/frame_connector_delegate.h
index 59900a9..d1c10ec7 100644
--- a/content/browser/renderer_host/frame_connector_delegate.h
+++ b/content/browser/renderer_host/frame_connector_delegate.h
@@ -12,6 +12,7 @@
 #include "components/viz/host/hit_test/hit_test_query.h"
 #include "content/browser/renderer_host/event_with_latency_info.h"
 #include "content/common/content_export.h"
+#include "content/common/input/input_handler.mojom.h"
 #include "content/public/common/input_event_ack_state.h"
 #include "content/public/common/screen_info.h"
 #include "third_party/blink/public/platform/viewport_intersection_state.h"
@@ -152,7 +153,8 @@
 
   // Locks the mouse, if |request_unadjusted_movement_| is true, try setting the
   // unadjusted movement mode. Returns true if mouse is locked.
-  virtual bool LockMouse(bool request_unadjusted_movement);
+  virtual blink::mojom::PointerLockResult LockMouse(
+      bool request_unadjusted_movement);
 
   // Unlocks the mouse if the mouse is locked.
   virtual void UnlockMouse() {}
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index c11c7d6..c725561 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -228,7 +228,6 @@
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/accessibility/accessibility_switches.h"
 #include "ui/base/ui_base_switches.h"
-#include "ui/base/ui_base_switches_util.h"
 #include "ui/display/display_switches.h"
 #include "ui/gl/gl_switches.h"
 #include "ui/native_theme/native_theme_features.h"
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index 5a79578..8696fa50 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -544,7 +544,8 @@
 
 void RenderWidgetHostImpl::ShutdownAndDestroyWidget(bool also_delete) {
   CancelKeyboardLock();
-  RejectMouseLockOrUnlockIfNecessary();
+  RejectMouseLockOrUnlockIfNecessary(
+      blink::mojom::PointerLockResult::kElementDestroyed);
 
   if (process_->IsInitializedAndNotDead() && !owner_delegate()) {
     // Tell the RendererWidget to close. We only want to do this if the
@@ -613,7 +614,8 @@
   if (is_hidden_)
     return;
 
-  RejectMouseLockOrUnlockIfNecessary();
+  RejectMouseLockOrUnlockIfNecessary(
+      blink::mojom::PointerLockResult::kWrongDocument);
 
   TRACE_EVENT0("renderer_host", "RenderWidgetHostImpl::WasHidden");
   is_hidden_ = true;
@@ -1022,7 +1024,8 @@
 
 void RenderWidgetHostImpl::ViewDestroyed() {
   CancelKeyboardLock();
-  RejectMouseLockOrUnlockIfNecessary();
+  RejectMouseLockOrUnlockIfNecessary(
+      blink::mojom::PointerLockResult::kElementDestroyed);
 
   // TODO(evanm): tracking this may no longer be necessary;
   // eliminate this function if so.
@@ -1933,13 +1936,15 @@
                                              gfx::Range::InvalidRange(), 0, 0);
 }
 
-void RenderWidgetHostImpl::RejectMouseLockOrUnlockIfNecessary() {
+void RenderWidgetHostImpl::RejectMouseLockOrUnlockIfNecessary(
+    blink::mojom::PointerLockResult reason) {
   DCHECK(!pending_mouse_lock_request_ || !IsMouseLocked());
+  DCHECK(reason != blink::mojom::PointerLockResult::kSuccess);
   if (pending_mouse_lock_request_) {
     DCHECK(request_mouse_callback_);
     pending_mouse_lock_request_ = false;
     mouse_lock_raw_movement_ = false;
-    std::move(request_mouse_callback_).Run(/*success=*/false);
+    std::move(request_mouse_callback_).Run(reason);
 
   } else if (IsMouseLocked()) {
     view_->UnlockMouse();
@@ -2416,7 +2421,7 @@
     bool unadjusted_movement,
     InputRouterImpl::RequestMouseLockCallback response) {
   if (pending_mouse_lock_request_) {
-    std::move(response).Run(/*success=*/false);
+    std::move(response).Run(blink::mojom::PointerLockResult::kAlreadyLocked);
     return;
   }
 
@@ -2435,14 +2440,19 @@
   }
 
   // Directly reject or approve the mouse lock based on privilege.
-  GotResponseToLockMouseRequest(allow_privileged_mouse_lock_ && privileged);
+  if (allow_privileged_mouse_lock_ && privileged)
+    GotResponseToLockMouseRequest(blink::mojom::PointerLockResult::kSuccess);
+  else
+    GotResponseToLockMouseRequest(
+        blink::mojom::PointerLockResult::kPermissionDenied);
 }
 
 void RenderWidgetHostImpl::UnlockMouse() {
   // Got unlock request from renderer. Will update |is_last_unlocked_by_target_|
   // for silent re-lock.
   const bool was_mouse_locked = !pending_mouse_lock_request_ && IsMouseLocked();
-  RejectMouseLockOrUnlockIfNecessary();
+  RejectMouseLockOrUnlockIfNecessary(
+      blink::mojom::PointerLockResult::kUserRejected);
   if (was_mouse_locked)
     is_last_unlocked_by_target_ = true;
 }
@@ -2709,12 +2719,11 @@
          delegate_->ShouldIgnoreInputEvents();
 }
 
-bool RenderWidgetHostImpl::GotResponseToLockMouseRequest(bool allowed) {
-  if (!allowed) {
-    RejectMouseLockOrUnlockIfNecessary();
-    return false;
+bool RenderWidgetHostImpl::GotResponseToLockMouseRequest(
+    blink::mojom::PointerLockResult response) {
+  if (response != blink::mojom::PointerLockResult::kSuccess) {
+    RejectMouseLockOrUnlockIfNecessary(response);
   }
-
   if (!pending_mouse_lock_request_) {
     // This is possible, e.g., the plugin sends us an unlock request before
     // the user allows to lock to mouse.
@@ -2723,13 +2732,15 @@
 
   DCHECK(request_mouse_callback_);
   pending_mouse_lock_request_ = false;
-  if (!view_ || !view_->HasFocus() ||
-      !view_->LockMouse(mouse_lock_raw_movement_)) {
-    std::move(request_mouse_callback_).Run(/*success=*/false);
-    return false;
+  if (view_ && view_->HasFocus()) {
+    blink::mojom::PointerLockResult result =
+        view_->LockMouse(mouse_lock_raw_movement_);
+    std::move(request_mouse_callback_).Run(result);
+    return result == blink::mojom::PointerLockResult::kSuccess;
   }
 
-  std::move(request_mouse_callback_).Run(/*success=*/true);
+  std::move(request_mouse_callback_)
+      .Run(blink::mojom::PointerLockResult::kSuccess);
   return true;
 }
 
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h
index 22628b84..def0dde 100644
--- a/content/browser/renderer_host/render_widget_host_impl.h
+++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -527,7 +527,7 @@
   // Called when the response to a pending mouse lock request has arrived.
   // Returns true if |allowed| is true and the mouse has been successfully
   // locked.
-  bool GotResponseToLockMouseRequest(bool allowed);
+  bool GotResponseToLockMouseRequest(blink::mojom::PointerLockResult result);
 
   void set_allow_privileged_mouse_lock(bool allow) {
     allow_privileged_mouse_lock_ = allow;
@@ -574,7 +574,8 @@
   // or create it if it doesn't already exist.
   BrowserAccessibilityManager* GetOrCreateRootBrowserAccessibilityManager();
 
-  void RejectMouseLockOrUnlockIfNecessary();
+  void RejectMouseLockOrUnlockIfNecessary(
+      blink::mojom::PointerLockResult reason);
 
   void set_renderer_initialized(bool renderer_initialized) {
     renderer_initialized_ = renderer_initialized;
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
index 42b825e6..462db07 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -1652,9 +1652,10 @@
       delegate);
 }
 
-bool RenderWidgetHostViewAndroid::LockMouse(bool request_unadjusted_movement) {
+blink::mojom::PointerLockResult RenderWidgetHostViewAndroid::LockMouse(
+    bool request_unadjusted_movement) {
   NOTIMPLEMENTED();
-  return false;
+  return blink::mojom::PointerLockResult::kUnsupportedOptions;
 }
 
 void RenderWidgetHostViewAndroid::UnlockMouse() {
diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h
index 37b90e9..8f2940e 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.h
+++ b/content/browser/renderer_host/render_widget_host_view_android.h
@@ -145,7 +145,8 @@
   BrowserAccessibilityManager* CreateBrowserAccessibilityManager(
       BrowserAccessibilityDelegate* delegate,
       bool for_root_frame) override;
-  bool LockMouse(bool request_unadjusted_movement) override;
+  blink::mojom::PointerLockResult LockMouse(
+      bool request_unadjusted_movement) override;
   void UnlockMouse() override;
   void ResetFallbackToFirstNavigationSurface() override;
   bool RequestRepaintForTesting() override;
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index e6fd4739..bef2f08 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -75,7 +75,6 @@
 #include "ui/base/ime/input_method.h"
 #include "ui/base/mojom/cursor_type.mojom-shared.h"
 #include "ui/base/ui_base_switches.h"
-#include "ui/base/ui_base_switches_util.h"
 #include "ui/base/ui_base_types.h"
 #include "ui/compositor/dip_util.h"
 #include "ui/display/screen.h"
@@ -1158,7 +1157,8 @@
   window_->SetProperty(ui::kChildAXTreeID, id.ToString());
 }
 
-bool RenderWidgetHostViewAura::LockMouse(bool request_unadjusted_movement) {
+blink::mojom::PointerLockResult RenderWidgetHostViewAura::LockMouse(
+    bool request_unadjusted_movement) {
   return event_handler_->LockMouse(request_unadjusted_movement);
 }
 
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h
index a1428ace..7d20671 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.h
+++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -150,7 +150,8 @@
   gfx::AcceleratedWidget AccessibilityGetAcceleratedWidget() override;
   gfx::NativeViewAccessible AccessibilityGetNativeViewAccessible() override;
   void SetMainFrameAXTreeID(ui::AXTreeID id) override;
-  bool LockMouse(bool request_unadjusted_movement) override;
+  blink::mojom::PointerLockResult LockMouse(
+      bool request_unadjusted_movement) override;
   void UnlockMouse() override;
   bool GetIsMouseLockedUnadjustedMovementForTesting() override;
   bool LockKeyboard(base::Optional<base::flat_set<ui::DomCode>> codes) override;
diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.cc b/content/browser/renderer_host/render_widget_host_view_child_frame.cc
index eb751d2..3e1df86c 100644
--- a/content/browser/renderer_host/render_widget_host_view_child_frame.cc
+++ b/content/browser/renderer_host/render_widget_host_view_child_frame.cc
@@ -588,11 +588,11 @@
     selection_controller_client_->DidStopFlinging();
 }
 
-bool RenderWidgetHostViewChildFrame::LockMouse(
+blink::mojom::PointerLockResult RenderWidgetHostViewChildFrame::LockMouse(
     bool request_unadjusted_movement) {
   if (frame_connector_)
     return frame_connector_->LockMouse(request_unadjusted_movement);
-  return false;
+  return blink::mojom::PointerLockResult::kWrongDocument;
 }
 
 void RenderWidgetHostViewChildFrame::UnlockMouse() {
diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.h b/content/browser/renderer_host/render_widget_host_view_child_frame.h
index 4f5adb0..1f9ff52 100644
--- a/content/browser/renderer_host/render_widget_host_view_child_frame.h
+++ b/content/browser/renderer_host/render_widget_host_view_child_frame.h
@@ -107,7 +107,8 @@
   void TransformPointToRootSurface(gfx::PointF* point) override;
   gfx::Rect GetBoundsInRootWindow() override;
   void DidStopFlinging() override;
-  bool LockMouse(bool request_unadjusted_movement) override;
+  blink::mojom::PointerLockResult LockMouse(
+      bool request_unadjusted_movement) override;
   void UnlockMouse() override;
   const viz::FrameSinkId& GetFrameSinkId() const override;
   const viz::LocalSurfaceIdAllocation& GetLocalSurfaceIdAllocation()
diff --git a/content/browser/renderer_host/render_widget_host_view_event_handler.cc b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
index eeb44c8..46c6776 100644
--- a/content/browser/renderer_host/render_widget_host_view_event_handler.cc
+++ b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
@@ -153,22 +153,21 @@
 }
 #endif
 
-bool RenderWidgetHostViewEventHandler::LockMouse(
+blink::mojom::PointerLockResult RenderWidgetHostViewEventHandler::LockMouse(
     bool request_unadjusted_movement) {
   aura::Window* root_window = window_->GetRootWindow();
   if (!root_window)
-    return false;
+    return blink::mojom::PointerLockResult::kWrongDocument;
 
   if (mouse_locked_)
-    return true;
+    return blink::mojom::PointerLockResult::kSuccess;
 
   if (request_unadjusted_movement && window_->GetHost()) {
     mouse_locked_unadjusted_movement_ =
         window_->GetHost()->RequestUnadjustedMovement();
     if (!mouse_locked_unadjusted_movement_)
-      return false;
+      return blink::mojom::PointerLockResult::kUnsupportedOptions;
   }
-
   mouse_locked_ = true;
 
 #if !defined(OS_WIN)
@@ -187,7 +186,7 @@
     MoveCursorToCenter(nullptr);
 
   delegate_->SetTooltipsEnabled(false);
-  return true;
+  return blink::mojom::PointerLockResult::kSuccess;
 }
 
 void RenderWidgetHostViewEventHandler::UnlockMouse() {
diff --git a/content/browser/renderer_host/render_widget_host_view_event_handler.h b/content/browser/renderer_host/render_widget_host_view_event_handler.h
index e81f38f..14e2317 100644
--- a/content/browser/renderer_host/render_widget_host_view_event_handler.h
+++ b/content/browser/renderer_host/render_widget_host_view_event_handler.h
@@ -13,6 +13,7 @@
 #include "content/browser/renderer_host/input/mouse_wheel_phase_handler.h"
 #include "content/common/content_export.h"
 #include "content/public/browser/native_web_keyboard_event.h"
+#include "third_party/blink/public/mojom/input/pointer_lock_result.mojom.h"
 #include "ui/aura/scoped_enable_unadjusted_mouse_events.h"
 #include "ui/aura/scoped_keyboard_hook.h"
 #include "ui/aura/window_tracker.h"
@@ -143,7 +144,7 @@
   void set_window(aura::Window* window) { window_ = window; }
 
   // Lock/Unlock processing of future mouse events.
-  bool LockMouse(bool request_unadjusted_movement);
+  blink::mojom::PointerLockResult LockMouse(bool request_unadjusted_movement);
   void UnlockMouse();
 
   // Start/Stop processing of future system keyboard events.
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h
index 1b1847c..83c74b6 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.h
+++ b/content/browser/renderer_host/render_widget_host_view_mac.h
@@ -157,7 +157,7 @@
       const cc::RenderFrameMetadata& metadata) override;
   void DidNavigate() override;
 
-  bool LockMouse(bool) override;
+  blink::mojom::PointerLockResult LockMouse(bool) override;
   void UnlockMouse() override;
   bool LockKeyboard(base::Optional<base::flat_set<ui::DomCode>> codes) override;
   void UnlockKeyboard() override;
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index 9276d2d..c8b9491 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -1071,14 +1071,15 @@
   return window_frame_in_screen_dip_;
 }
 
-bool RenderWidgetHostViewMac::LockMouse(bool request_unadjusted_movement) {
+blink::mojom::PointerLockResult RenderWidgetHostViewMac::LockMouse(
+    bool request_unadjusted_movement) {
   if (mouse_locked_)
-    return true;
+    return blink::mojom::PointerLockResult::kSuccess;
 
   if (request_unadjusted_movement) {
     // TODO(crbug/998688): implement pointerlock unadjusted movement on mac.
     NOTIMPLEMENTED();
-    return false;
+    return blink::mojom::PointerLockResult::kUnsupportedOptions;
   }
 
   mouse_locked_ = true;
@@ -1089,7 +1090,7 @@
   // Clear the tooltip window.
   ns_view_->SetTooltipText(base::string16());
 
-  return true;
+  return blink::mojom::PointerLockResult::kSuccess;
 }
 
 void RenderWidgetHostViewMac::UnlockMouse() {
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
index 91374f9..e76b66d 100644
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -1695,11 +1695,6 @@
   return *indexed_db_control_;
 }
 
-IndexedDBContextImpl*
-StoragePartitionImpl::GetIndexedDBContextImplForTesting() {
-  return GetIndexedDBContextInternal();
-}
-
 IndexedDBContextImpl* StoragePartitionImpl::GetIndexedDBContextInternal() {
   DCHECK(initialized_);
   return indexed_db_context_.get();
diff --git a/content/browser/storage_partition_impl.h b/content/browser/storage_partition_impl.h
index 0c84aa9..0cbc0a9e 100644
--- a/content/browser/storage_partition_impl.h
+++ b/content/browser/storage_partition_impl.h
@@ -138,7 +138,6 @@
   IdleManager* GetIdleManager();
   LockManager* GetLockManager();  // override; TODO: Add to interface
   storage::mojom::IndexedDBControl& GetIndexedDBControl() override;
-  IndexedDBContextImpl* GetIndexedDBContextImplForTesting() override;
   NativeFileSystemEntryFactory* GetNativeFileSystemEntryFactory() override;
   CacheStorageContextImpl* GetCacheStorageContext() override;
   ServiceWorkerContextWrapper* GetServiceWorkerContext() override;
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index aea0e0674..ff4fd59 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -640,7 +640,8 @@
   }
 
   if (mouse_lock_widget_)
-    mouse_lock_widget_->RejectMouseLockOrUnlockIfNecessary();
+    mouse_lock_widget_->RejectMouseLockOrUnlockIfNecessary(
+        blink::mojom::PointerLockResult::kElementDestroyed);
 
   for (FrameTreeNode* node : frame_tree_.Nodes()) {
     // Delete all RFHs pending shutdown, which will lead the corresponding RVHs
@@ -2494,7 +2495,7 @@
 }
 
 bool WebContentsImpl::CanEnterFullscreenMode() {
-  return true;
+  return fullscreen_blocker_count_ == 0;
 }
 
 void WebContentsImpl::EnterFullscreenMode(
@@ -2734,7 +2735,8 @@
   for (WebContentsImpl* current = this; current;
        current = current->GetOuterWebContents()) {
     if (current->mouse_lock_widget_) {
-      render_widget_host->GotResponseToLockMouseRequest(false);
+      render_widget_host->GotResponseToLockMouseRequest(
+          blink::mojom::PointerLockResult::kAlreadyLocked);
       return;
     }
   }
@@ -2742,7 +2744,8 @@
   if (privileged) {
     DCHECK(!GetOuterWebContents());
     mouse_lock_widget_ = render_widget_host;
-    render_widget_host->GotResponseToLockMouseRequest(true);
+    render_widget_host->GotResponseToLockMouseRequest(
+        blink::mojom::PointerLockResult::kSuccess);
     return;
   }
 
@@ -2763,7 +2766,8 @@
 
     delegate_->RequestToLockMouse(this, user_gesture, last_unlocked_by_target);
   } else {
-    render_widget_host->GotResponseToLockMouseRequest(false);
+    render_widget_host->GotResponseToLockMouseRequest(
+        blink::mojom::PointerLockResult::kWrongDocument);
   }
 }
 
@@ -3005,7 +3009,10 @@
 
   // Any new WebContents opened while this WebContents is in fullscreen can be
   // used to confuse the user, so drop fullscreen.
-  ForSecurityDropFullscreen();
+  base::ScopedClosureRunner fullscreen_block = ForSecurityDropFullscreen();
+  // The new contents will be independent of this contents, so release the
+  // fullscreen block.
+  fullscreen_block.RunAndReset();
 
   if (params.opener_suppressed) {
     // When the opener is suppressed, the original renderer cannot access the
@@ -4223,15 +4230,16 @@
   return IsBeingCaptured() ? preferred_size_for_capture_ : preferred_size_;
 }
 
-bool WebContentsImpl::GotResponseToLockMouseRequest(bool allowed) {
+bool WebContentsImpl::GotResponseToLockMouseRequest(
+    blink::mojom::PointerLockResult result) {
   if (mouse_lock_widget_) {
     if (mouse_lock_widget_->delegate()->GetAsWebContents() != this) {
       return mouse_lock_widget_->delegate()
           ->GetAsWebContents()
-          ->GotResponseToLockMouseRequest(allowed);
+          ->GotResponseToLockMouseRequest(result);
     }
 
-    if (mouse_lock_widget_->GotResponseToLockMouseRequest(allowed))
+    if (mouse_lock_widget_->GotResponseToLockMouseRequest(result))
       return true;
   }
 
@@ -4243,6 +4251,12 @@
   return false;
 }
 
+void WebContentsImpl::GotLockMousePermissionResponse(bool allowed) {
+  GotResponseToLockMouseRequest(
+      allowed ? blink::mojom::PointerLockResult::kSuccess
+              : blink::mojom::PointerLockResult::kPermissionDenied);
+}
+
 bool WebContentsImpl::GotResponseToKeyboardLockRequest(bool allowed) {
   if (!keyboard_lock_widget_)
     return false;
@@ -4367,11 +4381,12 @@
 
 void WebContentsImpl::ExitFullscreen(bool will_cause_resize) {
   // Clean up related state and initiate the fullscreen exit.
-  GetRenderViewHost()->GetWidget()->RejectMouseLockOrUnlockIfNecessary();
+  GetRenderViewHost()->GetWidget()->RejectMouseLockOrUnlockIfNecessary(
+      blink::mojom::PointerLockResult::kUserRejected);
   ExitFullscreenMode(will_cause_resize);
 }
 
-void WebContentsImpl::ForSecurityDropFullscreen() {
+base::ScopedClosureRunner WebContentsImpl::ForSecurityDropFullscreen() {
   // There are two chains of WebContents to kick out of fullscreen.
   //
   // Chain 1, the inner/outer WebContents chain. If an inner WebContents has
@@ -4385,16 +4400,37 @@
   // Note that these two chains don't interact, as only a top-level WebContents
   // can have an opener. This simplifies things.
 
-  WebContents* web_contents = this;
+  std::vector<base::WeakPtr<WebContentsImpl>> blocked_contentses;
+
+  WebContentsImpl* web_contents = this;
   while (web_contents) {
+    // Drop fullscreen if the WebContents is in it, and...
     if (web_contents->IsFullscreenForCurrentTab())
       web_contents->ExitFullscreen(true);
 
-    if (web_contents->HasOriginalOpener())
-      web_contents = FromRenderFrameHost(web_contents->GetOriginalOpener());
-    else
+    // ...block the WebContents from entering fullscreen until further notice.
+    ++web_contents->fullscreen_blocker_count_;
+    blocked_contentses.push_back(web_contents->weak_factory_.GetWeakPtr());
+
+    if (web_contents->HasOriginalOpener()) {
+      web_contents = static_cast<WebContentsImpl*>(
+          FromRenderFrameHost(web_contents->GetOriginalOpener()));
+    } else {
       web_contents = web_contents->GetOuterWebContents();
+    }
   }
+
+  return base::ScopedClosureRunner(base::BindOnce(
+      [](std::vector<base::WeakPtr<WebContentsImpl>> blocked_contentses) {
+        for (base::WeakPtr<WebContentsImpl>& web_contents :
+             blocked_contentses) {
+          if (web_contents) {
+            DCHECK_GT(web_contents->fullscreen_blocker_count_, 0);
+            --web_contents->fullscreen_blocker_count_;
+          }
+        }
+      },
+      std::move(blocked_contentses)));
 }
 
 void WebContentsImpl::ResumeLoadingCreatedWebContents() {
@@ -4823,7 +4859,10 @@
 
   // Any new WebContents opened while this WebContents is in fullscreen can be
   // used to confuse the user, so drop fullscreen.
-  ForSecurityDropFullscreen();
+  base::ScopedClosureRunner fullscreen_block = ForSecurityDropFullscreen();
+  // The new view source contents will be independent of this contents, so
+  // release the fullscreen block.
+  fullscreen_block.RunAndReset();
 
   // We intentionally don't share the SiteInstance with the original frame so
   // that view source has a consistent process model and always ends up in a new
@@ -5043,8 +5082,13 @@
 
 void WebContentsImpl::EnumerateDirectory(
     RenderFrameHost* render_frame_host,
-    std::unique_ptr<FileSelectListener> listener,
+    std::unique_ptr<FileChooserImpl::FileSelectListenerImpl> listener,
     const base::FilePath& directory_path) {
+  // Any explicit focusing of another window while this WebContents is in
+  // fullscreen can be used to confuse the user, so drop fullscreen.
+  base::ScopedClosureRunner fullscreen_block = ForSecurityDropFullscreen();
+  listener->SetFullscreenBlock(std::move(fullscreen_block));
+
   if (delegate_)
     delegate_->EnumerateDirectory(this, std::move(listener), directory_path);
   else
@@ -5586,12 +5630,13 @@
 
   // Running a dialog causes an exit to webpage-initiated fullscreen.
   // http://crbug.com/728276
-  ForSecurityDropFullscreen();
+  base::ScopedClosureRunner fullscreen_block = ForSecurityDropFullscreen();
 
-  auto callback = base::BindOnce(
-      &WebContentsImpl::OnDialogClosed, base::Unretained(this),
-      render_frame_host->GetProcess()->GetID(),
-      render_frame_host->GetRoutingID(), std::move(response_callback));
+  auto callback =
+      base::BindOnce(&WebContentsImpl::OnDialogClosed, base::Unretained(this),
+                     render_frame_host->GetProcess()->GetID(),
+                     render_frame_host->GetRoutingID(),
+                     std::move(response_callback), std::move(fullscreen_block));
 
   std::vector<protocol::PageHandler*> page_handlers =
       protocol::PageHandler::EnabledForWebContents(this);
@@ -5662,17 +5707,18 @@
 
   // Running a dialog causes an exit to webpage-initiated fullscreen.
   // http://crbug.com/728276
-  ForSecurityDropFullscreen();
+  base::ScopedClosureRunner fullscreen_block = ForSecurityDropFullscreen();
 
   RenderFrameHostImpl* rfhi =
       static_cast<RenderFrameHostImpl*>(render_frame_host);
   if (delegate_)
     delegate_->WillRunBeforeUnloadConfirm();
 
-  auto callback = base::BindOnce(
-      &WebContentsImpl::OnDialogClosed, base::Unretained(this),
-      render_frame_host->GetProcess()->GetID(),
-      render_frame_host->GetRoutingID(), std::move(response_callback));
+  auto callback =
+      base::BindOnce(&WebContentsImpl::OnDialogClosed, base::Unretained(this),
+                     render_frame_host->GetProcess()->GetID(),
+                     render_frame_host->GetRoutingID(),
+                     std::move(response_callback), std::move(fullscreen_block));
 
   std::vector<protocol::PageHandler*> page_handlers =
       protocol::PageHandler::EnabledForWebContents(this);
@@ -5715,11 +5761,12 @@
 
 void WebContentsImpl::RunFileChooser(
     RenderFrameHost* render_frame_host,
-    std::unique_ptr<content::FileSelectListener> listener,
+    std::unique_ptr<FileChooserImpl::FileSelectListenerImpl> listener,
     const blink::mojom::FileChooserParams& params) {
   // Any explicit focusing of another window while this WebContents is in
   // fullscreen can be used to confuse the user, so drop fullscreen.
-  ForSecurityDropFullscreen();
+  base::ScopedClosureRunner fullscreen_block = ForSecurityDropFullscreen();
+  listener->SetFullscreenBlock(std::move(fullscreen_block));
 
   if (delegate_)
     delegate_->RunFileChooser(render_frame_host, std::move(listener), params);
@@ -5907,8 +5954,6 @@
       Source<WebContents>(this),
       Details<RenderViewHost>(render_view_host));
 
-  view_->RenderViewCreated(render_view_host);
-
   for (auto& observer : observers_)
     observer.RenderViewCreated(render_view_host);
   if (delegate_)
@@ -6380,7 +6425,10 @@
 void WebContentsImpl::DidCallFocus() {
   // Any explicit focusing of another window while this WebContents is in
   // fullscreen can be used to confuse the user, so drop fullscreen.
-  ForSecurityDropFullscreen();
+  base::ScopedClosureRunner fullscreen_block = ForSecurityDropFullscreen();
+  // The other contents is independent of this contents, so release the
+  // fullscreen block.
+  fullscreen_block.RunAndReset();
 }
 
 RenderFrameHost* WebContentsImpl::GetFocusedFrameIncludingInnerWebContents() {
@@ -6795,12 +6843,14 @@
 void WebContentsImpl::OnDialogClosed(int render_process_id,
                                      int render_frame_id,
                                      JavaScriptDialogCallback response_callback,
+                                     base::ScopedClosureRunner fullscreen_block,
                                      bool dialog_was_suppressed,
                                      bool success,
                                      const base::string16& user_input) {
   RenderFrameHostImpl* rfh = RenderFrameHostImpl::FromID(render_process_id,
                                                          render_frame_id);
   last_dialog_suppressed_ = dialog_was_suppressed;
+  fullscreen_block.RunAndReset();
 
   javascript_dialog_navigation_deferrer_.reset();
 
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 93669b5..7ac8d4ba 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -28,6 +28,7 @@
 #include "build/build_config.h"
 #include "components/download/public/common/download_url_parameters.h"
 #include "content/browser/accessibility/accessibility_event_recorder.h"
+#include "content/browser/frame_host/file_chooser_impl.h"
 #include "content/browser/frame_host/frame_tree.h"
 #include "content/browser/frame_host/frame_tree_node.h"
 #include "content/browser/frame_host/interstitial_page_impl.h"
@@ -471,7 +472,9 @@
   int GetMaximumZoomPercent() override;
   void SetPageScale(float page_scale_factor) override;
   gfx::Size GetPreferredSize() override;
-  bool GotResponseToLockMouseRequest(bool allowed) override;
+  bool GotResponseToLockMouseRequest(
+      blink::mojom::PointerLockResult result) override;
+  void GotLockMousePermissionResponse(bool allowed) override;
   bool GotResponseToKeyboardLockRequest(bool allowed) override;
   bool HasOpener() override;
   RenderFrameHostImpl* GetOpener() override;
@@ -502,7 +505,8 @@
   bool IsFullscreenForCurrentTab() override;
   bool ShouldShowStaleContentOnEviction() override;
   void ExitFullscreen(bool will_cause_resize) override;
-  void ForSecurityDropFullscreen() override;
+  base::ScopedClosureRunner ForSecurityDropFullscreen() override
+      WARN_UNUSED_RESULT;
   void ResumeLoadingCreatedWebContents() override;
   void SetIsOverlayContent(bool is_overlay_content) override;
   bool IsFocusedElementEditable() override;
@@ -563,12 +567,14 @@
       RenderFrameHost* render_frame_host,
       bool is_reload,
       JavaScriptDialogCallback response_callback) override;
-  void RunFileChooser(RenderFrameHost* render_frame_host,
-                      std::unique_ptr<content::FileSelectListener> listener,
-                      const blink::mojom::FileChooserParams& params) override;
-  void EnumerateDirectory(RenderFrameHost* render_frame_host,
-                          std::unique_ptr<FileSelectListener> listener,
-                          const base::FilePath& directory_path) override;
+  void RunFileChooser(
+      RenderFrameHost* render_frame_host,
+      std::unique_ptr<FileChooserImpl::FileSelectListenerImpl> listener,
+      const blink::mojom::FileChooserParams& params) override;
+  void EnumerateDirectory(
+      RenderFrameHost* render_frame_host,
+      std::unique_ptr<FileChooserImpl::FileSelectListenerImpl> listener,
+      const base::FilePath& directory_path) override;
   void DidCancelLoading() override;
   void DidAccessInitialDocument() override;
   void DidChangeName(RenderFrameHost* render_frame_host,
@@ -1364,6 +1370,7 @@
   void OnDialogClosed(int render_process_id,
                       int render_frame_id,
                       JavaScriptDialogCallback response_callback,
+                      base::ScopedClosureRunner fullscreen_block,
                       bool dialog_was_suppressed,
                       bool success,
                       const base::string16& user_input);
@@ -1782,6 +1789,9 @@
   // See description above setter.
   bool closed_by_user_gesture_;
 
+  // The number of active fullscreen blockers.
+  int fullscreen_blocker_count_ = 0;
+
   // Minimum/maximum zoom percent.
   const int minimum_zoom_percent_;
   const int maximum_zoom_percent_;
diff --git a/content/browser/web_contents/web_contents_impl_browsertest.cc b/content/browser/web_contents/web_contents_impl_browsertest.cc
index ac649437..658c1801 100644
--- a/content/browser/web_contents/web_contents_impl_browsertest.cc
+++ b/content/browser/web_contents/web_contents_impl_browsertest.cc
@@ -1623,9 +1623,11 @@
   DISALLOW_COPY_AND_ASSIGN(TestWCDelegateForDialogsAndFullscreen);
 };
 
-class MockFileSelectListener : public FileSelectListener {
+class MockFileSelectListener : public FileChooserImpl::FileSelectListenerImpl {
  public:
-  MockFileSelectListener() {}
+  MockFileSelectListener() : FileChooserImpl::FileSelectListenerImpl(nullptr) {
+    SetListenerFunctionCalledTrueForTesting();
+  }
   void FileSelected(std::vector<blink::mojom::FileChooserFileInfoPtr> files,
                     const base::FilePath& base_dir,
                     blink::mojom::FileChooserParams::Mode mode) override {}
@@ -2954,6 +2956,39 @@
   }
 }
 
+IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, RejectFullscreenIfBlocked) {
+  WebContentsImpl* web_contents =
+      static_cast<WebContentsImpl*>(shell()->web_contents());
+  TestWCDelegateForDialogsAndFullscreen test_delegate(web_contents);
+
+  GURL url("about:blank");
+  EXPECT_TRUE(NavigateToURL(shell(), url));
+  RenderFrameHostImpl* main_frame = web_contents->GetMainFrame();
+
+  EXPECT_TRUE(ExecuteScript(
+      main_frame,
+      "document.body.onfullscreenchange = "
+      "function (event) { document.title = 'onfullscreenchange' };"));
+  EXPECT_TRUE(ExecuteScript(
+      main_frame,
+      "document.body.onfullscreenerror = "
+      "function (event) { document.title = 'onfullscreenerror' };"));
+
+  TitleWatcher title_watcher(web_contents,
+                             base::ASCIIToUTF16("onfullscreenchange"));
+  title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("onfullscreenerror"));
+
+  // While the |fullscreen_block| is in scope, fullscreen should fail with an
+  // error.
+  base::ScopedClosureRunner fullscreen_block =
+      web_contents->ForSecurityDropFullscreen();
+
+  EXPECT_TRUE(ExecuteScript(main_frame, "document.body.requestFullscreen();"));
+
+  base::string16 title = title_watcher.WaitAndGetTitle();
+  ASSERT_EQ(title, base::ASCIIToUTF16("onfullscreenerror"));
+}
+
 // Regression test for https://crbug.com/855018.
 // RenderFrameHostImpls exit fullscreen as soon as they are unloaded.
 IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, FullscreenAfterFrameUnload) {
diff --git a/content/browser/web_contents/web_contents_view.h b/content/browser/web_contents/web_contents_view.h
index 4c5fb180..c0cd195 100644
--- a/content/browser/web_contents/web_contents_view.h
+++ b/content/browser/web_contents/web_contents_view.h
@@ -97,10 +97,6 @@
   // trying to find a specific window.
   virtual void SetPageTitle(const base::string16& title) = 0;
 
-  // Invoked when the WebContents is notified that the RenderView has been
-  // fully created.
-  virtual void RenderViewCreated(RenderViewHost* host) = 0;
-
   // Invoked when the WebContents is notified that the RenderView is ready.
   virtual void RenderViewReady() = 0;
 
diff --git a/content/browser/web_contents/web_contents_view_android.cc b/content/browser/web_contents/web_contents_view_android.cc
index d7ed6bc5..e1b314c 100644
--- a/content/browser/web_contents/web_contents_view_android.cc
+++ b/content/browser/web_contents/web_contents_view_android.cc
@@ -261,9 +261,6 @@
   return new RenderWidgetHostViewAndroid(rwhi, nullptr);
 }
 
-void WebContentsViewAndroid::RenderViewCreated(RenderViewHost* host) {
-}
-
 void WebContentsViewAndroid::RenderViewReady() {
   if (device_orientation_ == 0)
     return;
diff --git a/content/browser/web_contents/web_contents_view_android.h b/content/browser/web_contents/web_contents_view_android.h
index 2ac1ffc..9dae989 100644
--- a/content/browser/web_contents/web_contents_view_android.h
+++ b/content/browser/web_contents/web_contents_view_android.h
@@ -74,7 +74,6 @@
   RenderWidgetHostViewBase* CreateViewForChildWidget(
       RenderWidgetHost* render_widget_host) override;
   void SetPageTitle(const base::string16& title) override;
-  void RenderViewCreated(RenderViewHost* host) override;
   void RenderViewReady() override;
   void RenderViewHostChanged(RenderViewHost* old_host,
                              RenderViewHost* new_host) override;
diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc
index f2e42fd..025f82e 100644
--- a/content/browser/web_contents/web_contents_view_aura.cc
+++ b/content/browser/web_contents/web_contents_view_aura.cc
@@ -72,7 +72,6 @@
 #include "ui/base/dragdrop/os_exchange_data.h"
 #include "ui/base/dragdrop/os_exchange_data_provider_factory.h"
 #include "ui/base/hit_test.h"
-#include "ui/base/ui_base_switches_util.h"
 #include "ui/compositor/layer.h"
 #include "ui/display/screen.h"
 #include "ui/events/blink/web_input_event.h"
@@ -1011,9 +1010,6 @@
     child_window->SetTitle(title);
 }
 
-void WebContentsViewAura::RenderViewCreated(RenderViewHost* host) {
-}
-
 void WebContentsViewAura::RenderViewReady() {}
 
 void WebContentsViewAura::RenderViewHostChanged(RenderViewHost* old_host,
diff --git a/content/browser/web_contents/web_contents_view_aura.h b/content/browser/web_contents/web_contents_view_aura.h
index 61548110..c1a7e57 100644
--- a/content/browser/web_contents/web_contents_view_aura.h
+++ b/content/browser/web_contents/web_contents_view_aura.h
@@ -152,7 +152,6 @@
   RenderWidgetHostViewBase* CreateViewForChildWidget(
       RenderWidgetHost* render_widget_host) override;
   void SetPageTitle(const base::string16& title) override;
-  void RenderViewCreated(RenderViewHost* host) override;
   void RenderViewReady() override;
   void RenderViewHostChanged(RenderViewHost* old_host,
                              RenderViewHost* new_host) override;
diff --git a/content/browser/web_contents/web_contents_view_child_frame.cc b/content/browser/web_contents/web_contents_view_child_frame.cc
index 1f17cebae..a3715d6 100644
--- a/content/browser/web_contents/web_contents_view_child_frame.cc
+++ b/content/browser/web_contents/web_contents_view_child_frame.cc
@@ -96,8 +96,6 @@
   // The title is ignored for the WebContentsViewChildFrame.
 }
 
-void WebContentsViewChildFrame::RenderViewCreated(RenderViewHost* host) {}
-
 void WebContentsViewChildFrame::RenderViewReady() {}
 
 void WebContentsViewChildFrame::RenderViewHostChanged(
diff --git a/content/browser/web_contents/web_contents_view_child_frame.h b/content/browser/web_contents/web_contents_view_child_frame.h
index 92cbe3d..15b516b 100644
--- a/content/browser/web_contents/web_contents_view_child_frame.h
+++ b/content/browser/web_contents/web_contents_view_child_frame.h
@@ -42,7 +42,6 @@
   RenderWidgetHostViewBase* CreateViewForChildWidget(
       RenderWidgetHost* render_widget_host) override;
   void SetPageTitle(const base::string16& title) override;
-  void RenderViewCreated(RenderViewHost* host) override;
   void RenderViewReady() override;
   void RenderViewHostChanged(RenderViewHost* old_host,
                              RenderViewHost* new_host) override;
diff --git a/content/browser/web_contents/web_contents_view_mac.h b/content/browser/web_contents/web_contents_view_mac.h
index 78b29f5..b461319 100644
--- a/content/browser/web_contents/web_contents_view_mac.h
+++ b/content/browser/web_contents/web_contents_view_mac.h
@@ -80,7 +80,6 @@
   RenderWidgetHostViewBase* CreateViewForChildWidget(
       RenderWidgetHost* render_widget_host) override;
   void SetPageTitle(const base::string16& title) override;
-  void RenderViewCreated(RenderViewHost* host) override;
   void RenderViewReady() override;
   void RenderViewHostChanged(RenderViewHost* old_host,
                              RenderViewHost* new_host) override;
diff --git a/content/browser/web_contents/web_contents_view_mac.mm b/content/browser/web_contents/web_contents_view_mac.mm
index b5576e4..bd346925 100644
--- a/content/browser/web_contents/web_contents_view_mac.mm
+++ b/content/browser/web_contents/web_contents_view_mac.mm
@@ -399,9 +399,6 @@
 }
 
 
-void WebContentsViewMac::RenderViewCreated(RenderViewHost* host) {
-}
-
 void WebContentsViewMac::RenderViewReady() {}
 
 void WebContentsViewMac::RenderViewHostChanged(RenderViewHost* old_host,
diff --git a/content/common/input/input_handler.mojom b/content/common/input/input_handler.mojom
index 4f64df8..10e49206 100644
--- a/content/common/input/input_handler.mojom
+++ b/content/common/input/input_handler.mojom
@@ -9,6 +9,7 @@
 import "content/common/native_types.mojom";
 import "mojo/public/mojom/base/string16.mojom";
 import "mojo/public/mojom/base/time.mojom";
+import "third_party/blink/public/mojom/input/pointer_lock_result.mojom";
 import "third_party/blink/public/mojom/selection_menu/selection_menu_behavior.mojom";
 import "ui/base/ime/mojom/ime_types.mojom";
 import "ui/events/mojom/event.mojom";
@@ -227,7 +228,8 @@
   // locked.
   RequestMouseLock(bool from_user_gesture,
                    bool privileged,
-                   bool unadjusted_movement) => (bool success);
+                   bool unadjusted_movement)
+                      => (blink.mojom.PointerLockResult result);
 
   // Unlocks the mouse back to its default behavior. This will also returns
   // mouse movement back to the platform's adjusted movement if unadjusted
diff --git a/content/public/browser/bluetooth_delegate.h b/content/public/browser/bluetooth_delegate.h
index c79544fc..18218fdf 100644
--- a/content/public/browser/bluetooth_delegate.h
+++ b/content/public/browser/bluetooth_delegate.h
@@ -6,6 +6,7 @@
 #define CONTENT_PUBLIC_BROWSER_BLUETOOTH_DELEGATE_H_
 
 #include <string>
+#include <vector>
 
 #include "base/containers/flat_set.h"
 #include "content/common/content_export.h"
@@ -85,6 +86,15 @@
   virtual bool IsAllowedToAccessAtLeastOneService(
       RenderFrameHost* frame,
       const blink::WebBluetoothDeviceId& device_id) = 0;
+
+  // This should return a list of devices that the origin in |frame| has been
+  // allowed to access. Access permission is granted with
+  // GrantServiceAccessPermission() and can be revoked by the user in the
+  // embedder's UI. The list of devices returned should be PermittedDevice
+  // objects, which contain the necessary fields to create the BluetoothDevice
+  // JavaScript objects.
+  virtual std::vector<blink::mojom::WebBluetoothDevicePtr> GetPermittedDevices(
+      RenderFrameHost* frame) = 0;
 };
 
 }  // namespace content
diff --git a/content/public/browser/render_widget_host_view.h b/content/public/browser/render_widget_host_view.h
index 888ca7e8..d7631d9b 100644
--- a/content/public/browser/render_widget_host_view.h
+++ b/content/public/browser/render_widget_host_view.h
@@ -12,6 +12,7 @@
 #include "build/build_config.h"
 #include "content/common/content_export.h"
 #include "third_party/blink/public/common/input/web_input_event.h"
+#include "third_party/blink/public/mojom/input/pointer_lock_result.mojom.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "third_party/skia/include/core/SkColor.h"
 #include "ui/gfx/geometry/point_conversions.h"
@@ -159,7 +160,8 @@
   virtual base::Optional<SkColor> GetBackgroundColor() = 0;
 
   // Return value indicates whether the mouse is locked successfully or not.
-  virtual bool LockMouse(bool request_unadjusted_movement) = 0;
+  virtual blink::mojom::PointerLockResult LockMouse(
+      bool request_unadjusted_movement) = 0;
   virtual void UnlockMouse() = 0;
   // Returns true if the mouse pointer is currently locked.
   virtual bool IsMouseLocked() = 0;
diff --git a/content/public/browser/storage_partition.h b/content/public/browser/storage_partition.h
index 47c0b1f..6dc40f6 100644
--- a/content/public/browser/storage_partition.h
+++ b/content/public/browser/storage_partition.h
@@ -61,7 +61,6 @@
 class DevToolsBackgroundServicesContext;
 class DOMStorageContext;
 class GeneratedCodeCacheContext;
-class IndexedDBContextImpl;
 class NativeFileSystemEntryFactory;
 class PlatformNotificationContext;
 class ServiceWorkerContext;
@@ -128,7 +127,6 @@
   virtual storage::DatabaseTracker* GetDatabaseTracker() = 0;
   virtual DOMStorageContext* GetDOMStorageContext() = 0;
   virtual storage::mojom::IndexedDBControl& GetIndexedDBControl() = 0;
-  virtual IndexedDBContextImpl* GetIndexedDBContextImplForTesting() = 0;
   virtual NativeFileSystemEntryFactory* GetNativeFileSystemEntryFactory() = 0;
   virtual ServiceWorkerContext* GetServiceWorkerContext() = 0;
   virtual DedicatedWorkerService* GetDedicatedWorkerService() = 0;
diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
index 65d6373..f808d01 100644
--- a/content/public/browser/web_contents.h
+++ b/content/public/browser/web_contents.h
@@ -13,6 +13,8 @@
 #include <vector>
 
 #include "base/callback_forward.h"
+#include "base/callback_helpers.h"
+#include "base/compiler_specific.h"
 #include "base/files/file_path.h"
 #include "base/process/kill.h"
 #include "base/strings/string16.h"
@@ -34,6 +36,7 @@
 #include "services/metrics/public/cpp/ukm_source_id.h"
 #include "third_party/blink/public/common/frame/sandbox_flags.h"
 #include "third_party/blink/public/mojom/frame/find_in_page.mojom-forward.h"
+#include "third_party/blink/public/mojom/input/pointer_lock_result.mojom.h"
 #include "third_party/blink/public/mojom/loader/pause_subresource_loading_handle.mojom-forward.h"
 #include "third_party/skia/include/core/SkColor.h"
 #include "ui/accessibility/ax_mode.h"
@@ -866,7 +869,12 @@
   // Called when the response to a pending mouse lock request has arrived.
   // Returns true if |allowed| is true and the mouse has been successfully
   // locked.
-  virtual bool GotResponseToLockMouseRequest(bool allowed) = 0;
+  virtual bool GotResponseToLockMouseRequest(
+      blink::mojom::PointerLockResult result) = 0;
+
+  // Wrapper around GotResponseToLockMouseRequest to fit into
+  // ChromeWebViewPermissionHelperDelegate's structure.
+  virtual void GotLockMousePermissionResponse(bool allowed) = 0;
 
   // Called when the response to a keyboard mouse lock request has arrived.
   // Returns false if the request is no longer valid, otherwise true.
@@ -987,7 +995,17 @@
   // The WebContents is trying to take some action that would cause user
   // confusion if taken while in fullscreen. If this WebContents or any outer
   // WebContents is in fullscreen, drop it.
-  virtual void ForSecurityDropFullscreen() = 0;
+  //
+  // Returns a ScopedClosureRunner, and for the lifetime of that closure, this
+  // (and other related) WebContentses will not enter fullscreen. If the action
+  // should cause a one-time dropping of fullscreen (e.g. a UI element not
+  // attached to the WebContents), invoke RunAndReset() on the returned
+  // base::ScopedClosureRunner to release the fullscreen block immediately.
+  // Otherwise, if the action should cause fullscreen to be prohibited for a
+  // span of time (e.g. a UI element attached to the WebContents), keep the
+  // closure alive for that duration.
+  virtual base::ScopedClosureRunner ForSecurityDropFullscreen()
+      WARN_UNUSED_RESULT = 0;
 
   // Unblocks requests from renderer for a newly created window. This is
   // used in showCreatedWindow() or sometimes later in cases where
diff --git a/content/public/test/content_test_suite_base.cc b/content/public/test/content_test_suite_base.cc
index f6c7ac20..1d7df7c0c 100644
--- a/content/public/test/content_test_suite_base.cc
+++ b/content/public/test/content_test_suite_base.cc
@@ -19,7 +19,6 @@
 #include "content/renderer/in_process_renderer_thread.h"
 #include "content/utility/in_process_utility_thread.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/ui_base_paths.h"
 
 #if defined(V8_USE_EXTERNAL_STARTUP_DATA)
@@ -70,8 +69,6 @@
 #if defined(V8_USE_EXTERNAL_STARTUP_DATA)
   gin::V8Initializer::LoadV8Snapshot(kSnapshotType);
 #endif
-
-  ui::MaterialDesignController::Initialize();
 }
 
 void ContentTestSuiteBase::RegisterContentSchemes(
diff --git a/content/public/test/test_renderer_host.cc b/content/public/test/test_renderer_host.cc
index 871ab59f..819ecdf 100644
--- a/content/public/test/test_renderer_host.cc
+++ b/content/public/test/test_renderer_host.cc
@@ -37,7 +37,6 @@
 #include "content/test/test_render_widget_host_factory.h"
 #include "content/test/test_web_contents.h"
 #include "net/base/mock_network_change_notifier.h"
-#include "ui/base/material_design/material_design_controller.h"
 
 #if defined(OS_ANDROID)
 #include "ui/android/dummy_screen_android.h"
@@ -234,8 +233,6 @@
 }
 
 void RenderViewHostTestHarness::SetUp() {
-  ui::MaterialDesignController::Initialize();
-
   rvh_test_enabler_.reset(new RenderViewHostTestEnabler);
   if (factory_)
     rvh_test_enabler_->rvh_factory_->set_render_process_host_factory(factory_);
diff --git a/content/public/test/test_service.cc b/content/public/test/test_service.cc
index 4497f375..7aecbcd 100644
--- a/content/public/test/test_service.cc
+++ b/content/public/test/test_service.cc
@@ -57,8 +57,21 @@
   std::move(callback).Run(requestor_name_);
 }
 
-void TestService::CreateSharedBuffer(const std::string& message,
-                                     CreateSharedBufferCallback callback) {
+void TestService::CreateReadOnlySharedMemoryRegion(
+    const std::string& message,
+    CreateReadOnlySharedMemoryRegionCallback callback) {
+  NOTREACHED();
+}
+
+void TestService::CreateWritableSharedMemoryRegion(
+    const std::string& message,
+    CreateWritableSharedMemoryRegionCallback callback) {
+  NOTREACHED();
+}
+
+void TestService::CreateUnsafeSharedMemoryRegion(
+    const std::string& message,
+    CreateUnsafeSharedMemoryRegionCallback callback) {
   NOTREACHED();
 }
 
diff --git a/content/public/test/test_service.h b/content/public/test/test_service.h
index 3710c54..1bd344b 100644
--- a/content/public/test/test_service.h
+++ b/content/public/test/test_service.h
@@ -41,8 +41,15 @@
   void DoCrashImmediately(DoCrashImmediatelyCallback callback) override;
   void CreateFolder(CreateFolderCallback callback) override;
   void GetRequestorName(GetRequestorNameCallback callback) override;
-  void CreateSharedBuffer(const std::string& message,
-                          CreateSharedBufferCallback callback) override;
+  void CreateReadOnlySharedMemoryRegion(
+      const std::string& message,
+      CreateReadOnlySharedMemoryRegionCallback callback) override;
+  void CreateWritableSharedMemoryRegion(
+      const std::string& message,
+      CreateWritableSharedMemoryRegionCallback callback) override;
+  void CreateUnsafeSharedMemoryRegion(
+      const std::string& message,
+      CreateUnsafeSharedMemoryRegionCallback callback) override;
 
   service_manager::ServiceBinding service_binding_;
   service_manager::BinderRegistry registry_;
diff --git a/content/public/test/test_service.mojom b/content/public/test/test_service.mojom
index 166e45e..3580ebd9 100644
--- a/content/public/test/test_service.mojom
+++ b/content/public/test/test_service.mojom
@@ -4,6 +4,8 @@
 
 module content.mojom;
 
+import "mojo/public/mojom/base/shared_memory.mojom";
+
 interface TestService {
   // Doesn't actually do anything, just responds.
   DoSomething() => ();
@@ -22,7 +24,21 @@
   // Retrieve the requestor name as seen by the test app providing this service.
   GetRequestorName() => (string name);
 
-  // Requests that a new shared buffer be created and returned. If successful,
-  // |buffer| is non-null and its contents match |message|'s bytes exactly.
-  CreateSharedBuffer(string message) => (handle<shared_buffer>? buffer);
+  // Requests that a new read-only shared memory region be created and
+  // returned. On success, |region| is valid and its contents match |message|'s
+  // bytes exactly.
+  CreateReadOnlySharedMemoryRegion(string message)
+      => (mojo_base.mojom.ReadOnlySharedMemoryRegion? region);
+
+  // Requests that a new writable shared memory region be created and
+  // returned. On success, |region| is valid and its contents match |message|'s
+  // bytes exactly.
+  CreateWritableSharedMemoryRegion(string message)
+      => (mojo_base.mojom.WritableSharedMemoryRegion? region);
+
+  // Requests that a new unsafe shared memory region be created and returned.
+  // On success, |region| is valid and its contents match |message|'s bytes
+  // exactly.
+  CreateUnsafeSharedMemoryRegion(string message)
+      => (mojo_base.mojom.UnsafeSharedMemoryRegion? region);
 };
diff --git a/content/public/test/test_storage_partition.cc b/content/public/test/test_storage_partition.cc
index 0ffc97e4e..42cc3309 100644
--- a/content/public/test/test_storage_partition.cc
+++ b/content/public/test/test_storage_partition.cc
@@ -85,11 +85,6 @@
   return *indexed_db_control_;
 }
 
-IndexedDBContextImpl*
-TestStoragePartition::GetIndexedDBContextImplForTesting() {
-  return indexed_db_context_;
-}
-
 NativeFileSystemEntryFactory*
 TestStoragePartition::GetNativeFileSystemEntryFactory() {
   return nullptr;
diff --git a/content/public/test/test_storage_partition.h b/content/public/test/test_storage_partition.h
index a6aa811..85c0b9a 100644
--- a/content/public/test/test_storage_partition.h
+++ b/content/public/test/test_storage_partition.h
@@ -22,7 +22,6 @@
 class BackgroundSyncContext;
 class DevToolsBackgroundServicesContext;
 class DOMStorageContext;
-class IndexedDBContextImpl;
 class NativeFileSystemEntryFactory;
 class PlatformNotificationContext;
 class ServiceWorkerContext;
@@ -108,10 +107,6 @@
 
   storage::mojom::IndexedDBControl& GetIndexedDBControl() override;
 
-  void set_indexed_db_context(IndexedDBContextImpl* context) {
-    indexed_db_context_ = context;
-  }
-  IndexedDBContextImpl* GetIndexedDBContextImplForTesting() override;
   NativeFileSystemEntryFactory* GetNativeFileSystemEntryFactory() override;
 
   void set_service_worker_context(ServiceWorkerContext* context) {
@@ -219,7 +214,6 @@
   storage::DatabaseTracker* database_tracker_ = nullptr;
   DOMStorageContext* dom_storage_context_ = nullptr;
   mojo::Remote<storage::mojom::IndexedDBControl> indexed_db_control_;
-  IndexedDBContextImpl* indexed_db_context_ = nullptr;
   ServiceWorkerContext* service_worker_context_ = nullptr;
   DedicatedWorkerService* dedicated_worker_service_ = nullptr;
   SharedWorkerService* shared_worker_service_ = nullptr;
diff --git a/content/renderer/mouse_lock_dispatcher.cc b/content/renderer/mouse_lock_dispatcher.cc
index 5938877..ac59a2ef 100644
--- a/content/renderer/mouse_lock_dispatcher.cc
+++ b/content/renderer/mouse_lock_dispatcher.cc
@@ -15,18 +15,21 @@
       pending_unlock_request_(false),
       target_(nullptr) {}
 
-MouseLockDispatcher::~MouseLockDispatcher() {
-}
+MouseLockDispatcher::~MouseLockDispatcher() = default;
 
-bool MouseLockDispatcher::LockMouse(LockTarget* target,
-                                    blink::WebLocalFrame* requester_frame,
-                                    bool request_unadjusted_movement) {
+bool MouseLockDispatcher::LockMouse(
+    LockTarget* target,
+    blink::WebLocalFrame* requester_frame,
+    blink::WebWidgetClient::PointerLockCallback callback,
+    bool request_unadjusted_movement) {
   if (MouseLockedOrPendingAction())
     return false;
 
   pending_lock_request_ = true;
   target_ = target;
 
+  lock_mouse_callback_ = std::move(callback);
+
   SendLockMouseRequest(requester_frame, request_unadjusted_movement);
   return true;
 }
@@ -61,27 +64,33 @@
   return false;
 }
 
-void MouseLockDispatcher::OnLockMouseACK(bool succeeded) {
+void MouseLockDispatcher::OnLockMouseACK(
+    blink::mojom::PointerLockResult result) {
   DCHECK(!mouse_locked_ && pending_lock_request_);
 
-  mouse_locked_ = succeeded;
+  mouse_locked_ = result == blink::mojom::PointerLockResult::kSuccess;
   pending_lock_request_ = false;
-  if (pending_unlock_request_ && !succeeded) {
+  if (pending_unlock_request_ && !mouse_locked_) {
     // We have sent an unlock request after the lock request. However, since
     // the lock request has failed, the unlock request will be ignored by the
     // browser side and there won't be any response to it.
     pending_unlock_request_ = false;
   }
 
+  if (lock_mouse_callback_) {
+    std::move(lock_mouse_callback_).Run(result);
+  }
+
   LockTarget* last_target = target_;
-  if (!succeeded)
+  if (!mouse_locked_)
     target_ = nullptr;
 
   // Callbacks made after all state modification to prevent reentrant errors
   // such as OnLockMouseACK() synchronously calling LockMouse().
 
   if (last_target)
-    last_target->OnLockMouseACK(succeeded);
+    last_target->OnLockMouseACK(result ==
+                                blink::mojom::PointerLockResult::kSuccess);
 }
 
 void MouseLockDispatcher::OnMouseLockLost() {
diff --git a/content/renderer/mouse_lock_dispatcher.h b/content/renderer/mouse_lock_dispatcher.h
index f18379f..f32d391 100644
--- a/content/renderer/mouse_lock_dispatcher.h
+++ b/content/renderer/mouse_lock_dispatcher.h
@@ -8,6 +8,7 @@
 #include "base/macros.h"
 #include "content/common/content_export.h"
 #include "content/common/input/input_handler.mojom.h"
+#include "third_party/blink/public/web/web_widget_client.h"
 
 namespace blink {
 class WebMouseEvent;
@@ -38,6 +39,7 @@
   // target->OnLockMouseACK() will follow.
   bool LockMouse(LockTarget* target,
                  blink::WebLocalFrame* requester_frame,
+                 blink::WebWidgetClient::PointerLockCallback callback,
                  bool request_unadjusted_movement);
   // Request to unlock the mouse. An asynchronous response to
   // target->OnMouseLockLost() will follow.
@@ -54,7 +56,7 @@
 
   // Subclasses or users have to call these methods to report mouse lock events
   // from the browser.
-  void OnLockMouseACK(bool succeeded);
+  void OnLockMouseACK(blink::mojom::PointerLockResult result);
   void OnMouseLockLost();
 
  protected:
@@ -81,6 +83,8 @@
   bool pending_lock_request_;
   bool pending_unlock_request_;
 
+  blink::WebWidgetClient::PointerLockCallback lock_mouse_callback_;
+
   // |target_| is the pending or current owner of mouse lock. We retain a non
   // owning reference here that must be cleared by |OnLockTargetDestroyed|
   // when it is destroyed.
diff --git a/content/renderer/mouse_lock_dispatcher_browsertest.cc b/content/renderer/mouse_lock_dispatcher_browsertest.cc
index 0a74ceb..0fb45b6 100644
--- a/content/renderer/mouse_lock_dispatcher_browsertest.cc
+++ b/content/renderer/mouse_lock_dispatcher_browsertest.cc
@@ -63,10 +63,10 @@
   EXPECT_FALSE(widget()->IsPointerLocked());
 
   // Lock.
-  EXPECT_TRUE(
-      widget()->RequestPointerLock(view()->GetMainRenderFrame()->GetWebFrame(),
-                                   false /* unadjusted_movement */));
-  dispatcher()->OnLockMouseACK(/*succeeded=*/true);
+  EXPECT_TRUE(widget()->RequestPointerLock(
+      view()->GetMainRenderFrame()->GetWebFrame(), base::DoNothing(),
+      false /* unadjusted_movement */));
+  dispatcher()->OnLockMouseACK(blink::mojom::PointerLockResult::kSuccess);
   EXPECT_TRUE(widget()->IsPointerLocked());
 
   // Unlock.
@@ -75,10 +75,10 @@
   EXPECT_FALSE(widget()->IsPointerLocked());
 
   // Attempt a lock, and have it fail.
-  EXPECT_TRUE(
-      widget()->RequestPointerLock(view()->GetMainRenderFrame()->GetWebFrame(),
-                                   false /* unadjusted_movement */));
-  dispatcher()->OnLockMouseACK(/*succeeded=*/false);
+  EXPECT_TRUE(widget()->RequestPointerLock(
+      view()->GetMainRenderFrame()->GetWebFrame(), base::DoNothing(),
+      false /* unadjusted_movement */));
+  dispatcher()->OnLockMouseACK(blink::mojom::PointerLockResult::kUnknownError);
   EXPECT_FALSE(widget()->IsPointerLocked());
 }
 
@@ -96,9 +96,9 @@
 
   // Lock.
   EXPECT_TRUE(dispatcher()->LockMouse(
-      target_, view()->GetMainRenderFrame()->GetWebFrame(),
+      target_, view()->GetMainRenderFrame()->GetWebFrame(), base::DoNothing(),
       false /* unadjusted_movement */));
-  dispatcher()->OnLockMouseACK(/*succeeded=*/true);
+  dispatcher()->OnLockMouseACK(blink::mojom::PointerLockResult::kSuccess);
   EXPECT_TRUE(dispatcher()->IsMouseLockedTo(target_));
 
   // Receive mouse event.
@@ -111,9 +111,9 @@
 
   // Attempt a lock, and have it fail.
   EXPECT_TRUE(dispatcher()->LockMouse(
-      target_, view()->GetMainRenderFrame()->GetWebFrame(),
+      target_, view()->GetMainRenderFrame()->GetWebFrame(), base::DoNothing(),
       false /* unadjusted_movement */));
-  dispatcher()->OnLockMouseACK(/*succeeded=*/false);
+  dispatcher()->OnLockMouseACK(blink::mojom::PointerLockResult::kUnknownError);
   EXPECT_FALSE(dispatcher()->IsMouseLockedTo(target_));
 }
 
@@ -126,9 +126,9 @@
 
   // Lock.
   EXPECT_TRUE(dispatcher()->LockMouse(
-      target_, view()->GetMainRenderFrame()->GetWebFrame(),
+      target_, view()->GetMainRenderFrame()->GetWebFrame(), base::DoNothing(),
       false /* unadjusted_movement */));
-  dispatcher()->OnLockMouseACK(/*succeeded=*/true);
+  dispatcher()->OnLockMouseACK(blink::mojom::PointerLockResult::kSuccess);
   EXPECT_TRUE(dispatcher()->IsMouseLockedTo(target_));
 
   // Unlock, with a deleted target.
@@ -149,7 +149,7 @@
 
   // Lock request.
   EXPECT_TRUE(dispatcher()->LockMouse(
-      target_, view()->GetMainRenderFrame()->GetWebFrame(),
+      target_, view()->GetMainRenderFrame()->GetWebFrame(), base::DoNothing(),
       false /* unadjusted_movement */));
 
   // Before receiving response delete the target.
@@ -158,7 +158,7 @@
   target_ = nullptr;
 
   // Lock response.
-  dispatcher()->OnLockMouseACK(/*succeeded=*/true);
+  dispatcher()->OnLockMouseACK(blink::mojom::PointerLockResult::kSuccess);
 }
 
 // Test deleting a target that is pending a lock request failure response.
@@ -169,7 +169,7 @@
 
   // Lock request.
   EXPECT_TRUE(dispatcher()->LockMouse(
-      target_, view()->GetMainRenderFrame()->GetWebFrame(),
+      target_, view()->GetMainRenderFrame()->GetWebFrame(), base::DoNothing(),
       false /* unadjusted_movement */));
 
   // Before receiving response delete the target.
@@ -178,7 +178,7 @@
   target_ = nullptr;
 
   // Lock response.
-  dispatcher()->OnLockMouseACK(/*succeeded=*/false);
+  dispatcher()->OnLockMouseACK(blink::mojom::PointerLockResult::kUnknownError);
 }
 
 // Test not receiving mouse events when a target is not locked.
@@ -195,9 +195,9 @@
 
   // Lock.
   EXPECT_TRUE(dispatcher()->LockMouse(
-      target_, view()->GetMainRenderFrame()->GetWebFrame(),
+      target_, view()->GetMainRenderFrame()->GetWebFrame(), base::DoNothing(),
       false /* unadjusted_movement */));
-  dispatcher()->OnLockMouseACK(/*succeeded=*/true);
+  dispatcher()->OnLockMouseACK(blink::mojom::PointerLockResult::kSuccess);
   EXPECT_TRUE(dispatcher()->IsMouseLockedTo(target_));
 
   // Receive mouse event.
@@ -224,24 +224,24 @@
 
   // Lock request for target.
   EXPECT_TRUE(dispatcher()->LockMouse(
-      target_, view()->GetMainRenderFrame()->GetWebFrame(),
+      target_, view()->GetMainRenderFrame()->GetWebFrame(), base::DoNothing(),
       false /* unadjusted_movement */));
 
   // Fail attempt to lock alternate.
   EXPECT_FALSE(dispatcher()->IsMouseLockedTo(alternate_target_));
   EXPECT_FALSE(dispatcher()->LockMouse(
       alternate_target_, view()->GetMainRenderFrame()->GetWebFrame(),
-      false /* unadjusted_movement */));
+      base::DoNothing(), false /* unadjusted_movement */));
 
   // Lock completion for target.
-  dispatcher()->OnLockMouseACK(/*succeeded=*/true);
+  dispatcher()->OnLockMouseACK(blink::mojom::PointerLockResult::kSuccess);
   EXPECT_TRUE(dispatcher()->IsMouseLockedTo(target_));
 
   // Fail attempt to lock alternate.
   EXPECT_FALSE(dispatcher()->IsMouseLockedTo(alternate_target_));
   EXPECT_FALSE(dispatcher()->LockMouse(
       alternate_target_, view()->GetMainRenderFrame()->GetWebFrame(),
-      false /* unadjusted_movement */));
+      base::DoNothing(), false /* unadjusted_movement */));
 
   // Receive mouse event to only one target.
   dispatcher()->WillHandleMouseEvent(blink::WebMouseEvent());
diff --git a/content/renderer/pepper/pepper_plugin_instance_impl.cc b/content/renderer/pepper/pepper_plugin_instance_impl.cc
index ecd46c0..cae56cb 100644
--- a/content/renderer/pepper/pepper_plugin_instance_impl.cc
+++ b/content/renderer/pepper/pepper_plugin_instance_impl.cc
@@ -3249,9 +3249,10 @@
 
 bool PepperPluginInstanceImpl::LockMouse(bool request_unadjusted_movement) {
   WebLocalFrame* requester_frame = container_->GetDocument().GetFrame();
-  return GetMouseLockDispatcher()->LockMouse(GetOrCreateLockTargetAdapter(),
-                                             requester_frame,
-                                             request_unadjusted_movement);
+  return GetMouseLockDispatcher()->LockMouse(
+      GetOrCreateLockTargetAdapter(), requester_frame,
+      base::OnceCallback<void(blink::mojom::PointerLockResult)>(),
+      request_unadjusted_movement);
 }
 
 MouseLockDispatcher::LockTarget*
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index e288b3a..b46b9d4 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -3418,20 +3418,15 @@
   return gfx::ToRoundedPoint(ConvertWindowPointToViewport(gfx::PointF(point)));
 }
 
-bool RenderWidget::RequestPointerLock(WebLocalFrame* requester_frame,
-                                      bool request_unadjusted_movement) {
+bool RenderWidget::RequestPointerLock(
+    WebLocalFrame* requester_frame,
+    blink::WebWidgetClient::PointerLockCallback callback,
+    bool request_unadjusted_movement) {
   return mouse_lock_dispatcher_->LockMouse(webwidget_mouse_lock_target_.get(),
-                                           requester_frame,
+                                           requester_frame, std::move(callback),
                                            request_unadjusted_movement);
 }
 
-void RenderWidget::OnLockPointer(bool succeeded) {
-  if (succeeded)
-    webwidget_->DidAcquirePointerLock();
-  else
-    webwidget_->DidNotAcquirePointerLock();
-}
-
 void RenderWidget::PointerLockLost() {
   mouse_lock_dispatcher_->OnMouseLockLost();
 }
diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h
index f2f760d..ed595b5 100644
--- a/content/renderer/render_widget.h
+++ b/content/renderer/render_widget.h
@@ -396,8 +396,8 @@
   void ConvertViewportToWindow(blink::WebFloatRect* rect) override;
   void ConvertWindowToViewport(blink::WebFloatRect* rect) override;
   bool RequestPointerLock(blink::WebLocalFrame* requester_frame,
+                          blink::WebWidgetClient::PointerLockCallback callback,
                           bool request_unadjusted_movement) override;
-  void OnLockPointer(bool succeeded);
   void PointerLockLost();
   void RequestPointerUnlock() override;
   bool IsPointerLocked() override;
diff --git a/content/renderer/render_widget_mouse_lock_dispatcher.cc b/content/renderer/render_widget_mouse_lock_dispatcher.cc
index 09221d5..694e7fa 100644
--- a/content/renderer/render_widget_mouse_lock_dispatcher.cc
+++ b/content/renderer/render_widget_mouse_lock_dispatcher.cc
@@ -38,17 +38,19 @@
     host->UnlockMouse();
 }
 
-void RenderWidgetMouseLockDispatcher::OnLockMouseACK(bool succeeded) {
+void RenderWidgetMouseLockDispatcher::OnLockMouseACK(
+    blink::mojom::PointerLockResult result) {
   // Notify the base class.
-  MouseLockDispatcher::OnLockMouseACK(succeeded);
+  MouseLockDispatcher::OnLockMouseACK(result);
 
   // Mouse Lock removes the system cursor and provides all mouse motion as
   // .movementX/Y values on events all sent to a fixed target. This requires
   // content to specifically request the mode to be entered.
   // Mouse Capture is implicitly given for the duration of a drag event, and
   // sends all mouse events to the initial target of the drag.
-  // If Lock is entered it supercedes any in progress Capture.
-  if (succeeded && render_widget_->GetWebWidget())
+  // If Lock is entered it supersedes any in progress Capture.
+  if (result == blink::mojom::PointerLockResult::kSuccess &&
+      render_widget_->GetWebWidget())
     render_widget_->GetWebWidget()->MouseCaptureLost();
 }
 
diff --git a/content/renderer/render_widget_mouse_lock_dispatcher.h b/content/renderer/render_widget_mouse_lock_dispatcher.h
index 2036f50..da006b1 100644
--- a/content/renderer/render_widget_mouse_lock_dispatcher.h
+++ b/content/renderer/render_widget_mouse_lock_dispatcher.h
@@ -31,7 +31,7 @@
                             bool request_unadjusted_movement) override;
   void SendUnlockMouseRequest() override;
 
-  void OnLockMouseACK(bool succeeded);
+  void OnLockMouseACK(blink::mojom::PointerLockResult result);
 
   RenderWidget* render_widget_;
 
diff --git a/content/shell/browser/shell.cc b/content/shell/browser/shell.cc
index cb39064..0cca81e 100644
--- a/content/shell/browser/shell.cc
+++ b/content/shell/browser/shell.cc
@@ -498,7 +498,8 @@
 void Shell::RequestToLockMouse(WebContents* web_contents,
                                bool user_gesture,
                                bool last_unlocked_by_target) {
-  web_contents->GotResponseToLockMouseRequest(true);
+  web_contents->GotResponseToLockMouseRequest(
+      blink::mojom::PointerLockResult::kSuccess);
 }
 
 void Shell::CloseContents(WebContents* source) {
@@ -513,8 +514,10 @@
 #endif
 }
 
-void Shell::DidNavigateMainFramePostCommit(WebContents* web_contents) {
-  PlatformSetAddressBarURL(web_contents->GetVisibleURL());
+void Shell::NavigationStateChanged(WebContents* source,
+                                   InvalidateTypes changed_flags) {
+  if (changed_flags & INVALIDATE_TYPE_URL)
+    PlatformSetAddressBarURL(source->GetVisibleURL());
 }
 
 JavaScriptDialogManager* Shell::GetJavaScriptDialogManager(
diff --git a/content/shell/browser/shell.h b/content/shell/browser/shell.h
index 3702d09..0744a49 100644
--- a/content/shell/browser/shell.h
+++ b/content/shell/browser/shell.h
@@ -161,7 +161,8 @@
                           bool last_unlocked_by_target) override;
   void CloseContents(WebContents* source) override;
   bool CanOverscrollContent() override;
-  void DidNavigateMainFramePostCommit(WebContents* web_contents) override;
+  void NavigationStateChanged(WebContents* source,
+                              InvalidateTypes changed_flags) override;
   JavaScriptDialogManager* GetJavaScriptDialogManager(
       WebContents* source) override;
   std::unique_ptr<BluetoothChooser> RunBluetoothChooser(
diff --git a/content/shell/browser/shell_browser_main_parts.cc b/content/shell/browser/shell_browser_main_parts.cc
index e07782a..6de56165 100644
--- a/content/shell/browser/shell_browser_main_parts.cc
+++ b/content/shell/browser/shell_browser_main_parts.cc
@@ -30,7 +30,6 @@
 #include "net/base/net_module.h"
 #include "net/grit/net_resources.h"
 #include "services/service_manager/embedder/result_codes.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "url/gurl.h"
 
@@ -139,7 +138,6 @@
 }
 
 void ShellBrowserMainParts::InitializeMessageLoopContext() {
-  ui::MaterialDesignController::Initialize();
   Shell::CreateNewWindow(browser_context_.get(), GetStartupURL(), nullptr,
                          gfx::Size());
 }
diff --git a/content/shell/browser/web_test/fake_bluetooth_delegate.cc b/content/shell/browser/web_test/fake_bluetooth_delegate.cc
index 4f02cca..fefaa9aa 100644
--- a/content/shell/browser/web_test/fake_bluetooth_delegate.cc
+++ b/content/shell/browser/web_test/fake_bluetooth_delegate.cc
@@ -86,6 +86,20 @@
   return !id_to_services_it->second.empty();
 }
 
+std::vector<blink::mojom::WebBluetoothDevicePtr>
+FakeBluetoothDelegate::GetPermittedDevices(RenderFrameHost* frame) {
+  std::vector<blink::mojom::WebBluetoothDevicePtr> permitted_devices;
+  auto& device_address_to_id_map = GetAddressToIdMapForOrigin(frame);
+  for (const auto& entry : device_address_to_id_map) {
+    auto permitted_device = blink::mojom::WebBluetoothDevice::New();
+    WebBluetoothDeviceId device_id = entry.second;
+    permitted_device->id = device_id;
+    permitted_device->name = device_id_to_name_map_[device_id];
+    permitted_devices.push_back(std::move(permitted_device));
+  }
+  return permitted_devices;
+}
+
 WebBluetoothDeviceId FakeBluetoothDelegate::GetOrCreateDeviceIdForDeviceAddress(
     RenderFrameHost* frame,
     const std::string& device_address) {
diff --git a/content/shell/browser/web_test/fake_bluetooth_delegate.h b/content/shell/browser/web_test/fake_bluetooth_delegate.h
index 1b80b79f..92d1d8cd 100644
--- a/content/shell/browser/web_test/fake_bluetooth_delegate.h
+++ b/content/shell/browser/web_test/fake_bluetooth_delegate.h
@@ -64,6 +64,8 @@
   bool IsAllowedToAccessAtLeastOneService(
       RenderFrameHost* frame,
       const blink::WebBluetoothDeviceId& device_id) override;
+  std::vector<blink::mojom::WebBluetoothDevicePtr> GetPermittedDevices(
+      RenderFrameHost* frame) override;
 
  private:
   using AddressToIdMap = std::map<std::string, blink::WebBluetoothDeviceId>;
diff --git a/content/shell/renderer/shell_content_renderer_client.cc b/content/shell/renderer/shell_content_renderer_client.cc
index d96ad800..194a43c 100644
--- a/content/shell/renderer/shell_content_renderer_client.cc
+++ b/content/shell/renderer/shell_content_renderer_client.cc
@@ -86,8 +86,21 @@
     std::move(callback).Run("Not implemented.");
   }
 
-  void CreateSharedBuffer(const std::string& message,
-                          CreateSharedBufferCallback callback) override {
+  void CreateReadOnlySharedMemoryRegion(
+      const std::string& message,
+      CreateReadOnlySharedMemoryRegionCallback callback) override {
+    NOTREACHED();
+  }
+
+  void CreateWritableSharedMemoryRegion(
+      const std::string& message,
+      CreateWritableSharedMemoryRegionCallback callback) override {
+    NOTREACHED();
+  }
+
+  void CreateUnsafeSharedMemoryRegion(
+      const std::string& message,
+      CreateUnsafeSharedMemoryRegionCallback callback) override {
     NOTREACHED();
   }
 
diff --git a/content/shell/test_runner/web_widget_test_proxy.cc b/content/shell/test_runner/web_widget_test_proxy.cc
index de0015c..5ad8aa4 100644
--- a/content/shell/test_runner/web_widget_test_proxy.cc
+++ b/content/shell/test_runner/web_widget_test_proxy.cc
@@ -90,7 +90,10 @@
   }
 }
 
-bool WebWidgetTestProxy::RequestPointerLock(blink::WebLocalFrame*, bool) {
+bool WebWidgetTestProxy::RequestPointerLock(
+    blink::WebLocalFrame*,
+    blink::WebWidgetClient::PointerLockCallback,
+    bool) {
   return GetViewTestRunner()->RequestPointerLock();
 }
 
diff --git a/content/shell/test_runner/web_widget_test_proxy.h b/content/shell/test_runner/web_widget_test_proxy.h
index 1965157..273a2937 100644
--- a/content/shell/test_runner/web_widget_test_proxy.h
+++ b/content/shell/test_runner/web_widget_test_proxy.h
@@ -67,6 +67,7 @@
   // WebWidgetClient implementation.
   void ScheduleAnimation() override;
   bool RequestPointerLock(blink::WebLocalFrame* requester_frame,
+                          blink::WebWidgetClient::PointerLockCallback callback,
                           bool request_unajusted_movement) override;
   void RequestPointerUnlock() override;
   bool IsPointerLocked() override;
diff --git a/content/shell/utility/shell_content_utility_client.cc b/content/shell/utility/shell_content_utility_client.cc
index ea46a70..62382f3 100644
--- a/content/shell/utility/shell_content_utility_client.cc
+++ b/content/shell/utility/shell_content_utility_client.cc
@@ -9,8 +9,13 @@
 
 #include "base/bind.h"
 #include "base/command_line.h"
+#include "base/containers/span.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/memory/ptr_util.h"
+#include "base/memory/read_only_shared_memory_region.h"
+#include "base/memory/shared_memory_mapping.h"
+#include "base/memory/unsafe_shared_memory_region.h"
+#include "base/memory/writable_shared_memory_region.h"
 #include "base/no_destructor.h"
 #include "base/process/process.h"
 #include "build/build_config.h"
@@ -67,18 +72,39 @@
     NOTREACHED();
   }
 
-  void CreateSharedBuffer(const std::string& message,
-                          CreateSharedBufferCallback callback) override {
-    mojo::ScopedSharedBufferHandle buffer =
-        mojo::SharedBufferHandle::Create(message.size());
-    CHECK(buffer.is_valid());
-
-    mojo::ScopedSharedBufferMapping mapping = buffer->Map(message.size());
-    CHECK(mapping);
+  void CreateReadOnlySharedMemoryRegion(
+      const std::string& message,
+      CreateReadOnlySharedMemoryRegionCallback callback) override {
+    base::MappedReadOnlyRegion map_and_region =
+        base::ReadOnlySharedMemoryRegion::Create(message.size());
+    CHECK(map_and_region.IsValid());
     std::copy(message.begin(), message.end(),
-              reinterpret_cast<char*>(mapping.get()));
+              map_and_region.mapping.GetMemoryAsSpan<char>().begin());
+    std::move(callback).Run(std::move(map_and_region.region));
+  }
 
-    std::move(callback).Run(std::move(buffer));
+  void CreateWritableSharedMemoryRegion(
+      const std::string& message,
+      CreateWritableSharedMemoryRegionCallback callback) override {
+    auto region = base::WritableSharedMemoryRegion::Create(message.size());
+    CHECK(region.IsValid());
+    base::WritableSharedMemoryMapping mapping = region.Map();
+    CHECK(mapping.IsValid());
+    std::copy(message.begin(), message.end(),
+              mapping.GetMemoryAsSpan<char>().begin());
+    std::move(callback).Run(std::move(region));
+  }
+
+  void CreateUnsafeSharedMemoryRegion(
+      const std::string& message,
+      CreateUnsafeSharedMemoryRegionCallback callback) override {
+    auto region = base::UnsafeSharedMemoryRegion::Create(message.size());
+    CHECK(region.IsValid());
+    base::WritableSharedMemoryMapping mapping = region.Map();
+    CHECK(mapping.IsValid());
+    std::copy(message.begin(), message.end(),
+              mapping.GetMemoryAsSpan<char>().begin());
+    std::move(callback).Run(std::move(region));
   }
 
  private:
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index f6f854f..7b32868 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -649,7 +649,10 @@
     "frame_host_test_interface.mojom",
     "test_browser_associated_interfaces.mojom",
   ]
-  public_deps = [ "//url/mojom:url_mojom_gurl" ]
+  public_deps = [
+    "//mojo/public/mojom/base",
+    "//url/mojom:url_mojom_gurl",
+  ]
 }
 
 mojom("web_ui_test_mojo_bindings") {
@@ -915,8 +918,6 @@
     "../browser/idle/idle_browsertest.cc",
     "../browser/indexed_db/indexed_db_browsertest.cc",
     "../browser/indexed_db/indexed_db_feature_observer_browsertest.cc",
-    "../browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc",
-    "../browser/indexed_db/mock_browsertest_indexed_db_class_factory.h",
     "../browser/isolated_origin_browsertest.cc",
     "../browser/keyboard_lock_browsertest.cc",
     "../browser/keyboard_lock_browsertest.h",
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
index e841edb..03c9947 100644
--- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -213,11 +213,3 @@
 
 # VP9 appears to not recover correctly after GPU process crashes on Windows.
 crbug.com/1033982 [ win nvidia ] Pixel_Video_Context_Loss_VP9 [ RetryOnFailure ]
-
-# Vulkan Video broken on Android
-crbug.com/1059724 [ android skia-renderer use-vulkan ] Pixel_Video_MP4 [ Skip ]
-crbug.com/1059724 [ android skia-renderer use-vulkan ] Pixel_Video_MP4_FourColors_Aspect_4x3 [ Skip ]
-crbug.com/1059724 [ android skia-renderer use-vulkan ] Pixel_Video_MP4_FourColors_Rot_180 [ Skip ]
-crbug.com/1059724 [ android skia-renderer use-vulkan ] Pixel_Video_MP4_FourColors_Rot_270 [ Skip ]
-crbug.com/1059724 [ android skia-renderer use-vulkan ] Pixel_Video_MP4_FourColors_Rot_90 [ Skip ]
-crbug.com/1059724 [ android skia-renderer use-vulkan ] Pixel_Video_VP9 [ Skip ]
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
index 2d709aa6..245ed80 100644
--- a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
@@ -1,6 +1,6 @@
 # tags: [ android chromeos linux mac win win10 win7 ]
 # tags: [ android-chromium android-webview-instrumentation ]
-# tags: [ debug release ]
+# tags: [ debug debug-x64 release ]
 # tags: [ amd amd-0x6613 amd-0x699f amd-0x679e intel intel-0xa011 intel-0xa2e nvidia
 #         nvidia-0x1cb3 nvidia-0x2184 nvidia-0xfe9 qualcomm
 #         qualcomm-adreno-(tm)-330 qualcomm-adreno-(tm)-418
@@ -183,7 +183,7 @@
 # Win NVIDIA failures
 crbug.com/626524 [ win nvidia no-passthrough ] conformance/textures/misc/texture-npot-video.html [ RetryOnFailure ]
 crbug.com/630860 [ win nvidia ] conformance/textures/misc/texture-upload-size.html [ RetryOnFailure ]
-crbug.com/1045339 [ win10 debug nvidia ] conformance/extensions/oes-texture-half-float-with-video.html [ Skip ]
+crbug.com/1045339 [ win10 debug-x64 nvidia ] conformance/extensions/oes-texture-half-float-with-video.html [ Skip ]
 
 # crbug.com/679696 [ win nvidia no_passthrough ] conformance/extensions/ext-sRGB.html [ Failure ]
 
diff --git a/content/test/test_render_view_host.cc b/content/test/test_render_view_host.cc
index f10cdeb..66d66fd0 100644
--- a/content/test/test_render_view_host.cc
+++ b/content/test/test_render_view_host.cc
@@ -173,8 +173,8 @@
     SetBackgroundColor(*color);
 }
 
-bool TestRenderWidgetHostView::LockMouse(bool) {
-  return false;
+blink::mojom::PointerLockResult TestRenderWidgetHostView::LockMouse(bool) {
+  return blink::mojom::PointerLockResult::kUnknownError;
 }
 
 void TestRenderWidgetHostView::UnlockMouse() {
diff --git a/content/test/test_render_view_host.h b/content/test/test_render_view_host.h
index 89899b7..83efe38 100644
--- a/content/test/test_render_view_host.h
+++ b/content/test/test_render_view_host.h
@@ -106,7 +106,7 @@
   void Destroy() override;
   void SetTooltipText(const base::string16& tooltip_text) override {}
   gfx::Rect GetBoundsInRootWindow() override;
-  bool LockMouse(bool) override;
+  blink::mojom::PointerLockResult LockMouse(bool) override;
   void UnlockMouse() override;
   const viz::FrameSinkId& GetFrameSinkId() const override;
   const viz::LocalSurfaceIdAllocation& GetLocalSurfaceIdAllocation()
diff --git a/device/fido/fido_request_handler_base.cc b/device/fido/fido_request_handler_base.cc
index a8aaf9e..431f39d2 100644
--- a/device/fido/fido_request_handler_base.cc
+++ b/device/fido/fido_request_handler_base.cc
@@ -279,8 +279,13 @@
     FidoDiscoveryBase* discovery,
     bool success,
     std::vector<FidoAuthenticator*> authenticators) {
-  for (auto* authenticator : authenticators) {
-    AuthenticatorAdded(discovery, authenticator);
+  if (!success) {
+    transport_availability_info_.available_transports.erase(
+        discovery->transport());
+  } else {
+    for (auto* authenticator : authenticators) {
+      AuthenticatorAdded(discovery, authenticator);
+    }
   }
   DCHECK(notify_observer_callback_);
   notify_observer_callback_.Run();
diff --git a/docs/branch_sheriff.md b/docs/branch_sheriff.md
new file mode 100644
index 0000000..1a9a449f
--- /dev/null
+++ b/docs/branch_sheriff.md
@@ -0,0 +1,103 @@
+# Chromium Branch Sheriffing
+
+This document describes how to be a Chromium *branch* sheriff and how sheriffing
+on a branch differs from sheriffing on trunk. For trunk sheriffing guidance, see
+[//docs/sheriff.md][sheriff-md].
+
+[TOC]
+
+## Philosophy
+
+The goals of a branch sheriff are quite similar to those of a trunk sheriff.
+Branch sheriffs need to ensure that:
+
+1. **Compile failures get fixed**, because compile failures on branches block
+all tests (both automated and manual) and consequently reduce our confidence
+in the quality of what we're shipping, possibly to the point of blocking
+releases.
+2. **Consistent test failures get repaired**, because they similarly reduce
+our confidence in the quality of our code.
+
+**Communication** is important for sheriffs in general, but it's particularly
+important for branch sheriffs. Over the course of your shift, you may need to
+coordinate with trunk sheriffs, troopers, release TPMs, and others -- don't
+hesitate to do so, particularly if you have questions.
+
+## Processes
+
+In general, you'll want to follow the same processes outlined in
+[//docs/sheriff.md][sheriff-md]. There are some differences, though.
+
+### Checkout
+
+You'll need to ensure that your checkout is configured to check out the branch
+heads. You can do so by running
+
+```
+  src $ gclient sync --with_branch_heads
+```
+
+> This only needs to be done once, though running it more than once won't hurt.
+
+Once you've done that, you'll be able to check out branches:
+
+```
+  src $ git checkout branch-heads/$BRANCH_NUMBER  # e.g. branch-heads/4044 for M81
+  src $ gclient sync
+```
+
+To determine the appropriate branch number, you can either use
+[chromiumdash][#chromiumdash] or check [milestone.json][milestone-json] directly.
+
+### Flaky tests
+
+You should largely ignore flaky tests for the time being unless you have
+specific reason to believe that a flake was introduced by a cherry-pick to the
+branch in question. If a test is flaky on both trunk *and* a release branch,
+the trunk sheriffs should investigate it.
+
+### Landing changes
+
+When you need to land a change to a branch, you'll need to go through the same
+merge approval process as other cherry-picks. You should feel free to ping the
+relevant release TPM as listed on [chromiumdash][chromiumdash-schedule].
+
+## Tools
+
+### Sheriff-o-Matic
+
+Use the [branch SoM console][sheriff-o-matic] rather than the main chromium console.
+
+### Consoles
+
+Use the [beta][main-beta] and [stable][main-stable] branch consoles rather than the main console.
+
+### Chromiumdash
+
+[chromiumdash][chromiumdash] can help you determine the branch number for a
+particular milestone or channel, along with a host of other useful information:
+
+  * [Branches][chromiumdash-branches] lists the branches for each milestone.
+  * [Releases][chromiumdash-releases] lists the builds currently shipping to
+    each channel, which can help map from channel to milestone or to branch.
+  * [Schedule][chromiumdash-schedule] lists the relevant dates for each
+    milestone and includes the release TPMs responsible for each milestone by
+    platform.
+
+### Rotation
+
+The current branch sheriff is listed [here][rotation-home]. The configuration
+and source of truth for the schedule lives [here][rotation-config]. To swap,
+simply send a CL changing schedule at the bottom of the file.
+
+[chromiumdash]: https://chromiumdash.appspot.com
+[chromiumdash-branches]: https://chromiumdash.appspot.com/branches
+[chromiumdash-releases]: https://chromiumdash.appspot.com/releases
+[chromiumdash-schedule]: https://chromiumdash.appspot.com/schedule
+[main-beta]: https://ci.chromium.org/p/chromium/g/main-beta/console
+[main-stable]: https://ci.chromium.org/p/chromium/g/main-stable/console
+[milestone-json]: https://goto.google.com/chrome-milestone-json
+[rotation-home]: https://goto.google.com/chrome-branch-sheriff-amer-west
+[rotation-config]: https://goto.google.com/chrome-branch-sheriff-amer-west-config
+[sheriff-md]: /docs/sheriff.md
+[sheriff-o-matic]: https://sheriff-o-matic.appspot.com/chrome_browser_release
diff --git a/docs/testing/test_browser_dialog.md b/docs/testing/test_browser_dialog.md
index e602652..eda1b9c 100644
--- a/docs/testing/test_browser_dialog.md
+++ b/docs/testing/test_browser_dialog.md
@@ -175,9 +175,8 @@
 
 *   An alternative is to maintain a working end-to-end build target executable
     to do this, but this has additional costs (and is hard).
-    *    E.g. setup/teardown of low-level functions (
-         `InitializeGLOneOffPlatform()`,
-         `MaterialDesignController::Initialize()`, etc.).
+    *    E.g. setup/teardown of low-level functions
+         (`InitializeGLOneOffPlatform()`, etc.).
 
 *   Why not chrome.exe?
     *   E.g. a scrappy chrome:// page with links to invoke UI would be great!
diff --git a/extensions/browser/app_window/app_web_contents_helper.cc b/extensions/browser/app_window/app_web_contents_helper.cc
index e6c72d6..792bb78 100644
--- a/extensions/browser/app_window/app_web_contents_helper.cc
+++ b/extensions/browser/app_window/app_web_contents_helper.cc
@@ -90,7 +90,12 @@
   bool has_permission = IsExtensionWithPermissionOrSuggestInConsole(
       APIPermission::kPointerLock, extension, web_contents_->GetMainFrame());
 
-  web_contents_->GotResponseToLockMouseRequest(has_permission);
+  if (has_permission)
+    web_contents_->GotResponseToLockMouseRequest(
+        blink::mojom::PointerLockResult::kSuccess);
+  else
+    web_contents_->GotResponseToLockMouseRequest(
+        blink::mojom::PointerLockResult::kPermissionDenied);
 }
 
 void AppWebContentsHelper::RequestMediaAccessPermission(
diff --git a/extensions/browser/guest_view/web_view/web_view_guest.cc b/extensions/browser/guest_view/web_view/web_view_guest.cc
index 14734a5ef..63e07815 100644
--- a/extensions/browser/guest_view/web_view/web_view_guest.cc
+++ b/extensions/browser/guest_view/web_view/web_view_guest.cc
@@ -1110,7 +1110,8 @@
   // mouse if necessary.
   if ((event.windows_key_code == ui::VKEY_ESCAPE) &&
       !(event.GetModifiers() & blink::WebInputEvent::kInputModifiers)) {
-    return web_contents()->GotResponseToLockMouseRequest(false);
+    return web_contents()->GotResponseToLockMouseRequest(
+        blink::mojom::PointerLockResult::kUserRejected);
   }
 
 #if defined(OS_MACOSX)
@@ -1440,8 +1441,8 @@
                                       bool last_unlocked_by_target) {
   web_view_permission_helper_->RequestPointerLockPermission(
       user_gesture, last_unlocked_by_target,
-      base::BindOnce(
-          base::IgnoreResult(&WebContents::GotResponseToLockMouseRequest),
+      base::Bind(
+          base::IgnoreResult(&WebContents::GotLockMousePermissionResponse),
           base::Unretained(web_contents)));
 }
 
diff --git a/gpu/command_buffer/service/shared_image_video.cc b/gpu/command_buffer/service/shared_image_video.cc
index 2dbe03b..23f767c 100644
--- a/gpu/command_buffer/service/shared_image_video.cc
+++ b/gpu/command_buffer/service/shared_image_video.cc
@@ -320,20 +320,19 @@
   sk_sp<SkPromiseImageTexture> BeginReadAccess(
       std::vector<GrBackendSemaphore>* begin_semaphores,
       std::vector<GrBackendSemaphore>* end_semaphores) override {
-    if (!scoped_hardware_buffer_) {
-      auto* video_backing = static_cast<SharedImageVideo*>(backing());
-      DCHECK(video_backing);
-      auto* stream_texture_sii = video_backing->stream_texture_sii_.get();
+    DCHECK(!scoped_hardware_buffer_);
+    auto* video_backing = static_cast<SharedImageVideo*>(backing());
+    DCHECK(video_backing);
+    auto* stream_texture_sii = video_backing->stream_texture_sii_.get();
 
-      // GetAHardwareBuffer() renders the latest image and gets AHardwareBuffer
-      // from it.
-      scoped_hardware_buffer_ = stream_texture_sii->GetAHardwareBuffer();
-      if (!scoped_hardware_buffer_) {
-        LOG(ERROR) << "Failed to get the hardware buffer.";
-        return nullptr;
-      }
-      DCHECK(scoped_hardware_buffer_->buffer());
+    // GetAHardwareBuffer() renders the latest image and gets AHardwareBuffer
+    // from it.
+    scoped_hardware_buffer_ = stream_texture_sii->GetAHardwareBuffer();
+    if (!scoped_hardware_buffer_) {
+      LOG(ERROR) << "Failed to get the hardware buffer.";
+      return nullptr;
     }
+    DCHECK(scoped_hardware_buffer_->buffer());
 
     // Wait on the sync fd attached to the buffer to make sure buffer is
     // ready before the read. This is done by inserting the sync fd semaphore
@@ -353,6 +352,7 @@
   }
 
   void EndReadAccess() override {
+    DCHECK(scoped_hardware_buffer_);
     DCHECK(end_access_semaphore_ != VK_NULL_HANDLE);
 
     SemaphoreHandle semaphore_handle = vk_implementation()->GetSemaphoreHandle(
@@ -367,6 +367,7 @@
     fence_helper()->EnqueueSemaphoreCleanupForSubmittedWork(
         end_access_semaphore_);
     end_access_semaphore_ = VK_NULL_HANDLE;
+    scoped_hardware_buffer_ = nullptr;
   }
 
  private:
diff --git a/infra/config/dev.star b/infra/config/dev.star
index a7da408..698bc48 100755
--- a/infra/config/dev.star
+++ b/infra/config/dev.star
@@ -50,8 +50,6 @@
 )
 
 exec('//dev/buckets/ci.star')
-exec('//dev/buckets/cron.star')
 exec('//dev/buckets/try.star')
 
 exec('//dev/consoles/chromium.swarm.star')
-exec('//dev/consoles/snapshots.star')
diff --git a/infra/config/dev/buckets/cron.star b/infra/config/dev/buckets/cron.star
deleted file mode 100644
index 03de983..0000000
--- a/infra/config/dev/buckets/cron.star
+++ /dev/null
@@ -1,41 +0,0 @@
-load('//lib/builders.star', 'builder', 'defaults', 'os')
-
-luci.bucket(
-    name = 'cron',
-    acls = [
-        acl.entry(
-            roles = acl.BUILDBUCKET_READER,
-            groups = 'all',
-        ),
-        acl.entry(
-            roles = acl.BUILDBUCKET_TRIGGERER,
-            users = [
-                'luci-scheduler-dev@appspot.gserviceaccount.com',
-                'snapshot-builder@chops-service-accounts.iam.gserviceaccount.com',
-            ],
-        ),
-    ],
-)
-
-
-luci.recipe.defaults.cipd_package.set(
-    'infra/recipe_bundles/chromium.googlesource.com/infra/infra')
-
-defaults.bucket.set('cron')
-defaults.builderless.set(None)
-defaults.execution_timeout.set(time.hour)
-
-
-builder(
-    name = 'Snapshot Builder',
-    executable = luci.recipe(name = 'snapshots/builder'),
-    os = os.LINUX_DEFAULT,
-    # TODO(smut): Adjust frequency
-    schedule = 'with 300s interval',
-    service_account = 'snapshot-builder@chops-service-accounts.iam.gserviceaccount.com',
-)
-
-builder(
-    name = 'Snapshots',
-    executable = luci.recipe(name = 'snapshots/snapshot'),
-)
diff --git a/infra/config/dev/consoles/snapshots.star b/infra/config/dev/consoles/snapshots.star
deleted file mode 100644
index d06e164c..0000000
--- a/infra/config/dev/consoles/snapshots.star
+++ /dev/null
@@ -1,8 +0,0 @@
-luci.list_view(
-    name = 'snapshots',
-    title = 'Snapshot Builder',
-    entries = [
-        'cron/Snapshot Builder',
-        'cron/Snapshots',
-    ],
-)
diff --git a/infra/config/generated/cr-buildbucket-dev.cfg b/infra/config/generated/cr-buildbucket-dev.cfg
index ae560bc..6a94c127 100644
--- a/infra/config/generated/cr-buildbucket-dev.cfg
+++ b/infra/config/generated/cr-buildbucket-dev.cfg
@@ -121,44 +121,6 @@
   >
 >
 buckets: <
-  name: "cron"
-  acls: <
-    group: "all"
-  >
-  acls: <
-    role: SCHEDULER
-    identity: "user:luci-scheduler-dev@appspot.gserviceaccount.com"
-  >
-  acls: <
-    role: SCHEDULER
-    identity: "user:snapshot-builder@chops-service-accounts.iam.gserviceaccount.com"
-  >
-  swarming: <
-    builders: <
-      name: "Snapshot Builder"
-      swarming_host: "chromium-swarm-dev.appspot.com"
-      dimensions: "os:Ubuntu-16.04"
-      recipe: <
-        name: "snapshots/builder"
-        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/infra/infra"
-        cipd_version: "refs/heads/master"
-      >
-      execution_timeout_secs: 3600
-      service_account: "snapshot-builder@chops-service-accounts.iam.gserviceaccount.com"
-    >
-    builders: <
-      name: "Snapshots"
-      swarming_host: "chromium-swarm-dev.appspot.com"
-      recipe: <
-        name: "snapshots/snapshot"
-        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/infra/infra"
-        cipd_version: "refs/heads/master"
-      >
-      execution_timeout_secs: 3600
-    >
-  >
->
-buckets: <
   name: "try"
   acls: <
     role: WRITER
diff --git a/infra/config/generated/luci-milo-dev.cfg b/infra/config/generated/luci-milo-dev.cfg
index b76fe20..3820ea6 100644
--- a/infra/config/generated/luci-milo-dev.cfg
+++ b/infra/config/generated/luci-milo-dev.cfg
@@ -318,15 +318,4 @@
     tree_status_host: "chromium-status.appspot.com"
   >
 >
-consoles: <
-  id: "snapshots"
-  name: "Snapshot Builder"
-  builders: <
-    name: "buildbucket/luci.chromium.cron/Snapshot Builder"
-  >
-  builders: <
-    name: "buildbucket/luci.chromium.cron/Snapshots"
-  >
-  builder_view_only: true
->
 logo_url: "https://storage.googleapis.com/chrome-infra-public/logo/chromium.svg"
diff --git a/infra/config/generated/luci-scheduler-dev.cfg b/infra/config/generated/luci-scheduler-dev.cfg
index ca4e409a..62c24d12 100644
--- a/infra/config/generated/luci-scheduler-dev.cfg
+++ b/infra/config/generated/luci-scheduler-dev.cfg
@@ -5,16 +5,6 @@
 #   https://luci-config.appspot.com/schemas/projects:luci-scheduler.cfg
 
 job: <
-  id: "Snapshot Builder"
-  schedule: "with 300s interval"
-  acl_sets: "cron"
-  buildbucket: <
-    server: "cr-buildbucket-dev.appspot.com"
-    bucket: "luci.chromium.cron"
-    builder: "Snapshot Builder"
-  >
->
-job: <
   id: "android-kitkat-arm-rel-swarming"
   acl_sets: "ci"
   buildbucket: <
@@ -92,13 +82,3 @@
     granted_to: "group:all"
   >
 >
-acl_sets: <
-  name: "cron"
-  acls: <
-    role: OWNER
-    granted_to: "group:project-chromium-admins"
-  >
-  acls: <
-    granted_to: "group:all"
-  >
->
diff --git a/ios/build/bots/chromium.fyi/ios13-sdk-simulator.json b/ios/build/bots/chromium.fyi/ios13-sdk-simulator.json
index 9668aa6..e7fd5cd 100644
--- a/ios/build/bots/chromium.fyi/ios13-sdk-simulator.json
+++ b/ios/build/bots/chromium.fyi/ios13-sdk-simulator.json
@@ -95,7 +95,7 @@
       "os": "13.3",
       "xcode build version": "11c29",
       "host os": "Mac-10.14.6",
-      "pool":"chromium.tests"
+      "pool":"chromium.tests.template"
     },
     {
       "xcode parallelization": true,
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb
index efd4f41..936621d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">የብልሽት ሪፖርት ተልኳል።</translation>
 <translation id="952704832371081537">ይቅር</translation>
 <translation id="988141524645182168">ሌሎች መሣሪያዎች</translation>
+<translation id="989697783705943787">የጣቢያ ደህንነት</translation>
 <translation id="989988560359834682">አድራሻ ያርትዑ</translation>
 <translation id="994757059139821576">የጽሑፍ አስተያየት ጥቆማዎች</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb
index 0b45d23..77f9739 100644
--- a/ios/chrome/app/strings/resources/ios_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Xəta hesabatı göndərildi.</translation>
 <translation id="952704832371081537">Ləğv edin</translation>
 <translation id="988141524645182168">Digər Cihazlar</translation>
+<translation id="989697783705943787">Sayt təhlükəsizliyi</translation>
 <translation id="989988560359834682">Ünvana Düzəliş edin</translation>
 <translation id="994757059139821576">Məqalə Təklifləri</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb
index a23423e1..6d1168d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Справаздача аб збоях адпраўлена.</translation>
 <translation id="952704832371081537">Скасаваць</translation>
 <translation id="988141524645182168">Іншыя прылады</translation>
+<translation id="989697783705943787">Бяспека сайта</translation>
 <translation id="989988560359834682">Рэдагаваць адрас</translation>
 <translation id="994757059139821576">Прапановы артыкулаў</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
index 653ce7e7..ed6fa8a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Zpráva o selhání byla odeslána.</translation>
 <translation id="952704832371081537">Zrušit</translation>
 <translation id="988141524645182168">Jiná zařízení</translation>
+<translation id="989697783705943787">Zabezpečení stránek</translation>
 <translation id="989988560359834682">Upravit adresu</translation>
 <translation id="994757059139821576">Návrhy článků</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index cd28af1..531aa4b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Absturzbericht wurde gesendet.</translation>
 <translation id="952704832371081537">Abbrechen</translation>
 <translation id="988141524645182168">Andere Geräte</translation>
+<translation id="989697783705943787">Websitesicherheit</translation>
 <translation id="989988560359834682">Adresse bearbeiten</translation>
 <translation id="994757059139821576">Vorgeschlagene Artikel</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
index a5eaff6..996c84b7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Informe de fallos enviado.</translation>
 <translation id="952704832371081537">Cancelar</translation>
 <translation id="988141524645182168">Otros dispositivos</translation>
+<translation id="989697783705943787">Seguridad del sitio</translation>
 <translation id="989988560359834682">Modificar dirección</translation>
 <translation id="994757059139821576">Sugerencias de artículos</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
index f07c43a..29d1de6c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Hutsegite-txostena bidali da</translation>
 <translation id="952704832371081537">Utzi</translation>
 <translation id="988141524645182168">Bestelakoak</translation>
+<translation id="989697783705943787">Webgunearen segurtasuna</translation>
 <translation id="989988560359834682">Editatu helbidea</translation>
 <translation id="994757059139821576">Artikulu-iradokizunak</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index b2e26ec4..fd0408e6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">گزارش خرابی ارسال شد.</translation>
 <translation id="952704832371081537">لغو</translation>
 <translation id="988141524645182168">دستگاه‌های دیگر</translation>
+<translation id="989697783705943787">امنیت سایت</translation>
 <translation id="989988560359834682">ویرایش آدرس</translation>
 <translation id="994757059139821576">مقالات پیشنهادی</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index f0937bc..813bdb5e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Nagpadala ng ulat sa pag-crash.</translation>
 <translation id="952704832371081537">Kanselahin</translation>
 <translation id="988141524645182168">Iba Pang Device</translation>
+<translation id="989697783705943787">Seguridad ng site</translation>
 <translation id="989988560359834682">I-edit ang Address</translation>
 <translation id="994757059139821576">Mga Suhestyong Artikulo</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
index 2198094..7fe0a0a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Rapport de plantage envoyé.</translation>
 <translation id="952704832371081537">Annuler</translation>
 <translation id="988141524645182168">Autr appar</translation>
+<translation id="989697783705943787">Sécurité du site</translation>
 <translation id="989988560359834682">Modifier l'adresse</translation>
 <translation id="994757059139821576">Articles suggérés</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
index b7a9f30..1659a7c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Le rapport d'erreur a bien été envoyé.</translation>
 <translation id="952704832371081537">Annuler</translation>
 <translation id="988141524645182168">Autres appareils</translation>
+<translation id="989697783705943787">Sécurité du site</translation>
 <translation id="989988560359834682">Modifier l'adresse</translation>
 <translation id="994757059139821576">Suggestions d'articles</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb
index 9cf1053..6326f20 100644
--- a/ios/chrome/app/strings/resources/ios_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Laporan kerusakan terkirim.</translation>
 <translation id="952704832371081537">Batal</translation>
 <translation id="988141524645182168">Perangkat Lainnya</translation>
+<translation id="989697783705943787">Keamanan situs</translation>
 <translation id="989988560359834682">Edit Alamat</translation>
 <translation id="994757059139821576">Saran Artikel</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index 406ea745..7656601 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">クラッシュレポートを送信しました。</translation>
 <translation id="952704832371081537">キャンセル</translation>
 <translation id="988141524645182168">他のデバイス</translation>
+<translation id="989697783705943787">サイトのセキュリティ</translation>
 <translation id="989988560359834682">住所の編集</translation>
 <translation id="994757059139821576">記事の候補表示</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
index 55bf5c71..ba109bf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">მოხსენება შეცდომების შესახებ გაიგზავნა.</translation>
 <translation id="952704832371081537">გაუქმება</translation>
 <translation id="988141524645182168">სხვა მოწყობილობები</translation>
+<translation id="989697783705943787">საიტის უსაფრთხოება</translation>
 <translation id="989988560359834682">მისამართის რედაქტირება</translation>
 <translation id="994757059139821576">სტატიების შემოთავაზება</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
index e7d0c8c..faba29b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Бұзылу туралы хабарлама жіберілді.</translation>
 <translation id="952704832371081537">Бас тарту</translation>
 <translation id="988141524645182168">Басқа құрылғылар</translation>
+<translation id="989697783705943787">Сайт қауіпсіздігі</translation>
 <translation id="989988560359834682">Мекенжайды өзгерту</translation>
 <translation id="994757059139821576">Мақала ұсыныстары</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb
index 09f2847..31e76115 100644
--- a/ios/chrome/app/strings/resources/ios_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">បានផ្ញើរបាយការណ៍ការគាំង។</translation>
 <translation id="952704832371081537">បោះបង់</translation>
 <translation id="988141524645182168">ឧបករណ៍ផ្សេងទៀត</translation>
+<translation id="989697783705943787">សុវត្ថិភាពគេហទំព័រ</translation>
 <translation id="989988560359834682">កែប្រែអាសយដ្ឋាន</translation>
 <translation id="994757059139821576">ការណែនាំ​អត្ថបទ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index 3948f86..410a4b81 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">ಕ್ರ್ಯಾಶ್ ವರದಿಯನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ.</translation>
 <translation id="952704832371081537">ರದ್ದುಮಾಡಿ</translation>
 <translation id="988141524645182168">ಇತರ ಸಾಧನಗಳು</translation>
+<translation id="989697783705943787">ಸೈಟ್‌ನ ಸುರಕ್ಷತೆ</translation>
 <translation id="989988560359834682">ವಿಳಾಸವನ್ನು ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="994757059139821576">ಲೇಖನ ಸಲಹೆಗಳು</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index d27e350..bd1984a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">비정상 종료 보고서 전송 완료</translation>
 <translation id="952704832371081537">취소</translation>
 <translation id="988141524645182168">기타 기기</translation>
+<translation id="989697783705943787">사이트 보안</translation>
 <translation id="989988560359834682">주소 수정</translation>
 <translation id="994757059139821576">기사 추천</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
index a653325..845b535a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Ката тууралуу кабар жөнөтүлдү.</translation>
 <translation id="952704832371081537">Жокко чыгаруу</translation>
 <translation id="988141524645182168">Бшк түзмкт</translation>
+<translation id="989697783705943787">Сайттын коопсуздугу</translation>
 <translation id="989988560359834682">Даректи түзөтүү</translation>
 <translation id="994757059139821576">Макалаларды сунуштоо</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index 4bbe2b6..cbb2f7d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">​ສົ່ງລາຍງານການຂັດຂ້ອງແລ້ວ.</translation>
 <translation id="952704832371081537">ຍົກເລີກ</translation>
 <translation id="988141524645182168">ອຸ​ປະ​ກອນ​ອື່ນໆ</translation>
+<translation id="989697783705943787">ຄວາມປອດໄພເວັບໄຊ</translation>
 <translation id="989988560359834682">ແກ້ໄຂທີ່ຢູ່</translation>
 <translation id="994757059139821576">ການແນະນຳບົດຄວາມ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
index 06584c7..27cacdf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Извештајот за пад се испрати.</translation>
 <translation id="952704832371081537">Откажи</translation>
 <translation id="988141524645182168">Други уреди</translation>
+<translation id="989697783705943787">Безбедност на сајтот</translation>
 <translation id="989988560359834682">Измени адреса</translation>
 <translation id="994757059139821576">Предлози за статии</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index ae95b7db..c8d8c659 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">ക്രാഷ് റിപ്പോർട്ട് അയച്ചു.</translation>
 <translation id="952704832371081537">റദ്ദാക്കുക</translation>
 <translation id="988141524645182168">മറ്റ് ഉപകരണങ്ങൾ</translation>
+<translation id="989697783705943787">സൈറ്റ് സുരക്ഷ</translation>
 <translation id="989988560359834682">വിലാസം എഡിറ്റുചെയ്യുക</translation>
 <translation id="994757059139821576">ലേഖന നിർദ്ദേശങ്ങൾ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index 37cd64f..73ece8c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -602,6 +602,7 @@
 <translation id="9223358826628549784">क्रॅश अहवाल पाठवला.</translation>
 <translation id="952704832371081537">रद्द करा</translation>
 <translation id="988141524645182168">इतर डिव्हायसेस</translation>
+<translation id="989697783705943787">साइट सुरक्षितता</translation>
 <translation id="989988560359834682">पत्ता संपादित करा</translation>
 <translation id="994757059139821576">लेख सूचना</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index 37827506..0a75e6f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Laporan ranap sistem dihantar.</translation>
 <translation id="952704832371081537">Batal</translation>
 <translation id="988141524645182168">Peranti Lain</translation>
+<translation id="989697783705943787">Keselamatan tapak</translation>
 <translation id="989988560359834682">Edit Alamat</translation>
 <translation id="994757059139821576">Cadangan Artikel</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index 263a763..29fd36a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Отчет отправлен</translation>
 <translation id="952704832371081537">Отмена</translation>
 <translation id="988141524645182168">Другие устройства</translation>
+<translation id="989697783705943787">Безопасность сайта</translation>
 <translation id="989988560359834682">Изменение адреса</translation>
 <translation id="994757059139821576">Рекомендуемые статьи</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index 5c701ed..51d0b14 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -97,6 +97,7 @@
 <translation id="2149973817440762519">புக்மார்க்கை மாற்றுக</translation>
 <translation id="2179182049312275900">அமைப்புகளில் ஒத்திசைவை எந்த நேரத்திலும் இயக்கலாம்.</translation>
 <translation id="2198757192731523470">தேடல், விளம்பரங்கள் மற்றும் பிற Google சேவைகளைத் தனிப்பயனாக்க, உங்கள் வரலாற்றை Google பயன்படுத்தக்கூடும்.</translation>
+<translation id="2218443599109088993">சிறிதாக்கு</translation>
 <translation id="2230173723195178503">இணையப் பக்கம் ஏற்றப்பட்டது</translation>
 <translation id="2239626343334228536">உலாவிய தரவை அழிக்கிறது...</translation>
 <translation id="2257567812274161158">ஒத்திசைவு செயல்படவில்லை.</translation>
@@ -418,6 +419,7 @@
 <translation id="6464071786529933911">புதிய மறைநிலைத் தாவலில் திற</translation>
 <translation id="6476800141292307438">பக்கத்தை <ph name="LANGUAGE" /> மொழியில் மொழிபெயர்க்கிறது. திரையின் கீழ்ப்பகுதிக்கு அருகில் விருப்பத்தேர்வுகள் உள்ளன.</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> உருப்படிகள் நீக்கப்பட்டன</translation>
+<translation id="6561262006871132942">பெரிதாக்கு</translation>
 <translation id="6610002944194042868">மொழிபெயர்ப்பு விருப்பத்தேர்வுகள்</translation>
 <translation id="6628106477656132239">தவறான காலாவதித் தேதி</translation>
 <translation id="6638511529934826365">உரையின் அளவை மாற்று…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index 0ea6a8b..afe49a9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">ส่งรายงานข้อขัดข้องแล้ว</translation>
 <translation id="952704832371081537">ยกเลิก</translation>
 <translation id="988141524645182168">อุปกรณ์อื่นๆ</translation>
+<translation id="989697783705943787">ความปลอดภัยของเว็บไซต์</translation>
 <translation id="989988560359834682">แก้ไขที่อยู่</translation>
 <translation id="994757059139821576">บทความแนะนำ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index 5f5a0b3..2259daba 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Kilitlenme raporu gönderildi.</translation>
 <translation id="952704832371081537">İptal</translation>
 <translation id="988141524645182168">Diğer Cihazlar</translation>
+<translation id="989697783705943787">Site güvenliği</translation>
 <translation id="989988560359834682">Adresi Düzenle</translation>
 <translation id="994757059139821576">Makale Önerileri</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index 38b3fe68a..04de70d1c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">Đã gửi báo cáo lỗi.</translation>
 <translation id="952704832371081537">Hủy</translation>
 <translation id="988141524645182168">Thiết bị khác</translation>
+<translation id="989697783705943787">Thông tin bảo mật của trang web</translation>
 <translation id="989988560359834682">Chỉnh sửa địa chỉ</translation>
 <translation id="994757059139821576">Đề xuất bài viết</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
index 5865451..b60ced4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">已发送崩溃报告。</translation>
 <translation id="952704832371081537">取消</translation>
 <translation id="988141524645182168">其他设备</translation>
+<translation id="989697783705943787">网站安全</translation>
 <translation id="989988560359834682">修改地址</translation>
 <translation id="994757059139821576">文章推荐</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
index d21fa9b..518bd2e5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">當機報告已送出。</translation>
 <translation id="952704832371081537">取消</translation>
 <translation id="988141524645182168">其他裝置</translation>
+<translation id="989697783705943787">網站安全性</translation>
 <translation id="989988560359834682">編輯地址</translation>
 <translation id="994757059139821576">文章建議</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
index fe05a37..5aaa74bf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -601,6 +601,7 @@
 <translation id="9223358826628549784">當機報告已送出。</translation>
 <translation id="952704832371081537">取消</translation>
 <translation id="988141524645182168">其他裝置</translation>
+<translation id="989697783705943787">網站安全性</translation>
 <translation id="989988560359834682">編輯地址</translation>
 <translation id="994757059139821576">文章建議</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/browser/bookmarks/bookmark_client_impl.cc b/ios/chrome/browser/bookmarks/bookmark_client_impl.cc
index e5bfa14..f99bdf0 100644
--- a/ios/chrome/browser/bookmarks/bookmark_client_impl.cc
+++ b/ios/chrome/browser/bookmarks/bookmark_client_impl.cc
@@ -71,9 +71,9 @@
   }
 }
 
-bool BookmarkClientImpl::IsPermanentNodeVisible(
-    const bookmarks::BookmarkPermanentNode* node) {
-  return node->type() == bookmarks::BookmarkNode::MOBILE;
+bool BookmarkClientImpl::IsPermanentNodeVisibleWhenEmpty(
+    bookmarks::BookmarkNode::Type type) {
+  return type == bookmarks::BookmarkNode::MOBILE;
 }
 
 void BookmarkClientImpl::RecordAction(const base::UserMetricsAction& action) {
diff --git a/ios/chrome/browser/bookmarks/bookmark_client_impl.h b/ios/chrome/browser/bookmarks/bookmark_client_impl.h
index ed357cd..52c6246f 100644
--- a/ios/chrome/browser/bookmarks/bookmark_client_impl.h
+++ b/ios/chrome/browser/bookmarks/bookmark_client_impl.h
@@ -17,8 +17,6 @@
 
 namespace bookmarks {
 class BookmarkModel;
-class BookmarkNode;
-class BookmarkPermanentNode;
 }
 
 namespace sync_bookmarks {
@@ -42,8 +40,8 @@
       base::CancelableTaskTracker* tracker) override;
   bool SupportsTypedCountForUrls() override;
   void GetTypedCountForUrls(UrlTypedCountMap* url_typed_count_map) override;
-  bool IsPermanentNodeVisible(
-      const bookmarks::BookmarkPermanentNode* node) override;
+  bool IsPermanentNodeVisibleWhenEmpty(
+      bookmarks::BookmarkNode::Type type) override;
   void RecordAction(const base::UserMetricsAction& action) override;
   bookmarks::LoadManagedNodeCallback GetLoadManagedNodeCallback() override;
   bool CanSetPermanentNodeTitle(
diff --git a/ios/chrome/browser/crash_report/breakpad_helper.mm b/ios/chrome/browser/crash_report/breakpad_helper.mm
index 292ccce..4ce5b1ae 100644
--- a/ios/chrome/browser/crash_report/breakpad_helper.mm
+++ b/ios/chrome/browser/crash_report/breakpad_helper.mm
@@ -371,7 +371,8 @@
 }
 
 void SetBreadcrumbEvents(NSArray* breadcrumbs) {
-  DCHECK_LE(breadcrumbs.count, 4U);
+  DCHECK_GT(breadcrumbs.count, 0U);
+  DCHECK_LE(breadcrumbs.count, 6U);
   for (NSUInteger i = 0; i < breadcrumbs.count; i++) {
     NSString* key = [NSString stringWithFormat:kBreadcrumbs, i];
     AddReportParameter(key, breadcrumbs[i], /*async=*/true);
diff --git a/ios/chrome/browser/crash_report/breakpad_helper_unittest.mm b/ios/chrome/browser/crash_report/breakpad_helper_unittest.mm
index bf8cf0e1..7e20f81 100644
--- a/ios/chrome/browser/crash_report/breakpad_helper_unittest.mm
+++ b/ios/chrome/browser/crash_report/breakpad_helper_unittest.mm
@@ -3,6 +3,8 @@
 // found in the LICENSE file.
 
 #import "ios/chrome/browser/crash_report/breakpad_helper.h"
+
+#include "ios/chrome/browser/crash_report/crash_report_helper.h"
 #include "ios/chrome/browser/crash_report/main_thread_freeze_detector.h"
 #import "ios/chrome/test/ocmock/OCMockObject+BreakpadControllerTesting.h"
 #import "ios/testing/scoped_block_swizzler.h"
@@ -82,7 +84,12 @@
   while (breadcrumbs.length < 255) {
     [breadcrumbs appendString:@"12:01 Fake Breadcrumb Event/n"];
   }
-  breakpad_helper::SetBreadcrumbEvents(@[ breadcrumbs, breadcrumbs ]);
+
+  NSMutableArray* events = [[NSMutableArray alloc] init];
+  for (int i = 0; i < breakpad::kBreadcrumbsKeyCount; i++) {
+    [events addObject:breadcrumbs];
+  }
+  breakpad_helper::SetBreadcrumbEvents(events);
 }
 
 TEST_F(BreakpadHelperTest, GetCrashReportCount) {
diff --git a/ios/chrome/browser/crash_report/crash_report_helper.h b/ios/chrome/browser/crash_report/crash_report_helper.h
index 155ae2a..3cfe7b0 100644
--- a/ios/chrome/browser/crash_report/crash_report_helper.h
+++ b/ios/chrome/browser/crash_report/crash_report_helper.h
@@ -18,6 +18,12 @@
 
 namespace breakpad {
 
+// Number of product data keys to use for breadcrumbs. Each product key allows
+// to upload limited amount of data (kMaxProductDataLength), so having
+// multiple keys makes breadcrumbs more useful by having access to more
+// breadcrumbs on crash reports.
+extern const int kBreadcrumbsKeyCount;
+
 // Monitors the urls loaded by |web_state| to allow crash reports to contain the
 // current loading url.
 void MonitorURLsForWebState(web::WebState* web_state);
diff --git a/ios/chrome/browser/crash_report/crash_report_helper.mm b/ios/chrome/browser/crash_report/crash_report_helper.mm
index 08fbfb6..8a34b40 100644
--- a/ios/chrome/browser/crash_report/crash_report_helper.mm
+++ b/ios/chrome/browser/crash_report/crash_report_helper.mm
@@ -37,6 +37,12 @@
 #error "This file requires ARC support."
 #endif
 
+namespace breakpad {
+// IMPORTANT: be careful if ever increasing this value, Breakpad reports have an
+// overall size limit
+const int kBreadcrumbsKeyCount = 6;
+}
+
 // WebStateListObserver that allows loaded urls to be sent to the crash server.
 @interface CrashReporterURLObserver
     : NSObject <WebStateListObserving, CRWWebStateObserver> {
@@ -442,6 +448,8 @@
 void MonitorBreadcrumbManager(BreadcrumbManager* breadcrumb_manager) {
   [[CrashReporterBreadcrumbObserver uniqueInstance]
       observeBreadcrumbManager:breadcrumb_manager];
+  [CrashReporterBreadcrumbObserver uniqueInstance].breadcrumbsKeyCount =
+      kBreadcrumbsKeyCount;
 }
 
 void StopMonitoringBreadcrumbManager(BreadcrumbManager* breadcrumb_manager) {
diff --git a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.h b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.h
index ea7dbd5..e213d1310 100644
--- a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.h
+++ b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.h
@@ -24,6 +24,9 @@
 // Creates a singleton instance.
 + (CrashReporterBreadcrumbObserver*)uniqueInstance;
 
+// Number of product data keys to use for breadcrumbs.
+@property(nonatomic) NSUInteger breadcrumbsKeyCount;
+
 // Starts collecting breadcrumb events logged to |breadcrumbManager|.
 - (void)observeBreadcrumbManager:(BreadcrumbManager*)breadcrumbManager;
 
diff --git a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.mm b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.mm
index 169e3a34..333fbbaf5b 100644
--- a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.mm
+++ b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.mm
@@ -12,15 +12,6 @@
 #error "This file requires ARC support."
 #endif
 
-namespace {
-// IMPORTANT: the value of this constant should not exceed 4.
-// Number of product data keys to use for breadcrumbs. Each product key allows
-// to upload limited amount of data (kMaxProductDataLength), so having
-// multiple keys makes breadcrumbs more useful by having access to more
-// breadcrumbs on crash reports.
-const int kBreadcrumbsKeyCount = 2;
-}
-
 const int kMaxProductDataLength = 255;
 
 @interface CrashReporterBreadcrumbObserver () {
@@ -91,7 +82,7 @@
   [_breadcrumbs insertString:eventWithSeperator atIndex:0];
 
   NSUInteger maxBreadcrumbsLength =
-      kBreadcrumbsKeyCount * kMaxProductDataLength;
+      self.breadcrumbsKeyCount * kMaxProductDataLength;
   if (_breadcrumbs.length > maxBreadcrumbsLength) {
     NSRange trimRange = NSMakeRange(maxBreadcrumbsLength,
                                     _breadcrumbs.length - maxBreadcrumbsLength);
@@ -100,8 +91,8 @@
 
   // Cut breadcrumbs strings into multiple pieces and upload with separate keys.
   NSMutableArray* breadcrumbs =
-      [[NSMutableArray alloc] initWithCapacity:kBreadcrumbsKeyCount];
-  for (NSUInteger i = 0; i < kBreadcrumbsKeyCount &&
+      [[NSMutableArray alloc] initWithCapacity:self.breadcrumbsKeyCount];
+  for (NSUInteger i = 0; i < self.breadcrumbsKeyCount &&
                          (i * kMaxProductDataLength) < _breadcrumbs.length;
        i++) {
     NSUInteger location = i * kMaxProductDataLength;
diff --git a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer_unittest.mm b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer_unittest.mm
index 5a371a7..cd539563 100644
--- a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer_unittest.mm
+++ b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer_unittest.mm
@@ -12,6 +12,7 @@
 #include "ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_manager_keyed_service.h"
 #include "ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_manager_keyed_service_factory.h"
 #import "ios/chrome/browser/crash_report/breakpad_helper.h"
+#include "ios/chrome/browser/crash_report/crash_report_helper.h"
 #import "ios/chrome/test/ocmock/OCMockObject+BreakpadControllerTesting.h"
 #import "ios/testing/scoped_block_swizzler.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -100,6 +101,8 @@
           chrome_browser_state_.get());
   CrashReporterBreadcrumbObserver* crash_reporter_breadcrumb_observer =
       [[CrashReporterBreadcrumbObserver alloc] init];
+  crash_reporter_breadcrumb_observer.breadcrumbsKeyCount =
+      breakpad::kBreadcrumbsKeyCount;
   [crash_reporter_breadcrumb_observer
       observeBreadcrumbManagerService:breadcrumb_service];
 
@@ -134,6 +137,8 @@
           chrome_browser_state_.get());
   CrashReporterBreadcrumbObserver* crash_reporter_breadcrumb_observer =
       [[CrashReporterBreadcrumbObserver alloc] init];
+  crash_reporter_breadcrumb_observer.breadcrumbsKeyCount =
+      breakpad::kBreadcrumbsKeyCount;
   [crash_reporter_breadcrumb_observer
       observeBreadcrumbManagerService:breadcrumb_service];
 
@@ -179,6 +184,8 @@
           chrome_browser_state_.get());
   CrashReporterBreadcrumbObserver* crash_reporter_breadcrumb_observer =
       [[CrashReporterBreadcrumbObserver alloc] init];
+  // Testing with 2 keys requires less code and complexity.
+  crash_reporter_breadcrumb_observer.breadcrumbsKeyCount = 2;
   [crash_reporter_breadcrumb_observer
       observeBreadcrumbManagerService:breadcrumb_service];
 
@@ -244,6 +251,8 @@
           chrome_browser_state_.get());
   CrashReporterBreadcrumbObserver* crash_reporter_breadcrumb_observer =
       [[CrashReporterBreadcrumbObserver alloc] init];
+  crash_reporter_breadcrumb_observer.breadcrumbsKeyCount =
+      breakpad::kBreadcrumbsKeyCount;
   [crash_reporter_breadcrumb_observer
       observeBreadcrumbManagerService:breadcrumb_service];
 
diff --git a/ios/chrome/browser/ui/history/history_table_view_controller.mm b/ios/chrome/browser/ui/history/history_table_view_controller.mm
index 06a3053..4dc71c1 100644
--- a/ios/chrome/browser/ui/history/history_table_view_controller.mm
+++ b/ios/chrome/browser/ui/history/history_table_view_controller.mm
@@ -165,6 +165,9 @@
   self.clearsSelectionOnViewWillAppear = NO;
   self.tableView.allowsMultipleSelection = YES;
   self.tableView.accessibilityIdentifier = kHistoryTableViewIdentifier;
+  // Add a tableFooterView in order to hide the separator lines where there's no
+  // history content.
+  self.tableView.tableFooterView = [[UIView alloc] init];
 
   // ContextMenu gesture recognizer.
   UILongPressGestureRecognizer* longPressRecognizer = [
diff --git a/ipc/BUILD.gn b/ipc/BUILD.gn
index 3e2caf17..1eb5856 100644
--- a/ipc/BUILD.gn
+++ b/ipc/BUILD.gn
@@ -192,11 +192,39 @@
     "//mojo/public/mojom/base",
   ]
 
+  cpp_typemaps = [ ":message_typemap" ]
+
   # Don't generate a variant sources since we depend on generated internal
   # bindings types and we don't generate or build variants of those.
   disable_variants = true
 }
 
+mojom_cpp_typemap("message_typemap") {
+  types = [
+    {
+      mojom = "IPC.mojom.Message"
+      cpp = "::IPC::MessageView"
+      move_only = true
+    },
+  ]
+  public_headers = [
+    "//ipc/message_mojom_traits.h",
+    "//ipc/message_view.h",
+  ]
+  traits_sources = [
+    "//ipc/message_mojom_traits.cc",
+    "//ipc/message_mojom_traits.h",
+    "//ipc/message_view.cc",
+    "//ipc/message_view.h",
+  ]
+  traits_public_deps = [
+    ":mojom_shared",
+    "//ipc:message_support",
+    "//mojo/public/cpp/base:shared_typemap_traits",
+  ]
+  traits_defines = [ "IS_IPC_MOJOM_IMPL" ]
+}
+
 mojom("mojom_constants") {
   sources = [ "constants.mojom" ]
 }
diff --git a/ipc/message.typemap b/ipc/message.typemap
deleted file mode 100644
index b97ee63..0000000
--- a/ipc/message.typemap
+++ /dev/null
@@ -1,18 +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.
-
-mojom = "//ipc/ipc.mojom"
-public_headers = [ "//ipc/message_view.h" ]
-traits_headers = [ "//ipc/message_mojom_traits.h" ]
-sources = [
-  "//ipc/message_mojom_traits.cc",
-  "//ipc/message_mojom_traits.h",
-  "//ipc/message_view.cc",
-  "//ipc/message_view.h",
-]
-public_deps = [
-  "//ipc:message_support",
-  "//mojo/public/cpp/base:shared_typemap_traits",
-]
-type_mappings = [ "IPC.mojom.Message=::IPC::MessageView[move_only]" ]
diff --git a/ipc/typemaps.gni b/ipc/typemaps.gni
deleted file mode 100644
index 7896dae6..0000000
--- a/ipc/typemaps.gni
+++ /dev/null
@@ -1,5 +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.
-
-typemaps = [ "//ipc/message.typemap" ]
diff --git a/mojo/public/cpp/base/BUILD.gn b/mojo/public/cpp/base/BUILD.gn
index c435640..9aaf1e0 100644
--- a/mojo/public/cpp/base/BUILD.gn
+++ b/mojo/public/cpp/base/BUILD.gn
@@ -29,14 +29,45 @@
   sources = [
     "big_string_mojom_traits.cc",
     "big_string_mojom_traits.h",
+    "memory_allocator_dump_cross_process_uid_mojom_traits.cc",
+    "memory_allocator_dump_cross_process_uid_mojom_traits.h",
+    "memory_pressure_level_mojom_traits.cc",
+    "memory_pressure_level_mojom_traits.h",
+    "message_pump_type_mojom_traits.cc",
+    "message_pump_type_mojom_traits.h",
+    "process_id_mojom_traits.cc",
+    "process_id_mojom_traits.h",
+    "ref_counted_memory_mojom_traits.cc",
+    "ref_counted_memory_mojom_traits.h",
+    "string16_mojom_traits.cc",
+    "string16_mojom_traits.h",
+    "text_direction_mojom_traits.cc",
+    "text_direction_mojom_traits.h",
+    "thread_priority_mojom_traits.cc",
+    "thread_priority_mojom_traits.h",
   ]
 
+  if (is_android) {
+    sources += [
+      "application_state_mojom_traits.cc",
+      "application_state_mojom_traits.h",
+    ]
+  }
+
+  if (is_win) {
+    sources += [
+      "logfont_win_mojom_traits.cc",
+      "logfont_win_mojom_traits.h",
+    ]
+  }
+
   defines = [ "IS_MOJO_BASE_TRAITS_IMPL" ]
 
   public_deps = [
     ":shared_typemap_traits",
     "//base",
     "//mojo/public/cpp/base",
+    "//mojo/public/mojom/base:base_shared",
   ]
 }
 
diff --git a/mojo/public/cpp/base/OWNERS b/mojo/public/cpp/base/OWNERS
index c4f73a0..d5fefd8 100644
--- a/mojo/public/cpp/base/OWNERS
+++ b/mojo/public/cpp/base/OWNERS
@@ -1,4 +1,2 @@
-per-file *.typemap=set noparent
-per-file *.typemap=file://ipc/SECURITY_OWNERS
 per-file *_mojom_traits*.*=set noparent
 per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
diff --git a/mojo/public/cpp/base/application_state.typemap b/mojo/public/cpp/base/application_state.typemap
deleted file mode 100644
index f84821a..0000000
--- a/mojo/public/cpp/base/application_state.typemap
+++ /dev/null
@@ -1,17 +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.
-
-mojom = "//mojo/public/mojom/base/application_state.mojom"
-os_whitelist = [ "android" ]
-public_headers = [ "//base/android/application_status_listener.h" ]
-traits_headers = [ "//mojo/public/cpp/base/application_state_mojom_traits.h" ]
-sources = [
-  "//mojo/public/cpp/base/application_state_mojom_traits.cc",
-  "//mojo/public/cpp/base/application_state_mojom_traits.h",
-]
-public_deps = [
-  "//base",
-]
-type_mappings =
-    [ "mojo_base.mojom.ApplicationState=::base::android::ApplicationState" ]
diff --git a/mojo/public/cpp/base/application_state_mojom_traits.h b/mojo/public/cpp/base/application_state_mojom_traits.h
index 62edd117..9bedad1 100644
--- a/mojo/public/cpp/base/application_state_mojom_traits.h
+++ b/mojo/public/cpp/base/application_state_mojom_traits.h
@@ -8,12 +8,12 @@
 #include "base/android/application_status_listener.h"
 #include "base/component_export.h"
 #include "mojo/public/cpp/bindings/struct_traits.h"
-#include "mojo/public/mojom/base/application_state.mojom.h"
+#include "mojo/public/mojom/base/application_state.mojom-shared.h"
 
 namespace mojo {
 
 template <>
-struct COMPONENT_EXPORT(MOJO_BASE_MOJOM)
+struct COMPONENT_EXPORT(MOJO_BASE_TRAITS)
     EnumTraits<mojo_base::mojom::ApplicationState,
                base::android::ApplicationState> {
   static mojo_base::mojom::ApplicationState ToMojom(
diff --git a/mojo/public/cpp/base/file.typemap b/mojo/public/cpp/base/file.typemap
deleted file mode 100644
index 59a5731..0000000
--- a/mojo/public/cpp/base/file.typemap
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//mojo/public/mojom/base/file.mojom"
-public_headers = [ "//base/files/file.h" ]
-traits_headers = [ "//mojo/public/cpp/base/file_mojom_traits.h" ]
-public_deps = [
-  "//base",
-  "//mojo/public/cpp/base:shared_typemap_traits",
-]
-
-type_mappings =
-    [ "mojo_base.mojom.File=::base::File[move_only,nullable_is_same_type]" ]
diff --git a/mojo/public/cpp/base/file_error.typemap b/mojo/public/cpp/base/file_error.typemap
deleted file mode 100644
index 738a9a7c..0000000
--- a/mojo/public/cpp/base/file_error.typemap
+++ /dev/null
@@ -1,12 +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.
-
-mojom = "//mojo/public/mojom/base/file_error.mojom"
-public_headers = [ "//base/files/file.h" ]
-traits_headers = [ "//mojo/public/cpp/base/file_error_mojom_traits.h" ]
-public_deps = [
-  "//base",
-  "//mojo/public/cpp/bindings",
-]
-type_mappings = [ "mojo_base.mojom.FileError=::base::File::Error" ]
diff --git a/mojo/public/cpp/base/file_error_mojom_traits.h b/mojo/public/cpp/base/file_error_mojom_traits.h
index 941608e3..928f779 100644
--- a/mojo/public/cpp/base/file_error_mojom_traits.h
+++ b/mojo/public/cpp/base/file_error_mojom_traits.h
@@ -6,7 +6,7 @@
 #define MOJO_PUBLIC_CPP_BASE_FILE_ERROR_MOJOM_TRAITS_H_
 
 #include "base/files/file.h"
-#include "mojo/public/mojom/base/file_error.mojom.h"
+#include "mojo/public/mojom/base/file_error.mojom-shared.h"
 
 namespace mojo {
 
diff --git a/mojo/public/cpp/base/file_info.typemap b/mojo/public/cpp/base/file_info.typemap
deleted file mode 100644
index a8f70c6..0000000
--- a/mojo/public/cpp/base/file_info.typemap
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//mojo/public/mojom/base/file_info.mojom"
-public_headers = [ "//base/files/file.h" ]
-traits_headers = [ "//mojo/public/cpp/base/file_info_mojom_traits.h" ]
-public_deps = [
-  "//base",
-  "//mojo/public/cpp/base:shared_typemap_traits",
-]
-
-type_mappings = [ "mojo_base.mojom.FileInfo=::base::File::Info" ]
diff --git a/mojo/public/cpp/base/file_path.typemap b/mojo/public/cpp/base/file_path.typemap
deleted file mode 100644
index 99106ac..0000000
--- a/mojo/public/cpp/base/file_path.typemap
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//mojo/public/mojom/base/file_path.mojom"
-public_headers = [ "//base/files/file_path.h" ]
-traits_headers = [ "//mojo/public/cpp/base/file_path_mojom_traits.h" ]
-public_deps = [
-  "//mojo/public/cpp/base:shared_typemap_traits",
-]
-
-type_mappings = [ "mojo_base.mojom.FilePath=::base::FilePath" ]
diff --git a/mojo/public/cpp/base/logfont_win.typemap b/mojo/public/cpp/base/logfont_win.typemap
deleted file mode 100644
index daaf6fcc..0000000
--- a/mojo/public/cpp/base/logfont_win.typemap
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//mojo/public/mojom/base/logfont_win.mojom"
-public_headers = [
-  "//base/win/windows_full.h",
-  "//base/win/windows_types.h",
-]
-traits_headers = [ "//mojo/public/cpp/base/logfont_win_mojom_traits.h" ]
-public_deps = [
-  "//base",
-]
-sources = [
-  "//mojo/public/cpp/base/logfont_win_mojom_traits.cc",
-  "//mojo/public/cpp/base/logfont_win_mojom_traits.h",
-]
-type_mappings = [ "mojo_base.mojom.LOGFONT=::LOGFONT" ]
diff --git a/mojo/public/cpp/base/logfont_win_mojom_traits.h b/mojo/public/cpp/base/logfont_win_mojom_traits.h
index 09a9fbb..03cb6f6 100644
--- a/mojo/public/cpp/base/logfont_win_mojom_traits.h
+++ b/mojo/public/cpp/base/logfont_win_mojom_traits.h
@@ -19,7 +19,7 @@
 namespace mojo {
 
 template <>
-struct COMPONENT_EXPORT(MOJO_BASE_MOJOM)
+struct COMPONENT_EXPORT(MOJO_BASE_TRAITS)
     StructTraits<mojo_base::mojom::LOGFONTDataView, ::LOGFONT> {
   static base::span<const uint8_t> bytes(const ::LOGFONT& input);
   static bool Read(mojo_base::mojom::LOGFONTDataView data, ::LOGFONT* out);
diff --git a/mojo/public/cpp/base/memory_allocator_dump_cross_process_uid.typemap b/mojo/public/cpp/base/memory_allocator_dump_cross_process_uid.typemap
deleted file mode 100644
index 2cd5697..0000000
--- a/mojo/public/cpp/base/memory_allocator_dump_cross_process_uid.typemap
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//mojo/public/mojom/base/memory_allocator_dump_cross_process_uid.mojom"
-public_headers = [ "//base/trace_event/memory_allocator_dump_guid.h" ]
-traits_headers = [ "//mojo/public/cpp/base/memory_allocator_dump_cross_process_uid_mojom_traits.h" ]
-sources = [
-  "//mojo/public/cpp/base/memory_allocator_dump_cross_process_uid_mojom_traits.cc",
-  "//mojo/public/cpp/base/memory_allocator_dump_cross_process_uid_mojom_traits.h",
-]
-
-type_mappings = [ "mojo_base.mojom.MemoryAllocatorDumpCrossProcessUid=::base::trace_event::MemoryAllocatorDumpGuid" ]
diff --git a/mojo/public/cpp/base/memory_allocator_dump_cross_process_uid_mojom_traits.h b/mojo/public/cpp/base/memory_allocator_dump_cross_process_uid_mojom_traits.h
index b99a9c53..e2ee25b 100644
--- a/mojo/public/cpp/base/memory_allocator_dump_cross_process_uid_mojom_traits.h
+++ b/mojo/public/cpp/base/memory_allocator_dump_cross_process_uid_mojom_traits.h
@@ -12,7 +12,7 @@
 namespace mojo {
 
 template <>
-struct COMPONENT_EXPORT(MOJO_BASE_MOJOM)
+struct COMPONENT_EXPORT(MOJO_BASE_TRAITS)
     StructTraits<mojo_base::mojom::MemoryAllocatorDumpCrossProcessUidDataView,
                  base::trace_event::MemoryAllocatorDumpGuid> {
   static uint64_t value(const base::trace_event::MemoryAllocatorDumpGuid& id) {
diff --git a/mojo/public/cpp/base/memory_pressure_level.typemap b/mojo/public/cpp/base/memory_pressure_level.typemap
deleted file mode 100644
index d305c7b..0000000
--- a/mojo/public/cpp/base/memory_pressure_level.typemap
+++ /dev/null
@@ -1,16 +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.
-
-mojom = "//mojo/public/mojom/base/memory_pressure_level.mojom"
-public_headers = [ "//base/memory/memory_pressure_listener.h" ]
-traits_headers =
-    [ "//mojo/public/cpp/base/memory_pressure_level_mojom_traits.h" ]
-sources = [
-  "//mojo/public/cpp/base/memory_pressure_level_mojom_traits.cc",
-  "//mojo/public/cpp/base/memory_pressure_level_mojom_traits.h",
-]
-public_deps = [
-  "//base",
-]
-type_mappings = [ "mojo_base.mojom.MemoryPressureLevel=::base::MemoryPressureListener::MemoryPressureLevel" ]
diff --git a/mojo/public/cpp/base/memory_pressure_level_mojom_traits.h b/mojo/public/cpp/base/memory_pressure_level_mojom_traits.h
index d7cbe8d..c8bba566 100644
--- a/mojo/public/cpp/base/memory_pressure_level_mojom_traits.h
+++ b/mojo/public/cpp/base/memory_pressure_level_mojom_traits.h
@@ -8,12 +8,12 @@
 #include "base/component_export.h"
 #include "base/memory/memory_pressure_listener.h"
 #include "mojo/public/cpp/bindings/struct_traits.h"
-#include "mojo/public/mojom/base/memory_pressure_level.mojom.h"
+#include "mojo/public/mojom/base/memory_pressure_level.mojom-shared.h"
 
 namespace mojo {
 
 template <>
-struct COMPONENT_EXPORT(MOJO_BASE_MOJOM)
+struct COMPONENT_EXPORT(MOJO_BASE_TRAITS)
     EnumTraits<mojo_base::mojom::MemoryPressureLevel,
                base::MemoryPressureListener::MemoryPressureLevel> {
   static mojo_base::mojom::MemoryPressureLevel ToMojom(
diff --git a/mojo/public/cpp/base/message_pump_type.typemap b/mojo/public/cpp/base/message_pump_type.typemap
deleted file mode 100644
index d6b3053..0000000
--- a/mojo/public/cpp/base/message_pump_type.typemap
+++ /dev/null
@@ -1,15 +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.
-
-mojom = "//mojo/public/mojom/base/message_pump_type.mojom"
-public_headers = [ "//base/message_loop/message_pump_type.h" ]
-traits_headers = [ "//mojo/public/cpp/base/message_pump_type_mojom_traits.h" ]
-sources = [
-  "//mojo/public/cpp/base/message_pump_type_mojom_traits.cc",
-  "//mojo/public/cpp/base/message_pump_type_mojom_traits.h",
-]
-public_deps = [
-  "//base",
-]
-type_mappings = [ "mojo_base.mojom.MessagePumpType=::base::MessagePumpType" ]
diff --git a/mojo/public/cpp/base/message_pump_type_mojom_traits.h b/mojo/public/cpp/base/message_pump_type_mojom_traits.h
index ff906a4..8b36e21 100644
--- a/mojo/public/cpp/base/message_pump_type_mojom_traits.h
+++ b/mojo/public/cpp/base/message_pump_type_mojom_traits.h
@@ -8,12 +8,12 @@
 #include "base/component_export.h"
 #include "base/message_loop/message_pump_type.h"
 #include "mojo/public/cpp/bindings/struct_traits.h"
-#include "mojo/public/mojom/base/message_pump_type.mojom.h"
+#include "mojo/public/mojom/base/message_pump_type.mojom-shared.h"
 
 namespace mojo {
 
 template <>
-struct COMPONENT_EXPORT(MOJO_BASE_MOJOM)
+struct COMPONENT_EXPORT(MOJO_BASE_TRAITS)
     EnumTraits<mojo_base::mojom::MessagePumpType, base::MessagePumpType> {
   static mojo_base::mojom::MessagePumpType ToMojom(base::MessagePumpType input);
   static bool FromMojom(mojo_base::mojom::MessagePumpType input,
diff --git a/mojo/public/cpp/base/process_id.typemap b/mojo/public/cpp/base/process_id.typemap
deleted file mode 100644
index 14b08065..0000000
--- a/mojo/public/cpp/base/process_id.typemap
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//mojo/public/mojom/base/process_id.mojom"
-public_headers = [ "//base/process/process_handle.h" ]
-traits_headers = [ "//mojo/public/cpp/base/process_id_mojom_traits.h" ]
-sources = [
-  "//mojo/public/cpp/base/process_id_mojom_traits.cc",
-  "//mojo/public/cpp/base/process_id_mojom_traits.h",
-]
-
-type_mappings =
-    [ "mojo_base.mojom.ProcessId=::base::ProcessId[copyable_pass_by_value]" ]
diff --git a/mojo/public/cpp/base/process_id_mojom_traits.h b/mojo/public/cpp/base/process_id_mojom_traits.h
index ba8a80d..054aea5 100644
--- a/mojo/public/cpp/base/process_id_mojom_traits.h
+++ b/mojo/public/cpp/base/process_id_mojom_traits.h
@@ -12,7 +12,7 @@
 namespace mojo {
 
 template <>
-struct COMPONENT_EXPORT(MOJO_BASE_MOJOM)
+struct COMPONENT_EXPORT(MOJO_BASE_TRAITS)
     StructTraits<mojo_base::mojom::ProcessIdDataView, base::ProcessId> {
   static uint32_t pid(const base::ProcessId& process_id) {
     return static_cast<uint32_t>(process_id);
@@ -24,4 +24,4 @@
 
 }  // namespace mojo
 
-#endif  // MOJO_PUBLIC_CPP_BASE_PROCESS_ID_MOJOM_TRAITS_H_
\ No newline at end of file
+#endif  // MOJO_PUBLIC_CPP_BASE_PROCESS_ID_MOJOM_TRAITS_H_
diff --git a/mojo/public/cpp/base/read_only_buffer.typemap b/mojo/public/cpp/base/read_only_buffer.typemap
deleted file mode 100644
index bb03853e..0000000
--- a/mojo/public/cpp/base/read_only_buffer.typemap
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//mojo/public/mojom/base/read_only_buffer.mojom"
-public_headers = [ "//base/containers/span.h" ]
-traits_headers = [ "//mojo/public/cpp/base/read_only_buffer_mojom_traits.h" ]
-public_deps = [
-  "//base",
-  "//mojo/public/cpp/base:shared_typemap_traits",
-]
-
-type_mappings = [ "mojo_base.mojom.ReadOnlyBuffer=::base::span<const ::uint8_t>[copyable_pass_by_value,force_serialize]" ]
diff --git a/mojo/public/cpp/base/ref_counted_memory.typemap b/mojo/public/cpp/base/ref_counted_memory.typemap
deleted file mode 100644
index b276748..0000000
--- a/mojo/public/cpp/base/ref_counted_memory.typemap
+++ /dev/null
@@ -1,17 +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.
-
-mojom = "//mojo/public/mojom/base/ref_counted_memory.mojom"
-public_headers = [ "//base/memory/ref_counted_memory.h" ]
-traits_headers = [ "//mojo/public/cpp/base/ref_counted_memory_mojom_traits.h" ]
-sources = [
-  "//mojo/public/cpp/base/ref_counted_memory_mojom_traits.cc",
-  "//mojo/public/cpp/base/ref_counted_memory_mojom_traits.h",
-]
-public_deps = [
-  "//base",
-  "//mojo/public/cpp/base",
-  "//mojo/public/cpp/base:shared_typemap_traits",
-]
-type_mappings = [ "mojo_base.mojom.RefCountedMemory=::scoped_refptr<::base::RefCountedMemory>[copyable_pass_by_value,nullable_is_same_type]" ]
diff --git a/mojo/public/cpp/base/ref_counted_memory_mojom_traits.h b/mojo/public/cpp/base/ref_counted_memory_mojom_traits.h
index ee8131f..9c9e5a90 100644
--- a/mojo/public/cpp/base/ref_counted_memory_mojom_traits.h
+++ b/mojo/public/cpp/base/ref_counted_memory_mojom_traits.h
@@ -16,7 +16,7 @@
 namespace mojo {
 
 template <>
-struct COMPONENT_EXPORT(MOJO_BASE_MOJOM)
+struct COMPONENT_EXPORT(MOJO_BASE_TRAITS)
     StructTraits<mojo_base::mojom::RefCountedMemoryDataView,
                  scoped_refptr<base::RefCountedMemory>> {
   static mojo_base::BigBuffer data(
diff --git a/mojo/public/cpp/base/shared_memory.typemap b/mojo/public/cpp/base/shared_memory.typemap
deleted file mode 100644
index ab36cf6..0000000
--- a/mojo/public/cpp/base/shared_memory.typemap
+++ /dev/null
@@ -1,24 +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.
-
-mojom = "//mojo/public/mojom/base/shared_memory.mojom"
-public_headers = [
-  "//base/memory/platform_shared_memory_region.h",
-  "//base/memory/read_only_shared_memory_region.h",
-  "//base/memory/unsafe_shared_memory_region.h",
-  "//base/memory/writable_shared_memory_region.h",
-]
-traits_headers = [ "//mojo/public/cpp/base/shared_memory_mojom_traits.h" ]
-public_deps = [
-  "//base",
-  "//mojo/public/cpp/base:shared_typemap_traits",
-]
-type_mappings = [
-  "mojo_base.mojom.PlatformSharedMemoryHandle=::base::subtle::PlatformSharedMemoryRegion::ScopedPlatformHandle[move_only]",
-  "mojo_base.mojom.PlatformSharedMemoryRegion=::base::subtle::PlatformSharedMemoryRegion[move_only]",
-  "mojo_base.mojom.PlatformSharedMemoryRegion.Mode=::base::subtle::PlatformSharedMemoryRegion::Mode",
-  "mojo_base.mojom.ReadOnlySharedMemoryRegion=::base::ReadOnlySharedMemoryRegion[move_only,nullable_is_same_type]",
-  "mojo_base.mojom.UnsafeSharedMemoryRegion=::base::UnsafeSharedMemoryRegion[move_only,nullable_is_same_type]",
-  "mojo_base.mojom.WritableSharedMemoryRegion=::base::WritableSharedMemoryRegion[move_only,nullable_is_same_type]",
-]
diff --git a/mojo/public/cpp/base/string16.typemap b/mojo/public/cpp/base/string16.typemap
deleted file mode 100644
index eedb5aa..0000000
--- a/mojo/public/cpp/base/string16.typemap
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//mojo/public/mojom/base/string16.mojom"
-public_headers = [ "//base/strings/string16.h" ]
-traits_headers = [ "//mojo/public/cpp/base/string16_mojom_traits.h" ]
-sources = [
-  "//mojo/public/cpp/base/string16_mojom_traits.cc",
-  "//mojo/public/cpp/base/string16_mojom_traits.h",
-]
-public_deps = [
-  "//mojo/public/cpp/base:shared_typemap_traits",
-]
-
-type_mappings = [
-  "mojo_base.mojom.BigString16=::base::string16",
-  "mojo_base.mojom.String16=::base::string16",
-]
diff --git a/mojo/public/cpp/base/string16_mojom_traits.h b/mojo/public/cpp/base/string16_mojom_traits.h
index 93ef7144..d9f53131bf 100644
--- a/mojo/public/cpp/base/string16_mojom_traits.h
+++ b/mojo/public/cpp/base/string16_mojom_traits.h
@@ -17,7 +17,7 @@
 namespace mojo {
 
 template <>
-struct COMPONENT_EXPORT(MOJO_BASE_MOJOM)
+struct COMPONENT_EXPORT(MOJO_BASE_TRAITS)
     StructTraits<mojo_base::mojom::String16DataView, base::StringPiece16> {
   static base::span<const uint16_t> data(base::StringPiece16 str) {
     return base::make_span(reinterpret_cast<const uint16_t*>(str.data()),
@@ -26,7 +26,7 @@
 };
 
 template <>
-struct COMPONENT_EXPORT(MOJO_BASE_MOJOM)
+struct COMPONENT_EXPORT(MOJO_BASE_TRAITS)
     StructTraits<mojo_base::mojom::String16DataView, base::string16> {
   static base::span<const uint16_t> data(const base::string16& str) {
     return StructTraits<mojo_base::mojom::String16DataView,
@@ -38,7 +38,7 @@
 };
 
 template <>
-struct COMPONENT_EXPORT(MOJO_BASE_MOJOM)
+struct COMPONENT_EXPORT(MOJO_BASE_TRAITS)
     StructTraits<mojo_base::mojom::BigString16DataView, base::string16> {
   static mojo_base::BigBuffer data(const base::string16& str);
 
diff --git a/mojo/public/cpp/base/text_direction.typemap b/mojo/public/cpp/base/text_direction.typemap
deleted file mode 100644
index dd35716..0000000
--- a/mojo/public/cpp/base/text_direction.typemap
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//mojo/public/mojom/base/text_direction.mojom"
-public_headers = [ "//base/i18n/rtl.h" ]
-traits_headers = [ "//mojo/public/cpp/base/text_direction_mojom_traits.h" ]
-sources = [
-  "//mojo/public/cpp/base/text_direction_mojom_traits.cc",
-  "//mojo/public/cpp/base/text_direction_mojom_traits.h",
-]
-public_deps = [
-  "//base:i18n",
-]
-type_mappings = [ "mojo_base.mojom.TextDirection=::base::i18n::TextDirection" ]
diff --git a/mojo/public/cpp/base/text_direction_mojom_traits.h b/mojo/public/cpp/base/text_direction_mojom_traits.h
index f59d45c..d608bf4 100644
--- a/mojo/public/cpp/base/text_direction_mojom_traits.h
+++ b/mojo/public/cpp/base/text_direction_mojom_traits.h
@@ -12,7 +12,7 @@
 namespace mojo {
 
 template <>
-struct COMPONENT_EXPORT(MOJO_BASE_MOJOM)
+struct COMPONENT_EXPORT(MOJO_BASE_TRAITS)
     EnumTraits<mojo_base::mojom::TextDirection, base::i18n::TextDirection> {
   static mojo_base::mojom::TextDirection ToMojom(
       base::i18n::TextDirection text_direction);
diff --git a/mojo/public/cpp/base/thread_priority.typemap b/mojo/public/cpp/base/thread_priority.typemap
deleted file mode 100644
index 5a13a69a..0000000
--- a/mojo/public/cpp/base/thread_priority.typemap
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//mojo/public/mojom/base/thread_priority.mojom"
-public_headers = [ "//base/threading/platform_thread.h" ]
-traits_headers = [ "//mojo/public/cpp/base/thread_priority_mojom_traits.h" ]
-sources = [
-  "//mojo/public/cpp/base/thread_priority_mojom_traits.cc",
-  "//mojo/public/cpp/base/thread_priority_mojom_traits.h",
-]
-
-type_mappings = [ "mojo_base.mojom.ThreadPriority=::base::ThreadPriority" ]
diff --git a/mojo/public/cpp/base/thread_priority_mojom_traits.h b/mojo/public/cpp/base/thread_priority_mojom_traits.h
index 7f58e03..d75d05a 100644
--- a/mojo/public/cpp/base/thread_priority_mojom_traits.h
+++ b/mojo/public/cpp/base/thread_priority_mojom_traits.h
@@ -11,7 +11,7 @@
 namespace mojo {
 
 template <>
-struct COMPONENT_EXPORT(MOJO_BASE_MOJOM)
+struct COMPONENT_EXPORT(MOJO_BASE_TRAITS)
     EnumTraits<mojo_base::mojom::ThreadPriority, base::ThreadPriority> {
   static mojo_base::mojom::ThreadPriority ToMojom(
       base::ThreadPriority thread_priority);
@@ -21,4 +21,4 @@
 
 }  // namespace mojo
 
-#endif  // MOJO_PUBLIC_CPP_BASE_THREAD_PRIORITY_MOJOM_TRAITS_H_
\ No newline at end of file
+#endif  // MOJO_PUBLIC_CPP_BASE_THREAD_PRIORITY_MOJOM_TRAITS_H_
diff --git a/mojo/public/cpp/base/token.typemap b/mojo/public/cpp/base/token.typemap
deleted file mode 100644
index 6dea57e..0000000
--- a/mojo/public/cpp/base/token.typemap
+++ /dev/null
@@ -1,12 +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.
-
-mojom = "//mojo/public/mojom/base/token.mojom"
-public_headers = [ "//base/token.h" ]
-traits_headers = [ "//mojo/public/cpp/base/token_mojom_traits.h" ]
-public_deps = [
-  "//base",
-  "//mojo/public/cpp/base:shared_typemap_traits",
-]
-type_mappings = [ "mojo_base.mojom.Token=::base::Token" ]
diff --git a/mojo/public/cpp/base/typemaps.gni b/mojo/public/cpp/base/typemaps.gni
deleted file mode 100644
index 4191d54..0000000
--- a/mojo/public/cpp/base/typemaps.gni
+++ /dev/null
@@ -1,23 +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.
-
-typemaps = [
-  "//mojo/public/cpp/base/application_state.typemap",
-  "//mojo/public/cpp/base/file_error.typemap",
-  "//mojo/public/cpp/base/file_info.typemap",
-  "//mojo/public/cpp/base/file_path.typemap",
-  "//mojo/public/cpp/base/file.typemap",
-  "//mojo/public/cpp/base/read_only_buffer.typemap",
-  "//mojo/public/cpp/base/memory_allocator_dump_cross_process_uid.typemap",
-  "//mojo/public/cpp/base/memory_pressure_level.typemap",
-  "//mojo/public/cpp/base/message_pump_type.typemap",
-  "//mojo/public/cpp/base/process_id.typemap",
-  "//mojo/public/cpp/base/ref_counted_memory.typemap",
-  "//mojo/public/cpp/base/shared_memory.typemap",
-  "//mojo/public/cpp/base/string16.typemap",
-  "//mojo/public/cpp/base/logfont_win.typemap",
-  "//mojo/public/cpp/base/text_direction.typemap",
-  "//mojo/public/cpp/base/thread_priority.typemap",
-  "//mojo/public/cpp/base/token.typemap",
-]
diff --git a/mojo/public/mojom/base/BUILD.gn b/mojo/public/mojom/base/BUILD.gn
index 4aa90a9c..3ccf6b68 100644
--- a/mojo/public/mojom/base/BUILD.gn
+++ b/mojo/public/mojom/base/BUILD.gn
@@ -46,13 +46,37 @@
 
   common_typemaps = [
     ":big_buffer_typemap",
+    ":file_error_typemap",
+    ":file_info_typemap",
+    ":file_path_typemap",
+    ":file_typemap",
     ":generic_pending_receiver_typemap",
+    ":read_only_buffer_typemap",
+    ":shared_memory_typemap",
     ":time_typemap",
     ":unguessable_token_typemap",
     ":value_typemap",
   ]
 
-  cpp_typemaps = common_typemaps + [ ":big_string_typemap" ]
+  cpp_typemaps = common_typemaps + [
+                   ":big_string_typemap",
+                   ":memory_allocator_dump_cross_process_ui_typemap",
+                   ":memory_pressure_level_typemap",
+                   ":message_pump_type_typemap",
+                   ":process_id_typemap",
+                   ":ref_counted_memory_typemap",
+                   ":string16_typemap",
+                   ":text_direction_typemap",
+                   ":thread_priority_typemap",
+                   ":token_typemap",
+                 ]
+
+  if (is_android) {
+    cpp_typemaps += [ ":application_state_typemap" ]
+  }
+  if (is_win) {
+    cpp_typemaps += [ ":logfont_typemap" ]
+  }
 
   blink_cpp_typemaps =
       common_typemaps +
@@ -91,6 +115,80 @@
   ]
 }
 
+mojom_cpp_typemap("file_error_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.FileError"
+      cpp = "::base::File::Error"
+    },
+  ]
+  public_headers = [
+    "//base/files/file.h",
+    "//mojo/public/cpp/base/file_error_mojom_traits.h",
+  ]
+  traits_sources = [ "//mojo/public/cpp/base/file_error_mojom_traits.h" ]
+  traits_public_deps = [
+    ":base_shared",
+    "//base",
+  ]
+}
+
+mojom_cpp_typemap("file_info_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.FileInfo"
+      cpp = "::base::File::Info"
+    },
+  ]
+  public_headers = [
+    "//base/files/file.h",
+    "//mojo/public/cpp/base/file_info_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base",
+    "//mojo/public/cpp/base:shared_typemap_traits",
+  ]
+}
+
+mojom_cpp_typemap("file_path_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.FilePath"
+      cpp = "::base::FilePath"
+    },
+  ]
+  public_headers = [
+    "//base/files/file_path.h",
+    "//mojo/public/cpp/base/file_path_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base",
+    "//mojo/public/cpp/base:shared_typemap_traits",
+  ]
+}
+
+mojom_cpp_typemap("file_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.File"
+      cpp = "::base::File"
+      move_only = true
+      nullable_is_same_type = true
+    },
+  ]
+  public_headers = [
+    "//base/files/file.h",
+    "//mojo/public/cpp/base/file_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base",
+    "//mojo/public/cpp/base:shared_typemap_traits",
+  ]
+}
+
 mojom_cpp_typemap("generic_pending_receiver_typemap") {
   types = [
     {
@@ -110,6 +208,213 @@
   ]
 }
 
+mojom_cpp_typemap("memory_allocator_dump_cross_process_ui_typemap") {
+  types = [
+    {
+      mojom = "mojom_base.mojom.MemoryAllocatorDumpCrossProcessUid"
+      cpp = "::base::trace_event::MemoryAllocatorDumpGuid"
+    },
+  ]
+  public_headers = [
+    "//base/trace_event/memory_allocator_dump_guid.h",
+    "//mojo/public/cpp/base/memory_allocator_dump_cross_process_uid_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base:typemap_traits",
+  ]
+}
+
+mojom_cpp_typemap("memory_pressure_level_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.MemoryPressureLevel"
+      cpp = "::base::MemoryPressureListener::MemoryPressureLevel"
+    },
+  ]
+  public_headers = [
+    "//base/memory/memory_pressure_listener.h",
+    "//mojo/public/cpp/base/memory_pressure_level_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base:typemap_traits",
+  ]
+}
+
+mojom_cpp_typemap("message_pump_type_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.MessagePumpType"
+      cpp = "::base::MessagePumpType"
+    },
+  ]
+  public_headers = [
+    "//base/message_loop/message_pump_type.h",
+    "//mojo/public/cpp/base/message_pump_type_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base:typemap_traits",
+  ]
+}
+
+mojom_cpp_typemap("ref_counted_memory_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.RefCountedMemory"
+      cpp = "::scoped_refptr<::base::RefCountedMemory>"
+      copyable_pass_by_value = true
+      nullable_is_same_type = true
+    },
+  ]
+  public_headers = [
+    "//base/memory/ref_counted_memory.h",
+    "//mojo/public/cpp/base/ref_counted_memory_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base:typemap_traits",
+  ]
+}
+
+mojom_cpp_typemap("process_id_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.ProcessId"
+      cpp = "::base::ProcessId"
+      copyable_pass_by_value = true
+    },
+  ]
+  public_headers = [
+    "//base/process/process_handle.h",
+    "//mojo/public/cpp/base/process_id_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base:typemap_traits",
+  ]
+}
+
+mojom_cpp_typemap("read_only_buffer_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.ReadOnlyBuffer"
+      cpp = "::base::span<const ::uint8_t>"
+      copyable_pass_by_value = true
+      force_serialize = true
+    },
+  ]
+  public_headers = [
+    "//base/containers/span.h",
+    "//mojo/public/cpp/base/read_only_buffer_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base:shared_typemap_traits",
+  ]
+}
+
+mojom_cpp_typemap("shared_memory_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.PlatformSharedMemoryHandle"
+      cpp = "::base::subtle::PlatformSharedMemoryRegion::ScopedPlatformHandle"
+      move_only = true
+    },
+    {
+      mojom = "mojo_base.mojom.PlatformSharedMemoryRegion"
+      cpp = "::base::subtle::PlatformSharedMemoryRegion"
+      move_only = true
+    },
+    {
+      mojom = "mojo_base.mojom.ReadOnlySharedMemoryRegion"
+      cpp = "::base::ReadOnlySharedMemoryRegion"
+      move_only = true
+      nullable_is_same_type = true
+    },
+    {
+      mojom = "mojo_base.mojom.UnsafeSharedMemoryRegion"
+      cpp = "::base::UnsafeSharedMemoryRegion"
+      move_only = true
+      nullable_is_same_type = true
+    },
+    {
+      mojom = "mojo_base.mojom.WritableSharedMemoryRegion"
+      cpp = "::base::WritableSharedMemoryRegion"
+      move_only = true
+      nullable_is_same_type = true
+    },
+  ]
+  public_headers = [
+    "//base/containers/span.h",
+    "//base/memory/platform_shared_memory_region.h",
+    "//base/memory/read_only_shared_memory_region.h",
+    "//base/memory/unsafe_shared_memory_region.h",
+    "//base/memory/writable_shared_memory_region.h",
+    "//mojo/public/cpp/base/shared_memory_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base:shared_typemap_traits",
+  ]
+}
+
+mojom_cpp_typemap("string16_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.String16"
+      cpp = "::base::string16"
+    },
+    {
+      mojom = "mojo_base.mojom.BigString16"
+      cpp = "::base::string16"
+    },
+  ]
+  public_headers = [
+    "//base/strings/string16.h",
+    "//mojo/public/cpp/base/string16_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base:typemap_traits",
+  ]
+}
+
+mojom_cpp_typemap("text_direction_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.TextDirection"
+      cpp = "::base::i18n::TextDirection"
+    },
+  ]
+  public_headers = [
+    "//base/i18n/rtl.h",
+    "//mojo/public/cpp/base/text_direction_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base:i18n",
+    "//mojo/public/cpp/base:typemap_traits",
+  ]
+}
+
+mojom_cpp_typemap("thread_priority_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.ThreadPriority"
+      cpp = "::base::ThreadPriority"
+    },
+  ]
+  public_headers = [
+    "//base/threading/platform_thread.h",
+    "//mojo/public/cpp/base/thread_priority_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base:typemap_traits",
+  ]
+}
+
 mojom_cpp_typemap("time_typemap") {
   types = [
     {
@@ -139,6 +444,23 @@
   ]
 }
 
+mojom_cpp_typemap("token_typemap") {
+  types = [
+    {
+      mojom = "mojo_base.mojom.Token"
+      cpp = "::base::Token"
+    },
+  ]
+  public_headers = [
+    "//base/token.h",
+    "//mojo/public/cpp/base/token_mojom_traits.h",
+  ]
+  public_deps = [
+    "//base",
+    "//mojo/public/cpp/base:shared_typemap_traits",
+  ]
+}
+
 mojom_cpp_typemap("unguessable_token_typemap") {
   types = [
     {
@@ -178,3 +500,42 @@
     "//mojo/public/cpp/base:shared_typemap_traits",
   ]
 }
+
+if (is_android) {
+  mojom_cpp_typemap("application_state_typemap") {
+    types = [
+      {
+        mojom = "mojo_base.mojom.ApplicationState"
+        cpp = "::base::android::ApplicationState"
+      },
+    ]
+    public_headers = [
+      "//base/android/application_status_listener.h",
+      "//mojo/public/cpp/base/application_state_mojom_traits.h",
+    ]
+    public_deps = [
+      "//base",
+      "//mojo/public/cpp/base:typemap_traits",
+    ]
+  }
+}
+
+if (is_win) {
+  mojom_cpp_typemap("logfont_typemap") {
+    types = [
+      {
+        mojom = "mojo_base.mojom.LOGFONT"
+        cpp = "::LOGFONT"
+      },
+    ]
+    public_headers = [
+      "//base/win/windows_full.h",
+      "//base/win/windows_types.h",
+      "//mojo/public/cpp/base/logfont_win_mojom_traits.h",
+    ]
+    public_deps = [
+      "//base",
+      "//mojo/public/cpp/base:typemap_traits",
+    ]
+  }
+}
diff --git a/mojo/public/tools/bindings/chromium_bindings_configuration.gni b/mojo/public/tools/bindings/chromium_bindings_configuration.gni
index 968f9f1..f4f58d9a 100644
--- a/mojo/public/tools/bindings/chromium_bindings_configuration.gni
+++ b/mojo/public/tools/bindings/chromium_bindings_configuration.gni
@@ -29,12 +29,10 @@
   "//device/vr/public/mojom/typemaps.gni",
   "//fuchsia/mojom/test_typemaps.gni",
   "//gpu/ipc/common/typemaps.gni",
-  "//ipc/typemaps.gni",
   "//media/capture/mojom/typemaps.gni",
   "//media/fuchsia/mojom/typemaps.gni",
   "//media/learning/mojo/public/cpp/typemaps.gni",
   "//media/mojo/mojom/typemaps.gni",
-  "//mojo/public/cpp/base/typemaps.gni",
   "//mojo/public/cpp/bindings/tests/chromium_typemaps.gni",
   "//sandbox/mac/mojom/typemaps.gni",
   "//services/audio/public/cpp/typemaps.gni",
diff --git a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc
index 016833b6..55d28e4 100644
--- a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc
+++ b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc
@@ -338,8 +338,10 @@
 
 // Makes a copy of the relevant information about a NelPolicy, stored in a
 // form suitable for adding to the database.
+// TODO(chlily): Add NIK.
 struct SQLitePersistentReportingAndNelStore::Backend::NelPolicyInfo {
-  NelPolicyInfo(const NetworkErrorLoggingService::NelPolicy& nel_policy)
+  explicit NelPolicyInfo(
+      const NetworkErrorLoggingService::NelPolicy& nel_policy)
       : origin_scheme(nel_policy.origin.scheme()),
         origin_host(nel_policy.origin.host()),
         origin_port(nel_policy.origin.port()),
@@ -375,8 +377,9 @@
 
 // Makes a copy of the relevant information about a ReportingEndpoint, stored in
 // a form suitable for adding to the database.
+// TODO(chlily): Add NIK.
 struct SQLitePersistentReportingAndNelStore::Backend::ReportingEndpointInfo {
-  ReportingEndpointInfo(const ReportingEndpoint& endpoint)
+  explicit ReportingEndpointInfo(const ReportingEndpoint& endpoint)
       : origin_scheme(endpoint.group_key.origin.scheme()),
         origin_host(endpoint.group_key.origin.host()),
         origin_port(endpoint.group_key.origin.port()),
@@ -399,9 +402,10 @@
   int weight = ReportingEndpoint::EndpointInfo::kDefaultWeight;
 };
 
+// TODO(chlily): Add NIK.
 struct SQLitePersistentReportingAndNelStore::Backend::
     ReportingEndpointGroupInfo {
-  ReportingEndpointGroupInfo(const CachedReportingEndpointGroup& group)
+  explicit ReportingEndpointGroupInfo(const CachedReportingEndpointGroup& group)
       : origin_scheme(group.group_key.origin.scheme()),
         origin_host(group.group_key.origin.host()),
         origin_port(group.group_key.origin.port()),
@@ -1142,28 +1146,34 @@
 
   while (endpoints_smt.Step()) {
     // Reconstitute a ReportingEndpoint from the fields stored in the database.
-    url::Origin origin = url::Origin::CreateFromNormalizedTuple(
-        /* origin_scheme = */ endpoints_smt.ColumnString(0),
-        /* origin_host = */ endpoints_smt.ColumnString(1),
-        /* origin_port = */ endpoints_smt.ColumnInt(2));
-    std::string group_name = endpoints_smt.ColumnString(3);
+    ReportingEndpointGroupKey group_key(
+        /* network_isolation_key = */ NetworkIsolationKey::Todo(),
+        /* origin = */
+        url::Origin::CreateFromNormalizedTuple(
+            /* origin_scheme = */ endpoints_smt.ColumnString(0),
+            /* origin_host = */ endpoints_smt.ColumnString(1),
+            /* origin_port = */ endpoints_smt.ColumnInt(2)),
+        /* group_name = */ endpoints_smt.ColumnString(3));
     ReportingEndpoint::EndpointInfo endpoint_info;
     endpoint_info.url = GURL(endpoints_smt.ColumnString(4));
     endpoint_info.priority = endpoints_smt.ColumnInt(5);
     endpoint_info.weight = endpoints_smt.ColumnInt(6);
 
-    loaded_endpoints.emplace_back(std::move(origin), std::move(group_name),
+    loaded_endpoints.emplace_back(std::move(group_key),
                                   std::move(endpoint_info));
   }
 
   while (endpoint_groups_smt.Step()) {
     // Reconstitute a CachedReportingEndpointGroup from the fields stored in the
     // database.
-    url::Origin origin = url::Origin::CreateFromNormalizedTuple(
-        /* origin_scheme = */ endpoint_groups_smt.ColumnString(0),
-        /* origin_host = */ endpoint_groups_smt.ColumnString(1),
-        /* origin_port = */ endpoint_groups_smt.ColumnInt(2));
-    std::string group_name = endpoint_groups_smt.ColumnString(3);
+    ReportingEndpointGroupKey group_key(
+        /* network_isolation_key = */ NetworkIsolationKey::Todo(),
+        /* origin = */
+        url::Origin::CreateFromNormalizedTuple(
+            /* origin_scheme = */ endpoint_groups_smt.ColumnString(0),
+            /* origin_host = */ endpoint_groups_smt.ColumnString(1),
+            /* origin_port = */ endpoint_groups_smt.ColumnInt(2)),
+        /* group_name = */ endpoint_groups_smt.ColumnString(3));
     OriginSubdomains include_subdomains = endpoint_groups_smt.ColumnBool(4)
                                               ? OriginSubdomains::INCLUDE
                                               : OriginSubdomains::EXCLUDE;
@@ -1172,8 +1182,7 @@
     base::Time last_used = base::Time::FromDeltaSinceWindowsEpoch(
         base::TimeDelta::FromMicroseconds(endpoint_groups_smt.ColumnInt64(6)));
 
-    loaded_endpoint_groups.emplace_back(std::move(origin),
-                                        std::move(group_name),
+    loaded_endpoint_groups.emplace_back(std::move(group_key),
                                         include_subdomains, expires, last_used);
   }
 
diff --git a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc
index f3d811b0..1faaac66 100644
--- a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc
+++ b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc
@@ -198,7 +198,10 @@
     info.url = url;
     info.priority = priority;
     info.weight = weight;
-    ReportingEndpoint endpoint(origin, group_name, std::move(info));
+    ReportingEndpoint endpoint(
+        ReportingEndpointGroupKey(NetworkIsolationKey::Todo(), origin,
+                                  group_name),
+        std::move(info));
     return endpoint;
   }
 
@@ -208,8 +211,10 @@
       base::Time last_used,
       OriginSubdomains include_subdomains = OriginSubdomains::DEFAULT,
       base::Time expires = kExpires) {
-    return CachedReportingEndpointGroup(origin, group_name, include_subdomains,
-                                        expires, last_used);
+    return CachedReportingEndpointGroup(
+        ReportingEndpointGroupKey(NetworkIsolationKey::Todo(), origin,
+                                  group_name),
+        include_subdomains, expires, last_used);
   }
 
  protected:
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
index 163c66b..9d6ad72 100644
--- a/net/http/http_network_transaction_unittest.cc
+++ b/net/http/http_network_transaction_unittest.cc
@@ -19515,7 +19515,9 @@
   ASSERT_EQ(1u, reporting_context()->cache()->GetEndpointCount());
   const ReportingEndpoint endpoint =
       reporting_context()->cache()->GetEndpointForTesting(
-          url::Origin::Create(GURL("https://www.example.org/")), "nel",
+          ReportingEndpointGroupKey(
+              NetworkIsolationKey(),
+              url::Origin::Create(GURL("https://www.example.org/")), "nel"),
           GURL("https://www.example.org/upload/"));
   EXPECT_TRUE(endpoint);
 }
diff --git a/net/quic/quic_flags_list.h b/net/quic/quic_flags_list.h
index 56de6068..39055de8 100644
--- a/net/quic/quic_flags_list.h
+++ b/net/quic/quic_flags_list.h
@@ -382,3 +382,16 @@
 QUIC_FLAG(bool,
           FLAGS_quic_reloadable_flag_quic_use_ack_frame_to_get_min_size,
           false)
+
+// If true, skip packet threshold loss detection if largest acked is a runt.
+QUIC_FLAG(
+    bool,
+    FLAGS_quic_reloadable_flag_quic_skip_packet_threshold_loss_detection_with_runt,
+    false)
+
+// If true, QUIC BBRv2 to take ack height into account when calculating
+// queuing_threshold in PROBE_UP.
+QUIC_FLAG(
+    bool,
+    FLAGS_quic_reloadable_flag_quic_bbr2_add_ack_height_to_queueing_threshold,
+    false)
diff --git a/net/reporting/mock_persistent_reporting_store.cc b/net/reporting/mock_persistent_reporting_store.cc
index 85cb40d0..f6544ae 100644
--- a/net/reporting/mock_persistent_reporting_store.cc
+++ b/net/reporting/mock_persistent_reporting_store.cc
@@ -19,35 +19,27 @@
 MockPersistentReportingStore::Command::Command(
     Type type,
     const ReportingEndpoint& endpoint)
-    : type(type), group_key(endpoint.group_key), url(endpoint.info.url) {
+    : Command(type, endpoint.group_key, endpoint.info.url) {}
+
+MockPersistentReportingStore::Command::Command(
+    Type type,
+    const ReportingEndpointGroupKey& group_key,
+    const GURL& endpoint_url)
+    : type(type), group_key(group_key), url(endpoint_url) {
   DCHECK(type == Type::ADD_REPORTING_ENDPOINT ||
          type == Type::UPDATE_REPORTING_ENDPOINT_DETAILS ||
          type == Type::DELETE_REPORTING_ENDPOINT);
 }
 
-MockPersistentReportingStore::Command::Command(Type type,
-                                               const GURL& origin,
-                                               const std::string& group,
-                                               const GURL& endpoint)
-    : MockPersistentReportingStore::Command(type,
-                                            url::Origin::Create(origin),
-                                            group,
-                                            endpoint) {}
-
-MockPersistentReportingStore::Command::Command(Type type,
-                                               const url::Origin& origin,
-                                               const std::string& group,
-                                               const GURL& endpoint)
-    : MockPersistentReportingStore::Command(
-          type,
-          ReportingEndpoint(origin,
-                            group,
-                            ReportingEndpoint::EndpointInfo{endpoint})) {}
-
 MockPersistentReportingStore::Command::Command(
     Type type,
     const CachedReportingEndpointGroup& group)
-    : type(type), group_key(group.group_key) {
+    : Command(type, group.group_key) {}
+
+MockPersistentReportingStore::Command::Command(
+    Type type,
+    const ReportingEndpointGroupKey& group_key)
+    : type(type), group_key(group_key) {
   DCHECK(type == Type::ADD_REPORTING_ENDPOINT_GROUP ||
          type == Type::UPDATE_REPORTING_ENDPOINT_GROUP_DETAILS ||
          type == Type::UPDATE_REPORTING_ENDPOINT_GROUP_ACCESS_TIME ||
@@ -61,24 +53,6 @@
 MockPersistentReportingStore::Command::Command(const Command& other)
     : type(other.type), group_key(other.group_key), url(other.url) {}
 
-MockPersistentReportingStore::Command::Command(Type type,
-                                               const GURL& origin,
-                                               const std::string& group)
-    : MockPersistentReportingStore::Command(type,
-                                            url::Origin::Create(origin),
-                                            group) {}
-
-MockPersistentReportingStore::Command::Command(Type type,
-                                               const url::Origin& origin,
-                                               const std::string& group)
-    : MockPersistentReportingStore::Command(
-          type,
-          CachedReportingEndpointGroup(origin,
-                                       group,
-                                       OriginSubdomains::DEFAULT /* unused */,
-                                       base::Time() /* unused */,
-                                       base::Time() /* unused */)) {}
-
 MockPersistentReportingStore::Command::Command(Command&& other) = default;
 
 MockPersistentReportingStore::Command::~Command() = default;
@@ -128,38 +102,52 @@
       return out << "FLUSH()";
     case MockPersistentReportingStore::Command::Type::ADD_REPORTING_ENDPOINT:
       return out << "ADD_REPORTING_ENDPOINT("
+                 << "NIK="
+                 << cmd.group_key.network_isolation_key.ToDebugString() << ", "
                  << "origin=" << cmd.group_key.origin << ", "
                  << "group=" << cmd.group_key.group_name << ", "
                  << "endpoint=" << cmd.url << ")";
     case MockPersistentReportingStore::Command::Type::
         UPDATE_REPORTING_ENDPOINT_DETAILS:
       return out << "UPDATE_REPORTING_ENDPOINT_DETAILS("
+                 << "NIK="
+                 << cmd.group_key.network_isolation_key.ToDebugString() << ", "
                  << "origin=" << cmd.group_key.origin << ", "
                  << "group=" << cmd.group_key.group_name << ", "
                  << "endpoint=" << cmd.url << ")";
     case MockPersistentReportingStore::Command::Type::DELETE_REPORTING_ENDPOINT:
       return out << "DELETE_REPORTING_ENDPOINT("
+                 << "NIK="
+                 << cmd.group_key.network_isolation_key.ToDebugString() << ", "
                  << "origin=" << cmd.group_key.origin << ", "
                  << "group=" << cmd.group_key.group_name << ", "
                  << "endpoint=" << cmd.url << ")";
     case MockPersistentReportingStore::Command::Type::
         ADD_REPORTING_ENDPOINT_GROUP:
       return out << "ADD_REPORTING_ENDPOINT_GROUP("
+                 << "NIK="
+                 << cmd.group_key.network_isolation_key.ToDebugString() << ", "
                  << "origin=" << cmd.group_key.origin << ", "
                  << "group=" << cmd.group_key.group_name << ")";
     case MockPersistentReportingStore::Command::Type::
         UPDATE_REPORTING_ENDPOINT_GROUP_ACCESS_TIME:
       return out << "UPDATE_REPORTING_ENDPOINT_GROUP_ACCESS_TIME("
+                 << "NIK="
+                 << cmd.group_key.network_isolation_key.ToDebugString() << ", "
                  << "origin=" << cmd.group_key.origin << ", "
                  << "group=" << cmd.group_key.group_name << ")";
     case MockPersistentReportingStore::Command::Type::
         UPDATE_REPORTING_ENDPOINT_GROUP_DETAILS:
       return out << "UPDATE_REPORTING_ENDPOINT_GROUP_DETAILS("
+                 << "NIK="
+                 << cmd.group_key.network_isolation_key.ToDebugString() << ", "
                  << "origin=" << cmd.group_key.origin << ", "
                  << "group=" << cmd.group_key.group_name << ")";
     case MockPersistentReportingStore::Command::Type::
         DELETE_REPORTING_ENDPOINT_GROUP:
       return out << "DELETE_REPORTING_ENDPOINT_GROUP("
+                 << "NIK="
+                 << cmd.group_key.network_isolation_key.ToDebugString() << ", "
                  << "origin=" << cmd.group_key.origin << ", "
                  << "group=" << cmd.group_key.group_name << ")";
   }
diff --git a/net/reporting/mock_persistent_reporting_store.h b/net/reporting/mock_persistent_reporting_store.h
index 92bbc90e..6d464ded 100644
--- a/net/reporting/mock_persistent_reporting_store.h
+++ b/net/reporting/mock_persistent_reporting_store.h
@@ -10,6 +10,7 @@
 
 #include "base/callback.h"
 #include "base/macros.h"
+#include "net/base/network_isolation_key.h"
 #include "net/reporting/reporting_cache.h"
 #include "net/reporting/reporting_endpoint.h"
 #include "url/origin.h"
@@ -45,23 +46,17 @@
     // DELETE_REPORTING_ENDPOINT
     Command(Type type, const ReportingEndpoint& endpoint);
     Command(Type type,
-            const GURL& origin,
-            const std::string& group,
-            const GURL& endpoint);
-    Command(Type type,
-            const url::Origin& origin,
-            const std::string& group,
-            const GURL& endpoint);
+            const ReportingEndpointGroupKey& group_key,
+            const GURL& endpoint_url);
     // Constructors for endpoint group commands. |type| must be one of
     // ADD_REPORTING_ENDPOINT_GROUP,
     // UPDATE_REPORTING_ENDPOINT_GROUP_ACCESS_TIME,
     // UPDATE_REPORTING_ENDPOINT_GROUP_DETAILS, or
     // DELETE_REPORTING_ENDPOINT_GROUP
     Command(Type type, const CachedReportingEndpointGroup& group);
-    Command(Type type, const GURL& origin, const std::string& group);
-    Command(Type type, const url::Origin& origin, const std::string& group);
+    Command(Type type, const ReportingEndpointGroupKey& group_key);
     // |type| must be LOAD_REPORTING_CLIENTS or FLUSH.
-    Command(Type type);
+    explicit Command(Type type);
 
     Command(const Command& other);
     Command(Command&& other);
@@ -73,8 +68,7 @@
 
     // Identifies the group to which the command pertains. (Applies to endpoint
     // and endpoint group commands.)
-    ReportingEndpointGroupKey group_key =
-        ReportingEndpointGroupKey(url::Origin(), "");
+    ReportingEndpointGroupKey group_key = ReportingEndpointGroupKey();
 
     // Identifies the endpoint to which the command pertains. (Applies to
     // endpoint commands only.)
diff --git a/net/reporting/mock_persistent_reporting_store_unittest.cc b/net/reporting/mock_persistent_reporting_store_unittest.cc
index cf6922b..aeff851 100644
--- a/net/reporting/mock_persistent_reporting_store_unittest.cc
+++ b/net/reporting/mock_persistent_reporting_store_unittest.cc
@@ -9,6 +9,7 @@
 #include "base/location.h"
 #include "base/test/bind_test_util.h"
 #include "base/time/time.h"
+#include "net/base/network_isolation_key.h"
 #include "net/reporting/reporting_endpoint.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "url/gurl.h"
@@ -29,10 +30,12 @@
   const url::Origin kOrigin =
       url::Origin::Create(GURL("https://example.test/"));
   const char kGroupName[] = "groupname";
-  const ReportingEndpoint kEndpoint(kOrigin, kGroupName,
+  const ReportingEndpointGroupKey kGroupKey(NetworkIsolationKey(), kOrigin,
+                                            kGroupName);
+  const ReportingEndpoint kEndpoint(kGroupKey,
                                     {GURL("https://endpoint.test/reports")});
   const CachedReportingEndpointGroup kGroup(
-      kOrigin, kGroupName, OriginSubdomains::DEFAULT,
+      kGroupKey, OriginSubdomains::DEFAULT,
       base::Time::Now() + base::TimeDelta::FromDays(1), base::Time::Now());
   return {kEndpoint, kGroup};
 }
diff --git a/net/reporting/reporting_browsing_data_remover.cc b/net/reporting/reporting_browsing_data_remover.cc
index 004e527f..310242a 100644
--- a/net/reporting/reporting_browsing_data_remover.cc
+++ b/net/reporting/reporting_browsing_data_remover.cc
@@ -35,7 +35,7 @@
   if ((data_type_mask & DATA_TYPE_CLIENTS) != 0) {
     for (const url::Origin& origin : cache->GetAllOrigins()) {
       if (origin_filter.Run(origin.GetURL()))
-        cache->RemoveClient(origin);
+        cache->RemoveClientsForOrigin(origin);
     }
   }
   cache->Flush();
diff --git a/net/reporting/reporting_browsing_data_remover_unittest.cc b/net/reporting/reporting_browsing_data_remover_unittest.cc
index 13991be8..09ae187 100644
--- a/net/reporting/reporting_browsing_data_remover_unittest.cc
+++ b/net/reporting/reporting_browsing_data_remover_unittest.cc
@@ -9,6 +9,7 @@
 
 #include "base/bind.h"
 #include "base/test/simple_test_tick_clock.h"
+#include "net/base/network_isolation_key.h"
 #include "net/reporting/reporting_cache.h"
 #include "net/reporting/reporting_context.h"
 #include "net/reporting/reporting_report.h"
@@ -46,9 +47,11 @@
                        tick_clock()->NowTicks(), 0);
   }
 
-  void SetEndpoint(const url::Origin& origin, const GURL& endpoint) {
-    SetEndpointInCache(origin, kGroup_, endpoint,
-                       base::Time::Now() + base::TimeDelta::FromDays(7));
+  // TODO(chlily): Take NIK.
+  void SetEndpoint(const url::Origin& origin) {
+    SetEndpointInCache(
+        ReportingEndpointGroupKey(NetworkIsolationKey::Todo(), origin, kGroup_),
+        kEndpoint_, base::Time::Now() + base::TimeDelta::FromDays(7));
   }
 
   static bool HostIs(std::string host, const GURL& url) {
@@ -75,8 +78,8 @@
   AddReport(kUrl1_);
   AddReport(kUrl2_);
 
-  SetEndpoint(kOrigin1_, kEndpoint_);
-  SetEndpoint(kOrigin2_, kEndpoint_);
+  SetEndpoint(kOrigin1_);
+  SetEndpoint(kOrigin2_);
 
   RemoveBrowsingData(/* remove_reports= */ false, /* remove_clients= */ false,
                      /* host= */ "");
@@ -88,8 +91,8 @@
   AddReport(kUrl1_);
   AddReport(kUrl2_);
 
-  SetEndpoint(kOrigin1_, kEndpoint_);
-  SetEndpoint(kOrigin2_, kEndpoint_);
+  SetEndpoint(kOrigin1_);
+  SetEndpoint(kOrigin2_);
 
   RemoveBrowsingData(/* remove_reports= */ true, /* remove_clients= */ false,
                      /* host= */ "");
@@ -101,8 +104,8 @@
   AddReport(kUrl1_);
   AddReport(kUrl2_);
 
-  SetEndpoint(kOrigin1_, kEndpoint_);
-  SetEndpoint(kOrigin2_, kEndpoint_);
+  SetEndpoint(kOrigin1_);
+  SetEndpoint(kOrigin2_);
 
   RemoveBrowsingData(/* remove_reports= */ false, /* remove_clients= */ true,
                      /* host= */ "");
@@ -114,8 +117,8 @@
   AddReport(kUrl1_);
   AddReport(kUrl2_);
 
-  SetEndpoint(kOrigin1_, kEndpoint_);
-  SetEndpoint(kOrigin2_, kEndpoint_);
+  SetEndpoint(kOrigin1_);
+  SetEndpoint(kOrigin2_);
 
   RemoveBrowsingData(/* remove_reports= */ true, /* remove_clients= */ true,
                      /* host= */ "");
@@ -127,8 +130,8 @@
   AddReport(kUrl1_);
   AddReport(kUrl2_);
 
-  SetEndpoint(kOrigin1_, kEndpoint_);
-  SetEndpoint(kOrigin2_, kEndpoint_);
+  SetEndpoint(kOrigin1_);
+  SetEndpoint(kOrigin2_);
 
   RemoveBrowsingData(/* remove_reports= */ true, /* remove_clients= */ false,
                      /* host= */ kUrl1_.host());
@@ -144,14 +147,20 @@
   AddReport(kUrl1_);
   AddReport(kUrl2_);
 
-  SetEndpoint(kOrigin1_, kEndpoint_);
-  SetEndpoint(kOrigin2_, kEndpoint_);
+  SetEndpoint(kOrigin1_);
+  SetEndpoint(kOrigin2_);
 
   RemoveBrowsingData(/* remove_reports= */ false, /* remove_clients= */ true,
                      /* host= */ kUrl1_.host());
   EXPECT_EQ(2u, report_count());
-  EXPECT_FALSE(FindEndpointInCache(kOrigin1_, kGroup_, kEndpoint_));
-  EXPECT_TRUE(FindEndpointInCache(kOrigin2_, kGroup_, kEndpoint_));
+  EXPECT_FALSE(
+      FindEndpointInCache(ReportingEndpointGroupKey(NetworkIsolationKey::Todo(),
+                                                    kOrigin1_, kGroup_),
+                          kEndpoint_));
+  EXPECT_TRUE(
+      FindEndpointInCache(ReportingEndpointGroupKey(NetworkIsolationKey::Todo(),
+                                                    kOrigin2_, kGroup_),
+                          kEndpoint_));
 }
 
 }  // namespace
diff --git a/net/reporting/reporting_cache.h b/net/reporting/reporting_cache.h
index 3bafef2..fb09d71 100644
--- a/net/reporting/reporting_cache.h
+++ b/net/reporting/reporting_cache.h
@@ -6,6 +6,7 @@
 #define NET_REPORTING_REPORTING_CACHE_H_
 
 #include <memory>
+#include <set>
 #include <string>
 #include <vector>
 
@@ -22,7 +23,6 @@
 
 namespace net {
 
-class NetworkIsolationKey;
 class ReportingContext;
 
 // The cache holds undelivered reports and clients (per-origin endpoint
@@ -96,11 +96,11 @@
 
   // Records that we attempted (and possibly succeeded at) delivering
   // |reports_delivered| reports to the specified endpoint.
-  virtual void IncrementEndpointDeliveries(const url::Origin& origin,
-                                           const std::string& group_name,
-                                           const GURL& url,
-                                           int reports_delivered,
-                                           bool successful) = 0;
+  virtual void IncrementEndpointDeliveries(
+      const ReportingEndpointGroupKey& group_key,
+      const GURL& url,
+      int reports_delivered,
+      bool successful) = 0;
 
   // Removes a set of reports. Any reports that are pending will not be removed
   // immediately, but rather marked doomed and removed once they are no longer
@@ -128,25 +128,31 @@
   // Adds a new client to the cache for |origin|, or updates the existing one
   // to match the new header. All values are assumed to be valid as they have
   // passed through the ReportingHeaderParser.
+  // TODO(chlily): Take NetworkIsolationKey.
   virtual void OnParsedHeader(
       const url::Origin& origin,
       std::vector<ReportingEndpointGroup> parsed_header) = 0;
 
   // Gets all the origins of clients in the cache.
-  virtual std::vector<url::Origin> GetAllOrigins() const = 0;
+  virtual std::set<url::Origin> GetAllOrigins() const = 0;
 
-  // Remove client for the given |origin|, if it exists in the cache.
+  // Remove client for the given (NIK, origin) pair, if it exists in the cache.
+  // All endpoint groups and endpoints for that client are also removed.
+  virtual void RemoveClient(const NetworkIsolationKey& network_isolation_key,
+                            const url::Origin& origin) = 0;
+
+  // Remove all clients for the given |origin|, if any exists in the cache.
   // All endpoint groups and endpoints for |origin| are also removed.
-  virtual void RemoveClient(const url::Origin& origin) = 0;
+  virtual void RemoveClientsForOrigin(const url::Origin& origin) = 0;
 
   // Remove all clients, groups, and endpoints from the cache.
   virtual void RemoveAllClients() = 0;
 
-  // Remove the endpoint group named |name| for the given |origin|, and remove
-  // all endpoints for that group. May cause the client for |origin| to be
-  // deleted if it becomes empty.
-  virtual void RemoveEndpointGroup(const url::Origin& origin,
-                                   const std::string& group_name) = 0;
+  // Remove the endpoint group matching |group_key|, and remove
+  // all endpoints for that group. May cause the client it was associated with
+  // to be deleted if it becomes empty.
+  virtual void RemoveEndpointGroup(
+      const ReportingEndpointGroupKey& group_key) = 0;
 
   // Remove all endpoints for with |url|, regardless of origin or group. Used
   // when a delivery returns 410 Gone. May cause deletion of groups/clients if
@@ -183,9 +189,7 @@
   // name |group| with include_subdomains enabled, this method would return
   // endpoints from that group from the earliest-inserted origin.
   virtual std::vector<ReportingEndpoint> GetCandidateEndpointsForDelivery(
-      const NetworkIsolationKey& network_isolation_key,
-      const url::Origin& origin,
-      const std::string& group_name) = 0;
+      const ReportingEndpointGroupKey& group_key) = 0;
 
   // Gets the status of all clients in the cache, including expired ones, as a
   // base::Value.
@@ -197,31 +201,37 @@
   // Flush the contents of the cache to disk, if applicable.
   virtual void Flush() = 0;
 
-  // Finds an endpoint for the given |origin|, |group_name|, and |url|,
-  // otherwise returns an invalid ReportingEndpoint.
-  virtual ReportingEndpoint GetEndpointForTesting(const url::Origin& origin,
-                                                  const std::string& group_name,
-                                                  const GURL& url) const = 0;
+  // Finds an endpoint for the given |group_key| and |url|, otherwise returns an
+  // invalid ReportingEndpoint.
+  virtual ReportingEndpoint GetEndpointForTesting(
+      const ReportingEndpointGroupKey& group_key,
+      const GURL& url) const = 0;
 
   // Returns whether an endpoint group with exactly the given properties exists
   // in the cache. If |expires| is base::Time(), it will not be checked.
   virtual bool EndpointGroupExistsForTesting(
-      const url::Origin& origin,
-      const std::string& group_name,
+      const ReportingEndpointGroupKey& group_key,
       OriginSubdomains include_subdomains,
       base::Time expires) const = 0;
 
+  // Returns whether a client for the given (NIK, Origin) exists.
+  virtual bool ClientExistsForTesting(
+      const NetworkIsolationKey& network_isolation_key,
+      const url::Origin& origin) const = 0;
+
   // Returns number of endpoint groups.
   virtual size_t GetEndpointGroupCountForTesting() const = 0;
 
+  // Returns number of endpoint groups.
+  virtual size_t GetClientCountForTesting() const = 0;
+
   // Sets an endpoint with the given properties in a group with the given
   // properties, bypassing header parsing. Note that the endpoint is not
   // guaranteed to exist in the cache after calling this function, if endpoint
   // eviction is triggered. Unlike the AddOrUpdate*() methods used in header
   // parsing, this method inserts or updates a single endpoint while leaving the
   // exiting configuration for that origin intact.
-  virtual void SetEndpointForTesting(const url::Origin& origin,
-                                     const std::string& group_name,
+  virtual void SetEndpointForTesting(const ReportingEndpointGroupKey& group_key,
                                      const GURL& url,
                                      OriginSubdomains include_subdomains,
                                      base::Time expires,
diff --git a/net/reporting/reporting_cache_impl.cc b/net/reporting/reporting_cache_impl.cc
index a4ddbdc..82ca2525 100644
--- a/net/reporting/reporting_cache_impl.cc
+++ b/net/reporting/reporting_cache_impl.cc
@@ -5,7 +5,6 @@
 #include "net/reporting/reporting_cache_impl.h"
 
 #include <algorithm>
-#include <set>
 #include <unordered_map>
 #include <unordered_set>
 #include <utility>
@@ -150,13 +149,11 @@
 }
 
 void ReportingCacheImpl::IncrementEndpointDeliveries(
-    const url::Origin& origin,
-    const std::string& group_name,
+    const ReportingEndpointGroupKey& group_key,
     const GURL& url,
     int reports_delivered,
     bool successful) {
-  EndpointMap::iterator endpoint_it =
-      FindEndpointIt(ReportingEndpointGroupKey(origin, group_name), url);
+  EndpointMap::iterator endpoint_it = FindEndpointIt(group_key, url);
   // The endpoint may have been removed while the upload was in progress. In
   // that case, we no longer care about the stats for the removed endpoint.
   if (endpoint_it == endpoints_.end())
@@ -222,24 +219,35 @@
     std::vector<ReportingEndpointGroup> parsed_header) {
   SanityCheckClients();
 
-  OriginClient new_client(origin);
+  // TODO(chlily): Respect NetworkIsolationKey.
+  NetworkIsolationKey network_isolation_key = NetworkIsolationKey::Todo();
+  Client new_client(network_isolation_key, origin);
   base::Time now = clock().Now();
   new_client.last_used = now;
 
   std::map<ReportingEndpointGroupKey, std::set<GURL>> endpoints_per_group;
 
   for (const auto& parsed_endpoint_group : parsed_header) {
-    new_client.endpoint_group_names.insert(parsed_endpoint_group.name);
+    new_client.endpoint_group_names.insert(
+        parsed_endpoint_group.group_key.group_name);
 
     // Creates an endpoint group and sets its |last_used| to |now|.
-    CachedReportingEndpointGroup new_group(new_client.origin,
-                                           parsed_endpoint_group, now);
+    CachedReportingEndpointGroup new_group(parsed_endpoint_group, now);
+
+    // TODO(chlily): This DCHECK passes right now because the groups have their
+    // NIK set to an empty NIK by the header parser, and we also set the
+    // client's NIK to an empty NIK above. Eventually it should pass because the
+    // header parser should provide the NIK it used for the groups so that the
+    // client can be created using the same NIK.
+    DCHECK_EQ(new_group.group_key.network_isolation_key,
+              new_client.network_isolation_key);
+    DCHECK_EQ(new_group.group_key.origin, new_client.origin);
 
     std::set<GURL> new_endpoints;
     for (const auto& parsed_endpoint_info : parsed_endpoint_group.endpoints) {
       new_endpoints.insert(parsed_endpoint_info.url);
       endpoints_per_group[new_group.group_key].insert(parsed_endpoint_info.url);
-      ReportingEndpoint new_endpoint(origin, parsed_endpoint_group.name,
+      ReportingEndpoint new_endpoint(new_group.group_key,
                                      std::move(parsed_endpoint_info));
       AddOrUpdateEndpoint(std::move(new_endpoint));
     }
@@ -261,45 +269,62 @@
 
   // Remove endpoint groups that may have been configured for an existing client
   // for |origin|, but which are not specified in the current header.
-  RemoveEndpointGroupsForOriginOtherThan(origin,
+  RemoveEndpointGroupsForClientOtherThan(network_isolation_key, origin,
                                          new_client.endpoint_group_names);
 
-  AddOrUpdateClient(std::move(new_client));
-
-  EnforcePerOriginAndGlobalEndpointLimits(origin);
+  EnforcePerClientAndGlobalEndpointLimits(
+      AddOrUpdateClient(std::move(new_client)));
   SanityCheckClients();
 
   context_->NotifyCachedClientsUpdated();
 }
 
-std::vector<url::Origin> ReportingCacheImpl::GetAllOrigins() const {
+std::set<url::Origin> ReportingCacheImpl::GetAllOrigins() const {
   SanityCheckClients();
-  std::vector<url::Origin> origins_out;
-  for (const auto& domain_and_client : origin_clients_) {
-    origins_out.push_back(domain_and_client.second.origin);
+  std::set<url::Origin> origins_out;
+  for (const auto& domain_and_client : clients_) {
+    origins_out.insert(domain_and_client.second.origin);
   }
   return origins_out;
 }
 
-void ReportingCacheImpl::RemoveClient(const url::Origin& origin) {
+void ReportingCacheImpl::RemoveClient(
+    const NetworkIsolationKey& network_isolation_key,
+    const url::Origin& origin) {
   SanityCheckClients();
-  OriginClientMap::iterator client_it = FindClientIt(origin);
-  if (client_it == origin_clients_.end())
+  ClientMap::iterator client_it = FindClientIt(network_isolation_key, origin);
+  if (client_it == clients_.end())
     return;
   RemoveClientInternal(client_it);
   SanityCheckClients();
   context_->NotifyCachedClientsUpdated();
 }
 
+void ReportingCacheImpl::RemoveClientsForOrigin(const url::Origin& origin) {
+  SanityCheckClients();
+  std::string domain = origin.host();
+  const auto domain_range = clients_.equal_range(domain);
+  ClientMap::iterator it = domain_range.first;
+  while (it != domain_range.second) {
+    if (it->second.origin == origin) {
+      it = RemoveClientInternal(it);
+      continue;
+    }
+    ++it;
+  }
+  SanityCheckClients();
+  context_->NotifyCachedClientsUpdated();
+}
+
 void ReportingCacheImpl::RemoveAllClients() {
   SanityCheckClients();
 
-  auto remove_it = origin_clients_.begin();
-  while (remove_it != origin_clients_.end()) {
+  auto remove_it = clients_.begin();
+  while (remove_it != clients_.end()) {
     remove_it = RemoveClientInternal(remove_it);
   }
 
-  DCHECK(origin_clients_.empty());
+  DCHECK(clients_.empty());
   DCHECK(endpoint_groups_.empty());
   DCHECK(endpoints_.empty());
   DCHECK(endpoint_its_by_url_.empty());
@@ -308,15 +333,14 @@
   context_->NotifyCachedClientsUpdated();
 }
 
-void ReportingCacheImpl::RemoveEndpointGroup(const url::Origin& origin,
-                                             const std::string& group_name) {
+void ReportingCacheImpl::RemoveEndpointGroup(
+    const ReportingEndpointGroupKey& group_key) {
   SanityCheckClients();
-  EndpointGroupMap::iterator group_it =
-      FindEndpointGroupIt(ReportingEndpointGroupKey(origin, group_name));
+  EndpointGroupMap::iterator group_it = FindEndpointGroupIt(group_key);
   if (group_it == endpoint_groups_.end())
     return;
-  OriginClientMap::iterator client_it = FindClientIt(origin);
-  DCHECK(client_it != origin_clients_.end());
+  ClientMap::iterator client_it = FindClientIt(group_key);
+  DCHECK(client_it != clients_.end());
 
   RemoveEndpointGroupInternal(client_it, group_it);
   SanityCheckClients();
@@ -347,8 +371,8 @@
   for (EndpointMap::iterator endpoint_it : endpoint_its_to_remove) {
     DCHECK(endpoint_it->second.info.url == url);
     const ReportingEndpointGroupKey& group_key = endpoint_it->first;
-    OriginClientMap::iterator client_it = FindClientIt(group_key.origin);
-    DCHECK(client_it != origin_clients_.end());
+    ClientMap::iterator client_it = FindClientIt(group_key);
+    DCHECK(client_it != clients_.end());
     EndpointGroupMap::iterator group_it = FindEndpointGroupIt(group_key);
     DCHECK(group_it != endpoint_groups_.end());
     RemoveEndpointInternal(client_it, group_it, endpoint_it);
@@ -358,7 +382,7 @@
   context_->NotifyCachedClientsUpdated();
 }
 
-// Reconstruct an OriginClient from the loaded endpoint groups, and add the
+// Reconstruct an Client from the loaded endpoint groups, and add the
 // loaded endpoints and endpoint groups into the cache.
 void ReportingCacheImpl::AddClientsLoadedFromStore(
     std::vector<ReportingEndpoint> loaded_endpoints,
@@ -376,7 +400,7 @@
             });
 
   // If using a persistent store, cache should be empty before loading finishes.
-  DCHECK(origin_clients_.empty());
+  DCHECK(clients_.empty());
   DCHECK(endpoint_groups_.empty());
   DCHECK(endpoints_.empty());
   DCHECK(endpoint_its_by_url_.empty());
@@ -386,13 +410,14 @@
   auto endpoints_it = loaded_endpoints.begin();
   auto endpoint_groups_it = loaded_endpoint_groups.begin();
 
-  base::Optional<OriginClient> origin_client;
+  base::Optional<Client> client;
 
   while (endpoint_groups_it != loaded_endpoint_groups.end() &&
          endpoints_it != loaded_endpoints.end()) {
     const CachedReportingEndpointGroup& group = *endpoint_groups_it;
     const ReportingEndpointGroupKey& group_key = group.group_key;
 
+    // These things should probably never happen:
     if (group_key < endpoints_it->group_key) {
       // This endpoint group has no associated endpoints, so move on to the next
       // endpoint group.
@@ -420,31 +445,35 @@
       ++endpoints_it;
     }
 
-    if (!origin_client || origin_client->origin != group_key.origin) {
-      // Store the old origin_client and start a new one.
-      if (origin_client) {
-        OriginClientMap::iterator client_it =
-            origin_clients_.insert(std::make_pair(origin_client->origin.host(),
-                                                  std::move(*origin_client)));
-        EnforcePerOriginAndGlobalEndpointLimits(client_it->second.origin);
+    if (!client ||
+        client->network_isolation_key != group_key.network_isolation_key ||
+        client->origin != group_key.origin) {
+      // Store the old client and start a new one.
+      if (client) {
+        ClientMap::iterator client_it = clients_.insert(
+            std::make_pair(client->origin.host(), std::move(*client)));
+        EnforcePerClientAndGlobalEndpointLimits(client_it);
       }
-      origin_client.emplace(group_key.origin);
+      DCHECK(FindClientIt(group_key) == clients_.end());
+      client = base::make_optional(
+          Client(group_key.network_isolation_key, group_key.origin));
     }
-    DCHECK(origin_client.has_value());
-    origin_client->endpoint_group_names.insert(group_key.group_name);
-    origin_client->endpoint_count += cur_group_endpoints_count;
-    origin_client->last_used =
-        std::max(origin_client->last_used, group.last_used);
+    DCHECK(client.has_value());
+    client->endpoint_group_names.insert(group_key.group_name);
+    client->endpoint_count += cur_group_endpoints_count;
+    client->last_used = std::max(client->last_used, group.last_used);
 
     endpoint_groups_.insert(std::make_pair(group_key, std::move(group)));
 
     ++endpoint_groups_it;
   }
 
-  if (origin_client) {
-    OriginClientMap::iterator client_it = origin_clients_.insert(std::make_pair(
-        origin_client->origin.host(), std::move(*origin_client)));
-    EnforcePerOriginAndGlobalEndpointLimits(client_it->second.origin);
+  if (client) {
+    DCHECK(FindClientIt(client->network_isolation_key, client->origin) ==
+           clients_.end());
+    ClientMap::iterator client_it = clients_.insert(
+        std::make_pair(client->origin.host(), std::move(*client)));
+    EnforcePerClientAndGlobalEndpointLimits(client_it);
   }
 
   SanityCheckClients();
@@ -452,18 +481,14 @@
 
 std::vector<ReportingEndpoint>
 ReportingCacheImpl::GetCandidateEndpointsForDelivery(
-    const NetworkIsolationKey& network_isolation_key,
-    const url::Origin& origin,
-    const std::string& group_name) {
+    const ReportingEndpointGroupKey& group_key) {
   base::Time now = clock().Now();
   SanityCheckClients();
 
   // Look for an exact origin match for |origin| and |group|.
-  // TODO(mmenke): Respect NetworkIsolationKey.
-  EndpointGroupMap::iterator group_it =
-      FindEndpointGroupIt(ReportingEndpointGroupKey(origin, group_name));
+  EndpointGroupMap::iterator group_it = FindEndpointGroupIt(group_key);
   if (group_it != endpoint_groups_.end() && group_it->second.expires > now) {
-    OriginClientMap::iterator client_it = FindClientIt(origin);
+    ClientMap::iterator client_it = FindClientIt(group_key);
     MarkEndpointGroupAndClientUsed(client_it, group_it, now);
     SanityCheckClients();
     context_->NotifyCachedClientsUpdated();
@@ -473,20 +498,22 @@
   // If no endpoints were found for an exact match, look for superdomain matches
   // TODO(chlily): Limit the number of labels to go through when looking for a
   // superdomain match.
-  std::string domain = origin.host();
+  std::string domain = group_key.origin.host();
   while (!domain.empty()) {
-    const auto domain_range = origin_clients_.equal_range(domain);
+    const auto domain_range = clients_.equal_range(domain);
     for (auto client_it = domain_range.first; client_it != domain_range.second;
          ++client_it) {
       // Client for a superdomain of |origin|
-      const OriginClient& client = client_it->second;
-      // Check if |client| has a group with the requested name.
-      if (!base::Contains(client.endpoint_group_names, group_name))
+      const Client& client = client_it->second;
+      if (client.network_isolation_key != group_key.network_isolation_key)
+        continue;
+      ReportingEndpointGroupKey new_group(group_key.network_isolation_key,
+                                          client.origin, group_key.group_name);
+      group_it = FindEndpointGroupIt(new_group);
+
+      if (group_it == endpoint_groups_.end())
         continue;
 
-      ReportingEndpointGroupKey group_key(client.origin, group_name);
-      group_it = FindEndpointGroupIt(group_key);
-      DCHECK(group_it != endpoint_groups_.end());
       const CachedReportingEndpointGroup& endpoint_group = group_it->second;
       // Check if the group is valid (unexpired and includes subdomains).
       if (endpoint_group.include_subdomains == OriginSubdomains::INCLUDE &&
@@ -494,7 +521,7 @@
         MarkEndpointGroupAndClientUsed(client_it, group_it, now);
         SanityCheckClients();
         context_->NotifyCachedClientsUpdated();
-        return GetEndpointsInGroup(group_key);
+        return GetEndpointsInGroup(new_group);
       }
     }
     domain = GetSuperdomain(domain);
@@ -504,12 +531,12 @@
 
 base::Value ReportingCacheImpl::GetClientsAsValue() const {
   SanityCheckClients();
-  std::vector<base::Value> origin_client_list;
-  for (const auto& domain_and_client : origin_clients_) {
-    const OriginClient& client = domain_and_client.second;
-    origin_client_list.push_back(GetOriginClientAsValue(client));
+  std::vector<base::Value> client_list;
+  for (const auto& domain_and_client : clients_) {
+    const Client& client = domain_and_client.second;
+    client_list.push_back(GetClientAsValue(client));
   }
-  return base::Value(std::move(origin_client_list));
+  return base::Value(std::move(client_list));
 }
 
 size_t ReportingCacheImpl::GetEndpointCount() const {
@@ -522,36 +549,44 @@
 }
 
 ReportingEndpoint ReportingCacheImpl::GetEndpointForTesting(
-    const url::Origin& origin,
-    const std::string& group_name,
+    const ReportingEndpointGroupKey& group_key,
     const GURL& url) const {
   SanityCheckClients();
   for (const auto& group_key_and_endpoint : endpoints_) {
     const ReportingEndpoint& endpoint = group_key_and_endpoint.second;
-    if (endpoint.group_key.origin == origin &&
-        endpoint.group_key.group_name == group_name &&
-        endpoint.info.url == url) {
+    if (endpoint.group_key == group_key && endpoint.info.url == url)
       return endpoint;
-    }
   }
   return ReportingEndpoint();
 }
 
 bool ReportingCacheImpl::EndpointGroupExistsForTesting(
-    const url::Origin& origin,
-    const std::string& group_name,
+    const ReportingEndpointGroupKey& group_key,
     OriginSubdomains include_subdomains,
     base::Time expires) const {
+  SanityCheckClients();
   for (const auto& key_and_group : endpoint_groups_) {
     const CachedReportingEndpointGroup& endpoint_group = key_and_group.second;
-    if (endpoint_group.group_key.origin == origin &&
-        endpoint_group.group_key.group_name == group_name &&
+    if (endpoint_group.group_key == group_key &&
         endpoint_group.include_subdomains == include_subdomains) {
-      if (expires != base::Time()) {
+      if (expires != base::Time())
         return endpoint_group.expires == expires;
-      } else {
-        return true;
-      }
+      return true;
+    }
+  }
+  return false;
+}
+
+bool ReportingCacheImpl::ClientExistsForTesting(
+    const NetworkIsolationKey& network_isolation_key,
+    const url::Origin& origin) const {
+  SanityCheckClients();
+  for (const auto& domain_and_client : clients_) {
+    const Client& client = domain_and_client.second;
+    DCHECK_EQ(client.origin.host(), domain_and_client.first);
+    if (client.network_isolation_key == network_isolation_key &&
+        client.origin == origin) {
+      return true;
     }
   }
   return false;
@@ -561,35 +596,36 @@
   return endpoint_groups_.size();
 }
 
+size_t ReportingCacheImpl::GetClientCountForTesting() const {
+  return clients_.size();
+}
+
 void ReportingCacheImpl::SetEndpointForTesting(
-    const url::Origin& origin,
-    const std::string& group_name,
+    const ReportingEndpointGroupKey& group_key,
     const GURL& url,
     OriginSubdomains include_subdomains,
     base::Time expires,
     int priority,
     int weight) {
-  OriginClientMap::iterator client_it = FindClientIt(origin);
+  ClientMap::iterator client_it = FindClientIt(group_key);
   // If the client doesn't yet exist, add it.
-  if (client_it == origin_clients_.end()) {
-    OriginClient new_client(origin);
-    std::string domain = origin.host();
-    client_it =
-        origin_clients_.insert(std::make_pair(domain, std::move(new_client)));
+  if (client_it == clients_.end()) {
+    Client new_client(group_key.network_isolation_key, group_key.origin);
+    std::string domain = group_key.origin.host();
+    client_it = clients_.insert(std::make_pair(domain, std::move(new_client)));
   }
 
   base::Time now = clock().Now();
 
-  ReportingEndpointGroupKey group_key(origin, group_name);
   EndpointGroupMap::iterator group_it = FindEndpointGroupIt(group_key);
   // If the endpoint group doesn't yet exist, add it.
   if (group_it == endpoint_groups_.end()) {
-    CachedReportingEndpointGroup new_group(origin, group_name,
-                                           include_subdomains, expires, now);
+    CachedReportingEndpointGroup new_group(group_key, include_subdomains,
+                                           expires, now);
     group_it =
         endpoint_groups_.insert(std::make_pair(group_key, std::move(new_group)))
             .first;
-    client_it->second.endpoint_group_names.insert(group_name);
+    client_it->second.endpoint_group_names.insert(group_key.group_name);
   } else {
     // Otherwise, update the existing entry
     group_it->second.include_subdomains = include_subdomains;
@@ -606,7 +642,7 @@
     info.url = std::move(url);
     info.priority = priority;
     info.weight = weight;
-    ReportingEndpoint new_endpoint(origin, group_name, info);
+    ReportingEndpoint new_endpoint(group_key, info);
     endpoint_it =
         endpoints_.insert(std::make_pair(group_key, std::move(new_endpoint)));
     AddEndpointItToIndex(endpoint_it);
@@ -617,20 +653,27 @@
     endpoint_it->second.info.weight = weight;
   }
 
-  EnforcePerOriginAndGlobalEndpointLimits(origin);
+  EnforcePerClientAndGlobalEndpointLimits(client_it);
   SanityCheckClients();
   context_->NotifyCachedClientsUpdated();
 }
 
-ReportingCacheImpl::OriginClient::OriginClient(url::Origin origin)
-    : origin(std::move(origin)) {}
+ReportingCacheImpl::Client::Client(
+    const NetworkIsolationKey& network_isolation_key,
+    const url::Origin& origin)
+    : network_isolation_key(network_isolation_key), origin(origin) {}
 
-ReportingCacheImpl::OriginClient::OriginClient(const OriginClient& other) =
-    default;
+ReportingCacheImpl::Client::Client(const Client& other) = default;
 
-ReportingCacheImpl::OriginClient::OriginClient(OriginClient&& other) = default;
+ReportingCacheImpl::Client::Client(Client&& other) = default;
 
-ReportingCacheImpl::OriginClient::~OriginClient() = default;
+ReportingCacheImpl::Client& ReportingCacheImpl::Client::operator=(
+    const Client& other) = default;
+
+ReportingCacheImpl::Client& ReportingCacheImpl::Client::operator=(
+    Client&& other) = default;
+
+ReportingCacheImpl::Client::~Client() = default;
 
 ReportingCacheImpl::ReportSet::const_iterator
 ReportingCacheImpl::FindReportToEvict() const {
@@ -655,17 +698,21 @@
 
   size_t total_endpoint_count = 0;
   size_t total_endpoint_group_count = 0;
-  std::set<url::Origin> origins_in_cache;
+  std::set<std::pair<NetworkIsolationKey, url::Origin>>
+      nik_origin_pairs_in_cache;
 
-  for (const auto& domain_and_client : origin_clients_) {
+  for (const auto& domain_and_client : clients_) {
     const std::string& domain = domain_and_client.first;
-    const OriginClient& client = domain_and_client.second;
+    const Client& client = domain_and_client.second;
     total_endpoint_count += client.endpoint_count;
-    total_endpoint_group_count += SanityCheckOriginClient(domain, client);
+    total_endpoint_group_count += SanityCheckClient(domain, client);
 
-    // We have not seen a duplicate client with the same origin.
-    DCHECK(!base::Contains(origins_in_cache, client.origin));
-    origins_in_cache.insert(client.origin);
+    // We have not seen a duplicate client with the same NIK and origin.
+    DCHECK(!base::Contains(
+        nik_origin_pairs_in_cache,
+        std::make_pair(client.network_isolation_key, client.origin)));
+    nik_origin_pairs_in_cache.insert(
+        std::make_pair(client.network_isolation_key, client.origin));
   }
 
   // Global endpoint cap is respected.
@@ -683,9 +730,8 @@
   }
 }
 
-size_t ReportingCacheImpl::SanityCheckOriginClient(
-    const std::string& domain,
-    const OriginClient& client) const {
+size_t ReportingCacheImpl::SanityCheckClient(const std::string& domain,
+                                             const Client& client) const {
   // Each client is keyed by its domain name.
   DCHECK_EQ(domain, client.origin.host());
   // Client is not empty (has at least one group)
@@ -695,11 +741,19 @@
   size_t endpoint_group_count_in_client = 0;
 
   for (const std::string& group_name : client.endpoint_group_names) {
-    ++endpoint_group_count_in_client;
-    ReportingEndpointGroupKey group_key(client.origin, group_name);
-    DCHECK(endpoint_groups_.find(group_key) != endpoint_groups_.end());
-    const CachedReportingEndpointGroup& group = endpoint_groups_.at(group_key);
-    endpoint_count_in_client += SanityCheckEndpointGroup(group_key, group);
+    size_t groups_with_name = 0;
+    for (const auto& key_and_group : endpoint_groups_) {
+      const ReportingEndpointGroupKey& key = key_and_group.first;
+      if (key.origin == client.origin &&
+          key.network_isolation_key == client.network_isolation_key &&
+          key.group_name == group_name) {
+        ++endpoint_group_count_in_client;
+        ++groups_with_name;
+        endpoint_count_in_client +=
+            SanityCheckEndpointGroup(key, key_and_group.second);
+      }
+    }
+    DCHECK_EQ(1u, groups_with_name);
   }
   // Client has the correct endpoint count.
   DCHECK_EQ(client.endpoint_count, endpoint_count_in_client);
@@ -768,17 +822,25 @@
 #endif  // DCHECK_IS_ON()
 }
 
-ReportingCacheImpl::OriginClientMap::iterator ReportingCacheImpl::FindClientIt(
+ReportingCacheImpl::ClientMap::iterator ReportingCacheImpl::FindClientIt(
+    const NetworkIsolationKey& network_isolation_key,
     const url::Origin& origin) {
   // TODO(chlily): Limit the number of clients per domain to prevent an attacker
   // from installing many Reporting policies for different port numbers on the
   // same host.
-  const auto domain_range = origin_clients_.equal_range(origin.host());
+  const auto domain_range = clients_.equal_range(origin.host());
   for (auto it = domain_range.first; it != domain_range.second; ++it) {
-    if (it->second.origin == origin)
+    if (it->second.network_isolation_key == network_isolation_key &&
+        it->second.origin == origin) {
       return it;
+    }
   }
-  return origin_clients_.end();
+  return clients_.end();
+}
+
+ReportingCacheImpl::ClientMap::iterator ReportingCacheImpl::FindClientIt(
+    const ReportingEndpointGroupKey& group_key) {
+  return FindClientIt(group_key.network_isolation_key, group_key.origin);
 }
 
 ReportingCacheImpl::EndpointGroupMap::iterator
@@ -798,17 +860,19 @@
   return endpoints_.end();
 }
 
-void ReportingCacheImpl::AddOrUpdateClient(OriginClient new_client) {
-  OriginClientMap::iterator client_it = FindClientIt(new_client.origin);
+ReportingCacheImpl::ClientMap::iterator ReportingCacheImpl::AddOrUpdateClient(
+    Client new_client) {
+  ClientMap::iterator client_it =
+      FindClientIt(new_client.network_isolation_key, new_client.origin);
 
-  // Add a new client for this origin.
-  if (client_it == origin_clients_.end()) {
+  // Add a new client for this NIK and origin.
+  if (client_it == clients_.end()) {
     std::string domain = new_client.origin.host();
-    client_it = origin_clients_.insert(
+    client_it = clients_.insert(
         std::make_pair(std::move(domain), std::move(new_client)));
   } else {
     // If an entry already existed, just update it.
-    OriginClient& old_client = client_it->second;
+    Client& old_client = client_it->second;
     old_client.endpoint_count = new_client.endpoint_count;
     old_client.endpoint_group_names =
         std::move(new_client.endpoint_group_names);
@@ -817,6 +881,7 @@
 
   // Note: SanityCheckClients() may fail here because we may be over the
   // global/per-origin endpoint limits.
+  return client_it;
 }
 
 void ReportingCacheImpl::AddOrUpdateEndpointGroup(
@@ -844,7 +909,7 @@
     store()->UpdateReportingEndpointGroupDetails(new_group);
 
   // Note: SanityCheckClients() may fail here because we have not yet
-  // added/updated the OriginClient for |origin| yet.
+  // added/updated the Client yet.
 }
 
 void ReportingCacheImpl::AddOrUpdateEndpoint(ReportingEndpoint new_endpoint) {
@@ -856,14 +921,13 @@
     if (context_->IsClientDataPersisted())
       store()->AddReportingEndpoint(new_endpoint);
 
-    url::Origin origin = new_endpoint.group_key.origin;
     EndpointMap::iterator endpoint_it = endpoints_.insert(
         std::make_pair(new_endpoint.group_key, std::move(new_endpoint)));
     AddEndpointItToIndex(endpoint_it);
 
     // If the client already exists, update its endpoint count.
-    OriginClientMap::iterator client_it = FindClientIt(origin);
-    if (client_it != origin_clients_.end())
+    ClientMap::iterator client_it = FindClientIt(endpoint_it->second.group_key);
+    if (client_it != clients_.end())
       ++client_it->second.endpoint_count;
     return;
   }
@@ -878,7 +942,7 @@
     store()->UpdateReportingEndpointDetails(new_endpoint);
 
   // Note: SanityCheckClients() may fail here because we have not yet
-  // added/updated the OriginClient for |origin| yet.
+  // added/updated the Client yet.
 }
 
 void ReportingCacheImpl::RemoveEndpointsInGroupOtherThan(
@@ -887,13 +951,13 @@
   EndpointGroupMap::iterator group_it = FindEndpointGroupIt(group_key);
   if (group_it == endpoint_groups_.end())
     return;
-  OriginClientMap::iterator client_it = FindClientIt(group_key.origin);
+  ClientMap::iterator client_it = FindClientIt(group_key);
   // Normally a group would not exist without a client for that origin, but
   // this can actually happen during header parsing if a header for an origin
   // without a pre-existing configuration erroneously contains multiple groups
   // with the same name. In that case, we assume here that they meant to set all
   // of those same-name groups as one group, so we don't remove anything.
-  if (client_it == origin_clients_.end())
+  if (client_it == clients_.end())
     return;
 
   const auto group_range = endpoints_.equal_range(group_key);
@@ -913,11 +977,12 @@
   }
 }
 
-void ReportingCacheImpl::RemoveEndpointGroupsForOriginOtherThan(
+void ReportingCacheImpl::RemoveEndpointGroupsForClientOtherThan(
+    const NetworkIsolationKey& network_isolation_key,
     const url::Origin& origin,
     const std::set<std::string>& groups_to_keep_names) {
-  OriginClientMap::iterator client_it = FindClientIt(origin);
-  if (client_it == origin_clients_.end())
+  ClientMap::iterator client_it = FindClientIt(network_isolation_key, origin);
+  if (client_it == clients_.end())
     return;
 
   std::set<std::string>& old_group_names =
@@ -927,8 +992,8 @@
                                                        groups_to_keep_names);
 
   for (const std::string& group_name : groups_to_remove_names) {
-    EndpointGroupMap::iterator group_it =
-        FindEndpointGroupIt(ReportingEndpointGroupKey(origin, group_name));
+    EndpointGroupMap::iterator group_it = FindEndpointGroupIt(
+        ReportingEndpointGroupKey(network_isolation_key, origin, group_name));
     RemoveEndpointGroupInternal(client_it, group_it);
   }
 }
@@ -949,7 +1014,7 @@
 }
 
 void ReportingCacheImpl::MarkEndpointGroupAndClientUsed(
-    OriginClientMap::iterator client_it,
+    ClientMap::iterator client_it,
     EndpointGroupMap::iterator group_it,
     base::Time now) {
   group_it->second.last_used = now;
@@ -959,10 +1024,10 @@
 }
 
 base::Optional<ReportingCacheImpl::EndpointMap::iterator>
-ReportingCacheImpl::RemoveEndpointInternal(OriginClientMap::iterator client_it,
+ReportingCacheImpl::RemoveEndpointInternal(ClientMap::iterator client_it,
                                            EndpointGroupMap::iterator group_it,
                                            EndpointMap::iterator endpoint_it) {
-  DCHECK(client_it != origin_clients_.end());
+  DCHECK(client_it != clients_.end());
   DCHECK(group_it != endpoint_groups_.end());
   DCHECK(endpoint_it != endpoints_.end());
 
@@ -987,10 +1052,10 @@
 
 base::Optional<ReportingCacheImpl::EndpointGroupMap::iterator>
 ReportingCacheImpl::RemoveEndpointGroupInternal(
-    OriginClientMap::iterator client_it,
+    ClientMap::iterator client_it,
     EndpointGroupMap::iterator group_it,
     size_t* num_endpoints_removed) {
-  DCHECK(client_it != origin_clients_.end());
+  DCHECK(client_it != clients_.end());
   DCHECK(group_it != endpoint_groups_.end());
   const ReportingEndpointGroupKey& group_key = group_it->first;
 
@@ -1010,7 +1075,7 @@
   endpoints_.erase(group_range.first, group_range.second);
 
   // Update the client's endpoint count.
-  OriginClient& client = client_it->second;
+  Client& client = client_it->second;
   client.endpoint_count -= endpoints_removed;
 
   // Remove endpoint group from client.
@@ -1027,20 +1092,21 @@
   // Delete client if empty.
   if (client.endpoint_count == 0) {
     DCHECK(client.endpoint_group_names.empty());
-    origin_clients_.erase(client_it);
+    clients_.erase(client_it);
     rv = base::nullopt;
   }
   return rv;
 }
 
-ReportingCacheImpl::OriginClientMap::iterator
-ReportingCacheImpl::RemoveClientInternal(OriginClientMap::iterator client_it) {
-  DCHECK(client_it != origin_clients_.end());
-  const OriginClient& client = client_it->second;
+ReportingCacheImpl::ClientMap::iterator
+ReportingCacheImpl::RemoveClientInternal(ClientMap::iterator client_it) {
+  DCHECK(client_it != clients_.end());
+  const Client& client = client_it->second;
 
   // Erase all groups in this client, and all endpoints in those groups.
   for (const std::string& group_name : client.endpoint_group_names) {
-    ReportingEndpointGroupKey group_key(client.origin, group_name);
+    ReportingEndpointGroupKey group_key(client.network_isolation_key,
+                                        client.origin, group_name);
     EndpointGroupMap::iterator group_it = FindEndpointGroupIt(group_key);
     if (context_->IsClientDataPersisted())
       store()->DeleteReportingEndpointGroup(group_it->second);
@@ -1056,14 +1122,15 @@
     endpoints_.erase(group_range.first, group_range.second);
   }
 
-  return origin_clients_.erase(client_it);
+  return clients_.erase(client_it);
 }
 
-void ReportingCacheImpl::EnforcePerOriginAndGlobalEndpointLimits(
-    const url::Origin& origin) {
-  OriginClientMap::iterator client_it = FindClientIt(origin);
-  DCHECK(client_it != origin_clients_.end());
+void ReportingCacheImpl::EnforcePerClientAndGlobalEndpointLimits(
+    ClientMap::iterator client_it) {
+  DCHECK(client_it != clients_.end());
   size_t client_endpoint_count = client_it->second.endpoint_count;
+  // TODO(chlily): This is actually a limit on the endpoints for a given client
+  // (for a NIK, origin pair). Rename this.
   size_t max_endpoints_per_origin = context_->policy().max_endpoints_per_origin;
   if (client_endpoint_count > max_endpoints_per_origin) {
     EvictEndpointsFromClient(client_it,
@@ -1074,16 +1141,16 @@
   while (GetEndpointCount() > max_endpoint_count) {
     // Find the stalest client (arbitrarily pick the first one if there are
     // multiple).
-    OriginClientMap::iterator to_evict = origin_clients_.end();
-    for (auto it = origin_clients_.begin(); it != origin_clients_.end(); ++it) {
-      const OriginClient& client = it->second;
-      if (to_evict == origin_clients_.end() ||
+    ClientMap::iterator to_evict = clients_.end();
+    for (auto it = clients_.begin(); it != clients_.end(); ++it) {
+      const Client& client = it->second;
+      if (to_evict == clients_.end() ||
           client.last_used < to_evict->second.last_used) {
         to_evict = it;
       }
     }
 
-    DCHECK(to_evict != origin_clients_.end());
+    DCHECK(to_evict != clients_.end());
 
     // Evict endpoints from the chosen client.
     size_t num_to_evict = GetEndpointCount() - max_endpoint_count;
@@ -1092,14 +1159,15 @@
   }
 }
 
-void ReportingCacheImpl::EvictEndpointsFromClient(
-    OriginClientMap::iterator client_it,
-    size_t endpoints_to_evict) {
+void ReportingCacheImpl::EvictEndpointsFromClient(ClientMap::iterator client_it,
+                                                  size_t endpoints_to_evict) {
   DCHECK_GT(endpoints_to_evict, 0u);
-  DCHECK(client_it != origin_clients_.end());
-  const OriginClient& client = client_it->second;
+  DCHECK(client_it != clients_.end());
+  const Client& client = client_it->second;
   // Cache this value as |client| may be deleted.
   size_t client_endpoint_count = client.endpoint_count;
+  const NetworkIsolationKey& network_isolation_key =
+      client.network_isolation_key;
   const url::Origin& origin = client.origin;
 
   DCHECK_GE(client_endpoint_count, endpoints_to_evict);
@@ -1125,7 +1193,8 @@
     EndpointGroupMap::iterator stalest_group_it = endpoint_groups_.end();
     size_t stalest_group_endpoint_count = 0;
     for (const std::string& group_name : client.endpoint_group_names) {
-      ReportingEndpointGroupKey group_key(origin, group_name);
+      ReportingEndpointGroupKey group_key(network_isolation_key, origin,
+                                          group_name);
       EndpointGroupMap::iterator group_it = FindEndpointGroupIt(group_key);
       size_t group_endpoint_count = GetEndpointCountInGroup(group_key);
 
@@ -1147,7 +1216,7 @@
 }
 
 void ReportingCacheImpl::EvictEndpointFromGroup(
-    OriginClientMap::iterator client_it,
+    ClientMap::iterator client_it,
     EndpointGroupMap::iterator group_it) {
   const ReportingEndpointGroupKey& group_key = group_it->first;
   const auto group_range = endpoints_.equal_range(group_key);
@@ -1168,7 +1237,7 @@
 }
 
 bool ReportingCacheImpl::RemoveExpiredOrStaleGroups(
-    OriginClientMap::iterator client_it,
+    ClientMap::iterator client_it,
     size_t* num_endpoints_removed) {
   base::Time now = clock().Now();
   // Make a copy of this because |client_it| may be invalidated.
@@ -1177,7 +1246,8 @@
 
   for (const std::string& group_name : groups_in_client_names) {
     EndpointGroupMap::iterator group_it = FindEndpointGroupIt(
-        ReportingEndpointGroupKey(client_it->second.origin, group_name));
+        ReportingEndpointGroupKey(client_it->second.network_isolation_key,
+                                  client_it->second.origin, group_name));
     DCHECK(group_it != endpoint_groups_.end());
     const CachedReportingEndpointGroup& group = group_it->second;
     if (group.expires < now ||
@@ -1213,21 +1283,23 @@
   }
 }
 
-base::Value ReportingCacheImpl::GetOriginClientAsValue(
-    const OriginClient& client) const {
-  base::Value origin_client_dict(base::Value::Type::DICTIONARY);
-  origin_client_dict.SetKey("origin", base::Value(client.origin.Serialize()));
+base::Value ReportingCacheImpl::GetClientAsValue(const Client& client) const {
+  base::Value client_dict(base::Value::Type::DICTIONARY);
+  client_dict.SetKey("network_isolation_key",
+                     base::Value(client.network_isolation_key.ToDebugString()));
+  client_dict.SetKey("origin", base::Value(client.origin.Serialize()));
 
   std::vector<base::Value> group_list;
   for (const std::string& group_name : client.endpoint_group_names) {
-    ReportingEndpointGroupKey group_key(client.origin, group_name);
+    ReportingEndpointGroupKey group_key(client.network_isolation_key,
+                                        client.origin, group_name);
     const CachedReportingEndpointGroup& group = endpoint_groups_.at(group_key);
     group_list.push_back(GetEndpointGroupAsValue(group));
   }
 
-  origin_client_dict.SetKey("groups", base::Value(std::move(group_list)));
+  client_dict.SetKey("groups", base::Value(std::move(group_list)));
 
-  return origin_client_dict;
+  return client_dict;
 }
 
 base::Value ReportingCacheImpl::GetEndpointGroupAsValue(
diff --git a/net/reporting/reporting_cache_impl.h b/net/reporting/reporting_cache_impl.h
index c90313b1..a13623e 100644
--- a/net/reporting/reporting_cache_impl.h
+++ b/net/reporting/reporting_cache_impl.h
@@ -31,8 +31,6 @@
 
 namespace net {
 
-class NetworkIsolationKey;
-
 class ReportingCacheImpl : public ReportingCache {
  public:
   ReportingCacheImpl(ReportingContext* context);
@@ -56,8 +54,7 @@
       const std::vector<const ReportingReport*>& reports) override;
   void IncrementReportsAttempts(
       const std::vector<const ReportingReport*>& reports) override;
-  void IncrementEndpointDeliveries(const url::Origin& origin,
-                                   const std::string& group_name,
+  void IncrementEndpointDeliveries(const ReportingEndpointGroupKey& group_key,
                                    const GURL& url,
                                    int reports_delivered,
                                    bool successful) override;
@@ -70,33 +67,33 @@
   void OnParsedHeader(
       const url::Origin& origin,
       std::vector<ReportingEndpointGroup> parsed_header) override;
-  std::vector<url::Origin> GetAllOrigins() const override;
-  void RemoveClient(const url::Origin& origin) override;
+  std::set<url::Origin> GetAllOrigins() const override;
+  void RemoveClient(const NetworkIsolationKey& network_isolation_key,
+                    const url::Origin& origin) override;
+  void RemoveClientsForOrigin(const url::Origin& origin) override;
   void RemoveAllClients() override;
-  void RemoveEndpointGroup(const url::Origin& origin,
-                           const std::string& name) override;
+  void RemoveEndpointGroup(const ReportingEndpointGroupKey& group_key) override;
   void RemoveEndpointsForUrl(const GURL& url) override;
   void AddClientsLoadedFromStore(
       std::vector<ReportingEndpoint> loaded_endpoints,
       std::vector<CachedReportingEndpointGroup> loaded_endpoint_groups)
       override;
   std::vector<ReportingEndpoint> GetCandidateEndpointsForDelivery(
-      const NetworkIsolationKey& network_isolation_key,
-      const url::Origin& origin,
-      const std::string& group_name) override;
+      const ReportingEndpointGroupKey& group_key) override;
   base::Value GetClientsAsValue() const override;
   size_t GetEndpointCount() const override;
   void Flush() override;
-  ReportingEndpoint GetEndpointForTesting(const url::Origin& origin,
-                                          const std::string& group_name,
-                                          const GURL& url) const override;
-  bool EndpointGroupExistsForTesting(const url::Origin& origin,
-                                     const std::string& group_name,
+  ReportingEndpoint GetEndpointForTesting(
+      const ReportingEndpointGroupKey& group_key,
+      const GURL& url) const override;
+  bool EndpointGroupExistsForTesting(const ReportingEndpointGroupKey& group_key,
                                      OriginSubdomains include_subdomains,
                                      base::Time expires) const override;
+  bool ClientExistsForTesting(const NetworkIsolationKey& network_isolation_key,
+                              const url::Origin& origin) const override;
   size_t GetEndpointGroupCountForTesting() const override;
-  void SetEndpointForTesting(const url::Origin& origin,
-                             const std::string& group_name,
+  size_t GetClientCountForTesting() const override;
+  void SetEndpointForTesting(const ReportingEndpointGroupKey& group_key,
                              const GURL& url,
                              OriginSubdomains include_subdomains,
                              base::Time expires,
@@ -104,17 +101,25 @@
                              int weight) override;
 
  private:
-  // Represents the entire Report-To configuration for an origin.
-  struct OriginClient {
-    explicit OriginClient(url::Origin origin);
+  // Represents the entire Report-To configuration for a (NIK, origin) pair.
+  struct Client {
+    Client(const NetworkIsolationKey& network_isolation_key,
+           const url::Origin& origin);
 
-    OriginClient(const OriginClient& other);
-    OriginClient(OriginClient&& other);
+    Client(const Client& other);
+    Client(Client&& other);
 
-    ~OriginClient();
+    Client& operator=(const Client& other);
+    Client& operator=(Client&& other);
+
+    ~Client();
+
+    // NIK of the context associated with this client. Needed to prevent leaking
+    // third party contexts across sites.
+    NetworkIsolationKey network_isolation_key;
 
     // Origin that configured this client.
-    const url::Origin origin;
+    url::Origin origin;
 
     // Total number of endpoints for this origin. Should stay in sync with the
     // sum of endpoint counts for all the groups within this client.
@@ -131,7 +136,7 @@
 
   using ReportSet = base::flat_set<std::unique_ptr<ReportingReport>,
                                    base::UniquePtrComparator>;
-  using OriginClientMap = std::unordered_multimap<std::string, OriginClient>;
+  using ClientMap = std::multimap<std::string, Client>;
   using EndpointGroupMap =
       std::map<ReportingEndpointGroupKey, CachedReportingEndpointGroup>;
   using EndpointMap =
@@ -150,8 +155,8 @@
   // Helper methods for SanityCheckClients():
 #if DCHECK_IS_ON()
   // Returns number of endpoint groups found in |client|.
-  size_t SanityCheckOriginClient(const std::string& domain,
-                                 const OriginClient& client) const;
+  size_t SanityCheckClient(const std::string& domain,
+                           const Client& client) const;
 
   // Returns the number of endpoints found in |group|.
   size_t SanityCheckEndpointGroup(
@@ -163,9 +168,16 @@
                            EndpointMap::const_iterator endpoint_it) const;
 #endif  // DCHECK_IS_ON()
 
-  // Finds iterator to the client with the given |origin|, if one exists.
-  // Returns |origin_clients_.end()| if none is found.
-  OriginClientMap::iterator FindClientIt(const url::Origin& origin);
+  // Finds iterator to the client with the given |network_isolation_key| and
+  // |origin|, if one exists. Returns |clients_.end()| if none is found.
+  ClientMap::iterator FindClientIt(
+      const NetworkIsolationKey& network_isolation_key,
+      const url::Origin& origin);
+
+  // Overload that takes a ReportingEndpointGroupKey and finds the client
+  // to which a group specified by the |group_key| would belong. The group name
+  // of the key is ignored.
+  ClientMap::iterator FindClientIt(const ReportingEndpointGroupKey& group_key);
 
   // Finds iterator to the endpoint group identified by |group_key| (origin and
   // name), if one exists. Returns |endpoint_groups_.end()| if none is found.
@@ -181,8 +193,8 @@
 
   // Adds a new client, endpoint group, or endpoint to the cache, if none
   // exists. If one already exists, updates the existing entry to match the new
-  // one.
-  void AddOrUpdateClient(OriginClient new_client);
+  // one. Returns iterator to newly added client.
+  ClientMap::iterator AddOrUpdateClient(Client new_client);
   void AddOrUpdateEndpointGroup(CachedReportingEndpointGroup new_group);
   void AddOrUpdateEndpoint(ReportingEndpoint new_endpoint);
 
@@ -193,10 +205,11 @@
       const ReportingEndpointGroupKey& group_key,
       const std::set<GURL>& endpoints_to_keep_urls);
 
-  // Remove all the endpoint groups for |origin| whose names are not in
-  // |groups_to_keep_names|. Does not guarantee that all the groups in
-  // |groups_to_keep_names| exist in the cache for that origin.
-  void RemoveEndpointGroupsForOriginOtherThan(
+  // Remove all the endpoint groups for the NIK and origin whose names are not
+  // in |groups_to_keep_names|. Does not guarantee that all the groups in
+  // |groups_to_keep_names| exist in the cache for that client.
+  void RemoveEndpointGroupsForClientOtherThan(
+      const NetworkIsolationKey& network_isolation_key,
       const url::Origin& origin,
       const std::set<std::string>& groups_to_keep_names);
 
@@ -209,7 +222,7 @@
       const ReportingEndpointGroupKey& group_key) const;
 
   // Updates the last_used time for the given origin and endpoint group.
-  void MarkEndpointGroupAndClientUsed(OriginClientMap::iterator client_it,
+  void MarkEndpointGroupAndClientUsed(ClientMap::iterator client_it,
                                       EndpointGroupMap::iterator group_it,
                                       base::Time now);
 
@@ -221,7 +234,7 @@
   // either of |group_it| or |client_it| were invalidated. (If |client_it| is
   // invalidated, then so must |group_it|).
   base::Optional<EndpointMap::iterator> RemoveEndpointInternal(
-      OriginClientMap::iterator client_it,
+      ClientMap::iterator client_it,
       EndpointGroupMap::iterator group_it,
       EndpointMap::iterator endpoint_it);
 
@@ -234,7 +247,7 @@
   // Returns the iterator following the endpoint group removed, or base::nullopt
   // if |client_it| was invalidated.
   base::Optional<EndpointGroupMap::iterator> RemoveEndpointGroupInternal(
-      OriginClientMap::iterator client_it,
+      ClientMap::iterator client_it,
       EndpointGroupMap::iterator group_it,
       size_t* num_endpoints_removed = nullptr);
 
@@ -242,11 +255,10 @@
   // along with all of its endpoint groups and endpoints. Invalidates
   // |client_it|.
   // Returns the iterator following the client removed.
-  OriginClientMap::iterator RemoveClientInternal(
-      OriginClientMap::iterator client_it);
+  ClientMap::iterator RemoveClientInternal(ClientMap::iterator client_it);
 
-  // Evict endpoints from |origin| and globally, if necessary to obey the
-  // per-origin and global endpoint limits set in the ReportingPolicy.
+  // Evict endpoints from the specified client and globally, if necessary to
+  // obey the per-client and global endpoint limits set in the ReportingPolicy.
   //
   // To evict from a client: First evicts any stale or expired groups for that
   // origin. If that removes enough endpoints, then stop. Otherwise, find the
@@ -255,26 +267,26 @@
   // that group.
   // To evict globally: Find the stalest client with the most endpoints and do
   // the above.
-  void EnforcePerOriginAndGlobalEndpointLimits(const url::Origin& origin);
+  void EnforcePerClientAndGlobalEndpointLimits(ClientMap::iterator client_it);
 
   // Evicts endpoints from a client until it has evicted |endpoints_to_evict|
   // endpoints. First tries to remove expired and stale groups. If that fails to
   // satisfy the limit, finds the stalest group with the most endpoints and
   // evicts the least important endpoints from it.
-  void EvictEndpointsFromClient(OriginClientMap::iterator client_it,
+  void EvictEndpointsFromClient(ClientMap::iterator client_it,
                                 size_t endpoints_to_evict);
 
   // Evicts the least important endpoint from a group (the endpoint with lowest
   // priority and lowest weight). May cause the group and/or client to be
   // deleted and the iterators invalidated.
-  void EvictEndpointFromGroup(OriginClientMap::iterator client_it,
+  void EvictEndpointFromGroup(ClientMap::iterator client_it,
                               EndpointGroupMap::iterator group_it);
 
   // Removes all expired or stale groups from the given client. May delete the
   // client and invalidate |client_it| if it becomes empty.
   // Increments |*num_endpoints_removed| by the number of endpoints removed.
   // Returns true if |client_it| was invalidated.
-  bool RemoveExpiredOrStaleGroups(OriginClientMap::iterator client_it,
+  bool RemoveExpiredOrStaleGroups(ClientMap::iterator client_it,
                                   size_t* num_endpoints_removed);
 
   // Adds/removes (if it exists) |endpoint_it| from |endpoint_its_by_url_|.
@@ -282,7 +294,7 @@
   void RemoveEndpointItFromIndex(EndpointMap::iterator endpoint_it);
 
   // Helper methods for GetClientsAsValue().
-  base::Value GetOriginClientAsValue(const OriginClient& client) const;
+  base::Value GetClientAsValue(const Client& client) const;
   base::Value GetEndpointGroupAsValue(
       const CachedReportingEndpointGroup& group) const;
   base::Value GetEndpointAsValue(const ReportingEndpoint& endpoint) const;
@@ -297,9 +309,9 @@
   // Reports that have not yet been successfully uploaded.
   ReportSet reports_;
 
-  // Map of clients for all configured origins, keyed on domain name (there may
-  // be multiple origins per domain name).
-  OriginClientMap origin_clients_;
+  // Map of clients for all configured origins and NIKs, keyed on domain name
+  // (there may be multiple NIKs and origins per domain name).
+  ClientMap clients_;
 
   // Map of endpoint groups, keyed on origin and group name.
   EndpointGroupMap endpoint_groups_;
diff --git a/net/reporting/reporting_cache_unittest.cc b/net/reporting/reporting_cache_unittest.cc
index 3803765..d1e03ae 100644
--- a/net/reporting/reporting_cache_unittest.cc
+++ b/net/reporting/reporting_cache_unittest.cc
@@ -10,6 +10,7 @@
 
 #include "base/bind.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/strings/stringprintf.h"
 #include "base/test/simple_test_tick_clock.h"
 #include "base/test/values_test_util.h"
 #include "base/time/time.h"
@@ -141,10 +142,39 @@
     return nullptr;
   }
 
+  // Creates a new endpoint group by way of adding two endpoints.
+  void CreateGroupAndEndpoints(const ReportingEndpointGroupKey& group) {
+    EXPECT_FALSE(EndpointGroupExistsInCache(group, OriginSubdomains::DEFAULT));
+    ASSERT_TRUE(SetEndpointInCache(group, kEndpoint1_, kExpires1_));
+    ASSERT_TRUE(SetEndpointInCache(group, kEndpoint2_, kExpires1_));
+  }
+
+  // If |exist| is true, expect that the given group exists and has two
+  // endpoints, and its client exists. If |exist| is false, expect that the
+  // group and its endpoints don't exist (does not check the client in that
+  // case).
+  void ExpectExistence(const ReportingEndpointGroupKey& group, bool exist) {
+    ReportingEndpoint endpoint1 = FindEndpointInCache(group, kEndpoint1_);
+    ReportingEndpoint endpoint2 = FindEndpointInCache(group, kEndpoint2_);
+    EXPECT_EQ(exist, endpoint1.is_valid());
+    EXPECT_EQ(exist, endpoint2.is_valid());
+    if (exist) {
+      EXPECT_EQ(endpoint1.group_key, group);
+      EXPECT_EQ(endpoint2.group_key, group);
+      EXPECT_TRUE(cache()->ClientExistsForTesting(group.network_isolation_key,
+                                                  group.origin));
+    }
+    EXPECT_EQ(exist,
+              EndpointGroupExistsInCache(group, OriginSubdomains::DEFAULT));
+  }
+
   const GURL kUrl1_ = GURL("https://origin1/path");
   const GURL kUrl2_ = GURL("https://origin2/path");
   const url::Origin kOrigin1_ = url::Origin::Create(GURL("https://origin1/"));
   const url::Origin kOrigin2_ = url::Origin::Create(GURL("https://origin2/"));
+  const NetworkIsolationKey kNik_;
+  const NetworkIsolationKey kOtherNik_ =
+      NetworkIsolationKey(kOrigin1_, kOrigin2_);
   const GURL kEndpoint1_ = GURL("https://endpoint1/");
   const GURL kEndpoint2_ = GURL("https://endpoint2/");
   const GURL kEndpoint3_ = GURL("https://endpoint3/");
@@ -157,8 +187,25 @@
   const base::Time kNow_ = clock()->Now();
   const base::Time kExpires1_ = kNow_ + base::TimeDelta::FromDays(7);
   const base::Time kExpires2_ = kExpires1_ + base::TimeDelta::FromDays(7);
+  // There are 2^3 = 8 of these to test the different combinations of matching
+  // vs mismatching NIK, origin, and group.
+  const ReportingEndpointGroupKey kGroupKey11_ =
+      ReportingEndpointGroupKey(kNik_, kOrigin1_, kGroup1_);
+  const ReportingEndpointGroupKey kGroupKey21_ =
+      ReportingEndpointGroupKey(kNik_, kOrigin2_, kGroup1_);
+  const ReportingEndpointGroupKey kGroupKey12_ =
+      ReportingEndpointGroupKey(kNik_, kOrigin1_, kGroup2_);
+  const ReportingEndpointGroupKey kGroupKey22_ =
+      ReportingEndpointGroupKey(kNik_, kOrigin2_, kGroup2_);
+  const ReportingEndpointGroupKey kOtherGroupKey11_ =
+      ReportingEndpointGroupKey(kOtherNik_, kOrigin1_, kGroup1_);
+  const ReportingEndpointGroupKey kOtherGroupKey21_ =
+      ReportingEndpointGroupKey(kOtherNik_, kOrigin2_, kGroup1_);
+  const ReportingEndpointGroupKey kOtherGroupKey12_ =
+      ReportingEndpointGroupKey(kOtherNik_, kOrigin1_, kGroup2_);
+  const ReportingEndpointGroupKey kOtherGroupKey22_ =
+      ReportingEndpointGroupKey(kOtherNik_, kOrigin2_, kGroup2_);
 
- private:
   TestReportingCacheObserver observer_;
   std::unique_ptr<MockPersistentReportingStore> store_;
 };
@@ -419,76 +466,195 @@
   LoadReportingClients();
 
   EXPECT_EQ(0u, cache()->GetEndpointCount());
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint1_, kExpires1_));
   EXPECT_EQ(1u, cache()->GetEndpointCount());
 
   const ReportingEndpoint endpoint1 =
-      FindEndpointInCache(kOrigin1_, kGroup1_, kEndpoint1_);
+      FindEndpointInCache(kGroupKey11_, kEndpoint1_);
   ASSERT_TRUE(endpoint1);
   EXPECT_EQ(kOrigin1_, endpoint1.group_key.origin);
   EXPECT_EQ(kEndpoint1_, endpoint1.info.url);
   EXPECT_EQ(kGroup1_, endpoint1.group_key.group_name);
 
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin1_, kGroup1_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey11_, OriginSubdomains::DEFAULT, kExpires1_));
 
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin1_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
 
   // Insert another endpoint in the same group.
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint2_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint2_, kExpires1_));
   EXPECT_EQ(2u, cache()->GetEndpointCount());
 
   const ReportingEndpoint endpoint2 =
-      FindEndpointInCache(kOrigin1_, kGroup1_, kEndpoint2_);
+      FindEndpointInCache(kGroupKey11_, kEndpoint2_);
   ASSERT_TRUE(endpoint2);
   EXPECT_EQ(kOrigin1_, endpoint2.group_key.origin);
   EXPECT_EQ(kEndpoint2_, endpoint2.info.url);
   EXPECT_EQ(kGroup1_, endpoint2.group_key.group_name);
 
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin1_, kGroup1_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey11_, OriginSubdomains::DEFAULT, kExpires1_));
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
 
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin1_));
-  std::vector<url::Origin> origins_in_cache = cache()->GetAllOrigins();
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
+  std::set<url::Origin> origins_in_cache = cache()->GetAllOrigins();
   EXPECT_EQ(1u, origins_in_cache.size());
 
-  // Insert another endpoint for a different origin.
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup1_, kEndpoint2_, kExpires1_));
+  // Insert another endpoint for a different origin with same group name.
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey21_, kEndpoint2_, kExpires1_));
   EXPECT_EQ(3u, cache()->GetEndpointCount());
 
   const ReportingEndpoint endpoint3 =
-      FindEndpointInCache(kOrigin2_, kGroup1_, kEndpoint2_);
+      FindEndpointInCache(kGroupKey21_, kEndpoint2_);
   ASSERT_TRUE(endpoint3);
   EXPECT_EQ(kOrigin2_, endpoint3.group_key.origin);
   EXPECT_EQ(kEndpoint2_, endpoint3.info.url);
   EXPECT_EQ(kGroup1_, endpoint3.group_key.group_name);
 
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin2_, kGroup1_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey21_, OriginSubdomains::DEFAULT, kExpires1_));
   EXPECT_EQ(2u, cache()->GetEndpointGroupCountForTesting());
 
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin2_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin2_));
   origins_in_cache = cache()->GetAllOrigins();
   EXPECT_EQ(2u, origins_in_cache.size());
 }
 
-TEST_P(ReportingCacheTest, RemoveClient) {
+TEST_P(ReportingCacheTest, ClientsKeyedByEndpointGroupKey) {
+  // Raise the endpoint limits for this test.
+  // (This needs to first remove the cache observer because this destroys the
+  // old ReportingContext, which must not have any observers upon destruction.)
+  context()->RemoveCacheObserver(&observer_);
+  ReportingPolicy policy;
+  policy.max_endpoints_per_origin = 5;  // This test should use 4.
+  policy.max_endpoint_count = 20;       // This test should use 16.
+  UsePolicy(policy);
+  context()->AddCacheObserver(&observer_);
+
   LoadReportingClients();
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint1_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint2_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup1_, kEndpoint1_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup2_, kEndpoint2_, kExpires1_));
-  EXPECT_EQ(4u, cache()->GetEndpointCount());
-  ASSERT_TRUE(OriginClientExistsInCache(kOrigin1_));
-  ASSERT_TRUE(OriginClientExistsInCache(kOrigin2_));
+  const ReportingEndpointGroupKey kGroupKeys[] = {
+      kGroupKey11_,      kGroupKey12_,      kGroupKey21_,
+      kGroupKey22_,      kOtherGroupKey11_, kOtherGroupKey12_,
+      kOtherGroupKey21_, kOtherGroupKey22_,
+  };
 
-  cache()->RemoveClient(kOrigin1_);
+  size_t endpoint_group_count = 0u;
+  size_t endpoint_count = 0u;
+
+  // Check that the group keys are all considered distinct, and nothing is
+  // overwritten.
+  for (const auto& group : kGroupKeys) {
+    CreateGroupAndEndpoints(group);
+    ExpectExistence(group, true);
+    ++endpoint_group_count;
+    EXPECT_EQ(endpoint_group_count, cache()->GetEndpointGroupCountForTesting());
+    endpoint_count += 2u;
+    EXPECT_EQ(endpoint_count, cache()->GetEndpointCount());
+  }
+
+  // Check that everything is there at the end.
+  for (const auto& group : kGroupKeys) {
+    ExpectExistence(group, true);
+  }
+
+  size_t client_count = 4u;
+  EXPECT_EQ(client_count, cache()->GetClientCountForTesting());
+
+  // Test that Clients with different NIKs are considered different, and test
+  // RemoveEndpointGroup() and RemoveClient().
+  const std::pair<NetworkIsolationKey, url::Origin> kNikOriginPairs[] = {
+      {kNik_, kOrigin1_},
+      {kNik_, kOrigin2_},
+      {kOtherNik_, kOrigin1_},
+      {kOtherNik_, kOrigin2_},
+  };
+
+  // SetEndpointInCache doesn't update store counts, which is why we start from
+  // zero and they go negative.
+  // TODO(crbug.com/895821): Populate the cache via the store so we don't
+  // need negative counts.
+  MockPersistentReportingStore::CommandList expected_commands;
+  int stored_group_count = 0;
+  int stored_endpoint_count = 0;
+  int store_remove_group_count = 0;
+  int store_remove_endpoint_count = 0;
+
+  for (const auto& pair : kNikOriginPairs) {
+    EXPECT_TRUE(cache()->ClientExistsForTesting(pair.first, pair.second));
+    ReportingEndpointGroupKey group1(pair.first, pair.second, kGroup1_);
+    ReportingEndpointGroupKey group2(pair.first, pair.second, kGroup2_);
+    ExpectExistence(group1, true);
+    ExpectExistence(group2, true);
+
+    cache()->RemoveEndpointGroup(group1);
+    ExpectExistence(group1, false);
+    ExpectExistence(group2, true);
+    EXPECT_TRUE(cache()->ClientExistsForTesting(pair.first, pair.second));
+
+    cache()->RemoveClient(pair.first, pair.second);
+    ExpectExistence(group1, false);
+    ExpectExistence(group2, false);
+    EXPECT_FALSE(cache()->ClientExistsForTesting(pair.first, pair.second));
+
+    --client_count;
+    EXPECT_EQ(client_count, cache()->GetClientCountForTesting());
+    endpoint_group_count -= 2u;
+    stored_group_count -= 2;
+    EXPECT_EQ(endpoint_group_count, cache()->GetEndpointGroupCountForTesting());
+    endpoint_count -= 4u;
+    stored_endpoint_count -= 4;
+    EXPECT_EQ(endpoint_count, cache()->GetEndpointCount());
+
+    if (store()) {
+      store()->Flush();
+      EXPECT_EQ(stored_endpoint_count, store()->StoredEndpointsCount());
+      EXPECT_EQ(stored_group_count, store()->StoredEndpointGroupsCount());
+      store_remove_group_count += 2u;
+      expected_commands.emplace_back(
+          CommandType::DELETE_REPORTING_ENDPOINT_GROUP, group1);
+      expected_commands.emplace_back(
+          CommandType::DELETE_REPORTING_ENDPOINT_GROUP, group2);
+      store_remove_endpoint_count += 4u;
+      expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                     group1, kEndpoint1_);
+      expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                     group1, kEndpoint2_);
+      expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                     group2, kEndpoint1_);
+      expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                     group2, kEndpoint2_);
+      EXPECT_EQ(
+          store_remove_group_count,
+          store()->CountCommands(CommandType::DELETE_REPORTING_ENDPOINT_GROUP));
+      EXPECT_EQ(store_remove_endpoint_count,
+                store()->CountCommands(CommandType::DELETE_REPORTING_ENDPOINT));
+      EXPECT_THAT(store()->GetAllCommands(),
+                  testing::IsSupersetOf(expected_commands));
+    }
+  }
+}
+
+TEST_P(ReportingCacheTest, RemoveClientsForOrigin) {
+  LoadReportingClients();
+
+  // Origin 1
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kOtherGroupKey11_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kOtherGroupKey12_, kEndpoint1_, kExpires1_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
+  // Origin 2
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey21_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kOtherGroupKey22_, kEndpoint2_, kExpires1_));
+  ASSERT_TRUE(ClientExistsInCacheForOrigin(kOrigin2_));
+
+  EXPECT_EQ(5u, cache()->GetEndpointCount());
+
+  cache()->RemoveClientsForOrigin(kOrigin1_);
 
   EXPECT_EQ(2u, cache()->GetEndpointCount());
-  EXPECT_FALSE(OriginClientExistsInCache(kOrigin1_));
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin2_));
+  EXPECT_FALSE(ClientExistsInCacheForOrigin(kOrigin1_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin2_));
 
   if (store()) {
     store()->Flush();
@@ -496,26 +662,25 @@
     // negative here.
     // TODO(crbug.com/895821): Populate the cache via the store so we don't need
     // negative counts.
-    EXPECT_EQ(-2, store()->StoredEndpointsCount());
-    EXPECT_EQ(-1, store()->StoredEndpointGroupsCount());
+    EXPECT_EQ(-3, store()->StoredEndpointsCount());
+    EXPECT_EQ(-3, store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    EXPECT_EQ(2,
+    EXPECT_EQ(3,
               store()->CountCommands(CommandType::DELETE_REPORTING_ENDPOINT));
-    EXPECT_EQ(1, store()->CountCommands(
+    EXPECT_EQ(3, store()->CountCommands(
                      CommandType::DELETE_REPORTING_ENDPOINT_GROUP));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin1_, kGroup1_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin1_, kGroup1_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin1_, kGroup1_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint1_}));
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey11_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kOtherGroupKey11_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kOtherGroupKey12_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey11_, kEndpoint1_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kOtherGroupKey11_, kEndpoint1_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kOtherGroupKey12_, kEndpoint1_);
     EXPECT_THAT(store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -524,19 +689,19 @@
 TEST_P(ReportingCacheTest, RemoveAllClients) {
   LoadReportingClients();
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint1_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint2_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup1_, kEndpoint1_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup2_, kEndpoint2_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint2_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey21_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey22_, kEndpoint2_, kExpires1_));
   EXPECT_EQ(4u, cache()->GetEndpointCount());
-  ASSERT_TRUE(OriginClientExistsInCache(kOrigin1_));
-  ASSERT_TRUE(OriginClientExistsInCache(kOrigin2_));
+  ASSERT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
+  ASSERT_TRUE(ClientExistsInCacheForOrigin(kOrigin2_));
 
   cache()->RemoveAllClients();
 
   EXPECT_EQ(0u, cache()->GetEndpointCount());
-  EXPECT_FALSE(OriginClientExistsInCache(kOrigin1_));
-  EXPECT_FALSE(OriginClientExistsInCache(kOrigin2_));
+  EXPECT_FALSE(ClientExistsInCacheForOrigin(kOrigin1_));
+  EXPECT_FALSE(ClientExistsInCacheForOrigin(kOrigin2_));
 
   if (store()) {
     store()->Flush();
@@ -551,37 +716,20 @@
               store()->CountCommands(CommandType::DELETE_REPORTING_ENDPOINT));
     EXPECT_EQ(3, store()->CountCommands(
                      CommandType::DELETE_REPORTING_ENDPOINT_GROUP));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin1_, kGroup1_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint1_}));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin1_, kGroup1_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin2_, kGroup1_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint1_}));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin2_, kGroup2_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin1_, kGroup1_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin2_, kGroup1_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin2_, kGroup2_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey11_, kEndpoint1_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey11_, kEndpoint2_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey21_, kEndpoint1_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey22_, kEndpoint2_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey11_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey21_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey22_);
     EXPECT_THAT(store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -590,37 +738,37 @@
 TEST_P(ReportingCacheTest, RemoveEndpointGroup) {
   LoadReportingClients();
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint1_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint2_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup1_, kEndpoint1_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup2_, kEndpoint2_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint2_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey21_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey22_, kEndpoint2_, kExpires1_));
   EXPECT_EQ(4u, cache()->GetEndpointCount());
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin1_));
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin2_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin2_));
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin1_, kGroup1_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey11_, OriginSubdomains::DEFAULT, kExpires1_));
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin2_, kGroup1_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey21_, OriginSubdomains::DEFAULT, kExpires1_));
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin2_, kGroup2_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey22_, OriginSubdomains::DEFAULT, kExpires1_));
 
-  cache()->RemoveEndpointGroup(kOrigin2_, kGroup1_);
+  cache()->RemoveEndpointGroup(kGroupKey21_);
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin1_, kGroup1_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey11_, OriginSubdomains::DEFAULT, kExpires1_));
   EXPECT_FALSE(EndpointGroupExistsInCache(
-      kOrigin2_, kGroup1_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey21_, OriginSubdomains::DEFAULT, kExpires1_));
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin2_, kGroup2_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey22_, OriginSubdomains::DEFAULT, kExpires1_));
 
-  cache()->RemoveEndpointGroup(kOrigin2_, kGroup2_);
+  cache()->RemoveEndpointGroup(kGroupKey22_);
   EXPECT_FALSE(EndpointGroupExistsInCache(
-      kOrigin2_, kGroup2_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey22_, OriginSubdomains::DEFAULT, kExpires1_));
   // Removal of the last group for an origin also removes the client.
-  EXPECT_FALSE(OriginClientExistsInCache(kOrigin2_));
+  EXPECT_FALSE(ClientExistsInCacheForOrigin(kOrigin2_));
   // Other origins are not affected.
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin1_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin1_, kGroup1_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey11_, OriginSubdomains::DEFAULT, kExpires1_));
 
   if (store()) {
     store()->Flush();
@@ -635,24 +783,14 @@
     EXPECT_EQ(2, store()->CountCommands(
                      CommandType::DELETE_REPORTING_ENDPOINT_GROUP));
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin2_, kGroup1_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint1_}));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin2_, kGroup2_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin2_, kGroup1_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin2_, kGroup2_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey21_, kEndpoint1_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey22_, kEndpoint2_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey21_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey22_);
     EXPECT_THAT(store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -661,35 +799,35 @@
 TEST_P(ReportingCacheTest, RemoveEndpointsForUrl) {
   LoadReportingClients();
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint1_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint2_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup1_, kEndpoint1_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup2_, kEndpoint2_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint2_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey21_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey22_, kEndpoint2_, kExpires1_));
   EXPECT_EQ(4u, cache()->GetEndpointCount());
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin1_));
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin2_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin2_));
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin1_, kGroup1_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey11_, OriginSubdomains::DEFAULT, kExpires1_));
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin2_, kGroup1_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey21_, OriginSubdomains::DEFAULT, kExpires1_));
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin2_, kGroup2_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey22_, OriginSubdomains::DEFAULT, kExpires1_));
 
   cache()->RemoveEndpointsForUrl(kEndpoint1_);
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin1_));
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin2_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin2_));
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin1_, kGroup1_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey11_, OriginSubdomains::DEFAULT, kExpires1_));
   EXPECT_FALSE(EndpointGroupExistsInCache(
-      kOrigin2_, kGroup1_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey21_, OriginSubdomains::DEFAULT, kExpires1_));
   EXPECT_TRUE(EndpointGroupExistsInCache(
-      kOrigin2_, kGroup2_, OriginSubdomains::DEFAULT, kExpires1_));
+      kGroupKey22_, OriginSubdomains::DEFAULT, kExpires1_));
 
   EXPECT_EQ(2u, cache()->GetEndpointCount());
-  EXPECT_FALSE(FindEndpointInCache(kOrigin1_, kGroup1_, kEndpoint1_));
-  EXPECT_TRUE(FindEndpointInCache(kOrigin1_, kGroup1_, kEndpoint2_));
-  EXPECT_FALSE(FindEndpointInCache(kOrigin2_, kGroup1_, kEndpoint1_));
-  EXPECT_TRUE(FindEndpointInCache(kOrigin2_, kGroup2_, kEndpoint2_));
+  EXPECT_FALSE(FindEndpointInCache(kGroupKey11_, kEndpoint1_));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey11_, kEndpoint2_));
+  EXPECT_FALSE(FindEndpointInCache(kGroupKey21_, kEndpoint1_));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey22_, kEndpoint2_));
 
   if (store()) {
     store()->Flush();
@@ -704,19 +842,12 @@
     EXPECT_EQ(1, store()->CountCommands(
                      CommandType::DELETE_REPORTING_ENDPOINT_GROUP));
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin1_, kGroup1_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint1_}));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin2_, kGroup1_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint1_}));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin2_, kGroup1_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey11_, kEndpoint1_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey21_, kEndpoint1_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey21_);
     EXPECT_THAT(store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -731,21 +862,23 @@
       base::TimeTicks() + base::TimeDelta::FromDays(7);
   const base::Time expires =
       base::Time::UnixEpoch() + (expires_ticks - base::TimeTicks::UnixEpoch());
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint1_, expires,
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint1_, expires,
                                  OriginSubdomains::EXCLUDE));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup1_, kEndpoint2_, expires,
+  ASSERT_TRUE(SetEndpointInCache(kOtherGroupKey21_, kEndpoint2_, expires,
                                  OriginSubdomains::INCLUDE));
 
-  cache()->IncrementEndpointDeliveries(kOrigin1_, kGroup1_, kEndpoint1_,
+  cache()->IncrementEndpointDeliveries(kGroupKey11_, kEndpoint1_,
                                        /* reports */ 2, /* succeeded */ true);
-  cache()->IncrementEndpointDeliveries(kOrigin2_, kGroup1_, kEndpoint2_,
+  cache()->IncrementEndpointDeliveries(kOtherGroupKey21_, kEndpoint2_,
                                        /* reports */ 1, /* succeeded */ false);
 
   base::Value actual = cache()->GetClientsAsValue();
   std::unique_ptr<base::Value> expected =
-      base::test::ParseJsonDeprecated(R"json(
+      base::test::ParseJsonDeprecated(base::StringPrintf(
+          R"json(
       [
         {
+          "network_isolation_key": "%s",
           "origin": "https://origin1",
           "groups": [
             {
@@ -761,6 +894,7 @@
           ],
         },
         {
+          "network_isolation_key": "%s",
           "origin": "https://origin2",
           "groups": [
             {
@@ -776,7 +910,8 @@
           ],
         },
       ]
-      )json");
+      )json",
+          kNik_.ToDebugString().data(), kOtherNik_.ToDebugString().data()));
 
   // Compare disregarding order.
   auto expected_list = expected->TakeList();
@@ -789,49 +924,64 @@
 TEST_P(ReportingCacheTest, GetCandidateEndpointsForDelivery) {
   LoadReportingClients();
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint1_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint2_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup1_, kEndpoint1_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup2_, kEndpoint2_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint2_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey21_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey22_, kEndpoint2_, kExpires1_));
   std::vector<ReportingEndpoint> candidate_endpoints =
-      cache()->GetCandidateEndpointsForDelivery(NetworkIsolationKey(),
-                                                kOrigin1_, kGroup1_);
+      cache()->GetCandidateEndpointsForDelivery(kGroupKey11_);
   ASSERT_EQ(2u, candidate_endpoints.size());
-  for (const ReportingEndpoint& endpoint : candidate_endpoints) {
-    EXPECT_EQ(kOrigin1_, endpoint.group_key.origin);
-    EXPECT_EQ(kGroup1_, endpoint.group_key.group_name);
-  }
+  EXPECT_EQ(kGroupKey11_, candidate_endpoints[0].group_key);
+  EXPECT_EQ(kGroupKey11_, candidate_endpoints[1].group_key);
 
-  candidate_endpoints = cache()->GetCandidateEndpointsForDelivery(
-      NetworkIsolationKey(), kOrigin2_, kGroup1_);
+  candidate_endpoints = cache()->GetCandidateEndpointsForDelivery(kGroupKey21_);
   ASSERT_EQ(1u, candidate_endpoints.size());
-  EXPECT_EQ(kOrigin2_, candidate_endpoints[0].group_key.origin);
-  EXPECT_EQ(kGroup1_, candidate_endpoints[0].group_key.group_name);
+  EXPECT_EQ(kGroupKey21_, candidate_endpoints[0].group_key);
+}
+
+TEST_P(ReportingCacheTest, GetCandidateEndpointsDifferentNik) {
+  LoadReportingClients();
+
+  // Test that NIKs are respected by using 2 groups with the same origin and
+  // group name but different NIKs.
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint2_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kOtherGroupKey11_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kOtherGroupKey11_, kEndpoint2_, kExpires1_));
+
+  std::vector<ReportingEndpoint> candidate_endpoints =
+      cache()->GetCandidateEndpointsForDelivery(kGroupKey11_);
+  ASSERT_EQ(2u, candidate_endpoints.size());
+  EXPECT_EQ(kGroupKey11_, candidate_endpoints[0].group_key);
+  EXPECT_EQ(kGroupKey11_, candidate_endpoints[1].group_key);
+
+  candidate_endpoints =
+      cache()->GetCandidateEndpointsForDelivery(kOtherGroupKey11_);
+  ASSERT_EQ(2u, candidate_endpoints.size());
+  EXPECT_EQ(kOtherGroupKey11_, candidate_endpoints[0].group_key);
+  EXPECT_EQ(kOtherGroupKey11_, candidate_endpoints[1].group_key);
 }
 
 TEST_P(ReportingCacheTest, GetCandidateEndpointsExcludesExpired) {
   LoadReportingClients();
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint1_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint2_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup1_, kEndpoint1_, kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin2_, kGroup2_, kEndpoint2_, kExpires2_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, kEndpoint2_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey21_, kEndpoint1_, kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey22_, kEndpoint2_, kExpires2_));
   // Make kExpires1_ expired but not kExpires2_.
   clock()->Advance(base::TimeDelta::FromDays(8));
   ASSERT_GT(clock()->Now(), kExpires1_);
   ASSERT_LT(clock()->Now(), kExpires2_);
 
   std::vector<ReportingEndpoint> candidate_endpoints =
-      cache()->GetCandidateEndpointsForDelivery(NetworkIsolationKey(),
-                                                kOrigin1_, kGroup1_);
+      cache()->GetCandidateEndpointsForDelivery(kGroupKey11_);
   ASSERT_EQ(0u, candidate_endpoints.size());
 
-  candidate_endpoints = cache()->GetCandidateEndpointsForDelivery(
-      NetworkIsolationKey(), kOrigin2_, kGroup1_);
+  candidate_endpoints = cache()->GetCandidateEndpointsForDelivery(kGroupKey21_);
   ASSERT_EQ(0u, candidate_endpoints.size());
 
-  candidate_endpoints = cache()->GetCandidateEndpointsForDelivery(
-      NetworkIsolationKey(), kOrigin2_, kGroup2_);
+  candidate_endpoints = cache()->GetCandidateEndpointsForDelivery(kGroupKey22_);
   ASSERT_EQ(1u, candidate_endpoints.size());
   EXPECT_EQ(kEndpoint2_, candidate_endpoints[0].info.url);
 }
@@ -843,12 +993,13 @@
   const url::Origin kDifferentPortOrigin =
       url::Origin::Create(GURL("https://example:444/"));
 
-  ASSERT_TRUE(SetEndpointInCache(kDifferentPortOrigin, kGroup1_, kEndpoint1_,
-                                 kExpires1_, OriginSubdomains::EXCLUDE));
+  ASSERT_TRUE(SetEndpointInCache(
+      ReportingEndpointGroupKey(kNik_, kDifferentPortOrigin, kGroup1_),
+      kEndpoint1_, kExpires1_, OriginSubdomains::EXCLUDE));
 
   std::vector<ReportingEndpoint> candidate_endpoints =
-      cache()->GetCandidateEndpointsForDelivery(NetworkIsolationKey(), kOrigin,
-                                                kGroup1_);
+      cache()->GetCandidateEndpointsForDelivery(
+          ReportingEndpointGroupKey(kNik_, kOrigin, kGroup1_));
   ASSERT_EQ(0u, candidate_endpoints.size());
 }
 
@@ -859,12 +1010,13 @@
   const url::Origin kSuperOrigin =
       url::Origin::Create(GURL("https://example/"));
 
-  ASSERT_TRUE(SetEndpointInCache(kSuperOrigin, kGroup1_, kEndpoint1_,
-                                 kExpires1_, OriginSubdomains::EXCLUDE));
+  ASSERT_TRUE(SetEndpointInCache(
+      ReportingEndpointGroupKey(kNik_, kSuperOrigin, kGroup1_), kEndpoint1_,
+      kExpires1_, OriginSubdomains::EXCLUDE));
 
   std::vector<ReportingEndpoint> candidate_endpoints =
-      cache()->GetCandidateEndpointsForDelivery(NetworkIsolationKey(), kOrigin,
-                                                kGroup1_);
+      cache()->GetCandidateEndpointsForDelivery(
+          ReportingEndpointGroupKey(kNik_, kOrigin, kGroup1_));
   ASSERT_EQ(0u, candidate_endpoints.size());
 }
 
@@ -875,12 +1027,13 @@
   const url::Origin kDifferentPortOrigin =
       url::Origin::Create(GURL("https://example:444/"));
 
-  ASSERT_TRUE(SetEndpointInCache(kDifferentPortOrigin, kGroup1_, kEndpoint1_,
-                                 kExpires1_, OriginSubdomains::INCLUDE));
+  ASSERT_TRUE(SetEndpointInCache(
+      ReportingEndpointGroupKey(kNik_, kDifferentPortOrigin, kGroup1_),
+      kEndpoint1_, kExpires1_, OriginSubdomains::INCLUDE));
 
   std::vector<ReportingEndpoint> candidate_endpoints =
-      cache()->GetCandidateEndpointsForDelivery(NetworkIsolationKey(), kOrigin,
-                                                kGroup1_);
+      cache()->GetCandidateEndpointsForDelivery(
+          ReportingEndpointGroupKey(kNik_, kOrigin, kGroup1_));
   ASSERT_EQ(1u, candidate_endpoints.size());
   EXPECT_EQ(kDifferentPortOrigin, candidate_endpoints[0].group_key.origin);
 }
@@ -892,12 +1045,13 @@
   const url::Origin kSuperOrigin =
       url::Origin::Create(GURL("https://example/"));
 
-  ASSERT_TRUE(SetEndpointInCache(kSuperOrigin, kGroup1_, kEndpoint1_,
-                                 kExpires1_, OriginSubdomains::INCLUDE));
+  ASSERT_TRUE(SetEndpointInCache(
+      ReportingEndpointGroupKey(kNik_, kSuperOrigin, kGroup1_), kEndpoint1_,
+      kExpires1_, OriginSubdomains::INCLUDE));
 
   std::vector<ReportingEndpoint> candidate_endpoints =
-      cache()->GetCandidateEndpointsForDelivery(NetworkIsolationKey(), kOrigin,
-                                                kGroup1_);
+      cache()->GetCandidateEndpointsForDelivery(
+          ReportingEndpointGroupKey(kNik_, kOrigin, kGroup1_));
   ASSERT_EQ(1u, candidate_endpoints.size());
   EXPECT_EQ(kSuperOrigin, candidate_endpoints[0].group_key.origin);
 }
@@ -909,14 +1063,16 @@
   const url::Origin kDifferentPortOrigin =
       url::Origin::Create(GURL("https://example:444/"));
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin, kGroup1_, kEndpoint1_, kExpires1_,
-                                 OriginSubdomains::INCLUDE));
-  ASSERT_TRUE(SetEndpointInCache(kDifferentPortOrigin, kGroup1_, kEndpoint1_,
-                                 kExpires1_, OriginSubdomains::INCLUDE));
+  ASSERT_TRUE(
+      SetEndpointInCache(ReportingEndpointGroupKey(kNik_, kOrigin, kGroup1_),
+                         kEndpoint1_, kExpires1_, OriginSubdomains::INCLUDE));
+  ASSERT_TRUE(SetEndpointInCache(
+      ReportingEndpointGroupKey(kNik_, kDifferentPortOrigin, kGroup1_),
+      kEndpoint1_, kExpires1_, OriginSubdomains::INCLUDE));
 
   std::vector<ReportingEndpoint> candidate_endpoints =
-      cache()->GetCandidateEndpointsForDelivery(NetworkIsolationKey(), kOrigin,
-                                                kGroup1_);
+      cache()->GetCandidateEndpointsForDelivery(
+          ReportingEndpointGroupKey(kNik_, kOrigin, kGroup1_));
   ASSERT_EQ(1u, candidate_endpoints.size());
   EXPECT_EQ(kOrigin, candidate_endpoints[0].group_key.origin);
 }
@@ -928,14 +1084,16 @@
   const url::Origin kSuperOrigin =
       url::Origin::Create(GURL("https://example/"));
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin, kGroup1_, kEndpoint1_, kExpires1_,
-                                 OriginSubdomains::INCLUDE));
-  ASSERT_TRUE(SetEndpointInCache(kSuperOrigin, kGroup1_, kEndpoint1_,
-                                 kExpires1_, OriginSubdomains::INCLUDE));
+  ASSERT_TRUE(
+      SetEndpointInCache(ReportingEndpointGroupKey(kNik_, kOrigin, kGroup1_),
+                         kEndpoint1_, kExpires1_, OriginSubdomains::INCLUDE));
+  ASSERT_TRUE(SetEndpointInCache(
+      ReportingEndpointGroupKey(kNik_, kSuperOrigin, kGroup1_), kEndpoint1_,
+      kExpires1_, OriginSubdomains::INCLUDE));
 
   std::vector<ReportingEndpoint> candidate_endpoints =
-      cache()->GetCandidateEndpointsForDelivery(NetworkIsolationKey(), kOrigin,
-                                                kGroup1_);
+      cache()->GetCandidateEndpointsForDelivery(
+          ReportingEndpointGroupKey(kNik_, kOrigin, kGroup1_));
   ASSERT_EQ(1u, candidate_endpoints.size());
   EXPECT_EQ(kOrigin, candidate_endpoints[0].group_key.origin);
 }
@@ -950,18 +1108,41 @@
   const url::Origin kSuperSuperOrigin =
       url::Origin::Create(GURL("https://example/"));
 
-  ASSERT_TRUE(SetEndpointInCache(kSuperOrigin, kGroup1_, kEndpoint1_,
-                                 kExpires1_, OriginSubdomains::INCLUDE));
-  ASSERT_TRUE(SetEndpointInCache(kSuperSuperOrigin, kGroup1_, kEndpoint1_,
-                                 kExpires1_, OriginSubdomains::INCLUDE));
+  ASSERT_TRUE(SetEndpointInCache(
+      ReportingEndpointGroupKey(kNik_, kSuperOrigin, kGroup1_), kEndpoint1_,
+      kExpires1_, OriginSubdomains::INCLUDE));
+  ASSERT_TRUE(SetEndpointInCache(
+      ReportingEndpointGroupKey(kNik_, kSuperSuperOrigin, kGroup1_),
+      kEndpoint1_, kExpires1_, OriginSubdomains::INCLUDE));
 
   std::vector<ReportingEndpoint> candidate_endpoints =
-      cache()->GetCandidateEndpointsForDelivery(NetworkIsolationKey(), kOrigin,
-                                                kGroup1_);
+      cache()->GetCandidateEndpointsForDelivery(
+          ReportingEndpointGroupKey(kNik_, kOrigin, kGroup1_));
   ASSERT_EQ(1u, candidate_endpoints.size());
   EXPECT_EQ(kSuperOrigin, candidate_endpoints[0].group_key.origin);
 }
 
+TEST_P(ReportingCacheTest, IncludeSubdomainsPreserveNik) {
+  LoadReportingClients();
+
+  const url::Origin kOrigin = url::Origin::Create(GURL("https://foo.example/"));
+  const url::Origin kSuperOrigin =
+      url::Origin::Create(GURL("https://example/"));
+
+  ASSERT_TRUE(SetEndpointInCache(
+      ReportingEndpointGroupKey(kNik_, kSuperOrigin, kGroup1_), kEndpoint1_,
+      kExpires1_, OriginSubdomains::INCLUDE));
+  ASSERT_TRUE(SetEndpointInCache(
+      ReportingEndpointGroupKey(kOtherNik_, kSuperOrigin, kGroup1_),
+      kEndpoint1_, kExpires1_, OriginSubdomains::INCLUDE));
+
+  std::vector<ReportingEndpoint> candidate_endpoints =
+      cache()->GetCandidateEndpointsForDelivery(
+          ReportingEndpointGroupKey(kOtherNik_, kOrigin, kGroup1_));
+  ASSERT_EQ(1u, candidate_endpoints.size());
+  EXPECT_EQ(kOtherNik_, candidate_endpoints[0].group_key.network_isolation_key);
+}
+
 TEST_P(ReportingCacheTest, EvictOldestReport) {
   LoadReportingClients();
 
@@ -1041,13 +1222,12 @@
   LoadReportingClients();
 
   for (size_t i = 0; i < policy().max_endpoints_per_origin; ++i) {
-    ASSERT_TRUE(
-        SetEndpointInCache(kOrigin1_, kGroup1_, MakeURL(i), kExpires1_));
+    ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, MakeURL(i), kExpires1_));
     EXPECT_EQ(i + 1, cache()->GetEndpointCount());
   }
   EXPECT_EQ(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
   // Insert one more endpoint; eviction should be triggered.
-  SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint1_, kExpires1_);
+  SetEndpointInCache(kGroupKey11_, kEndpoint1_, kExpires1_);
   EXPECT_EQ(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
 }
 
@@ -1055,35 +1235,32 @@
   LoadReportingClients();
 
   for (size_t i = 0; i < policy().max_endpoints_per_origin; ++i) {
-    ASSERT_TRUE(
-        SetEndpointInCache(kOrigin1_, kGroup1_, MakeURL(i), kExpires1_));
+    ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, MakeURL(i), kExpires1_));
     EXPECT_EQ(i + 1, cache()->GetEndpointCount());
   }
   EXPECT_EQ(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
 
   // Make the group expired (but not stale).
   clock()->SetNow(kExpires1_ - base::TimeDelta::FromMinutes(1));
-  cache()->GetCandidateEndpointsForDelivery(NetworkIsolationKey(), kOrigin1_,
-                                            kGroup1_);
+  cache()->GetCandidateEndpointsForDelivery(kGroupKey11_);
   clock()->SetNow(kExpires1_ + base::TimeDelta::FromMinutes(1));
 
   // Insert one more endpoint in a different group (not expired); eviction
   // should be triggered and the expired group should be deleted.
-  SetEndpointInCache(kOrigin1_, kGroup2_, kEndpoint1_, kExpires2_);
+  SetEndpointInCache(kGroupKey12_, kEndpoint1_, kExpires2_);
   EXPECT_GE(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin1_));
-  EXPECT_FALSE(EndpointGroupExistsInCache(kOrigin1_, kGroup1_,
-                                          OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin1_, kGroup2_,
-                                         OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
+  EXPECT_FALSE(
+      EndpointGroupExistsInCache(kGroupKey11_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kGroupKey12_, OriginSubdomains::DEFAULT));
 }
 
 TEST_P(ReportingCacheTest, EvictStaleGroups) {
   LoadReportingClients();
 
   for (size_t i = 0; i < policy().max_endpoints_per_origin; ++i) {
-    ASSERT_TRUE(
-        SetEndpointInCache(kOrigin1_, kGroup1_, MakeURL(i), kExpires1_));
+    ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, MakeURL(i), kExpires1_));
     EXPECT_EQ(i + 1, cache()->GetEndpointCount());
   }
   EXPECT_EQ(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
@@ -1094,27 +1271,27 @@
 
   // Insert one more endpoint in a different group; eviction should be
   // triggered and the stale group should be deleted.
-  SetEndpointInCache(kOrigin1_, kGroup2_, kEndpoint1_, kExpires1_);
+  SetEndpointInCache(kGroupKey12_, kEndpoint1_, kExpires1_);
   EXPECT_GE(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin1_));
-  EXPECT_FALSE(EndpointGroupExistsInCache(kOrigin1_, kGroup1_,
-                                          OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin1_, kGroup2_,
-                                         OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
+  EXPECT_FALSE(
+      EndpointGroupExistsInCache(kGroupKey11_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kGroupKey12_, OriginSubdomains::DEFAULT));
 }
 
 TEST_P(ReportingCacheTest, EvictFromStalestGroup) {
   LoadReportingClients();
 
   for (size_t i = 0; i < policy().max_endpoints_per_origin; ++i) {
-    ASSERT_TRUE(SetEndpointInCache(kOrigin1_, base::NumberToString(i),
-                                   MakeURL(i), kExpires1_));
+    ReportingEndpointGroupKey group_key(kNik_, kOrigin1_,
+                                        base::NumberToString(i));
+    ASSERT_TRUE(SetEndpointInCache(group_key, MakeURL(i), kExpires1_));
     EXPECT_EQ(i + 1, cache()->GetEndpointCount());
-    EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin1_, base::NumberToString(i),
-                                           OriginSubdomains::DEFAULT));
+    EXPECT_TRUE(
+        EndpointGroupExistsInCache(group_key, OriginSubdomains::DEFAULT));
     // Mark group used.
-    cache()->GetCandidateEndpointsForDelivery(NetworkIsolationKey(), kOrigin1_,
-                                              base::NumberToString(i));
+    cache()->GetCandidateEndpointsForDelivery(group_key);
     clock()->Advance(base::TimeDelta::FromMinutes(1));
   }
   EXPECT_EQ(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
@@ -1122,58 +1299,61 @@
   // Insert one more endpoint in a different group; eviction should be
   // triggered and (only) the stalest group should be evicted from (and in this
   // case deleted).
-  SetEndpointInCache(kOrigin1_, kGroup2_, kEndpoint1_, kExpires1_);
+  SetEndpointInCache(kGroupKey12_, kEndpoint1_, kExpires1_);
   EXPECT_GE(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin1_));
-  EXPECT_FALSE(
-      EndpointGroupExistsInCache(kOrigin1_, "0", OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin1_, kGroup2_,
-                                         OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
+  EXPECT_FALSE(EndpointGroupExistsInCache(
+      ReportingEndpointGroupKey(kNik_, kOrigin1_, "0"),
+      OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kGroupKey12_, OriginSubdomains::DEFAULT));
   for (size_t i = 1; i < policy().max_endpoints_per_origin; ++i) {
-    EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin1_, base::NumberToString(i),
-                                           OriginSubdomains::DEFAULT));
+    ReportingEndpointGroupKey group_key(kNik_, kOrigin1_,
+                                        base::NumberToString(i));
+    EXPECT_TRUE(
+        EndpointGroupExistsInCache(group_key, OriginSubdomains::DEFAULT));
   }
 }
 
 TEST_P(ReportingCacheTest, EvictFromLargestGroup) {
   LoadReportingClients();
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, MakeURL(0), kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, MakeURL(0), kExpires1_));
   // This group should be evicted from because it has 2 endpoints.
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup2_, MakeURL(1), kExpires1_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup2_, MakeURL(2), kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey12_, MakeURL(1), kExpires1_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey12_, MakeURL(2), kExpires1_));
 
   // max_endpoints_per_origin is set to 3.
   ASSERT_EQ(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
 
   // Insert one more endpoint in a different group; eviction should be
   // triggered.
-  SetEndpointInCache(kOrigin1_, "default", kEndpoint1_, kExpires1_);
+  SetEndpointInCache(ReportingEndpointGroupKey(kNik_, kOrigin1_, "default"),
+                     kEndpoint1_, kExpires1_);
   EXPECT_EQ(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
 
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin1_, kGroup1_,
-                                         OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin1_, kGroup2_,
-                                         OriginSubdomains::DEFAULT));
-  // Count the number of endpoints remaining in kGroup2_.
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kGroupKey11_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kGroupKey12_, OriginSubdomains::DEFAULT));
+  // Count the number of endpoints remaining in kGroupKey12_.
   std::vector<ReportingEndpoint> endpoints_in_group =
-      cache()->GetCandidateEndpointsForDelivery(NetworkIsolationKey(),
-                                                kOrigin1_, kGroup2_);
+      cache()->GetCandidateEndpointsForDelivery(kGroupKey12_);
   EXPECT_EQ(1u, endpoints_in_group.size());
 }
 
 TEST_P(ReportingCacheTest, EvictLeastImportantEndpoint) {
   LoadReportingClients();
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, MakeURL(0), kExpires1_,
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, MakeURL(0), kExpires1_,
                                  OriginSubdomains::DEFAULT, 1 /* priority*/,
                                  1 /* weight */));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, MakeURL(1), kExpires1_,
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, MakeURL(1), kExpires1_,
                                  OriginSubdomains::DEFAULT, 2 /* priority */,
                                  2 /* weight */));
   // This endpoint will be evicted because it is lowest priority and lowest
   // weight.
-  ASSERT_TRUE(SetEndpointInCache(kOrigin1_, kGroup1_, MakeURL(2), kExpires1_,
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey11_, MakeURL(2), kExpires1_,
                                  OriginSubdomains::DEFAULT, 2 /* priority */,
                                  1 /* weight */));
 
@@ -1182,13 +1362,13 @@
 
   // Insert one more endpoint in a different group; eviction should be
   // triggered and the least important endpoint should be deleted.
-  SetEndpointInCache(kOrigin1_, kGroup2_, kEndpoint1_, kExpires1_);
+  SetEndpointInCache(kGroupKey12_, kEndpoint1_, kExpires1_);
   EXPECT_EQ(policy().max_endpoints_per_origin, cache()->GetEndpointCount());
 
-  EXPECT_TRUE(FindEndpointInCache(kOrigin1_, kGroup1_, MakeURL(0)));
-  EXPECT_TRUE(FindEndpointInCache(kOrigin1_, kGroup1_, MakeURL(1)));
-  EXPECT_FALSE(FindEndpointInCache(kOrigin1_, kGroup1_, MakeURL(2)));
-  EXPECT_TRUE(FindEndpointInCache(kOrigin1_, kGroup2_, kEndpoint1_));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey11_, MakeURL(0)));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey11_, MakeURL(1)));
+  EXPECT_FALSE(FindEndpointInCache(kGroupKey11_, MakeURL(2)));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey12_, kEndpoint1_));
 }
 
 TEST_P(ReportingCacheTest, EvictEndpointsOverGlobalLimitFromStalestClient) {
@@ -1196,8 +1376,9 @@
 
   // Set enough endpoints to reach the global endpoint limit.
   for (size_t i = 0; i < policy().max_endpoint_count; ++i) {
-    ASSERT_TRUE(SetEndpointInCache(url::Origin::Create(MakeURL(i)), kGroup1_,
-                                   MakeURL(i), kExpires1_));
+    ReportingEndpointGroupKey group_key(kNik_, url::Origin::Create(MakeURL(i)),
+                                        kGroup1_);
+    ASSERT_TRUE(SetEndpointInCache(group_key, MakeURL(i), kExpires1_));
     EXPECT_EQ(i + 1, cache()->GetEndpointCount());
     clock()->Advance(base::TimeDelta::FromMinutes(1));
   }
@@ -1206,13 +1387,13 @@
   // Insert one more endpoint for a different origin; eviction should be
   // triggered and the stalest client should be evicted from (and in this case
   // deleted).
-  SetEndpointInCache(kOrigin1_, kGroup1_, kEndpoint1_, kExpires1_);
+  SetEndpointInCache(kGroupKey11_, kEndpoint1_, kExpires1_);
   EXPECT_EQ(policy().max_endpoint_count, cache()->GetEndpointCount());
-  EXPECT_FALSE(OriginClientExistsInCache(url::Origin::Create(MakeURL(0))));
+  EXPECT_FALSE(ClientExistsInCacheForOrigin(url::Origin::Create(MakeURL(0))));
   for (size_t i = 1; i < policy().max_endpoint_count; ++i) {
-    EXPECT_TRUE(OriginClientExistsInCache(url::Origin::Create(MakeURL(i))));
+    EXPECT_TRUE(ClientExistsInCacheForOrigin(url::Origin::Create(MakeURL(i))));
   }
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin1_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
 }
 
 TEST_P(ReportingCacheTest, AddClientsLoadedFromStore) {
@@ -1222,22 +1403,22 @@
   base::Time now = clock()->Now();
 
   std::vector<ReportingEndpoint> endpoints;
-  endpoints.emplace_back(kOrigin1_, kGroup1_,
+  endpoints.emplace_back(kGroupKey11_,
                          ReportingEndpoint::EndpointInfo{kEndpoint1_});
-  endpoints.emplace_back(kOrigin2_, kGroup2_,
+  endpoints.emplace_back(kGroupKey22_,
                          ReportingEndpoint::EndpointInfo{kEndpoint2_});
-  endpoints.emplace_back(kOrigin1_, kGroup1_,
+  endpoints.emplace_back(kGroupKey11_,
                          ReportingEndpoint::EndpointInfo{kEndpoint2_});
-  endpoints.emplace_back(kOrigin2_, kGroup1_,
+  endpoints.emplace_back(kGroupKey21_,
                          ReportingEndpoint::EndpointInfo{kEndpoint1_});
   std::vector<CachedReportingEndpointGroup> groups;
-  groups.emplace_back(kOrigin2_, kGroup1_, OriginSubdomains::DEFAULT,
+  groups.emplace_back(kGroupKey21_, OriginSubdomains::DEFAULT,
                       now + base::TimeDelta::FromMinutes(2) /* expires */,
                       now /* last_used */);
-  groups.emplace_back(kOrigin1_, kGroup1_, OriginSubdomains::DEFAULT,
+  groups.emplace_back(kGroupKey11_, OriginSubdomains::DEFAULT,
                       now + base::TimeDelta::FromMinutes(1) /* expires */,
                       now /* last_used */);
-  groups.emplace_back(kOrigin2_, kGroup2_, OriginSubdomains::DEFAULT,
+  groups.emplace_back(kGroupKey22_, OriginSubdomains::DEFAULT,
                       now + base::TimeDelta::FromMinutes(3) /* expires */,
                       now /* last_used */);
   store()->SetPrestoredClients(endpoints, groups);
@@ -1246,21 +1427,77 @@
 
   EXPECT_EQ(4u, cache()->GetEndpointCount());
   EXPECT_EQ(3u, cache()->GetEndpointGroupCountForTesting());
-  EXPECT_TRUE(EndpointExistsInCache(kOrigin1_, kGroup1_, kEndpoint1_));
-  EXPECT_TRUE(EndpointExistsInCache(kOrigin1_, kGroup1_, kEndpoint2_));
-  EXPECT_TRUE(EndpointExistsInCache(kOrigin2_, kGroup1_, kEndpoint1_));
-  EXPECT_TRUE(EndpointExistsInCache(kOrigin2_, kGroup2_, kEndpoint2_));
+  EXPECT_TRUE(EndpointExistsInCache(kGroupKey11_, kEndpoint1_));
+  EXPECT_TRUE(EndpointExistsInCache(kGroupKey11_, kEndpoint2_));
+  EXPECT_TRUE(EndpointExistsInCache(kGroupKey21_, kEndpoint1_));
+  EXPECT_TRUE(EndpointExistsInCache(kGroupKey22_, kEndpoint2_));
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin1_, kGroup1_, OriginSubdomains::DEFAULT,
+      EndpointGroupExistsInCache(kGroupKey11_, OriginSubdomains::DEFAULT,
                                  now + base::TimeDelta::FromMinutes(1)));
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin2_, kGroup1_, OriginSubdomains::DEFAULT,
+      EndpointGroupExistsInCache(kGroupKey21_, OriginSubdomains::DEFAULT,
                                  now + base::TimeDelta::FromMinutes(2)));
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin2_, kGroup2_, OriginSubdomains::DEFAULT,
+      EndpointGroupExistsInCache(kGroupKey22_, OriginSubdomains::DEFAULT,
                                  now + base::TimeDelta::FromMinutes(3)));
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin1_));
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin2_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin1_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin2_));
+}
+
+TEST_P(ReportingCacheTest, AddStoredClientsWithDifferentNetworkIsolationKeys) {
+  if (!store())
+    return;
+
+  base::Time now = clock()->Now();
+
+  // This should create 4 different clients, for (2 origins) x (2 NIKs).
+  // Intentionally in a weird order to check sorting.
+  std::vector<ReportingEndpoint> endpoints;
+  endpoints.emplace_back(kGroupKey11_,
+                         ReportingEndpoint::EndpointInfo{kEndpoint1_});
+  endpoints.emplace_back(kGroupKey21_,
+                         ReportingEndpoint::EndpointInfo{kEndpoint1_});
+  endpoints.emplace_back(kOtherGroupKey21_,
+                         ReportingEndpoint::EndpointInfo{kEndpoint1_});
+  endpoints.emplace_back(kOtherGroupKey11_,
+                         ReportingEndpoint::EndpointInfo{kEndpoint1_});
+  std::vector<CachedReportingEndpointGroup> groups;
+  groups.emplace_back(kGroupKey21_, OriginSubdomains::DEFAULT,
+                      now /* expires */, now /* last_used */);
+  groups.emplace_back(kOtherGroupKey21_, OriginSubdomains::DEFAULT,
+                      now /* expires */, now /* last_used */);
+  groups.emplace_back(kOtherGroupKey11_, OriginSubdomains::DEFAULT,
+                      now /* expires */, now /* last_used */);
+  groups.emplace_back(kGroupKey11_, OriginSubdomains::DEFAULT,
+                      now /* expires */, now /* last_used */);
+
+  store()->SetPrestoredClients(endpoints, groups);
+
+  LoadReportingClients();
+
+  EXPECT_EQ(4u, cache()->GetEndpointCount());
+  EXPECT_EQ(4u, cache()->GetEndpointGroupCountForTesting());
+  EXPECT_EQ(4u, cache()->GetClientCountForTesting());
+  EXPECT_TRUE(EndpointExistsInCache(kGroupKey11_, kEndpoint1_));
+  EXPECT_TRUE(EndpointExistsInCache(kGroupKey21_, kEndpoint1_));
+  EXPECT_TRUE(EndpointExistsInCache(kOtherGroupKey11_, kEndpoint1_));
+  EXPECT_TRUE(EndpointExistsInCache(kOtherGroupKey21_, kEndpoint1_));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kGroupKey11_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kGroupKey21_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kOtherGroupKey11_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kOtherGroupKey21_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(cache()->ClientExistsForTesting(
+      kGroupKey11_.network_isolation_key, kGroupKey11_.origin));
+  EXPECT_TRUE(cache()->ClientExistsForTesting(
+      kGroupKey21_.network_isolation_key, kGroupKey21_.origin));
+  EXPECT_TRUE(cache()->ClientExistsForTesting(
+      kOtherGroupKey11_.network_isolation_key, kOtherGroupKey11_.origin));
+  EXPECT_TRUE(cache()->ClientExistsForTesting(
+      kOtherGroupKey21_.network_isolation_key, kOtherGroupKey21_.origin));
 }
 
 TEST_P(ReportingCacheTest, DoNotStoreMoreThanLimits) {
@@ -1277,26 +1514,26 @@
                                              << "max_endpoint_count";
 
   std::vector<ReportingEndpoint> endpoints;
-  endpoints.emplace_back(kOrigin1_, kGroup1_,
+  endpoints.emplace_back(kGroupKey11_,
                          ReportingEndpoint::EndpointInfo{kEndpoint1_});
-  endpoints.emplace_back(kOrigin1_, kGroup1_,
+  endpoints.emplace_back(kGroupKey11_,
                          ReportingEndpoint::EndpointInfo{kEndpoint2_});
-  endpoints.emplace_back(kOrigin1_, kGroup1_,
+  endpoints.emplace_back(kGroupKey11_,
                          ReportingEndpoint::EndpointInfo{kEndpoint3_});
-  endpoints.emplace_back(kOrigin1_, kGroup1_,
+  endpoints.emplace_back(kGroupKey11_,
                          ReportingEndpoint::EndpointInfo{kEndpoint4_});
-  endpoints.emplace_back(kOrigin2_, kGroup2_,
+  endpoints.emplace_back(kGroupKey22_,
                          ReportingEndpoint::EndpointInfo{kEndpoint1_});
-  endpoints.emplace_back(kOrigin2_, kGroup2_,
+  endpoints.emplace_back(kGroupKey22_,
                          ReportingEndpoint::EndpointInfo{kEndpoint2_});
-  endpoints.emplace_back(kOrigin2_, kGroup2_,
+  endpoints.emplace_back(kGroupKey22_,
                          ReportingEndpoint::EndpointInfo{kEndpoint3_});
-  endpoints.emplace_back(kOrigin2_, kGroup2_,
+  endpoints.emplace_back(kGroupKey22_,
                          ReportingEndpoint::EndpointInfo{kEndpoint4_});
   std::vector<CachedReportingEndpointGroup> groups;
-  groups.emplace_back(kOrigin1_, kGroup1_, OriginSubdomains::DEFAULT,
+  groups.emplace_back(kGroupKey11_, OriginSubdomains::DEFAULT,
                       now /* expires */, now /* last_used */);
-  groups.emplace_back(kOrigin2_, kGroup2_, OriginSubdomains::DEFAULT,
+  groups.emplace_back(kGroupKey22_, OriginSubdomains::DEFAULT,
                       now /* expires */, now /* last_used */);
   store()->SetPrestoredClients(endpoints, groups);
 
@@ -1314,29 +1551,30 @@
 
   std::vector<ReportingEndpoint> endpoints;
   // This endpoint has no corresponding endpoint group
-  endpoints.emplace_back(kOrigin1_, kGroup1_,
+  endpoints.emplace_back(kGroupKey11_,
                          ReportingEndpoint::EndpointInfo{kEndpoint1_});
-  endpoints.emplace_back(kOrigin2_, kGroup1_,
+  endpoints.emplace_back(kGroupKey21_,
                          ReportingEndpoint::EndpointInfo{kEndpoint1_});
   // This endpoint has no corresponding endpoint group
-  endpoints.emplace_back(kOrigin2_, kGroup2_,
+  endpoints.emplace_back(kGroupKey22_,
                          ReportingEndpoint::EndpointInfo{kEndpoint1_});
   std::vector<CachedReportingEndpointGroup> groups;
   // This endpoint group has no corresponding endpoint
-  groups.emplace_back(kOrigin1_, kGroup2_, OriginSubdomains::DEFAULT,
+  groups.emplace_back(kGroupKey12_, OriginSubdomains::DEFAULT,
                       now /* expires */, now /* last_used */);
-  groups.emplace_back(kOrigin2_, kGroup1_, OriginSubdomains::DEFAULT,
+  groups.emplace_back(kGroupKey21_, OriginSubdomains::DEFAULT,
                       now /* expires */, now /* last_used */);
   // This endpoint group has no corresponding endpoint
-  groups.emplace_back(kOrigin2_, "last_group", OriginSubdomains::DEFAULT,
-                      now /* expires */, now /* last_used */);
+  groups.emplace_back(ReportingEndpointGroupKey(kNik_, kOrigin2_, "last_group"),
+                      OriginSubdomains::DEFAULT, now /* expires */,
+                      now /* last_used */);
   store()->SetPrestoredClients(endpoints, groups);
 
   LoadReportingClients();
 
   EXPECT_GE(1u, cache()->GetEndpointCount());
   EXPECT_GE(1u, cache()->GetEndpointGroupCountForTesting());
-  EXPECT_TRUE(EndpointExistsInCache(kOrigin2_, kGroup1_, kEndpoint1_));
+  EXPECT_TRUE(EndpointExistsInCache(kGroupKey21_, kEndpoint1_));
 }
 
 // This test verifies that we preserve the last_used field when storing clients
@@ -1361,32 +1599,32 @@
 
   // We need more than three endpoints to trigger eviction.
   std::vector<ReportingEndpoint> endpoints;
-  endpoints.emplace_back(kOrigin1_, "1",
-                         ReportingEndpoint::EndpointInfo{kEndpoint1_});
-  endpoints.emplace_back(kOrigin1_, "2",
-                         ReportingEndpoint::EndpointInfo{kEndpoint1_});
-  endpoints.emplace_back(kOrigin1_, "3",
-                         ReportingEndpoint::EndpointInfo{kEndpoint1_});
-  endpoints.emplace_back(kOrigin1_, "4",
-                         ReportingEndpoint::EndpointInfo{kEndpoint1_});
+  ReportingEndpointGroupKey group1(kNik_, kOrigin1_, "1");
+  ReportingEndpointGroupKey group2(kNik_, kOrigin1_, "2");
+  ReportingEndpointGroupKey group3(kNik_, kOrigin1_, "3");
+  ReportingEndpointGroupKey group4(kNik_, kOrigin1_, "4");
+  endpoints.emplace_back(group1, ReportingEndpoint::EndpointInfo{kEndpoint1_});
+  endpoints.emplace_back(group2, ReportingEndpoint::EndpointInfo{kEndpoint1_});
+  endpoints.emplace_back(group3, ReportingEndpoint::EndpointInfo{kEndpoint1_});
+  endpoints.emplace_back(group4, ReportingEndpoint::EndpointInfo{kEndpoint1_});
   std::vector<CachedReportingEndpointGroup> groups;
-  groups.emplace_back(kOrigin1_, "1", OriginSubdomains::DEFAULT,
-                      now /* expires */, now /* last_used */);
-  groups.emplace_back(kOrigin1_, "2", OriginSubdomains::DEFAULT,
-                      now /* expires */, now /* last_used */);
+  groups.emplace_back(group1, OriginSubdomains::DEFAULT, now /* expires */,
+                      now /* last_used */);
+  groups.emplace_back(group2, OriginSubdomains::DEFAULT, now /* expires */,
+                      now /* last_used */);
   // Stale last_used on group "3" should cause us to select it for eviction
-  groups.emplace_back(kOrigin1_, "3", OriginSubdomains::DEFAULT,
-                      now /* expires */, base::Time() /* last_used */);
-  groups.emplace_back(kOrigin1_, "4", OriginSubdomains::DEFAULT,
-                      now /* expires */, now /* last_used */);
+  groups.emplace_back(group3, OriginSubdomains::DEFAULT, now /* expires */,
+                      base::Time() /* last_used */);
+  groups.emplace_back(group4, OriginSubdomains::DEFAULT, now /* expires */,
+                      now /* last_used */);
   store()->SetPrestoredClients(endpoints, groups);
 
   LoadReportingClients();
 
-  EXPECT_TRUE(EndpointExistsInCache(kOrigin1_, "1", kEndpoint1_));
-  EXPECT_TRUE(EndpointExistsInCache(kOrigin1_, "2", kEndpoint1_));
-  EXPECT_FALSE(EndpointExistsInCache(kOrigin1_, "3", kEndpoint1_));
-  EXPECT_TRUE(EndpointExistsInCache(kOrigin1_, "4", kEndpoint1_));
+  EXPECT_TRUE(EndpointExistsInCache(group1, kEndpoint1_));
+  EXPECT_TRUE(EndpointExistsInCache(group2, kEndpoint1_));
+  EXPECT_FALSE(EndpointExistsInCache(group3, kEndpoint1_));
+  EXPECT_TRUE(EndpointExistsInCache(group4, kEndpoint1_));
 }
 
 INSTANTIATE_TEST_SUITE_P(ReportingCacheStoreTest,
diff --git a/net/reporting/reporting_delivery_agent.cc b/net/reporting/reporting_delivery_agent.cc
index 675548c..a5a2c49 100644
--- a/net/reporting/reporting_delivery_agent.cc
+++ b/net/reporting/reporting_delivery_agent.cc
@@ -89,13 +89,13 @@
   }
 
  private:
-  using OriginGroup = std::pair<url::Origin, std::string>;
+  // TODO(chlily): Add NIK.
   using OriginEndpoint = std::pair<url::Origin, GURL>;
-  using OriginGroupEndpoint = std::tuple<url::Origin, std::string, GURL>;
+  using GroupEndpoint = std::pair<ReportingEndpointGroupKey, GURL>;
 
   class Delivery {
    public:
-    Delivery(const OriginEndpoint& report_origin_endpoint)
+    explicit Delivery(const OriginEndpoint& report_origin_endpoint)
         : report_origin(report_origin_endpoint.first),
           endpoint(report_origin_endpoint.second) {}
 
@@ -103,9 +103,7 @@
 
     void AddReports(const ReportingEndpoint& endpoint,
                     const std::vector<const ReportingReport*>& to_add) {
-      OriginGroupEndpoint key =
-          std::make_tuple(endpoint.group_key.origin,
-                          endpoint.group_key.group_name, endpoint.info.url);
+      GroupEndpoint key = std::make_pair(endpoint.group_key, endpoint.info.url);
       reports_per_endpoint[key] += to_add.size();
       reports.insert(reports.end(), to_add.begin(), to_add.end());
     }
@@ -113,7 +111,7 @@
     const url::Origin report_origin;
     const GURL endpoint;
     std::vector<const ReportingReport*> reports;
-    std::map<OriginGroupEndpoint, int> reports_per_endpoint;
+    std::map<GroupEndpoint, int> reports_per_endpoint;
   };
 
   bool CacheHasReports() {
@@ -152,16 +150,19 @@
 
   void OnSendPermissionsChecked(std::vector<const ReportingReport*> reports,
                                 std::set<url::Origin> allowed_report_origins) {
-    // Sort reports into (origin, group) buckets.
-    std::map<OriginGroup, std::vector<const ReportingReport*>>
+    // Sort reports into buckets by endpoint group.
+    std::map<ReportingEndpointGroupKey, std::vector<const ReportingReport*>>
         origin_group_reports;
     for (const ReportingReport* report : reports) {
       url::Origin report_origin = url::Origin::Create(report->url);
       if (allowed_report_origins.find(report_origin) ==
-          allowed_report_origins.end())
+          allowed_report_origins.end()) {
         continue;
-      OriginGroup origin_group(report_origin, report->group);
-      origin_group_reports[origin_group].push_back(report);
+      }
+      // TODO(chlily): Use proper NIK once reports are double-keyed.
+      ReportingEndpointGroupKey group_key(NetworkIsolationKey::Todo(),
+                                          report_origin, report->group);
+      origin_group_reports[group_key].push_back(report);
     }
 
     // Find an endpoint for each (origin, group) bucket and sort reports into
@@ -169,23 +170,21 @@
     // group) bucket.
     std::map<OriginEndpoint, std::unique_ptr<Delivery>> deliveries;
     for (auto& it : origin_group_reports) {
-      const OriginGroup& origin_group = it.first;
-      const url::Origin& report_origin = origin_group.first;
-      const std::string& group = origin_group.second;
+      const ReportingEndpointGroupKey& group_key = it.first;
 
-      if (base::Contains(pending_origin_groups_, origin_group))
+      if (base::Contains(pending_groups_, group_key))
         continue;
 
-      // TODO(mmenke): Populate NetworkIsolationKey argument.
       const ReportingEndpoint endpoint =
-          endpoint_manager_->FindEndpointForDelivery(NetworkIsolationKey(),
-                                                     report_origin, group);
+          endpoint_manager_->FindEndpointForDelivery(group_key);
+
       if (!endpoint) {
         // TODO(chlily): Remove reports for which there are no valid
         // delivery endpoints.
         continue;
       }
-      OriginEndpoint report_origin_endpoint(report_origin, endpoint.info.url);
+      OriginEndpoint report_origin_endpoint(group_key.origin,
+                                            endpoint.info.url);
 
       Delivery* delivery;
       auto delivery_it = deliveries.find(report_origin_endpoint);
@@ -198,7 +197,7 @@
       }
 
       delivery->AddReports(endpoint, it.second);
-      pending_origin_groups_.insert(origin_group);
+      pending_groups_.insert(group_key);
     }
 
     // Keep track of which of these reports we don't queue for delivery; we'll
@@ -226,7 +225,7 @@
       // TODO: Calculate actual max depth.
       // TODO(mmenke): Populate NetworkIsolationKey.
       uploader()->StartUpload(
-          report_origin, endpoint, NetworkIsolationKey(), json, max_depth,
+          report_origin, endpoint, NetworkIsolationKey::Todo(), json, max_depth,
           base::BindOnce(&ReportingDeliveryAgentImpl::OnUploadComplete,
                          weak_factory_.GetWeakPtr(), std::move(delivery)));
     }
@@ -238,12 +237,12 @@
   void OnUploadComplete(std::unique_ptr<Delivery> delivery,
                         ReportingUploader::Outcome outcome) {
     for (const auto& endpoint_and_count : delivery->reports_per_endpoint) {
-      const url::Origin& origin = std::get<0>(endpoint_and_count.first);
-      const std::string& group = std::get<1>(endpoint_and_count.first);
-      const GURL& endpoint = std::get<2>(endpoint_and_count.first);
+      const ReportingEndpointGroupKey& group_key =
+          endpoint_and_count.first.first;
+      const GURL& endpoint = endpoint_and_count.first.second;
       int report_count = endpoint_and_count.second;
       cache()->IncrementEndpointDeliveries(
-          origin, group, endpoint, report_count,
+          group_key, endpoint, report_count,
           outcome == ReportingUploader::Outcome::SUCCESS);
     }
 
@@ -251,12 +250,12 @@
       cache()->RemoveReports(delivery->reports,
                              ReportingReport::Outcome::DELIVERED);
       // TODO(mmenke): Populate NetworkIsolationKey argument.
-      endpoint_manager_->InformOfEndpointRequest(NetworkIsolationKey(),
+      endpoint_manager_->InformOfEndpointRequest(NetworkIsolationKey::Todo(),
                                                  delivery->endpoint, true);
     } else {
       cache()->IncrementReportsAttempts(delivery->reports);
       // TODO(mmenke): Populate NetworkIsolationKey argument.
-      endpoint_manager_->InformOfEndpointRequest(NetworkIsolationKey(),
+      endpoint_manager_->InformOfEndpointRequest(NetworkIsolationKey::Todo(),
                                                  delivery->endpoint, false);
     }
 
@@ -264,8 +263,9 @@
       cache()->RemoveEndpointsForUrl(delivery->endpoint);
 
     for (const ReportingReport* report : delivery->reports) {
-      pending_origin_groups_.erase(
-          OriginGroup(delivery->report_origin, report->group));
+      ReportingEndpointGroupKey group_key(
+          NetworkIsolationKey::Todo(), delivery->report_origin, report->group);
+      pending_groups_.erase(group_key);
     }
 
     cache()->ClearReportsPending(delivery->reports);
@@ -281,9 +281,8 @@
 
   std::unique_ptr<base::OneShotTimer> timer_;
 
-  // Tracks OriginGroup tuples for which there is a pending delivery running.
-  // (Would be an unordered_set, but there's no hash on pair.)
-  std::set<OriginGroup> pending_origin_groups_;
+  // Tracks endpoint groups for which there is a pending delivery running.
+  std::set<ReportingEndpointGroupKey> pending_groups_;
 
   std::unique_ptr<ReportingEndpointManager> endpoint_manager_;
 
diff --git a/net/reporting/reporting_delivery_agent_unittest.cc b/net/reporting/reporting_delivery_agent_unittest.cc
index 97159f2..a079808 100644
--- a/net/reporting/reporting_delivery_agent_unittest.cc
+++ b/net/reporting/reporting_delivery_agent_unittest.cc
@@ -13,6 +13,7 @@
 #include "base/timer/mock_timer.h"
 #include "base/values.h"
 #include "net/base/backoff_entry.h"
+#include "net/base/network_isolation_key.h"
 #include "net/reporting/reporting_cache.h"
 #include "net/reporting/reporting_report.h"
 #include "net/reporting/reporting_test_util.h"
@@ -46,13 +47,15 @@
   const std::string kGroup_ = "group";
   const std::string kType_ = "type";
   const base::Time kExpires_ = base::Time::Now() + base::TimeDelta::FromDays(7);
+  const ReportingEndpointGroupKey kGroupKey_ =
+      ReportingEndpointGroupKey(NetworkIsolationKey(), kOrigin_, kGroup_);
 };
 
 TEST_F(ReportingDeliveryAgentTest, SuccessfulImmediateUpload) {
   base::DictionaryValue body;
   body.SetString("key", "value");
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_));
   cache()->AddReport(kUrl_, kUserAgent_, kGroup_, kType_, body.CreateDeepCopy(),
                      0, tick_clock()->NowTicks(), 0);
 
@@ -86,7 +89,7 @@
 
   {
     const ReportingEndpoint::Statistics stats =
-        GetEndpointStatistics(kOrigin_, kGroup_, kEndpoint_);
+        GetEndpointStatistics(kGroupKey_, kEndpoint_);
     EXPECT_EQ(1, stats.attempted_uploads);
     EXPECT_EQ(1, stats.successful_uploads);
     EXPECT_EQ(1, stats.attempted_reports);
@@ -100,7 +103,7 @@
   base::DictionaryValue body;
   body.SetString("key", "value");
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_,
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_,
                                  OriginSubdomains::INCLUDE));
   cache()->AddReport(kSubdomainUrl_, kUserAgent_, kGroup_, kType_,
                      body.CreateDeepCopy(), 0, tick_clock()->NowTicks(), 0);
@@ -135,7 +138,7 @@
 
   {
     const ReportingEndpoint::Statistics stats =
-        GetEndpointStatistics(kOrigin_, kGroup_, kEndpoint_);
+        GetEndpointStatistics(kGroupKey_, kEndpoint_);
     EXPECT_EQ(1, stats.attempted_uploads);
     EXPECT_EQ(1, stats.successful_uploads);
     EXPECT_EQ(1, stats.attempted_reports);
@@ -150,7 +153,7 @@
   base::DictionaryValue body;
   body.SetString("key", "value");
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_,
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_,
                                  OriginSubdomains::INCLUDE));
   cache()->AddReport(kSubdomainUrl_, kUserAgent_, kGroup_, kType_,
                      body.CreateDeepCopy(), 0, tick_clock()->NowTicks(), 0);
@@ -159,13 +162,13 @@
 
   ASSERT_EQ(1u, pending_uploads().size());
   // Change the endpoint group to exclude subdomains.
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_,
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_,
                                  OriginSubdomains::EXCLUDE));
   pending_uploads()[0]->Complete(ReportingUploader::Outcome::SUCCESS);
 
   {
     const ReportingEndpoint::Statistics stats =
-        GetEndpointStatistics(kOrigin_, kGroup_, kEndpoint_);
+        GetEndpointStatistics(kGroupKey_, kEndpoint_);
     EXPECT_EQ(1, stats.attempted_uploads);
     EXPECT_EQ(1, stats.successful_uploads);
     EXPECT_EQ(1, stats.attempted_reports);
@@ -183,7 +186,7 @@
   body.SetString("key", "value");
 
   // Trigger and complete an upload to start the delivery timer.
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_));
   cache()->AddReport(kUrl_, kUserAgent_, kGroup_, kType_, body.CreateDeepCopy(),
                      0, tick_clock()->NowTicks(), 0);
   pending_uploads()[0]->Complete(ReportingUploader::Outcome::SUCCESS);
@@ -218,7 +221,7 @@
 
   {
     const ReportingEndpoint::Statistics stats =
-        GetEndpointStatistics(kOrigin_, kGroup_, kEndpoint_);
+        GetEndpointStatistics(kGroupKey_, kEndpoint_);
     EXPECT_EQ(2, stats.attempted_uploads);
     EXPECT_EQ(2, stats.successful_uploads);
     EXPECT_EQ(2, stats.attempted_reports);
@@ -234,7 +237,7 @@
 }
 
 TEST_F(ReportingDeliveryAgentTest, FailedUpload) {
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_));
   cache()->AddReport(kUrl_, kUserAgent_, kGroup_, kType_,
                      std::make_unique<base::DictionaryValue>(), 0,
                      tick_clock()->NowTicks(), 0);
@@ -247,7 +250,7 @@
 
   {
     const ReportingEndpoint::Statistics stats =
-        GetEndpointStatistics(kOrigin_, kGroup_, kEndpoint_);
+        GetEndpointStatistics(kGroupKey_, kEndpoint_);
     EXPECT_EQ(1, stats.attempted_uploads);
     EXPECT_EQ(0, stats.successful_uploads);
     EXPECT_EQ(1, stats.attempted_reports);
@@ -269,7 +272,7 @@
 
   {
     const ReportingEndpoint::Statistics stats =
-        GetEndpointStatistics(kOrigin_, kGroup_, kEndpoint_);
+        GetEndpointStatistics(kGroupKey_, kEndpoint_);
     EXPECT_EQ(1, stats.attempted_uploads);
     EXPECT_EQ(0, stats.successful_uploads);
     EXPECT_EQ(1, stats.attempted_reports);
@@ -287,7 +290,7 @@
   base::DictionaryValue body;
   body.SetString("key", "value");
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_));
   cache()->AddReport(kUrl_, kUserAgent_, kGroup_, kType_, body.CreateDeepCopy(),
                      0, tick_clock()->NowTicks(), 0);
 
@@ -302,7 +305,7 @@
 
   {
     const ReportingEndpoint::Statistics stats =
-        GetEndpointStatistics(kOrigin_, kGroup_, kEndpoint_);
+        GetEndpointStatistics(kGroupKey_, kEndpoint_);
     EXPECT_EQ(0, stats.attempted_uploads);
     EXPECT_EQ(0, stats.successful_uploads);
     EXPECT_EQ(0, stats.attempted_reports);
@@ -318,10 +321,11 @@
 TEST_F(ReportingDeliveryAgentTest, RemoveEndpointUpload) {
   static const url::Origin kDifferentOrigin =
       url::Origin::Create(GURL("https://origin2/"));
+  static const ReportingEndpointGroupKey kOtherGroupKey(
+      NetworkIsolationKey(), kDifferentOrigin, kGroup_);
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_));
-  ASSERT_TRUE(
-      SetEndpointInCache(kDifferentOrigin, kGroup_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kOtherGroupKey, kEndpoint_, kExpires_));
 
   cache()->AddReport(kUrl_, kUserAgent_, kGroup_, kType_,
                      std::make_unique<base::DictionaryValue>(), 0,
@@ -340,8 +344,8 @@
   ASSERT_EQ(1u, reports.size());
   EXPECT_EQ(1, reports[0]->attempts);
 
-  EXPECT_FALSE(FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_));
-  EXPECT_FALSE(FindEndpointInCache(kDifferentOrigin, kGroup_, kEndpoint_));
+  EXPECT_FALSE(FindEndpointInCache(kGroupKey_, kEndpoint_));
+  EXPECT_FALSE(FindEndpointInCache(kOtherGroupKey, kEndpoint_));
 
   // Since endpoint is now failing, an upload won't be started despite a pending
   // report.
@@ -351,7 +355,7 @@
 }
 
 TEST_F(ReportingDeliveryAgentTest, ConcurrentRemove) {
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_));
   cache()->AddReport(kUrl_, kUserAgent_, kGroup_, kType_,
                      std::make_unique<base::DictionaryValue>(), 0,
                      tick_clock()->NowTicks(), 0);
@@ -387,7 +391,7 @@
   // part of the upload process.)
   context()->test_delegate()->set_pause_permissions_check(true);
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_));
   cache()->AddReport(kUrl_, kUserAgent_, kGroup_, kType_,
                      std::make_unique<base::DictionaryValue>(), 0,
                      tick_clock()->NowTicks(), 0);
@@ -423,10 +427,11 @@
   static const GURL kDifferentUrl("https://origin2/path");
   static const url::Origin kDifferentOrigin =
       url::Origin::Create(kDifferentUrl);
+  const ReportingEndpointGroupKey kDifferentGroupKey(NetworkIsolationKey(),
+                                                     kDifferentOrigin, kGroup_);
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_));
-  ASSERT_TRUE(
-      SetEndpointInCache(kDifferentOrigin, kGroup_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kDifferentGroupKey, kEndpoint_, kExpires_));
 
   // Trigger and complete an upload to start the delivery timer.
   cache()->AddReport(kUrl_, kUserAgent_, kGroup_, kType_,
@@ -460,7 +465,7 @@
 // particular origin while one is pending, but will once it is no longer
 // pending.
 TEST_F(ReportingDeliveryAgentTest, SerializeUploadsToEndpoint) {
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_));
 
   cache()->AddReport(kUrl_, kUserAgent_, kGroup_, kType_,
                      std::make_unique<base::DictionaryValue>(), 0,
@@ -495,9 +500,8 @@
 TEST_F(ReportingDeliveryAgentTest, SerializeUploadsToGroup) {
   static const GURL kDifferentEndpoint("https://endpoint2/");
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_));
-  ASSERT_TRUE(
-      SetEndpointInCache(kOrigin_, kGroup_, kDifferentEndpoint, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kDifferentEndpoint, kExpires_));
 
   cache()->AddReport(kUrl_, kUserAgent_, kGroup_, kType_,
                      std::make_unique<base::DictionaryValue>(), 0,
@@ -531,10 +535,12 @@
 TEST_F(ReportingDeliveryAgentTest, ParallelizeUploadsAcrossGroups) {
   static const GURL kDifferentEndpoint("https://endpoint2/");
   static const std::string kDifferentGroup("group2");
+  const ReportingEndpointGroupKey kDifferentGroupKey(NetworkIsolationKey(),
+                                                     kOrigin_, kDifferentGroup);
 
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_, kExpires_));
-  ASSERT_TRUE(SetEndpointInCache(kOrigin_, kDifferentGroup, kDifferentEndpoint,
-                                 kExpires_));
+  ASSERT_TRUE(SetEndpointInCache(kGroupKey_, kEndpoint_, kExpires_));
+  ASSERT_TRUE(
+      SetEndpointInCache(kDifferentGroupKey, kDifferentEndpoint, kExpires_));
 
   cache()->AddReport(kUrl_, kUserAgent_, kGroup_, kType_,
                      std::make_unique<base::DictionaryValue>(), 0,
diff --git a/net/reporting/reporting_endpoint.cc b/net/reporting/reporting_endpoint.cc
index 3b5b790..843065d6 100644
--- a/net/reporting/reporting_endpoint.cc
+++ b/net/reporting/reporting_endpoint.cc
@@ -13,13 +13,32 @@
 
 namespace net {
 
-ReportingEndpointGroupKey::ReportingEndpointGroupKey(url::Origin origin,
-                                                     std::string group_name)
-    : origin(std::move(origin)), group_name(std::move(group_name)) {}
+ReportingEndpointGroupKey::ReportingEndpointGroupKey() = default;
+
+ReportingEndpointGroupKey::ReportingEndpointGroupKey(
+    const NetworkIsolationKey& network_isolation_key,
+    const url::Origin& origin,
+    const std::string& group_name)
+    : network_isolation_key(network_isolation_key),
+      origin(origin),
+      group_name(group_name) {}
+
+ReportingEndpointGroupKey::ReportingEndpointGroupKey(
+    const ReportingEndpointGroupKey& other) = default;
+ReportingEndpointGroupKey::ReportingEndpointGroupKey(
+    ReportingEndpointGroupKey&& other) = default;
+
+ReportingEndpointGroupKey& ReportingEndpointGroupKey::operator=(
+    const ReportingEndpointGroupKey&) = default;
+ReportingEndpointGroupKey& ReportingEndpointGroupKey::operator=(
+    ReportingEndpointGroupKey&&) = default;
+
+ReportingEndpointGroupKey::~ReportingEndpointGroupKey() = default;
 
 bool operator==(const ReportingEndpointGroupKey& lhs,
                 const ReportingEndpointGroupKey& rhs) {
-  return lhs.origin == rhs.origin && lhs.group_name == rhs.group_name;
+  return std::tie(lhs.network_isolation_key, lhs.origin, lhs.group_name) ==
+         std::tie(rhs.network_isolation_key, rhs.origin, rhs.group_name);
 }
 
 bool operator!=(const ReportingEndpointGroupKey& lhs,
@@ -29,26 +48,29 @@
 
 bool operator<(const ReportingEndpointGroupKey& lhs,
                const ReportingEndpointGroupKey& rhs) {
-  return std::tie(lhs.origin, lhs.group_name) <
-         std::tie(rhs.origin, rhs.group_name);
+  return std::tie(lhs.network_isolation_key, lhs.origin, lhs.group_name) <
+         std::tie(rhs.network_isolation_key, rhs.origin, rhs.group_name);
 }
+
 bool operator>(const ReportingEndpointGroupKey& lhs,
                const ReportingEndpointGroupKey& rhs) {
-  return std::tie(lhs.origin, lhs.group_name) >
-         std::tie(rhs.origin, rhs.group_name);
+  return std::tie(lhs.network_isolation_key, lhs.origin, lhs.group_name) >
+         std::tie(rhs.network_isolation_key, rhs.origin, rhs.group_name);
+}
+
+std::string ReportingEndpointGroupKey::ToString() const {
+  return "NIK: " + network_isolation_key.ToDebugString() +
+         "; Origin: " + origin.Serialize() + "; Group name: " + group_name;
 }
 
 const int ReportingEndpoint::EndpointInfo::kDefaultPriority = 1;
 const int ReportingEndpoint::EndpointInfo::kDefaultWeight = 1;
 
-ReportingEndpoint::ReportingEndpoint()
-    : group_key(url::Origin(), std::string()) {}
+ReportingEndpoint::ReportingEndpoint() = default;
 
-ReportingEndpoint::ReportingEndpoint(url::Origin origin,
-                                     std::string group_name,
-                                     EndpointInfo endpoint_info)
-    : group_key(std::move(origin), std::move(group_name)),
-      info(std::move(endpoint_info)) {
+ReportingEndpoint::ReportingEndpoint(const ReportingEndpointGroupKey& group,
+                                     const EndpointInfo& info)
+    : group_key(group), info(info) {
   DCHECK_LE(0, info.weight);
   DCHECK_LE(0, info.priority);
 }
@@ -66,35 +88,27 @@
   return info.url.is_valid();
 }
 
-ReportingEndpointGroup::ReportingEndpointGroup()
-    : name(std::string()), include_subdomains(OriginSubdomains::DEFAULT) {}
+ReportingEndpointGroup::ReportingEndpointGroup() = default;
 
 ReportingEndpointGroup::ReportingEndpointGroup(
-    const ReportingEndpointGroup& other)
-    : name(other.name),
-      include_subdomains(other.include_subdomains),
-      ttl(other.ttl),
-      endpoints(other.endpoints) {}
+    const ReportingEndpointGroup& other) = default;
 
 ReportingEndpointGroup::~ReportingEndpointGroup() = default;
 
 CachedReportingEndpointGroup::CachedReportingEndpointGroup(
-    url::Origin origin,
-    std::string name,
+    const ReportingEndpointGroupKey& group_key,
     OriginSubdomains include_subdomains,
     base::Time expires,
     base::Time last_used)
-    : group_key(std::move(origin), std::move(name)),
+    : group_key(group_key),
       include_subdomains(include_subdomains),
       expires(expires),
       last_used(last_used) {}
 
 CachedReportingEndpointGroup::CachedReportingEndpointGroup(
-    url::Origin origin,
     const ReportingEndpointGroup& endpoint_group,
     base::Time now)
-    : CachedReportingEndpointGroup(std::move(origin),
-                                   endpoint_group.name,
+    : CachedReportingEndpointGroup(endpoint_group.group_key,
                                    endpoint_group.include_subdomains,
                                    now + endpoint_group.ttl /* expires */,
                                    now /* last_used */) {}
diff --git a/net/reporting/reporting_endpoint.h b/net/reporting/reporting_endpoint.h
index a6801e2..53f4ebe 100644
--- a/net/reporting/reporting_endpoint.h
+++ b/net/reporting/reporting_endpoint.h
@@ -11,6 +11,7 @@
 #include "base/macros.h"
 #include "base/time/time.h"
 #include "net/base/net_export.h"
+#include "net/base/network_isolation_key.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 
@@ -18,7 +19,25 @@
 
 // Identifies an endpoint group.
 struct NET_EXPORT ReportingEndpointGroupKey {
-  ReportingEndpointGroupKey(url::Origin origin, std::string group_name);
+  ReportingEndpointGroupKey();
+
+  ReportingEndpointGroupKey(const NetworkIsolationKey& network_isolation_key,
+                            const url::Origin& origin,
+                            const std::string& group_name);
+
+  ReportingEndpointGroupKey(const ReportingEndpointGroupKey& other);
+  ReportingEndpointGroupKey(ReportingEndpointGroupKey&& other);
+
+  ReportingEndpointGroupKey& operator=(const ReportingEndpointGroupKey&);
+  ReportingEndpointGroupKey& operator=(ReportingEndpointGroupKey&&);
+
+  ~ReportingEndpointGroupKey();
+
+  std::string ToString() const;
+
+  // The NetworkIsolationKey the group is scoped to. Needed to prevent leaking
+  // third party contexts across sites.
+  NetworkIsolationKey network_isolation_key;
 
   // Origin that configured this endpoint group.
   url::Origin origin;
@@ -37,8 +56,6 @@
                           const ReportingEndpointGroupKey& rhs);
 
 // The configuration by an origin to use an endpoint for report delivery.
-// TODO(crbug.com/921049): Rename to ReportingEndpoint because that's what it
-// actually represents.
 // TODO(crbug.com/912622): Track endpoint failures for garbage collection.
 struct NET_EXPORT ReportingEndpoint {
   struct NET_EXPORT EndpointInfo {
@@ -76,9 +93,8 @@
   // Constructs an invalid ReportingEndpoint.
   ReportingEndpoint();
 
-  ReportingEndpoint(url::Origin origin,
-                    std::string group_name,
-                    EndpointInfo endpoint_info);
+  ReportingEndpoint(const ReportingEndpointGroupKey& group,
+                    const EndpointInfo& info);
 
   ReportingEndpoint(const ReportingEndpoint& other);
   ReportingEndpoint(ReportingEndpoint&& other);
@@ -114,8 +130,7 @@
 
   ~ReportingEndpointGroup();
 
-  // Group name.
-  std::string name;
+  ReportingEndpointGroupKey group_key;
 
   // Whether this group applies to subdomains of its origin.
   OriginSubdomains include_subdomains = OriginSubdomains::DEFAULT;
@@ -130,16 +145,13 @@
 // Representation of an endpoint group used for in-memory and persistent
 // storage.
 struct NET_EXPORT CachedReportingEndpointGroup {
-  CachedReportingEndpointGroup(url::Origin origin,
-                               std::string name,
+  CachedReportingEndpointGroup(const ReportingEndpointGroupKey& group_key,
                                OriginSubdomains include_subdomains,
                                base::Time expires,
                                base::Time last_used);
 
-  // |origin| is the origin that set |endpoint_group|, |now| is the time at
-  // which the header was processed.
-  CachedReportingEndpointGroup(url::Origin origin,
-                               const ReportingEndpointGroup& endpoint_group,
+  // |now| is the time at which the header was processed.
+  CachedReportingEndpointGroup(const ReportingEndpointGroup& endpoint_group,
                                base::Time now);
 
   // Origin and group name.
diff --git a/net/reporting/reporting_endpoint_manager.cc b/net/reporting/reporting_endpoint_manager.cc
index a4677b7e..35652768e 100644
--- a/net/reporting/reporting_endpoint_manager.cc
+++ b/net/reporting/reporting_endpoint_manager.cc
@@ -52,14 +52,11 @@
   ~ReportingEndpointManagerImpl() override = default;
 
   const ReportingEndpoint FindEndpointForDelivery(
-      const NetworkIsolationKey& network_isolation_key,
-      const url::Origin& origin,
-      const std::string& group) override {
+      const ReportingEndpointGroupKey& group_key) override {
     // Get unexpired endpoints that apply to a delivery to |origin| and |group|.
     // May have been configured by a superdomain of |origin|.
     std::vector<ReportingEndpoint> endpoints =
-        cache_->GetCandidateEndpointsForDelivery(network_isolation_key, origin,
-                                                 group);
+        cache_->GetCandidateEndpointsForDelivery(group_key);
 
     // Highest-priority endpoint(s) that are not expired, failing, or
     // forbidden for use by the ReportingDelegate.
@@ -81,8 +78,8 @@
 
       // This brings each match to the front of the MRU cache, so if an entry
       // frequently matches requests, it's more likely to stay in the cache.
-      auto endpoint_backoff_it = endpoint_backoff_.Get(
-          EndpointBackoffKey(network_isolation_key, endpoint.info.url));
+      auto endpoint_backoff_it = endpoint_backoff_.Get(EndpointBackoffKey(
+          group_key.network_isolation_key, endpoint.info.url));
       if (endpoint_backoff_it != endpoint_backoff_.end() &&
           endpoint_backoff_it->second->ShouldRejectRequest()) {
         continue;
diff --git a/net/reporting/reporting_endpoint_manager.h b/net/reporting/reporting_endpoint_manager.h
index 589fe82d..a760849bd 100644
--- a/net/reporting/reporting_endpoint_manager.h
+++ b/net/reporting/reporting_endpoint_manager.h
@@ -11,6 +11,7 @@
 #include "base/macros.h"
 #include "net/base/net_export.h"
 #include "net/base/rand_callback.h"
+#include "net/reporting/reporting_endpoint.h"
 
 class GURL;
 
@@ -18,10 +19,6 @@
 class TickClock;
 }
 
-namespace url {
-class Origin;
-}  // namespace url
-
 namespace net {
 
 class NetworkIsolationKey;
@@ -52,17 +49,14 @@
 
   virtual ~ReportingEndpointManager();
 
-  // Finds an endpoint that applies to deliveries to |group| for |origin| that
-  // are not expired or in exponential backoff from failed requests.
-  // The returned endpoint may have been configured by a superdomain of
-  // |origin|. Deliberately chooses an endpoint randomly to ensure sites aren't
-  // relying on any sort of fallback ordering.
-  // If no suitable endpoint was found, returns an endpoint with is_valid()
-  // false.
+  // Finds an endpoint that applies to deliveries to the group identified by
+  // |group_key| that are not expired or in exponential backoff from failed
+  // requests. The returned endpoint may have been configured by a superdomain
+  // of the group's origin. Deliberately chooses an endpoint randomly to ensure
+  // sites aren't relying on any sort of fallback ordering. If no suitable
+  // endpoint was found, returns an endpoint with is_valid() false.
   virtual const ReportingEndpoint FindEndpointForDelivery(
-      const NetworkIsolationKey& network_isolation_key,
-      const url::Origin& origin,
-      const std::string& group) = 0;
+      const ReportingEndpointGroupKey& group_key) = 0;
 
   // Informs the EndpointManager of a successful or unsuccessful request made to
   // |endpoint| so it can manage exponential backoff of failing endpoints.
diff --git a/net/reporting/reporting_endpoint_manager_unittest.cc b/net/reporting/reporting_endpoint_manager_unittest.cc
index 51ae41f5..d05153d5 100644
--- a/net/reporting/reporting_endpoint_manager_unittest.cc
+++ b/net/reporting/reporting_endpoint_manager_unittest.cc
@@ -32,20 +32,18 @@
       : expected_origin_(expected_origin), expected_group_(expected_group) {}
   ~TestReportingCache() override = default;
 
-  void SetEndpoint(const NetworkIsolationKey& network_isolation_key,
-                   const ReportingEndpoint& reporting_endpoint) {
-    reporting_endpoints_[network_isolation_key].push_back(reporting_endpoint);
+  void SetEndpoint(const ReportingEndpoint& reporting_endpoint) {
+    reporting_endpoints_[reporting_endpoint.group_key.network_isolation_key]
+        .push_back(reporting_endpoint);
   }
 
   // ReportingCache implementation:
 
   std::vector<ReportingEndpoint> GetCandidateEndpointsForDelivery(
-      const NetworkIsolationKey& network_isolation_key,
-      const url::Origin& origin,
-      const std::string& group_name) override {
-    EXPECT_EQ(expected_origin_, origin);
-    EXPECT_EQ(expected_group_, group_name);
-    return reporting_endpoints_[network_isolation_key];
+      const ReportingEndpointGroupKey& group_key) override {
+    EXPECT_EQ(expected_origin_, group_key.origin);
+    EXPECT_EQ(expected_group_, group_key.group_name);
+    return reporting_endpoints_[group_key.network_isolation_key];
   }
 
   // Everything below is NOTREACHED.
@@ -79,8 +77,7 @@
       const std::vector<const ReportingReport*>& reports) override {
     NOTREACHED();
   }
-  void IncrementEndpointDeliveries(const url::Origin& origin,
-                                   const std::string& group_name,
+  void IncrementEndpointDeliveries(const ReportingEndpointGroupKey& group_key,
                                    const GURL& url,
                                    int reports_delivered,
                                    bool successful) override {
@@ -110,14 +107,20 @@
       std::vector<ReportingEndpointGroup> parsed_header) override {
     NOTREACHED();
   }
-  std::vector<url::Origin> GetAllOrigins() const override {
+  std::set<url::Origin> GetAllOrigins() const override {
     NOTREACHED();
-    return std::vector<url::Origin>();
+    return std::set<url::Origin>();
   }
-  void RemoveClient(const url::Origin& origin) override { NOTREACHED(); }
+  void RemoveClient(const NetworkIsolationKey& network_isolation_key,
+                    const url::Origin& origin) override {
+    NOTREACHED();
+  }
+  void RemoveClientsForOrigin(const url::Origin& origin) override {
+    NOTREACHED();
+  }
   void RemoveAllClients() override { NOTREACHED(); }
-  void RemoveEndpointGroup(const url::Origin& origin,
-                           const std::string& group_name) override {
+  void RemoveEndpointGroup(
+      const ReportingEndpointGroupKey& group_key) override {
     NOTREACHED();
   }
   void RemoveEndpointsForUrl(const GURL& url) override { NOTREACHED(); }
@@ -136,25 +139,32 @@
     return 0;
   }
   void Flush() override { NOTREACHED(); }
-  ReportingEndpoint GetEndpointForTesting(const url::Origin& origin,
-                                          const std::string& group_name,
-                                          const GURL& url) const override {
+  ReportingEndpoint GetEndpointForTesting(
+      const ReportingEndpointGroupKey& group_key,
+      const GURL& url) const override {
     NOTREACHED();
     return ReportingEndpoint();
   }
-  bool EndpointGroupExistsForTesting(const url::Origin& origin,
-                                     const std::string& group_name,
+  bool EndpointGroupExistsForTesting(const ReportingEndpointGroupKey& group_key,
                                      OriginSubdomains include_subdomains,
                                      base::Time expires) const override {
     NOTREACHED();
     return false;
   }
+  bool ClientExistsForTesting(const NetworkIsolationKey& network_isolation_key,
+                              const url::Origin& origin) const override {
+    NOTREACHED();
+    return false;
+  }
   size_t GetEndpointGroupCountForTesting() const override {
     NOTREACHED();
     return 0;
   }
-  void SetEndpointForTesting(const url::Origin& origin,
-                             const std::string& group_name,
+  size_t GetClientCountForTesting() const override {
+    NOTREACHED();
+    return 0;
+  }
+  void SetEndpointForTesting(const ReportingEndpointGroupKey& group_key,
                              const GURL& url,
                              OriginSubdomains include_subdomains,
                              base::Time expires,
@@ -197,14 +207,18 @@
       int weight = ReportingEndpoint::EndpointInfo::kDefaultWeight,
       const NetworkIsolationKey& network_isolation_key =
           NetworkIsolationKey()) {
-    cache_.SetEndpoint(network_isolation_key,
-                       ReportingEndpoint(kOrigin, kGroup,
-                                         ReportingEndpoint::EndpointInfo{
-                                             endpoint, priority, weight}));
+    ReportingEndpointGroupKey group_key(kGroupKey);
+    group_key.network_isolation_key = network_isolation_key;
+    cache_.SetEndpoint(ReportingEndpoint(
+        group_key,
+        ReportingEndpoint::EndpointInfo{endpoint, priority, weight}));
   }
 
+  const NetworkIsolationKey kNik;
   const url::Origin kOrigin = url::Origin::Create(GURL("https://origin/"));
   const std::string kGroup = "group";
+  const ReportingEndpointGroupKey kGroupKey =
+      ReportingEndpointGroupKey(kNik, kOrigin, kGroup);
   const GURL kEndpoint = GURL("https://endpoint/");
 
   ReportingPolicy policy_;
@@ -215,16 +229,16 @@
 };
 
 TEST_F(ReportingEndpointManagerTest, NoEndpoint) {
-  ReportingEndpoint endpoint = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   EXPECT_FALSE(endpoint);
 }
 
 TEST_F(ReportingEndpointManagerTest, Endpoint) {
   SetEndpoint(kEndpoint);
 
-  ReportingEndpoint endpoint = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kEndpoint, endpoint.info.url);
 }
@@ -241,15 +255,15 @@
                                              false);
 
   // After one failure, endpoint is in exponential backoff.
-  ReportingEndpoint endpoint = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   EXPECT_FALSE(endpoint);
 
   // After initial delay, endpoint is usable again.
   clock_.Advance(initial_delay);
 
-  ReportingEndpoint endpoint2 = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint2 =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   ASSERT_TRUE(endpoint2);
   EXPECT_EQ(kEndpoint, endpoint2.info.url);
 
@@ -257,22 +271,22 @@
                                              false);
 
   // After a second failure, endpoint is backed off again.
-  ReportingEndpoint endpoint3 = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint3 =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   EXPECT_FALSE(endpoint3);
 
   clock_.Advance(initial_delay);
 
   // Next backoff is longer -- 2x the first -- so endpoint isn't usable yet.
-  ReportingEndpoint endpoint4 = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint4 =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   EXPECT_FALSE(endpoint4);
 
   clock_.Advance(initial_delay);
 
   // After 2x the initial delay, the endpoint is usable again.
-  ReportingEndpoint endpoint5 = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint5 =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   ASSERT_TRUE(endpoint5);
   EXPECT_EQ(kEndpoint, endpoint5.info.url);
 
@@ -286,14 +300,14 @@
   endpoint_manager_->InformOfEndpointRequest(NetworkIsolationKey(), kEndpoint,
                                              false);
 
-  ReportingEndpoint endpoint6 = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint6 =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   EXPECT_FALSE(endpoint6);
 
   clock_.Advance(initial_delay);
 
-  ReportingEndpoint endpoint7 = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint7 =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   EXPECT_TRUE(endpoint7);
 }
 
@@ -311,8 +325,8 @@
   bool endpoint2_seen = false;
 
   for (int i = 0; i < kMaxAttempts; ++i) {
-    ReportingEndpoint endpoint = endpoint_manager_->FindEndpointForDelivery(
-        NetworkIsolationKey(), kOrigin, kGroup);
+    ReportingEndpoint endpoint =
+        endpoint_manager_->FindEndpointForDelivery(kGroupKey);
     ASSERT_TRUE(endpoint);
     ASSERT_TRUE(endpoint.info.url == kEndpoint1 ||
                 endpoint.info.url == kEndpoint2);
@@ -339,8 +353,8 @@
   SetEndpoint(kBackupEndpoint, 20 /* priority */,
               ReportingEndpoint::EndpointInfo::kDefaultWeight);
 
-  ReportingEndpoint endpoint = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kPrimaryEndpoint, endpoint.info.url);
 
@@ -349,16 +363,16 @@
   // us to choose the backend endpoint.
   endpoint_manager_->InformOfEndpointRequest(NetworkIsolationKey(),
                                              kPrimaryEndpoint, false);
-  ReportingEndpoint endpoint2 = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint2 =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   ASSERT_TRUE(endpoint2);
   EXPECT_EQ(kBackupEndpoint, endpoint2.info.url);
 
   // Advance the current time far enough to clear out the primary endpoint's
   // backoff clock.  This should bring the primary endpoint back into play.
   clock_.Advance(base::TimeDelta::FromMinutes(2));
-  ReportingEndpoint endpoint3 = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint3 =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   ASSERT_TRUE(endpoint3);
   EXPECT_EQ(kPrimaryEndpoint, endpoint3.info.url);
 }
@@ -383,8 +397,8 @@
   int endpoint2_count = 0;
 
   for (int i = 0; i < kTotalEndpointWeight; ++i) {
-    ReportingEndpoint endpoint = endpoint_manager_->FindEndpointForDelivery(
-        NetworkIsolationKey(), kOrigin, kGroup);
+    ReportingEndpoint endpoint =
+        endpoint_manager_->FindEndpointForDelivery(kGroupKey);
     ASSERT_TRUE(endpoint);
     ASSERT_TRUE(endpoint.info.url == kEndpoint1 ||
                 endpoint.info.url == kEndpoint2);
@@ -412,8 +426,8 @@
   int endpoint2_count = 0;
 
   for (int i = 0; i < 10; ++i) {
-    ReportingEndpoint endpoint = endpoint_manager_->FindEndpointForDelivery(
-        NetworkIsolationKey(), kOrigin, kGroup);
+    ReportingEndpoint endpoint =
+        endpoint_manager_->FindEndpointForDelivery(kGroupKey);
     ASSERT_TRUE(endpoint);
     ASSERT_TRUE(endpoint.info.url == kEndpoint1 ||
                 endpoint.info.url == kEndpoint2);
@@ -434,48 +448,44 @@
 
   const NetworkIsolationKey kNetworkIsolationKey1(kOrigin, kOrigin);
   const NetworkIsolationKey kNetworkIsolationKey2(kOrigin2, kOrigin2);
+  const ReportingEndpointGroupKey kGroupKey1(kNetworkIsolationKey1, kOrigin,
+                                             kGroup);
+  const ReportingEndpointGroupKey kGroupKey2(kNetworkIsolationKey2, kOrigin,
+                                             kGroup);
 
   // An Endpoint set for kNetworkIsolationKey1 should not affect
   // kNetworkIsolationKey2.
   SetEndpoint(kEndpoint, ReportingEndpoint::EndpointInfo::kDefaultPriority,
               0 /* weight */, kNetworkIsolationKey1);
-  ReportingEndpoint endpoint = endpoint_manager_->FindEndpointForDelivery(
-      kNetworkIsolationKey1, kOrigin, kGroup);
+  ReportingEndpoint endpoint =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey1);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kEndpoint, endpoint.info.url);
-  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(kNetworkIsolationKey2,
-                                                          kOrigin, kGroup));
-  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(NetworkIsolationKey(),
-                                                          kOrigin, kGroup));
+  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(kGroupKey2));
+  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(kGroupKey));
 
   // Set the same Endpoint for kNetworkIsolationKey2, so both should be
   // reporting to the same URL.
   SetEndpoint(kEndpoint, ReportingEndpoint::EndpointInfo::kDefaultPriority,
               0 /* weight */, kNetworkIsolationKey2);
-  endpoint = endpoint_manager_->FindEndpointForDelivery(kNetworkIsolationKey1,
-                                                        kOrigin, kGroup);
+  endpoint = endpoint_manager_->FindEndpointForDelivery(kGroupKey1);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kEndpoint, endpoint.info.url);
-  endpoint = endpoint_manager_->FindEndpointForDelivery(kNetworkIsolationKey2,
-                                                        kOrigin, kGroup);
+  endpoint = endpoint_manager_->FindEndpointForDelivery(kGroupKey2);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kEndpoint, endpoint.info.url);
-  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(NetworkIsolationKey(),
-                                                          kOrigin, kGroup));
+  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(kGroupKey));
 
   // An error reporting to that URL in the context of kNetworkIsolationKey1
   // should only affect the Endpoint retrieved in the context of
   // kNetworkIsolationKey1.
   endpoint_manager_->InformOfEndpointRequest(kNetworkIsolationKey1, kEndpoint,
                                              false);
-  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(kNetworkIsolationKey1,
-                                                          kOrigin, kGroup));
-  endpoint = endpoint_manager_->FindEndpointForDelivery(kNetworkIsolationKey2,
-                                                        kOrigin, kGroup);
+  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(kGroupKey1));
+  endpoint = endpoint_manager_->FindEndpointForDelivery(kGroupKey2);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kEndpoint, endpoint.info.url);
-  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(NetworkIsolationKey(),
-                                                          kOrigin, kGroup));
+  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(kGroupKey));
 }
 
 TEST_F(ReportingEndpointManagerTest, NetworkIsolationKeyWithMultipleEndpoints) {
@@ -483,6 +493,10 @@
 
   const NetworkIsolationKey kNetworkIsolationKey1(kOrigin, kOrigin);
   const NetworkIsolationKey kNetworkIsolationKey2(kOrigin2, kOrigin2);
+  const ReportingEndpointGroupKey kGroupKey1(kNetworkIsolationKey1, kOrigin,
+                                             kGroup);
+  const ReportingEndpointGroupKey kGroupKey2(kNetworkIsolationKey2, kOrigin,
+                                             kGroup);
 
   const GURL kEndpoint1("https://endpoint1/");
   const GURL kEndpoint2("https://endpoint2/");
@@ -507,8 +521,8 @@
   // Make sure that calling FindEndpointForDelivery() with kNetworkIsolationKey1
   // can return both of its endpoints, but not kNetworkIsolationKey2's endpoint.
   for (int i = 0; i < kMaxAttempts; ++i) {
-    ReportingEndpoint endpoint = endpoint_manager_->FindEndpointForDelivery(
-        kNetworkIsolationKey1, kOrigin, kGroup);
+    ReportingEndpoint endpoint =
+        endpoint_manager_->FindEndpointForDelivery(kGroupKey1);
     ASSERT_TRUE(endpoint);
     ASSERT_TRUE(endpoint.info.url == kEndpoint1 ||
                 endpoint.info.url == kEndpoint2);
@@ -523,8 +537,8 @@
   EXPECT_TRUE(endpoint1_seen);
   EXPECT_TRUE(endpoint2_seen);
 
-  ReportingEndpoint endpoint = endpoint_manager_->FindEndpointForDelivery(
-      kNetworkIsolationKey2, kOrigin, kGroup);
+  ReportingEndpoint endpoint =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey2);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kEndpoint3, endpoint.info.url);
 }
@@ -542,8 +556,8 @@
   std::set<GURL> seen_endpoints;
   for (int i = 0; i < ReportingEndpointManager::kMaxEndpointBackoffCacheSize;
        ++i) {
-    ReportingEndpoint endpoint = endpoint_manager_->FindEndpointForDelivery(
-        NetworkIsolationKey(), kOrigin, kGroup);
+    ReportingEndpoint endpoint =
+        endpoint_manager_->FindEndpointForDelivery(kGroupKey);
     EXPECT_TRUE(endpoint);
     EXPECT_FALSE(seen_endpoints.count(endpoint.info.url));
     seen_endpoints.insert(endpoint.info.url);
@@ -551,29 +565,29 @@
                                                endpoint.info.url, false);
   }
   // All endpoints should now be marked as bad.
-  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(NetworkIsolationKey(),
-                                                          kOrigin, kGroup));
+  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(kGroupKey));
 
   // Add another endpoint with a different NetworkIsolationKey;
-  const NetworkIsolationKey kNetworkIsolationKey(kOrigin, kOrigin);
+  const NetworkIsolationKey kDifferentNetworkIsolationKey(kOrigin, kOrigin);
+  const ReportingEndpointGroupKey kDifferentGroupKey(
+      kDifferentNetworkIsolationKey, kOrigin, kGroup);
   SetEndpoint(kEndpoint, ReportingEndpoint::EndpointInfo::kDefaultPriority,
               ReportingEndpoint::EndpointInfo::kDefaultWeight,
-              kNetworkIsolationKey);
+              kDifferentNetworkIsolationKey);
   // All endpoints associated with the empty NetworkIsolationKey should still be
   // marked as bad.
-  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(NetworkIsolationKey(),
-                                                          kOrigin, kGroup));
+  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(kGroupKey));
 
-  // Make the endpoint added for the kNetworkIsolationKey as bad.
-  endpoint_manager_->InformOfEndpointRequest(kNetworkIsolationKey, kEndpoint,
-                                             false);
-  // The only endpoint for kNetworkIsolationKey should still be marked as bad.
-  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(kNetworkIsolationKey,
-                                                          kOrigin, kGroup));
+  // Make the endpoint added for the kDifferentNetworkIsolationKey as bad.
+  endpoint_manager_->InformOfEndpointRequest(kDifferentNetworkIsolationKey,
+                                             kEndpoint, false);
+  // The only endpoint for kDifferentNetworkIsolationKey should still be marked
+  // as bad.
+  EXPECT_FALSE(endpoint_manager_->FindEndpointForDelivery(kDifferentGroupKey));
   // One of the endpoints for the empty NetworkIsolationKey should no longer be
   // marked as bad, due to eviction.
-  ReportingEndpoint endpoint = endpoint_manager_->FindEndpointForDelivery(
-      NetworkIsolationKey(), kOrigin, kGroup);
+  ReportingEndpoint endpoint =
+      endpoint_manager_->FindEndpointForDelivery(kGroupKey);
   EXPECT_TRUE(endpoint);
 
   // Reporting a success for the (only) good endpoint for the empty
@@ -583,8 +597,7 @@
   endpoint_manager_->InformOfEndpointRequest(NetworkIsolationKey(),
                                              endpoint.info.url, true);
 
-  EXPECT_TRUE(endpoint_manager_->FindEndpointForDelivery(kNetworkIsolationKey,
-                                                         kOrigin, kGroup));
+  EXPECT_TRUE(endpoint_manager_->FindEndpointForDelivery(kDifferentGroupKey));
 }
 
 }  // namespace
diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_header_parser.cc
index 19a407a..4f802fe 100644
--- a/net/reporting/reporting_header_parser.cc
+++ b/net/reporting/reporting_header_parser.cc
@@ -14,6 +14,7 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/time/time.h"
 #include "base/values.h"
+#include "net/base/network_isolation_key.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 #include "net/reporting/reporting_cache.h"
 #include "net/reporting/reporting_context.h"
@@ -64,7 +65,7 @@
 // |*endpoint_out| will contain the endpoint URL parsed out of the tuple.
 HeaderEndpointOutcome ProcessEndpoint(
     ReportingDelegate* delegate,
-    const url::Origin& origin,
+    const ReportingEndpointGroupKey& group_key,
     const base::Value& value,
     ReportingEndpoint::EndpointInfo* endpoint_info_out) {
   const base::DictionaryValue* dict = nullptr;
@@ -99,7 +100,7 @@
     return HeaderEndpointOutcome::DISCARDED_WEIGHT_NEGATIVE;
   endpoint_info_out->weight = weight;
 
-  if (!delegate->CanSetClient(origin, endpoint_url))
+  if (!delegate->CanSetClient(group_key.origin, endpoint_url))
     return HeaderEndpointOutcome::SET_REJECTED_BY_DELEGATE;
 
   return HeaderEndpointOutcome::SET;
@@ -113,6 +114,7 @@
 HeaderEndpointGroupOutcome ProcessEndpointGroup(
     ReportingDelegate* delegate,
     ReportingCache* cache,
+    const NetworkIsolationKey& network_isolation_key,
     const url::Origin& origin,
     const base::Value& value,
     ReportingEndpointGroup* parsed_endpoint_group_out) {
@@ -124,7 +126,9 @@
   std::string group_name = kDefaultGroupName;
   if (dict->HasKey(kGroupKey) && !dict->GetString(kGroupKey, &group_name))
     return HeaderEndpointGroupOutcome::DISCARDED_GROUP_NOT_STRING;
-  parsed_endpoint_group_out->name = std::move(group_name);
+  ReportingEndpointGroupKey group_key(network_isolation_key, origin,
+                                      group_name);
+  parsed_endpoint_group_out->group_key = group_key;
 
   int ttl_sec = -1;
   if (!dict->HasKey(kMaxAgeKey))
@@ -135,7 +139,7 @@
     return HeaderEndpointGroupOutcome::DISCARDED_TTL_NEGATIVE;
   // max_age: 0 signifies removal of the endpoint group.
   if (ttl_sec == 0) {
-    cache->RemoveEndpointGroup(origin, group_name);
+    cache->RemoveEndpointGroup(group_key);
     return HeaderEndpointGroupOutcome::REMOVED_TTL_ZERO;
   }
   parsed_endpoint_group_out->ttl = base::TimeDelta::FromSeconds(ttl_sec);
@@ -172,7 +176,7 @@
     ReportingEndpoint::EndpointInfo parsed_endpoint;
 
     HeaderEndpointOutcome outcome =
-        ProcessEndpoint(delegate, origin, *endpoint, &parsed_endpoint);
+        ProcessEndpoint(delegate, group_key, *endpoint, &parsed_endpoint);
 
     if (outcome == HeaderEndpointOutcome::SET)
       endpoints.push_back(std::move(parsed_endpoint));
@@ -182,7 +186,7 @@
 
   // Remove the group if it is empty.
   if (endpoints.empty()) {
-    cache->RemoveEndpointGroup(origin, group_name);
+    cache->RemoveEndpointGroup(group_key);
     return HeaderEndpointGroupOutcome::REMOVED_EMPTY;
   }
 
@@ -244,6 +248,7 @@
   ReportingCache* cache = context->cache();
 
   url::Origin origin = url::Origin::Create(url);
+  NetworkIsolationKey network_isolation_key = NetworkIsolationKey::Todo();
 
   std::vector<ReportingEndpointGroup> parsed_header;
 
@@ -252,8 +257,9 @@
     bool got_group = group_list->Get(i, &group_value);
     DCHECK(got_group);
     ReportingEndpointGroup parsed_endpoint_group;
-    HeaderEndpointGroupOutcome outcome = ProcessEndpointGroup(
-        delegate, cache, origin, *group_value, &parsed_endpoint_group);
+    HeaderEndpointGroupOutcome outcome =
+        ProcessEndpointGroup(delegate, cache, network_isolation_key, origin,
+                             *group_value, &parsed_endpoint_group);
     RecordHeaderEndpointGroupOutcome(outcome);
     if (outcome == HeaderEndpointGroupOutcome::PARSED)
       parsed_header.push_back(std::move(parsed_endpoint_group));
@@ -261,11 +267,13 @@
 
   // Remove the client if it has no valid endpoint groups.
   if (parsed_header.empty()) {
-    cache->RemoveClient(origin);
+    // TODO(chlily): Pass NIK to cache.
+    cache->RemoveClient(NetworkIsolationKey::Todo(), origin);
     RecordHeaderOutcome(HeaderOutcome::REMOVED_EMPTY);
     return;
   }
 
+  // TODO(chlily): Pass NIK to cache.
   cache->OnParsedHeader(origin, std::move(parsed_header));
   RecordHeaderOutcome(HeaderOutcome::PARSED);
 }
diff --git a/net/reporting/reporting_header_parser.h b/net/reporting/reporting_header_parser.h
index 58884265..3556904 100644
--- a/net/reporting/reporting_header_parser.h
+++ b/net/reporting/reporting_header_parser.h
@@ -79,6 +79,7 @@
   static void RecordHeaderDiscardedForJsonInvalid();
   static void RecordHeaderDiscardedForJsonTooBig();
 
+  // TODO(chlily): Pass in the NetworkIsolationKey.
   static void ParseHeader(ReportingContext* context,
                           const GURL& url,
                           std::unique_ptr<base::Value> value);
diff --git a/net/reporting/reporting_header_parser_unittest.cc b/net/reporting/reporting_header_parser_unittest.cc
index 48bda761..e0e51ca1 100644
--- a/net/reporting/reporting_header_parser_unittest.cc
+++ b/net/reporting/reporting_header_parser_unittest.cc
@@ -61,12 +61,15 @@
   MockPersistentReportingStore* mock_store() { return store_.get(); }
 
   ReportingEndpointGroup MakeEndpointGroup(
-      std::string name,
-      std::vector<ReportingEndpoint::EndpointInfo> endpoints,
+      const std::string& name,
+      const std::vector<ReportingEndpoint::EndpointInfo>& endpoints,
       OriginSubdomains include_subdomains = OriginSubdomains::DEFAULT,
-      base::TimeDelta ttl = base::TimeDelta::FromDays(1)) {
+      base::TimeDelta ttl = base::TimeDelta::FromDays(1),
+      url::Origin origin = url::Origin()) {
+    ReportingEndpointGroupKey group_key(NetworkIsolationKey() /* unused */,
+                                        url::Origin() /* unused */, name);
     ReportingEndpointGroup group;
-    group.name = std::move(name);
+    group.group_key = group_key;
     group.include_subdomains = include_subdomains;
     group.ttl = ttl;
     group.endpoints = std::move(endpoints);
@@ -83,8 +86,8 @@
     std::ostringstream s;
     s << "{ ";
 
-    if (!group.name.empty()) {
-      s << "\"group\": \"" << group.name << "\", ";
+    if (!group.group_key.group_name.empty()) {
+      s << "\"group\": \"" << group.group_key.group_name << "\", ";
     }
 
     s << "\"max_age\": " << group.ttl.InSeconds() << ", ";
@@ -145,6 +148,10 @@
   const std::string kGroup_ = "group";
   const std::string kGroup2_ = "group2";
   const std::string kType_ = "type";
+  const ReportingEndpointGroupKey kGroupKey_ =
+      ReportingEndpointGroupKey(NetworkIsolationKey(), kOrigin_, kGroup_);
+  const ReportingEndpointGroupKey kGroupKey2_ =
+      ReportingEndpointGroupKey(NetworkIsolationKey(), kOrigin_, kGroup2_);
 
  private:
   std::unique_ptr<MockPersistentReportingStore> store_;
@@ -221,11 +228,10 @@
   ParseHeader(kUrl_, header);
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
   EXPECT_EQ(1u, cache()->GetEndpointCount());
-  ReportingEndpoint endpoint =
-      FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_);
+  ReportingEndpoint endpoint = FindEndpointInCache(kGroupKey_, kEndpoint_);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kOrigin_, endpoint.group_key.origin);
   EXPECT_EQ(kGroup_, endpoint.group_key.group_name);
@@ -240,33 +246,28 @@
     EXPECT_EQ(1, mock_store()->StoredEndpointsCount());
     EXPECT_EQ(1, mock_store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
 }
 
 TEST_P(ReportingHeaderParserTest, OmittedGroupName) {
+  ReportingEndpointGroupKey kGroupKey(NetworkIsolationKey(), kOrigin_,
+                                      "default");
   std::vector<ReportingEndpoint::EndpointInfo> endpoints = {{kEndpoint_}};
   std::string header =
       ConstructHeaderGroupString(MakeEndpointGroup(std::string(), endpoints));
 
   ParseHeader(kUrl_, header);
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin_, "default",
-                                         OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_TRUE(EndpointGroupExistsInCache(kGroupKey, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
   EXPECT_EQ(1u, cache()->GetEndpointCount());
-  ReportingEndpoint endpoint =
-      FindEndpointInCache(kOrigin_, "default", kEndpoint_);
+  ReportingEndpoint endpoint = FindEndpointInCache(kGroupKey, kEndpoint_);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kOrigin_, endpoint.group_key.origin);
   EXPECT_EQ("default", endpoint.group_key.group_name);
@@ -281,15 +282,10 @@
     EXPECT_EQ(1, mock_store()->StoredEndpointsCount());
     EXPECT_EQ(1, mock_store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "default",
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, "default", OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -304,24 +300,19 @@
 
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::INCLUDE));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::INCLUDE));
   EXPECT_EQ(1u, cache()->GetEndpointCount());
-  EXPECT_TRUE(EndpointExistsInCache(kOrigin_, kGroup_, kEndpoint_));
+  EXPECT_TRUE(EndpointExistsInCache(kGroupKey_, kEndpoint_));
 
   if (mock_store()) {
     mock_store()->Flush();
     EXPECT_EQ(1, mock_store()->StoredEndpointsCount());
     EXPECT_EQ(1, mock_store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -337,30 +328,27 @@
 
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::EXCLUDE));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::EXCLUDE));
   EXPECT_EQ(1u, cache()->GetEndpointCount());
-  EXPECT_TRUE(EndpointExistsInCache(kOrigin_, kGroup_, kEndpoint_));
+  EXPECT_TRUE(EndpointExistsInCache(kGroupKey_, kEndpoint_));
 
   if (mock_store()) {
     mock_store()->Flush();
     EXPECT_EQ(1, mock_store()->StoredEndpointsCount());
     EXPECT_EQ(1, mock_store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
 }
 
 TEST_P(ReportingHeaderParserTest, IncludeSubdomainsEtldRejected) {
+  ReportingEndpointGroupKey kGroupKey(NetworkIsolationKey(), kOriginEtld_,
+                                      kGroup_);
   std::vector<ReportingEndpoint::EndpointInfo> endpoints = {{kEndpoint_}};
 
   std::string header = ConstructHeaderGroupString(
@@ -368,13 +356,15 @@
   ParseHeader(kUrlEtld_, header);
 
   EXPECT_EQ(0u, cache()->GetEndpointGroupCountForTesting());
-  EXPECT_FALSE(EndpointGroupExistsInCache(kOriginEtld_, kGroup_,
-                                          OriginSubdomains::INCLUDE));
+  EXPECT_FALSE(
+      EndpointGroupExistsInCache(kGroupKey, OriginSubdomains::INCLUDE));
   EXPECT_EQ(0u, cache()->GetEndpointCount());
-  EXPECT_FALSE(EndpointExistsInCache(kOriginEtld_, kGroup_, kEndpoint_));
+  EXPECT_FALSE(EndpointExistsInCache(kGroupKey, kEndpoint_));
 }
 
 TEST_P(ReportingHeaderParserTest, NonIncludeSubdomainsEtldAccepted) {
+  ReportingEndpointGroupKey kGroupKey(NetworkIsolationKey(), kOriginEtld_,
+                                      kGroup_);
   std::vector<ReportingEndpoint::EndpointInfo> endpoints = {{kEndpoint_}};
 
   std::string header = ConstructHeaderGroupString(
@@ -382,10 +372,9 @@
   ParseHeader(kUrlEtld_, header);
 
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOriginEtld_, kGroup_,
-                                         OriginSubdomains::EXCLUDE));
+  EXPECT_TRUE(EndpointGroupExistsInCache(kGroupKey, OriginSubdomains::EXCLUDE));
   EXPECT_EQ(1u, cache()->GetEndpointCount());
-  EXPECT_TRUE(EndpointExistsInCache(kOriginEtld_, kGroup_, kEndpoint_));
+  EXPECT_TRUE(EndpointExistsInCache(kGroupKey, kEndpoint_));
 }
 
 TEST_P(ReportingHeaderParserTest, IncludeSubdomainsNotBoolean) {
@@ -399,24 +388,19 @@
 
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
   EXPECT_EQ(1u, cache()->GetEndpointCount());
-  EXPECT_TRUE(EndpointExistsInCache(kOrigin_, kGroup_, kEndpoint_));
+  EXPECT_TRUE(EndpointExistsInCache(kGroupKey_, kEndpoint_));
 
   if (mock_store()) {
     mock_store()->Flush();
     EXPECT_EQ(1, mock_store()->StoredEndpointsCount());
     EXPECT_EQ(1, mock_store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -433,10 +417,9 @@
 
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
   EXPECT_EQ(1u, cache()->GetEndpointCount());
-  ReportingEndpoint endpoint =
-      FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_);
+  ReportingEndpoint endpoint = FindEndpointInCache(kGroupKey_, kEndpoint_);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kNonDefaultPriority, endpoint.info.priority);
   EXPECT_EQ(ReportingEndpoint::EndpointInfo::kDefaultWeight,
@@ -447,15 +430,10 @@
     EXPECT_EQ(1, mock_store()->StoredEndpointsCount());
     EXPECT_EQ(1, mock_store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -473,10 +451,9 @@
 
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
   EXPECT_EQ(1u, cache()->GetEndpointCount());
-  ReportingEndpoint endpoint =
-      FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_);
+  ReportingEndpoint endpoint = FindEndpointInCache(kGroupKey_, kEndpoint_);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(ReportingEndpoint::EndpointInfo::kDefaultPriority,
             endpoint.info.priority);
@@ -487,15 +464,10 @@
     EXPECT_EQ(1, mock_store()->StoredEndpointsCount());
     EXPECT_EQ(1, mock_store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -513,23 +485,18 @@
 
   ParseHeader(kUrl_, header);
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin_, kGroup_,
-                                         OriginSubdomains::DEFAULT, expires));
+  EXPECT_TRUE(EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT,
+                                         expires));
 
   if (mock_store()) {
     mock_store()->Flush();
     EXPECT_EQ(1, mock_store()->StoredEndpointsCount());
     EXPECT_EQ(1, mock_store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -544,11 +511,10 @@
   ParseHeader(kUrl_, header);
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
   EXPECT_EQ(2u, cache()->GetEndpointCount());
-  ReportingEndpoint endpoint =
-      FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_);
+  ReportingEndpoint endpoint = FindEndpointInCache(kGroupKey_, kEndpoint_);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kOrigin_, endpoint.group_key.origin);
   EXPECT_EQ(kGroup_, endpoint.group_key.group_name);
@@ -558,8 +524,7 @@
   EXPECT_EQ(ReportingEndpoint::EndpointInfo::kDefaultWeight,
             endpoint.info.weight);
 
-  ReportingEndpoint endpoint2 =
-      FindEndpointInCache(kOrigin_, kGroup_, kEndpoint2_);
+  ReportingEndpoint endpoint2 = FindEndpointInCache(kGroupKey_, kEndpoint2_);
   ASSERT_TRUE(endpoint2);
   EXPECT_EQ(kOrigin_, endpoint2.group_key.origin);
   EXPECT_EQ(kGroup_, endpoint2.group_key.group_name);
@@ -574,25 +539,20 @@
     EXPECT_EQ(2, mock_store()->StoredEndpointsCount());
     EXPECT_EQ(1, mock_store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint2_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
 }
 
 TEST_P(ReportingHeaderParserTest, MultipleEndpointsDifferentGroups) {
+  ReportingEndpointGroupKey kOtherGroupKey(NetworkIsolationKey(), kOrigin_,
+                                           kGroup2_);
   std::vector<ReportingEndpoint::EndpointInfo> endpoints1 = {{kEndpoint_}};
   std::vector<ReportingEndpoint::EndpointInfo> endpoints2 = {{kEndpoint_}};
   std::string header =
@@ -603,14 +563,13 @@
   ParseHeader(kUrl_, header);
   EXPECT_EQ(2u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin_, kGroup2_,
-                                         OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kOtherGroupKey, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
 
   EXPECT_EQ(2u, cache()->GetEndpointCount());
-  ReportingEndpoint endpoint =
-      FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_);
+  ReportingEndpoint endpoint = FindEndpointInCache(kGroupKey_, kEndpoint_);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kOrigin_, endpoint.group_key.origin);
   EXPECT_EQ(kGroup_, endpoint.group_key.group_name);
@@ -619,8 +578,7 @@
   EXPECT_EQ(ReportingEndpoint::EndpointInfo::kDefaultWeight,
             endpoint.info.weight);
 
-  ReportingEndpoint endpoint2 =
-      FindEndpointInCache(kOrigin_, kGroup2_, kEndpoint_);
+  ReportingEndpoint endpoint2 = FindEndpointInCache(kOtherGroupKey, kEndpoint_);
   ASSERT_TRUE(endpoint2);
   EXPECT_EQ(kOrigin_, endpoint2.group_key.origin);
   EXPECT_EQ(kGroup2_, endpoint2.group_key.group_name);
@@ -634,24 +592,14 @@
     EXPECT_EQ(2, mock_store()->StoredEndpointsCount());
     EXPECT_EQ(2, mock_store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup2_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup2_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kOtherGroupKey, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kOtherGroupKey);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -674,59 +622,47 @@
       ConstructHeaderGroupString(MakeEndpointGroup(kGroup2_, endpoints3));
   ParseHeader(kUrl2_, header2);
 
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin2_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin2_));
+
+  ReportingEndpointGroupKey kGroupKey1(NetworkIsolationKey(), kOrigin2_,
+                                       kGroup_);
+  ReportingEndpointGroupKey kGroupKey2(NetworkIsolationKey(), kOrigin2_,
+                                       kGroup2_);
 
   EXPECT_EQ(3u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin2_, kGroup_,
-                                         OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin2_, kGroup2_,
-                                         OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kGroupKey1, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kGroupKey2, OriginSubdomains::DEFAULT));
 
   EXPECT_EQ(4u, cache()->GetEndpointCount());
-  EXPECT_TRUE(FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_));
-  EXPECT_TRUE(FindEndpointInCache(kOrigin_, kGroup_, kEndpoint2_));
-  EXPECT_TRUE(FindEndpointInCache(kOrigin2_, kGroup_, kEndpoint_));
-  EXPECT_TRUE(FindEndpointInCache(kOrigin2_, kGroup2_, kEndpoint2_));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey_, kEndpoint_));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey_, kEndpoint2_));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey1, kEndpoint_));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey2, kEndpoint2_));
 
   if (mock_store()) {
     mock_store()->Flush();
     EXPECT_EQ(4, mock_store()->StoredEndpointsCount());
     EXPECT_EQ(3, mock_store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin2_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin2_, kGroup2_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin2_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin2_, kGroup2_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint2_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey1, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey2, kEndpoint2_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey1);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey2);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -743,14 +679,13 @@
   ParseHeader(kUrl_, header);
   // Result is as if they set the two groups with the same name as one group.
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
 
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
 
   EXPECT_EQ(2u, cache()->GetEndpointCount());
-  ReportingEndpoint endpoint =
-      FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_);
+  ReportingEndpoint endpoint = FindEndpointInCache(kGroupKey_, kEndpoint_);
   ASSERT_TRUE(endpoint);
   EXPECT_EQ(kOrigin_, endpoint.group_key.origin);
   EXPECT_EQ(kGroup_, endpoint.group_key.group_name);
@@ -759,8 +694,7 @@
   EXPECT_EQ(ReportingEndpoint::EndpointInfo::kDefaultWeight,
             endpoint.info.weight);
 
-  ReportingEndpoint endpoint2 =
-      FindEndpointInCache(kOrigin_, kGroup_, kEndpoint2_);
+  ReportingEndpoint endpoint2 = FindEndpointInCache(kGroupKey_, kEndpoint2_);
   ASSERT_TRUE(endpoint2);
   EXPECT_EQ(kOrigin_, endpoint2.group_key.origin);
   EXPECT_EQ(kGroup_, endpoint2.group_key.group_name);
@@ -774,19 +708,12 @@
     EXPECT_EQ(2, mock_store()->StoredEndpointsCount());
     EXPECT_EQ(1, mock_store()->StoredEndpointGroupsCount());
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint2_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -802,13 +729,13 @@
 
   // We should dedupe the identical endpoint URLs.
   EXPECT_EQ(1u, cache()->GetEndpointCount());
-  ASSERT_TRUE(FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_));
+  ASSERT_TRUE(FindEndpointInCache(kGroupKey_, kEndpoint_));
 
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
 
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
 }
 
 TEST_P(ReportingHeaderParserTest,
@@ -822,13 +749,13 @@
   // We should dedupe the identical endpoint URLs, even when they're in
   // different headers.
   EXPECT_EQ(1u, cache()->GetEndpointCount());
-  ASSERT_TRUE(FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_));
+  ASSERT_TRUE(FindEndpointInCache(kGroupKey_, kEndpoint_));
 
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
 
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
 }
 
 TEST_P(ReportingHeaderParserTest,
@@ -845,15 +772,15 @@
   // We should dedupe the identical endpoint URLs, even when they're in
   // different headers.
   EXPECT_EQ(3u, cache()->GetEndpointCount());
-  ASSERT_TRUE(FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_));
-  ASSERT_TRUE(FindEndpointInCache(kOrigin_, kGroup_, kEndpoint2_));
-  ASSERT_TRUE(FindEndpointInCache(kOrigin_, kGroup_, kEndpoint3_));
+  ASSERT_TRUE(FindEndpointInCache(kGroupKey_, kEndpoint_));
+  ASSERT_TRUE(FindEndpointInCache(kGroupKey_, kEndpoint2_));
+  ASSERT_TRUE(FindEndpointInCache(kGroupKey_, kEndpoint3_));
 
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
 
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
 }
 
 TEST_P(ReportingHeaderParserTest, OverwriteOldHeader) {
@@ -864,13 +791,13 @@
       ConstructHeaderGroupString(MakeEndpointGroup(kGroup_, endpoints1));
   ParseHeader(kUrl_, header1);
 
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
   EXPECT_EQ(2u, cache()->GetEndpointCount());
-  EXPECT_TRUE(FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_));
-  EXPECT_TRUE(FindEndpointInCache(kOrigin_, kGroup_, kEndpoint2_));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey_, kEndpoint_));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey_, kEndpoint2_));
   if (mock_store()) {
     mock_store()->Flush();
     EXPECT_EQ(2,
@@ -878,19 +805,12 @@
     EXPECT_EQ(1, mock_store()->CountCommands(
                      CommandType::ADD_REPORTING_ENDPOINT_GROUP));
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint2_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -908,19 +828,18 @@
       ConstructHeaderGroupString(MakeEndpointGroup(kGroup2_, endpoints3));
   ParseHeader(kUrl_, header2);
 
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
 
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin_, kGroup2_,
-                                         OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kGroupKey2_, OriginSubdomains::DEFAULT));
 
   EXPECT_EQ(2u, cache()->GetEndpointCount());
-  EXPECT_TRUE(FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_));
-  EXPECT_EQ(20,
-            FindEndpointInCache(kOrigin_, kGroup_, kEndpoint_).info.priority);
-  EXPECT_FALSE(FindEndpointInCache(kOrigin_, kGroup_, kEndpoint2_));
-  EXPECT_TRUE(FindEndpointInCache(kOrigin_, kGroup2_, kEndpoint2_));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey_, kEndpoint_));
+  EXPECT_EQ(20, FindEndpointInCache(kGroupKey_, kEndpoint_).info.priority);
+  EXPECT_FALSE(FindEndpointInCache(kGroupKey_, kEndpoint2_));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey2_, kEndpoint2_));
   if (mock_store()) {
     mock_store()->Flush();
     EXPECT_EQ(2 + 1,
@@ -930,25 +849,23 @@
     EXPECT_EQ(
         1, mock_store()->CountCommands(CommandType::DELETE_REPORTING_ENDPOINT));
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup2_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup2_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey2_, kEndpoint2_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey2_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint2_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
 }
 
 TEST_P(ReportingHeaderParserTest, OverwriteOldHeaderWithCompletelyNew) {
+  ReportingEndpointGroupKey kGroupKey1(NetworkIsolationKey(), kOrigin_, "1");
+  ReportingEndpointGroupKey kGroupKey2(NetworkIsolationKey(), kOrigin_, "2");
+  ReportingEndpointGroupKey kGroupKey3(NetworkIsolationKey(), kOrigin_, "3");
+  ReportingEndpointGroupKey kGroupKey4(NetworkIsolationKey(), kOrigin_, "4");
+  ReportingEndpointGroupKey kGroupKey5(NetworkIsolationKey(), kOrigin_, "5");
   std::vector<ReportingEndpoint::EndpointInfo> endpoints1_1 = {{MakeURL(10)},
                                                                {MakeURL(11)}};
   std::vector<ReportingEndpoint::EndpointInfo> endpoints2_1 = {{MakeURL(20)},
@@ -960,14 +877,14 @@
       ConstructHeaderGroupString(MakeEndpointGroup("2", endpoints2_1)) + ", " +
       ConstructHeaderGroupString(MakeEndpointGroup("3", endpoints3_1));
   ParseHeader(kUrl_, header1);
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
   EXPECT_EQ(3u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, "1", OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey1, OriginSubdomains::DEFAULT));
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, "2", OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey2, OriginSubdomains::DEFAULT));
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, "3", OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey3, OriginSubdomains::DEFAULT));
   EXPECT_EQ(6u, cache()->GetEndpointCount());
   if (mock_store()) {
     mock_store()->Flush();
@@ -976,39 +893,24 @@
     EXPECT_EQ(3, mock_store()->CountCommands(
                      CommandType::ADD_REPORTING_ENDPOINT_GROUP));
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "1", endpoints1_1[0]));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "1", endpoints1_1[1]));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "2", endpoints2_1[0]));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "2", endpoints2_1[1]));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "3", endpoints3_1[0]));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "3", endpoints3_1[1]));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, "1", OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, "2", OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, "3", OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey1, endpoints1_1[0].url);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey1, endpoints1_1[1].url);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey2, endpoints2_1[0].url);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey2, endpoints2_1[1].url);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey3, endpoints3_1[0].url);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey3, endpoints3_1[1].url);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey1);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey2);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey3);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -1022,24 +924,24 @@
       ConstructHeaderGroupString(MakeEndpointGroup("2", endpoints2_2)) + ", " +
       ConstructHeaderGroupString(MakeEndpointGroup("3", endpoints3_2));
   ParseHeader(kUrl_, header2);
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
   EXPECT_EQ(3u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, "1", OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey1, OriginSubdomains::DEFAULT));
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, "2", OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey2, OriginSubdomains::DEFAULT));
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, "3", OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey3, OriginSubdomains::DEFAULT));
   EXPECT_EQ(3u, cache()->GetEndpointCount());
-  EXPECT_TRUE(FindEndpointInCache(kOrigin_, "1", MakeURL(12)));
-  EXPECT_FALSE(FindEndpointInCache(kOrigin_, "1", MakeURL(10)));
-  EXPECT_FALSE(FindEndpointInCache(kOrigin_, "1", MakeURL(11)));
-  EXPECT_TRUE(FindEndpointInCache(kOrigin_, "2", MakeURL(22)));
-  EXPECT_FALSE(FindEndpointInCache(kOrigin_, "2", MakeURL(20)));
-  EXPECT_FALSE(FindEndpointInCache(kOrigin_, "2", MakeURL(21)));
-  EXPECT_TRUE(FindEndpointInCache(kOrigin_, "3", MakeURL(32)));
-  EXPECT_FALSE(FindEndpointInCache(kOrigin_, "3", MakeURL(30)));
-  EXPECT_FALSE(FindEndpointInCache(kOrigin_, "3", MakeURL(31)));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey1, MakeURL(12)));
+  EXPECT_FALSE(FindEndpointInCache(kGroupKey1, MakeURL(10)));
+  EXPECT_FALSE(FindEndpointInCache(kGroupKey1, MakeURL(11)));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey2, MakeURL(22)));
+  EXPECT_FALSE(FindEndpointInCache(kGroupKey2, MakeURL(20)));
+  EXPECT_FALSE(FindEndpointInCache(kGroupKey2, MakeURL(21)));
+  EXPECT_TRUE(FindEndpointInCache(kGroupKey3, MakeURL(32)));
+  EXPECT_FALSE(FindEndpointInCache(kGroupKey3, MakeURL(30)));
+  EXPECT_FALSE(FindEndpointInCache(kGroupKey3, MakeURL(31)));
   if (mock_store()) {
     mock_store()->Flush();
     EXPECT_EQ(6 + 3,
@@ -1051,33 +953,24 @@
     EXPECT_EQ(0, mock_store()->CountCommands(
                      CommandType::DELETE_REPORTING_ENDPOINT_GROUP));
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "1", endpoints1_2[0]));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "2", endpoints2_2[0]));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "3", endpoints3_2[0]));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "1", endpoints1_1[0]));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "1", endpoints1_1[1]));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "2", endpoints2_1[0]));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "2", endpoints2_1[1]));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "3", endpoints3_1[0]));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "3", endpoints3_1[1]));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey1, endpoints1_2[0].url);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey2, endpoints2_2[0].url);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey3, endpoints3_2[0].url);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey1, endpoints1_1[0].url);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey1, endpoints1_1[1].url);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey2, endpoints2_1[0].url);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey2, endpoints2_1[1].url);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey3, endpoints3_1[0].url);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey3, endpoints3_1[1].url);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -1089,18 +982,18 @@
       ConstructHeaderGroupString(MakeEndpointGroup("4", endpoints4_3)) + ", " +
       ConstructHeaderGroupString(MakeEndpointGroup("5", endpoints5_3));
   ParseHeader(kUrl_, header3);
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
   EXPECT_EQ(2u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, "4", OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey4, OriginSubdomains::DEFAULT));
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, "5", OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey4, OriginSubdomains::DEFAULT));
   EXPECT_FALSE(
-      EndpointGroupExistsInCache(kOrigin_, "1", OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey1, OriginSubdomains::DEFAULT));
   EXPECT_FALSE(
-      EndpointGroupExistsInCache(kOrigin_, "2", OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey2, OriginSubdomains::DEFAULT));
   EXPECT_FALSE(
-      EndpointGroupExistsInCache(kOrigin_, "3", OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey3, OriginSubdomains::DEFAULT));
   EXPECT_EQ(2u, cache()->GetEndpointCount());
   if (mock_store()) {
     mock_store()->Flush();
@@ -1113,46 +1006,26 @@
     EXPECT_EQ(3, mock_store()->CountCommands(
                      CommandType::DELETE_REPORTING_ENDPOINT_GROUP));
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "4", endpoints4_3[0]));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "5", endpoints5_3[0]));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, "4", OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, "5", OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "1", endpoints1_2[0]));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "2", endpoints2_2[0]));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, "3", endpoints3_2[0]));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, "1", OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, "2", OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, "3", OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey4, endpoints4_3[0].url);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey5, endpoints5_3[0].url);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey4);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey5);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey1, endpoints1_2[0].url);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey2, endpoints2_2[0].url);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey3, endpoints3_2[0].url);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey1);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey2);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey3);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -1181,12 +1054,12 @@
       ConstructHeaderGroupString(MakeEndpointGroup(kGroup2_, endpoints2));
   ParseHeader(kUrl_, header1);
 
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
   EXPECT_EQ(2u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_TRUE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin_, kGroup2_,
-                                         OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kGroupKey2_, OriginSubdomains::DEFAULT));
   EXPECT_EQ(2u, cache()->GetEndpointCount());
   if (mock_store()) {
     mock_store()->Flush();
@@ -1195,24 +1068,14 @@
     EXPECT_EQ(2, mock_store()->CountCommands(
                      CommandType::ADD_REPORTING_ENDPOINT_GROUP));
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup2_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-    expected_commands.emplace_back(
-        CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup2_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                   kGroupKey2_, kEndpoint2_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
+    expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey2_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -1226,15 +1089,15 @@
                             kGroup2_, endpoints2));  // Other group stays.
   ParseHeader(kUrl_, header2);
 
-  EXPECT_TRUE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_TRUE(ClientExistsInCacheForOrigin(kOrigin_));
   EXPECT_EQ(1u, cache()->GetEndpointGroupCountForTesting());
 
   // Group was deleted.
   EXPECT_FALSE(
-      EndpointGroupExistsInCache(kOrigin_, kGroup_, OriginSubdomains::DEFAULT));
+      EndpointGroupExistsInCache(kGroupKey_, OriginSubdomains::DEFAULT));
   // Other group remains in the cache.
-  EXPECT_TRUE(EndpointGroupExistsInCache(kOrigin_, kGroup2_,
-                                         OriginSubdomains::DEFAULT));
+  EXPECT_TRUE(
+      EndpointGroupExistsInCache(kGroupKey2_, OriginSubdomains::DEFAULT));
   EXPECT_EQ(1u, cache()->GetEndpointCount());
   if (mock_store()) {
     mock_store()->Flush();
@@ -1247,15 +1110,10 @@
     EXPECT_EQ(1, mock_store()->CountCommands(
                      CommandType::DELETE_REPORTING_ENDPOINT_GROUP));
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint_}));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey_, kEndpoint_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
@@ -1269,7 +1127,7 @@
 
   // Deletion of the last remaining group also deletes the client for this
   // origin.
-  EXPECT_FALSE(OriginClientExistsInCache(kOrigin_));
+  EXPECT_FALSE(ClientExistsInCacheForOrigin(kOrigin_));
   EXPECT_EQ(0u, cache()->GetEndpointGroupCountForTesting());
   EXPECT_EQ(0u, cache()->GetEndpointCount());
   if (mock_store()) {
@@ -1283,15 +1141,10 @@
     EXPECT_EQ(1 + 1, mock_store()->CountCommands(
                          CommandType::DELETE_REPORTING_ENDPOINT_GROUP));
     MockPersistentReportingStore::CommandList expected_commands;
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT,
-        ReportingEndpoint(kOrigin_, kGroup2_,
-                          ReportingEndpoint::EndpointInfo{kEndpoint2_}));
-    expected_commands.emplace_back(
-        CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-        CachedReportingEndpointGroup(
-            kOrigin_, kGroup2_, OriginSubdomains::DEFAULT /* irrelevant */,
-            base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                   kGroupKey2_, kEndpoint2_);
+    expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                   kGroupKey2_);
     EXPECT_THAT(mock_store()->GetAllCommands(),
                 testing::IsSupersetOf(expected_commands));
   }
diff --git a/net/reporting/reporting_network_change_observer_unittest.cc b/net/reporting/reporting_network_change_observer_unittest.cc
index 9360c50..d5e07701 100644
--- a/net/reporting/reporting_network_change_observer_unittest.cc
+++ b/net/reporting/reporting_network_change_observer_unittest.cc
@@ -33,7 +33,7 @@
 
   void SetEndpoint() {
     ASSERT_TRUE(
-        SetEndpointInCache(kOrigin_, kGroup_, kEndpoint_,
+        SetEndpointInCache(kGroupKey_, kEndpoint_,
                            base::Time::Now() + base::TimeDelta::FromDays(7)));
   }
 
@@ -49,6 +49,8 @@
   const std::string kUserAgent_ = "Mozilla/1.0";
   const std::string kGroup_ = "group";
   const std::string kType_ = "default";
+  const ReportingEndpointGroupKey kGroupKey_ =
+      ReportingEndpointGroupKey(NetworkIsolationKey(), kOrigin_, kGroup_);
 };
 
 TEST_F(ReportingNetworkChangeObserverTest, ClearNothing) {
diff --git a/net/reporting/reporting_policy.h b/net/reporting/reporting_policy.h
index 8cb1a02..7dda903 100644
--- a/net/reporting/reporting_policy.h
+++ b/net/reporting/reporting_policy.h
@@ -34,6 +34,8 @@
   size_t max_endpoint_count;
 
   // Maximum number of endpoints for a given origin before evicting
+  // TODO(chlily): This is actually a limit on the endpoints for a given client
+  // (for a NIK, origin pair), so rename this.
   size_t max_endpoints_per_origin;
 
   // Minimum interval at which to attempt delivery of queued reports.
diff --git a/net/reporting/reporting_service_unittest.cc b/net/reporting/reporting_service_unittest.cc
index b34b90d..4fe6e600 100644
--- a/net/reporting/reporting_service_unittest.cc
+++ b/net/reporting/reporting_service_unittest.cc
@@ -11,10 +11,12 @@
 #include "base/memory/ptr_util.h"
 #include "base/time/tick_clock.h"
 #include "base/values.h"
+#include "net/base/network_isolation_key.h"
 #include "net/reporting/mock_persistent_reporting_store.h"
 #include "net/reporting/reporting_browsing_data_remover.h"
 #include "net/reporting/reporting_cache.h"
 #include "net/reporting/reporting_context.h"
+#include "net/reporting/reporting_endpoint.h"
 #include "net/reporting/reporting_policy.h"
 #include "net/reporting/reporting_report.h"
 #include "net/reporting/reporting_service.h"
@@ -41,6 +43,12 @@
   const std::string kUserAgent_ = "Mozilla/1.0";
   const std::string kGroup_ = "group";
   const std::string kType_ = "type";
+  const ReportingEndpointGroupKey kGroupKey_ =
+      ReportingEndpointGroupKey(NetworkIsolationKey::Todo(), kOrigin_, kGroup_);
+  const ReportingEndpointGroupKey kGroupKey2_ =
+      ReportingEndpointGroupKey(NetworkIsolationKey::Todo(),
+                                kOrigin2_,
+                                kGroup_);
 
   ReportingServiceTest() {
     if (GetParam())
@@ -184,15 +192,10 @@
   // Unblock the load. The will let the remaining calls to the service complete
   // without blocking.
   FinishLoading(true /* load_success */);
-  expected_commands.emplace_back(
-      CommandType::ADD_REPORTING_ENDPOINT,
-      ReportingEndpoint(kOrigin_, kGroup_,
-                        ReportingEndpoint::EndpointInfo{kEndpoint_}));
-  expected_commands.emplace_back(
-      CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-      CachedReportingEndpointGroup(
-          kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-          base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+  expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                 kGroupKey_, kEndpoint_);
+  expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                 kGroupKey_);
   EXPECT_THAT(store()->GetAllCommands(),
               testing::UnorderedElementsAreArray(expected_commands));
 
@@ -203,25 +206,17 @@
                                        kGroup_ +
                                        "\","
                                        "\"max_age\":86400}");
-  expected_commands.emplace_back(
-      CommandType::ADD_REPORTING_ENDPOINT,
-      ReportingEndpoint(kOrigin2_, kGroup_,
-                        ReportingEndpoint::EndpointInfo{kEndpoint_}));
-  expected_commands.emplace_back(
-      CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-      CachedReportingEndpointGroup(
-          kOrigin2_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-          base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+  expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                 kGroupKey2_, kEndpoint_);
+  expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                 kGroupKey2_);
   EXPECT_THAT(store()->GetAllCommands(),
               testing::UnorderedElementsAreArray(expected_commands));
 
   service()->QueueReport(kUrl_, kUserAgent_, kGroup_, kType_,
                          std::make_unique<base::DictionaryValue>(), 0);
   expected_commands.emplace_back(
-      CommandType::UPDATE_REPORTING_ENDPOINT_GROUP_ACCESS_TIME,
-      CachedReportingEndpointGroup(
-          kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-          base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+      CommandType::UPDATE_REPORTING_ENDPOINT_GROUP_ACCESS_TIME, kGroupKey_);
   EXPECT_THAT(store()->GetAllCommands(),
               testing::UnorderedElementsAreArray(expected_commands));
 
@@ -229,30 +224,20 @@
                                 base::BindRepeating([](const GURL& url) {
                                   return url.host() == "origin";
                                 }));
-  expected_commands.emplace_back(
-      CommandType::DELETE_REPORTING_ENDPOINT,
-      ReportingEndpoint(kOrigin_, kGroup_,
-                        ReportingEndpoint::EndpointInfo{kEndpoint_}));
-  expected_commands.emplace_back(
-      CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-      CachedReportingEndpointGroup(
-          kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-          base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+  expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                 kGroupKey_, kEndpoint_);
+  expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                 kGroupKey_);
   expected_commands.emplace_back(CommandType::FLUSH);
   EXPECT_THAT(store()->GetAllCommands(),
               testing::UnorderedElementsAreArray(expected_commands));
 
   service()->RemoveAllBrowsingData(
       ReportingBrowsingDataRemover::DATA_TYPE_CLIENTS);
-  expected_commands.emplace_back(
-      CommandType::DELETE_REPORTING_ENDPOINT,
-      ReportingEndpoint(kOrigin2_, kGroup_,
-                        ReportingEndpoint::EndpointInfo{kEndpoint_}));
-  expected_commands.emplace_back(
-      CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-      CachedReportingEndpointGroup(
-          kOrigin2_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-          base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+  expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                 kGroupKey2_, kEndpoint_);
+  expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                 kGroupKey2_);
   expected_commands.emplace_back(CommandType::FLUSH);
   EXPECT_THAT(store()->GetAllCommands(),
               testing::UnorderedElementsAreArray(expected_commands));
@@ -307,48 +292,25 @@
   // Unblock the load. The will let the remaining calls to the service complete
   // without blocking.
   FinishLoading(true /* load_success */);
+  expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                 kGroupKey_, kEndpoint_);
+  expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT,
+                                 kGroupKey2_, kEndpoint_);
+  expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                 kGroupKey_);
+  expected_commands.emplace_back(CommandType::ADD_REPORTING_ENDPOINT_GROUP,
+                                 kGroupKey2_);
   expected_commands.emplace_back(
-      CommandType::ADD_REPORTING_ENDPOINT,
-      ReportingEndpoint(kOrigin_, kGroup_,
-                        ReportingEndpoint::EndpointInfo{kEndpoint_}));
-  expected_commands.emplace_back(
-      CommandType::ADD_REPORTING_ENDPOINT,
-      ReportingEndpoint(kOrigin2_, kGroup_,
-                        ReportingEndpoint::EndpointInfo{kEndpoint_}));
-  expected_commands.emplace_back(
-      CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-      CachedReportingEndpointGroup(
-          kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-          base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-  expected_commands.emplace_back(
-      CommandType::ADD_REPORTING_ENDPOINT_GROUP,
-      CachedReportingEndpointGroup(
-          kOrigin2_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-          base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-  expected_commands.emplace_back(
-      CommandType::UPDATE_REPORTING_ENDPOINT_GROUP_ACCESS_TIME,
-      CachedReportingEndpointGroup(
-          kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-          base::Time() /* irrelevant */, base::Time() /* irrelevant */));
-  expected_commands.emplace_back(
-      CommandType::DELETE_REPORTING_ENDPOINT,
-      ReportingEndpoint(kOrigin_, kGroup_,
-                        ReportingEndpoint::EndpointInfo{kEndpoint_}));
-  expected_commands.emplace_back(
-      CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-      CachedReportingEndpointGroup(
-          kOrigin_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-          base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+      CommandType::UPDATE_REPORTING_ENDPOINT_GROUP_ACCESS_TIME, kGroupKey_);
+  expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                 kGroupKey_, kEndpoint_);
+  expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                 kGroupKey_);
   expected_commands.emplace_back(CommandType::FLUSH);
-  expected_commands.emplace_back(
-      CommandType::DELETE_REPORTING_ENDPOINT,
-      ReportingEndpoint(kOrigin2_, kGroup_,
-                        ReportingEndpoint::EndpointInfo{kEndpoint_}));
-  expected_commands.emplace_back(
-      CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
-      CachedReportingEndpointGroup(
-          kOrigin2_, kGroup_, OriginSubdomains::DEFAULT /* irrelevant */,
-          base::Time() /* irrelevant */, base::Time() /* irrelevant */));
+  expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT,
+                                 kGroupKey2_, kEndpoint_);
+  expected_commands.emplace_back(CommandType::DELETE_REPORTING_ENDPOINT_GROUP,
+                                 kGroupKey2_);
   expected_commands.emplace_back(CommandType::FLUSH);
   EXPECT_THAT(store()->GetAllCommands(),
               testing::UnorderedElementsAreArray(expected_commands));
diff --git a/net/reporting/reporting_test_util.cc b/net/reporting/reporting_test_util.cc
index d228e3a..490231d3 100644
--- a/net/reporting/reporting_test_util.cc
+++ b/net/reporting/reporting_test_util.cc
@@ -209,61 +209,52 @@
 }
 
 const ReportingEndpoint ReportingTestBase::FindEndpointInCache(
-    const url::Origin& origin,
-    const std::string& group_name,
+    const ReportingEndpointGroupKey& group_key,
     const GURL& url) {
-  return cache()->GetEndpointForTesting(origin, group_name, url);
+  return cache()->GetEndpointForTesting(group_key, url);
 }
 
-bool ReportingTestBase::SetEndpointInCache(const url::Origin& origin,
-                                           const std::string& group_name,
-                                           const GURL& url,
-                                           base::Time expires,
-                                           OriginSubdomains include_subdomains,
-                                           int priority,
-                                           int weight) {
-  cache()->SetEndpointForTesting(origin, group_name, url, include_subdomains,
-                                 expires, priority, weight);
-  const ReportingEndpoint endpoint =
-      FindEndpointInCache(origin, group_name, url);
+bool ReportingTestBase::SetEndpointInCache(
+    const ReportingEndpointGroupKey& group_key,
+    const GURL& url,
+    base::Time expires,
+    OriginSubdomains include_subdomains,
+    int priority,
+    int weight) {
+  cache()->SetEndpointForTesting(group_key, url, include_subdomains, expires,
+                                 priority, weight);
+  const ReportingEndpoint endpoint = FindEndpointInCache(group_key, url);
   return endpoint.is_valid();
 }
 
-bool ReportingTestBase::EndpointExistsInCache(const url::Origin& origin,
-                                              const std::string& group_name,
-                                              const GURL& url) {
-  ReportingEndpoint endpoint =
-      cache()->GetEndpointForTesting(origin, group_name, url);
+bool ReportingTestBase::EndpointExistsInCache(
+    const ReportingEndpointGroupKey& group_key,
+    const GURL& url) {
+  ReportingEndpoint endpoint = cache()->GetEndpointForTesting(group_key, url);
   return endpoint.is_valid();
 }
 
 ReportingEndpoint::Statistics ReportingTestBase::GetEndpointStatistics(
-    const url::Origin& origin,
-    const std::string& group_name,
+    const ReportingEndpointGroupKey& group_key,
     const GURL& url) {
-  ReportingEndpoint endpoint =
-      cache()->GetEndpointForTesting(origin, group_name, url);
+  ReportingEndpoint endpoint = cache()->GetEndpointForTesting(group_key, url);
   if (endpoint)
     return endpoint.stats;
   return ReportingEndpoint::Statistics();
 }
 
 bool ReportingTestBase::EndpointGroupExistsInCache(
-    const url::Origin& origin,
-    const std::string& group_name,
+    const ReportingEndpointGroupKey& group_key,
     OriginSubdomains include_subdomains,
     base::Time expires) {
-  return cache()->EndpointGroupExistsForTesting(origin, group_name,
-                                                include_subdomains, expires);
+  return cache()->EndpointGroupExistsForTesting(group_key, include_subdomains,
+                                                expires);
 }
 
-bool ReportingTestBase::OriginClientExistsInCache(const url::Origin& origin) {
-  std::vector<url::Origin> all_origins = cache()->GetAllOrigins();
-  for (const url::Origin& cur_origin : all_origins) {
-    if (cur_origin == origin)
-      return true;
-  }
-  return false;
+bool ReportingTestBase::ClientExistsInCacheForOrigin(
+    const url::Origin& origin) {
+  std::set<url::Origin> all_origins = cache()->GetAllOrigins();
+  return all_origins.find(origin) != all_origins.end();
 }
 
 GURL ReportingTestBase::MakeURL(size_t index) {
diff --git a/net/reporting/reporting_test_util.h b/net/reporting/reporting_test_util.h
index 68238d2b..5f7c990 100644
--- a/net/reporting/reporting_test_util.h
+++ b/net/reporting/reporting_test_util.h
@@ -184,19 +184,18 @@
   void UsePolicy(const ReportingPolicy& policy);
   void UseStore(ReportingCache::PersistentReportingStore* store);
 
-  // Finds a particular endpoint (by origin, group, url) in the cache and
-  // returns it (or an invalid ReportingEndpoint, if not found).
-  const ReportingEndpoint FindEndpointInCache(const url::Origin& origin,
-                                              const std::string& group_name,
-                                              const GURL& url);
+  // Finds a particular endpoint in the cache and returns it (or an invalid
+  // ReportingEndpoint, if not found).
+  const ReportingEndpoint FindEndpointInCache(
+      const ReportingEndpointGroupKey& group_key,
+      const GURL& url);
 
   // Sets an endpoint with the given properties in a group with the given
   // properties, bypassing header parsing. Note that the endpoint is not
   // guaranteed to exist in the cache after calling this function, if endpoint
   // eviction is triggered. Returns whether the endpoint was successfully set.
   bool SetEndpointInCache(
-      const url::Origin& origin,
-      const std::string& group_name,
+      const ReportingEndpointGroupKey& group_key,
       const GURL& url,
       base::Time expires,
       OriginSubdomains include_subdomains = OriginSubdomains::DEFAULT,
@@ -204,26 +203,23 @@
       int weight = ReportingEndpoint::EndpointInfo::kDefaultWeight);
 
   // Returns whether an endpoint with the given properties exists in the cache.
-  bool EndpointExistsInCache(const url::Origin& origin,
-                             const std::string& group_name,
+  bool EndpointExistsInCache(const ReportingEndpointGroupKey& group_key,
                              const GURL& url);
 
   // Gets the statistics for a given endpoint, if it exists.
   ReportingEndpoint::Statistics GetEndpointStatistics(
-      const url::Origin& origin,
-      const std::string& group_name,
+      const ReportingEndpointGroupKey& group_key,
       const GURL& url);
 
   // Returns whether an endpoint group with exactly the given properties exists
   // in the cache. |expires| can be omitted, in which case it will not be
   // checked.
-  bool EndpointGroupExistsInCache(const url::Origin& origin,
-                                  const std::string& group_name,
+  bool EndpointGroupExistsInCache(const ReportingEndpointGroupKey& group_key,
                                   OriginSubdomains include_subdomains,
                                   base::Time expires = base::Time());
 
   // Returns whether a client for the given origin exists in the cache.
-  bool OriginClientExistsInCache(const url::Origin& origin);
+  bool ClientExistsInCacheForOrigin(const url::Origin& origin);
 
   // Makes a unique URL with the provided index.
   GURL MakeURL(size_t index);
diff --git a/pdf/out_of_process_instance.cc b/pdf/out_of_process_instance.cc
index 5348dc9..bfea6e9 100644
--- a/pdf/out_of_process_instance.cc
+++ b/pdf/out_of_process_instance.cc
@@ -1740,6 +1740,7 @@
 }
 
 void OutOfProcessInstance::SetTwoUpView(bool enable_two_up_view) {
+  DCHECK(base::FeatureList::IsEnabled(features::kPDFTwoUpView));
   engine_->SetTwoUpView(enable_two_up_view);
 }
 
diff --git a/remoting/host/client_session.cc b/remoting/host/client_session.cc
index 274a352..b5ff08b 100644
--- a/remoting/host/client_session.cc
+++ b/remoting/host/client_session.cc
@@ -697,6 +697,12 @@
   // display configuration supports capturing the entire desktop.
   LOG(INFO) << "    Webrtc desktop size " << default_webrtc_desktop_size_;
   if (show_display_id_ == webrtc::kInvalidScreenId) {
+#if defined(OS_MACOSX)
+    // On MacOS, there are situations where webrtc cannot capture the entire
+    // desktop (e.g, when there are displays with different DPIs). We detect
+    // this situation by comparing the full desktop size (calculated above
+    // from the displays) and the size of the initial webrtc capture (which
+    // defaults to the full desktop if supported).
     if (size.width() == default_webrtc_desktop_size_.WidthAsDips() &&
         size.height() == default_webrtc_desktop_size_.HeightAsDips()) {
       LOG(INFO) << "    Full desktop capture supported.";
@@ -706,6 +712,10 @@
           << "    This configuration does not support full desktop capture.";
       can_capture_full_desktop_ = false;
     }
+#else
+    // Windows/Linux can capture full desktop if multiple displays.
+    can_capture_full_desktop_ = true;
+#endif  // defined(OS_MACOSX)
   }
 
   // Generate and send VideoLayout message.
diff --git a/services/device/generic_sensor/platform_sensor_fusion.cc b/services/device/generic_sensor/platform_sensor_fusion.cc
index 96bec04a..b435a4a 100644
--- a/services/device/generic_sensor/platform_sensor_fusion.cc
+++ b/services/device/generic_sensor/platform_sensor_fusion.cc
@@ -197,7 +197,7 @@
     return;
 
   // Round the reading to guard user privacy. See https://crbug.com/1018180.
-  RoundSensorReading(&reading, type);
+  RoundSensorReading(&reading, fusion_algorithm_->fused_type());
 
   if (GetReportingMode() == mojom::ReportingMode::ON_CHANGE &&
       !fusion_algorithm_->IsReadingSignificantlyDifferent(reading_, reading)) {
diff --git a/services/network/BUILD.gn b/services/network/BUILD.gn
index 02e7c9d..06be207 100644
--- a/services/network/BUILD.gn
+++ b/services/network/BUILD.gn
@@ -240,6 +240,7 @@
     "//services/network/public/cpp/cert_verifier",
     "//services/network/public/mojom",
     "//services/network/public/proto",
+    "//services/network/trust_tokens",
     "//services/service_manager/public/cpp",
     "//services/service_manager/public/mojom",
     "//services/service_manager/sandbox:sandbox",
@@ -275,10 +276,6 @@
     deps += [ "//sandbox/win:sandbox" ]
   }
 
-  if (!is_ios) {
-    deps += [ "//services/network/trust_tokens" ]
-  }
-
   defines = [ "IS_NETWORK_SERVICE_IMPL" ]
 
   if (trial_comparison_cert_verifier_supported) {
@@ -401,6 +398,7 @@
     "//services/network/public/cpp",
     "//services/network/public/cpp:buildflags",
     "//services/network/public/mojom",
+    "//services/network/trust_tokens",
     "//services/service_manager/public/cpp",
     "//services/service_manager/public/cpp/test:test_support",
     "//testing/gtest",
@@ -416,11 +414,11 @@
   }
 
   if (!is_ios) {
-    deps += [
-      "//services/network/trust_tokens",
-      "//services/network/trust_tokens:tests",
-      "//services/proxy_resolver:lib",
-    ]
+    deps += [ "//services/proxy_resolver:lib" ]
+  }
+
+  if (is_trust_tokens_supported) {
+    deps += [ "//services/network/trust_tokens:tests" ]
   }
 }
 
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
index 7ce55da..05bd6dc 100644
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
@@ -125,9 +125,6 @@
 #endif
 
 #if !defined(OS_IOS)
-#include "services/network/trust_tokens/sqlite_trust_token_persister.h"
-#include "services/network/trust_tokens/trust_token_parameterization.h"
-#include "services/network/trust_tokens/trust_token_store.h"
 #include "services/network/websocket_factory.h"
 #endif  // !defined(OS_IOS)
 
@@ -145,6 +142,12 @@
 #include "services/network/mdns_responder.h"
 #endif  // BUILDFLAG(ENABLE_MDNS)
 
+#if BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
+#include "services/network/trust_tokens/sqlite_trust_token_persister.h"
+#include "services/network/trust_tokens/trust_token_parameterization.h"
+#include "services/network/trust_tokens/trust_token_store.h"
+#endif  // BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
+
 #if defined(USE_NSS_CERTS)
 #include "net/cert_net/nss_ocsp.h"
 #include "net/cert_net/nss_ocsp_session_url_request.h"
@@ -1820,7 +1823,7 @@
     DCHECK(!params_->persist_session_cookies);
   }
 
-#if !defined(OS_IOS)
+#if BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
   if (base::FeatureList::IsEnabled(features::kTrustTokens)) {
     if (params_->trust_token_path) {
       SQLiteTrustTokenPersister::CreateForFilePath(
@@ -1834,7 +1837,7 @@
       trust_token_store_ = TrustTokenStore::CreateInMemory();
     }
   }
-#endif  // !defined(OS_IOS)
+#endif  // BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
 
   std::unique_ptr<net::StaticHttpUserAgentSettings> user_agent_settings =
       std::make_unique<net::StaticHttpUserAgentSettings>(
@@ -2363,13 +2366,13 @@
   }
 }
 
-#if !defined(OS_IOS)
+#if BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
 void NetworkContext::FinishConstructingTrustTokenStore(
     std::unique_ptr<SQLiteTrustTokenPersister> persister) {
   DCHECK(!trust_token_store_);
   trust_token_store_ = std::make_unique<TrustTokenStore>(std::move(persister));
 }
-#endif  // !defined(OS_IOS)
+#endif  // BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
 
 void NetworkContext::GetOriginPolicyManager(
     mojo::PendingReceiver<mojom::OriginPolicyManager> receiver) {
diff --git a/services/network/network_context.h b/services/network/network_context.h
index e9ab2a0..8e52d22 100644
--- a/services/network/network_context.h
+++ b/services/network/network_context.h
@@ -96,13 +96,14 @@
 class ProxyLookupRequest;
 class ResourceScheduler;
 class ResourceSchedulerClient;
-#if !defined(OS_IOS)
-class SQLiteTrustTokenPersister;
-class TrustTokenStore;
-#endif  // !defined(OS_IOS)
 class QuicTransport;
 class WebSocketFactory;
 
+#if BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
+class SQLiteTrustTokenPersister;
+class TrustTokenStore;
+#endif  // BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
+
 namespace cors {
 class CorsURLLoaderFactory;
 }  // namespace cors
@@ -478,7 +479,7 @@
     return url_loader_factories_.size();
   }
 
-#if !defined(OS_IOS)
+#if BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
   // Maintains Trust Tokens protocol state
   // (https://github.com/WICG/trust-token-api). Used by URLLoader to check
   // preconditions before annotating requests with protocol-related headers
@@ -486,7 +487,7 @@
   //
   // Initialized asynchronously and may be null until initialized.
   TrustTokenStore* trust_token_store() { return trust_token_store_.get(); }
-#endif  // !defined(OS_IOS)
+#endif  // BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
 
  private:
   URLRequestContextOwner MakeURLRequestContext();
@@ -537,14 +538,14 @@
 
   void InitializeCorsParams();
 
-#if !defined(OS_IOS)
+#if BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
   // If |trust_token_store_| is backed by an asynchronously-constructed (e.g.,
   // SQL-based) persistence layer, |FinishConstructingTrustTokenStore|
   // constructs and populates |trust_token_store_| once the persister's
   // asynchronous initialization has finished.
   void FinishConstructingTrustTokenStore(
       std::unique_ptr<SQLiteTrustTokenPersister> persister);
-#endif  // !defined(OS_IOS)
+#endif  // BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
 
   NetworkService* const network_service_;
 
@@ -581,10 +582,12 @@
   mojo::UniqueReceiverSet<mojom::ProxyResolvingSocketFactory>
       proxy_resolving_socket_factories_;
 
-#if !defined(OS_IOS)
+#if BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
   // See the comment for |trust_token_store()|.
   std::unique_ptr<TrustTokenStore> trust_token_store_;
+#endif  // BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
 
+#if !defined(OS_IOS)
   std::unique_ptr<WebSocketFactory> websocket_factory_;
 #endif  // !defined(OS_IOS)
 
diff --git a/services/network/network_context_unittest.cc b/services/network/network_context_unittest.cc
index c3aa9f3..26077a8 100644
--- a/services/network/network_context_unittest.cc
+++ b/services/network/network_context_unittest.cc
@@ -144,10 +144,10 @@
 #include "services/network/mock_mojo_dhcp_wpad_url_client.h"
 #endif  // defined(OS_CHROMEOS)
 
-#if !defined(OS_IOS)
+#if BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
 #include "services/network/trust_tokens/trust_token_parameterization.h"
 #include "services/network/trust_tokens/trust_token_store.h"
-#endif  // !defined(OS_IOS)
+#endif  // BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
 
 namespace network {
 
@@ -2029,10 +2029,11 @@
       reporting_service.get());
 
   GURL domain("https://google.com");
-  reporting_cache->SetEndpointForTesting(url::Origin::Create(domain), "group",
-                                         domain, net::OriginSubdomains::DEFAULT,
-                                         base::Time::Max(), 1 /* priority */,
-                                         1 /* weight */);
+  net::ReportingEndpointGroupKey group_key(
+      net::NetworkIsolationKey(), url::Origin::Create(domain), "group");
+  reporting_cache->SetEndpointForTesting(
+      group_key, domain, net::OriginSubdomains::DEFAULT, base::Time::Max(),
+      1 /* priority */, 1 /* weight */);
 
   ASSERT_EQ(1u, reporting_cache->GetEndpointCount());
 
@@ -2058,15 +2059,17 @@
       reporting_service.get());
 
   GURL domain1("https://google.com");
+  net::ReportingEndpointGroupKey group_key1(
+      net::NetworkIsolationKey(), url::Origin::Create(domain1), "group");
   reporting_cache->SetEndpointForTesting(
-      url::Origin::Create(domain1), "group", domain1,
-      net::OriginSubdomains::DEFAULT, base::Time::Max(), 1 /* priority */,
-      1 /* weight */);
+      group_key1, domain1, net::OriginSubdomains::DEFAULT, base::Time::Max(),
+      1 /* priority */, 1 /* weight */);
   GURL domain2("https://chromium.org");
+  net::ReportingEndpointGroupKey group_key2(
+      net::NetworkIsolationKey(), url::Origin::Create(domain2), "group");
   reporting_cache->SetEndpointForTesting(
-      url::Origin::Create(domain2), "group", domain2,
-      net::OriginSubdomains::DEFAULT, base::Time::Max(), 1 /* priority */,
-      1 /* weight */);
+      group_key2, domain2, net::OriginSubdomains::DEFAULT, base::Time::Max(),
+      1 /* priority */, 1 /* weight */);
 
   ASSERT_EQ(2u, reporting_cache->GetEndpointCount());
 
@@ -2080,10 +2083,8 @@
   run_loop.Run();
 
   EXPECT_EQ(1u, reporting_cache->GetEndpointCount());
-  EXPECT_TRUE(reporting_cache->GetEndpointForTesting(
-      url::Origin::Create(domain2), "group", domain2));
-  EXPECT_FALSE(reporting_cache->GetEndpointForTesting(
-      url::Origin::Create(domain1), "group", domain1));
+  EXPECT_TRUE(reporting_cache->GetEndpointForTesting(group_key2, domain2));
+  EXPECT_FALSE(reporting_cache->GetEndpointForTesting(group_key1, domain1));
 }
 
 TEST_F(NetworkContextTest, ClearEmptyReportingCacheClients) {
@@ -6900,7 +6901,7 @@
       true /* was_cached */, true /* is_navigation */);
 }
 
-#if !defined(OS_IOS)
+#if BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
 TEST_F(NetworkContextTest, EnableTrustTokens) {
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitAndEnableFeature(features::kTrustTokens);
@@ -6967,7 +6968,7 @@
 
   EXPECT_FALSE(network_context->trust_token_store());
 }
-#endif  // !defined(OS_IOS)
+#endif  // BUILDFLAG(IS_TRUST_TOKENS_SUPPORTED)
 
 }  // namespace
 
diff --git a/services/network/public/cpp/BUILD.gn b/services/network/public/cpp/BUILD.gn
index ee5cce19..2c02d3ae 100644
--- a/services/network/public/cpp/BUILD.gn
+++ b/services/network/public/cpp/BUILD.gn
@@ -10,7 +10,10 @@
 
 buildflag_header("buildflags") {
   header = "network_service_buildflags.h"
-  flags = [ "IS_CT_SUPPORTED=$is_ct_supported" ]
+  flags = [
+    "IS_CT_SUPPORTED=$is_ct_supported",
+    "IS_TRUST_TOKENS_SUPPORTED=$is_trust_tokens_supported",
+  ]
 }
 
 jumbo_component("cpp") {
diff --git a/services/network/public/cpp/features.gni b/services/network/public/cpp/features.gni
index 18fef913..9f8e6e1 100644
--- a/services/network/public/cpp/features.gni
+++ b/services/network/public/cpp/features.gni
@@ -8,4 +8,7 @@
   # Certificate transparency is not supported on iOS.
   # TODO(mmenke): It's actually not supported on Android, either.
   is_ct_supported = !is_ios
+
+  # Trust Tokens is a Web Platform feature, so it isn't supported on iOS.
+  is_trust_tokens_supported = !is_ios
 }
diff --git a/services/network/trust_tokens/BUILD.gn b/services/network/trust_tokens/BUILD.gn
index 595c86c6..de1ee4a 100644
--- a/services/network/trust_tokens/BUILD.gn
+++ b/services/network/trust_tokens/BUILD.gn
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//services/network/public/cpp/features.gni")
 import("//third_party/protobuf/proto_library.gni")
 
 source_set("trust_tokens") {
@@ -89,6 +90,7 @@
   ]
 
   deps = [
+    ":public_proto",
     ":storage_proto",
     ":test_support",
     ":trust_tokens",
diff --git a/services/service_manager/embedder/main.cc b/services/service_manager/embedder/main.cc
index 53e9e0a..b338bbf 100644
--- a/services/service_manager/embedder/main.cc
+++ b/services/service_manager/embedder/main.cc
@@ -13,6 +13,7 @@
 #include "base/debug/stack_trace.h"
 #include "base/i18n/icu_util.h"
 #include "base/logging.h"
+#include "base/memory/shared_memory_hooks.h"
 #include "base/message_loop/message_pump_type.h"
 #include "base/optional.h"
 #include "base/process/launch.h"
@@ -31,6 +32,7 @@
 #include "mojo/core/embedder/configuration.h"
 #include "mojo/core/embedder/embedder.h"
 #include "mojo/core/embedder/scoped_ipc_support.h"
+#include "mojo/public/cpp/base/shared_memory_utils.h"
 #include "services/service_manager/embedder/main_delegate.h"
 #include "services/service_manager/embedder/process_type.h"
 #include "services/service_manager/embedder/set_process_title.h"
@@ -39,6 +41,7 @@
 #include "services/service_manager/public/cpp/service.h"
 #include "services/service_manager/public/cpp/service_executable/service_executable_environment.h"
 #include "services/service_manager/public/cpp/service_executable/switches.h"
+#include "services/service_manager/sandbox/sandbox_type.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/base/ui_base_paths.h"
 #include "ui/base/ui_base_switches.h"
@@ -374,6 +377,35 @@
       return exit_code;
     }
 
+    // Note #1: the installed shared memory hooks require a live instance of
+    // mojo::core::ScopedIPCSupport to function, which is instantiated below by
+    // the process type's main function. However, some implementations of the
+    // service_manager::MainDelegate::Initialize() delegate method allocate
+    // shared memory, so the hooks cannot be installed before the Initialize()
+    // call above, or the shared memory allocation will simply fail.
+    //
+    // Note #2: some platforms can directly allocated shared memory in a
+    // sandboxed process. The defines below must be in sync with the
+    // implementation of mojo::NodeController::CreateSharedBuffer().
+#if !defined(OS_MACOSX) && !defined(OS_NACL_SFI) && !defined(OS_FUCHSIA)
+    if (service_manager::IsUnsandboxedSandboxType(
+            service_manager::SandboxTypeFromCommandLine(command_line))) {
+      // Unsandboxed processes don't need shared memory brokering... because
+      // they're not sandboxed.
+    } else if (mojo_config.force_direct_shared_memory_allocation) {
+      // Don't bother with hooks if direct shared memory allocation has been
+      // requested.
+    } else {
+      DCHECK(!mojo_config.is_broker_process);
+      // Otherwise, this is a sandboxed process that will need brokering to
+      // allocate shared memory.
+      base::SharedMemoryHooks::SetCreateHooks(
+          &mojo::CreateReadOnlySharedMemoryRegion,
+          &mojo::CreateUnsafeSharedMemoryRegion,
+          &mojo::CreateWritableSharedMemoryRegion);
+    }
+#endif  // !defined(OS_MACOSX) && !defined(OS_NACL_SFI) && !defined(OS_FUCHSIA)
+
 #if defined(OS_WIN)
     // Route stdio to parent console (if any) or create one.
     if (base::CommandLine::ForCurrentProcess()->HasSwitch(
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json
index 79ae60f..878d9fa 100644
--- a/testing/buildbot/chromium.android.json
+++ b/testing/buildbot/chromium.android.json
@@ -35159,6 +35159,55 @@
       },
       {
         "args": [
+          "--disable-features=UseSkiaRenderer",
+          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter",
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "non_skia_renderer_content_browsertests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "name": "non_skia_renderer_content_browsertests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "device_os": "PQ3A.190801.002",
+              "device_os_flavor": "google",
+              "device_os_type": "userdebug",
+              "device_type": "walleye",
+              "os": "Android"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ]
+        },
+        "test": "content_browsertests",
+        "test_target": "//content/test:content_browsertests"
+      },
+      {
+        "args": [
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices"
         ],
diff --git a/testing/buildbot/chromium.clang.json b/testing/buildbot/chromium.clang.json
index b91c8f69..03dc4386 100644
--- a/testing/buildbot/chromium.clang.json
+++ b/testing/buildbot/chromium.clang.json
@@ -11334,27 +11334,6 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
-        "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-16.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -12838,28 +12817,6 @@
       },
       {
         "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter",
-          "--test-launcher-print-test-stdio=always"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-16.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
-        "args": [
           "--test-launcher-print-test-stdio=always"
         ],
         "merge": {
@@ -14438,27 +14395,6 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
-        "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-16.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -15847,27 +15783,6 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
-        "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-16.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -17258,27 +17173,6 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
-        "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-16.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -18669,27 +18563,6 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
-        "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-16.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -20097,27 +19970,6 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
-        "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-16.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -37864,27 +37716,6 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
-        "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-16.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index 23abbeaf..e0a92a3 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -10380,6 +10380,42 @@
             }
           ]
         },
+        "test": "boringssl_crypto_tests",
+        "test_target": "//third_party/boringssl:boringssl_crypto_tests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "inside_docker": "1",
+              "os": "Ubuntu-16.04"
+            }
+          ]
+        },
+        "test": "boringssl_ssl_tests",
+        "test_target": "//third_party/boringssl:boringssl_ssl_tests"
+      },
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "inside_docker": "1",
+              "os": "Ubuntu-16.04"
+            }
+          ]
+        },
         "test": "cast_runner_browsertests",
         "test_target": "//fuchsia/runners:cast_runner_browsertests"
       },
@@ -10756,6 +10792,24 @@
         "test_target": "//ui/base:ui_base_unittests"
       },
       {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "arm64",
+              "inside_docker": "1",
+              "os": "Ubuntu-16.04"
+            }
+          ]
+        },
+        "test": "url_unittests",
+        "test_target": "//url:url_unittests"
+      },
+      {
         "args": [
           "--child-arg=--ozone-platform=headless"
         ],
@@ -23235,27 +23289,6 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
-        "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-16.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -25028,28 +25061,6 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
-        "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "isolate_coverage_data": true,
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-16.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
         "isolate_coverage_data": true,
         "merge": {
           "args": [],
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json
index 79675fc..4d3e981 100644
--- a/testing/buildbot/chromium.linux.json
+++ b/testing/buildbot/chromium.linux.json
@@ -1831,6 +1831,46 @@
             }
           ]
         },
+        "test": "boringssl_crypto_tests",
+        "test_target": "//third_party/boringssl:boringssl_crypto_tests"
+      },
+      {
+        "args": [
+          "--device=aemu"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "kvm": "1",
+              "os": "Ubuntu-16.04"
+            }
+          ]
+        },
+        "test": "boringssl_ssl_tests",
+        "test_target": "//third_party/boringssl:boringssl_ssl_tests"
+      },
+      {
+        "args": [
+          "--device=aemu"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "kvm": "1",
+              "os": "Ubuntu-16.04"
+            }
+          ]
+        },
         "test": "cast_runner_browsertests",
         "test_target": "//fuchsia/runners:cast_runner_browsertests"
       },
@@ -2261,6 +2301,26 @@
       },
       {
         "args": [
+          "--device=aemu"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "kvm": "1",
+              "os": "Ubuntu-16.04"
+            }
+          ]
+        },
+        "test": "url_unittests",
+        "test_target": "//url:url_unittests"
+      },
+      {
+        "args": [
           "--child-arg=--ozone-platform=headless",
           "--device=aemu"
         ],
@@ -2972,28 +3032,6 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
-        "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "isolate_coverage_data": true,
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-16.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
         "isolate_coverage_data": true,
         "merge": {
           "args": [],
@@ -4834,27 +4872,6 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
-        "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-16.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -6701,27 +6718,6 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
-        "args": [
-          "--enable-features=UseSkiaRenderer",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
-        ],
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_gtest_merge.py"
-        },
-        "name": "skia_renderer_content_browsertests",
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "os": "Ubuntu-14.04"
-            }
-          ]
-        },
-        "test": "content_browsertests",
-        "test_target": "//content/test:content_browsertests"
-      },
-      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
diff --git a/testing/buildbot/chromium.win.json b/testing/buildbot/chromium.win.json
index 61017d8..b6fbfa1 100644
--- a/testing/buildbot/chromium.win.json
+++ b/testing/buildbot/chromium.win.json
@@ -1846,6 +1846,28 @@
         "test_target": "//content/test:content_browsertests"
       },
       {
+        "args": [
+          "--disable-features=UseSkiaRenderer",
+          "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter"
+        ],
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "name": "non_skia_renderer_content_browsertests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "os": "Windows-10-15063"
+            }
+          ]
+        },
+        "test": "content_browsertests",
+        "test_target": "//content/test:content_browsertests"
+      },
+      {
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
diff --git a/testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter b/testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter
index d60467e9..9791d6f 100644
--- a/testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter
+++ b/testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter
@@ -2,11 +2,3 @@
 -NavigationBrowserTest.HistoryBackCancelPendingNavigationUserGesture/1
 -SitePerProcessBrowserTest.*
 -TextFragmentAnchorBrowserTest.DisabledOnScriptNavigation/0
-
-# Vulkan Video Broken. https://crbug.com/1059724
--File/MediaTest.Video*
--Http/MediaTest.Video*
--MediaSourceTest.*
--MediaTest.Video*
--MSE_*ClearKey/EncryptedMediaTest.Playback_Encryption*
--P/CompositorImplBrowserTestRefreshRate.VideoPreference/0
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl
index 06fd5df..404e2611 100644
--- a/testing/buildbot/test_suite_exceptions.pyl
+++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -381,16 +381,12 @@
     'remove_from': [
       # https://crbug.com/1054545
       'Fuchsia ARM64',
-      'Fuchsia x64',
-      'fuchsia-fyi-arm64-rel',
     ],
   },
   'boringssl_ssl_tests': {
     'remove_from': [
       # https://crbug.com/1054545
       'Fuchsia ARM64',
-      'Fuchsia x64',
-      'fuchsia-fyi-arm64-rel',
     ],
   },
   'breakpad_unittests': {
@@ -2173,8 +2169,6 @@
     'remove_from': [
       # crbug.com/1054240
       'Fuchsia ARM64',
-      'Fuchsia x64',
-      'fuchsia-fyi-arm64-rel',
     ],
   },
   'video_decode_accelerator_gl_unittest': {
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index 4d3af78..940aabd 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -3187,6 +3187,19 @@
       'views_unittests': {},
     },
 
+    'non_skia_renderer_gtests': {
+      'non_skia_renderer_content_browsertests': {
+        'args': [
+          '--disable-features=UseSkiaRenderer',
+          '--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter',
+        ],
+        'swarming': {
+          'shards': 1,
+        },
+        'test': 'content_browsertests',
+      },
+    },
+
     'opus_tests': {
       'opus_tests': {
         'args': [
@@ -3953,6 +3966,7 @@
       # O only.
     ],
 
+     # Keep in sync with android_pie_rel_non_skia_renderer_gtests below.
     'android_pie_rel_gtests': [
       'android_monochrome_smoke_tests',
       'android_pagecontroller_self_tests',
@@ -3972,6 +3986,31 @@
       'webview_ui_instrumentation_tests',
     ],
 
+    # Temporary test suite to minimize impact of non_skia_renderer_gtests.
+    # Keep in sync with android_pie_rel_gtests above.
+    #
+    # TODO(https://crbug.com/1058067): Remove this once SkiaRenderer goes
+    # stable on Android.
+    'android_pie_rel_non_skia_renderer_gtests': [
+      'android_monochrome_smoke_tests',
+      'android_pagecontroller_self_tests',
+      'android_smoke_tests',
+      # TODO: Following tests are experimental (crbug/1010211).
+      'android_specific_chromium_gtests',  # Already includes gl_gtests.
+      'chromium_gtests',
+      'chromium_gtests_for_devices_with_graphical_output',
+      'linux_flavor_specific_chromium_gtests',
+      'network_service_android_gtests',
+      'non_skia_renderer_gtests',
+      'system_webview_shell_instrumentation_tests', # Not an experimental test
+      'vr_platform_specific_chromium_gtests',
+      'weblayer_android_gtests',
+      'weblayer_gtests',
+      # Experimental tests end here.
+      'webview_cts_tests_gtest',
+      'webview_ui_instrumentation_tests',
+    ],
+
     'android_wpt_scripts': [
       'chrome_public_wpt',
       'system_webview_wpt',
@@ -4073,7 +4112,6 @@
       'linux_specific_xr_gtests',
       'non_android_and_cast_and_chromeos_chromium_gtests',
       'non_android_chromium_gtests',
-      'skia_renderer_gtests',
       'vr_platform_specific_chromium_gtests',
       'weblayer_gtests',
     ],
@@ -4112,6 +4150,7 @@
       'chromium_gtests_for_win_and_linux_only',
       'non_android_and_cast_and_chromeos_chromium_gtests',
       'non_android_chromium_gtests',
+      'non_skia_renderer_gtests',
       'pixel_browser_tests_gtests',
       'vr_platform_specific_chromium_gtests',
       'weblayer_gtests',
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index 8b9b30ba..6211efd 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -697,7 +697,7 @@
           'weblayer_shell',
         ],
         'test_suites': {
-          'gtest_tests': 'android_pie_rel_gtests',
+          'gtest_tests': 'android_pie_rel_non_skia_renderer_gtests',
           'isolated_scripts': 'marshmallow_pie_isolated_scripts_with_proguard',
         },
         'use_swarming': True,
diff --git a/third_party/blink/public/blink_typemaps.gni b/third_party/blink/public/blink_typemaps.gni
index ea1302e..a96c2e6 100644
--- a/third_party/blink/public/blink_typemaps.gni
+++ b/third_party/blink/public/blink_typemaps.gni
@@ -5,12 +5,6 @@
 typemaps = [
   "//gpu/ipc/common/mailbox_holder_for_blink.typemap",
   "//gpu/ipc/common/sync_token.typemap",
-  "//mojo/public/cpp/base/file.typemap",
-  "//mojo/public/cpp/base/file_info.typemap",
-  "//mojo/public/cpp/base/file_path.typemap",
-  "//mojo/public/cpp/base/file_error.typemap",
-  "//mojo/public/cpp/base/shared_memory.typemap",
-  "//mojo/public/cpp/base/read_only_buffer.typemap",
   "//services/network/public/cpp/cross_origin_embedder_policy.typemap",
   "//services/network/public/cpp/url_request.typemap",
   "//services/viz/public/cpp/compositing/begin_frame_args_for_blink.typemap",
diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn
index 70f8f13..e210edab2 100644
--- a/third_party/blink/public/mojom/BUILD.gn
+++ b/third_party/blink/public/mojom/BUILD.gn
@@ -71,6 +71,7 @@
     "idle/idle_manager.mojom",
     "image_downloader/image_downloader.mojom",
     "input/focus_type.mojom",
+    "input/pointer_lock_result.mojom",
     "input/scroll_direction.mojom",
     "insecure_input/insecure_input_service.mojom",
     "keyboard_lock/keyboard_lock.mojom",
diff --git a/third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom b/third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom
index c798d5e..2f44864 100644
--- a/third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom
+++ b/third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom
@@ -181,9 +181,20 @@
   // Checks if Web Bluetooth is allowed and if a Bluetooth radio is available.
   GetAvailability() => (bool is_available);
 
+  // Requests access to a Bluetooth device which matches
+  // |options->filters->services|. Access is limited to the current origin, and
+  // to the union of |options->filters->services| and
+  // |options->optional_services|. Multiple devices may be discoverable that
+  // match and one must be selected via a chooser user interface.
   RequestDevice(WebBluetoothRequestDeviceOptions options)
     => (WebBluetoothResult result, WebBluetoothDevice? device);
 
+  // Returns a list of permitted Bluetooth devices that the current origin can
+  // access services on. These devices are granted access via RequestDevice(),
+  // but the permission can be revoked at any time by the user through the
+  // browser's UI.
+  GetDevices() => (array<WebBluetoothDevice> devices);
+
   // Creates a GATT Connection to a Bluetooth Device identified by |device_id|
   // if a connection to the device didn't exist already. If a GATT connection
   // existed already then this function increases the ref count to keep that
diff --git a/third_party/blink/public/mojom/input/pointer_lock_result.mojom b/third_party/blink/public/mojom/input/pointer_lock_result.mojom
new file mode 100644
index 0000000..30786782
--- /dev/null
+++ b/third_party/blink/public/mojom/input/pointer_lock_result.mojom
@@ -0,0 +1,21 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+// Enum for tracking the result of a pointer lock request.
+// This enum is used in the callback from
+// WidgetInputHandlerHost.RequestMouselock which is a request
+// made from the renderer to the browser.
+enum PointerLockResult {
+  kSuccess = 0,
+  kUnsupportedOptions,
+  kRequiresUserGesture,
+  kUserRejected, // When user hits escape before lock is acquired.
+  kPermissionDenied,
+  kAlreadyLocked,
+  kWrongDocument,
+  kElementDestroyed,
+  kUnknownError // Used for functions that should be overridden and tests.
+};
\ No newline at end of file
diff --git a/third_party/blink/public/web/web_widget_client.h b/third_party/blink/public/web/web_widget_client.h
index 96b43677..9d3fcbf 100644
--- a/third_party/blink/public/web/web_widget_client.h
+++ b/third_party/blink/public/web/web_widget_client.h
@@ -38,6 +38,7 @@
 #include "components/viz/common/surfaces/frame_sink_id.h"
 #include "services/network/public/mojom/referrer_policy.mojom-shared.h"
 #include "third_party/blink/public/common/input/web_gesture_event.h"
+#include "third_party/blink/public/mojom/input/pointer_lock_result.mojom-forward.h"
 #include "third_party/blink/public/platform/web_common.h"
 #include "third_party/blink/public/platform/web_drag_operation.h"
 #include "third_party/blink/public/platform/web_intrinsic_sizing_info.h"
@@ -120,9 +121,12 @@
   // Requests to lock the mouse cursor for the |requester_frame| in the
   // widget. If true is returned, the success result will be asynchronously
   // returned via a single call to WebWidget::didAcquirePointerLock() or
-  // WebWidget::didNotAcquirePointerLock().
+  // WebWidget::didNotAcquirePointerLock() and a single call to the callback.
   // If false, the request has been denied synchronously.
+  using PointerLockCallback =
+      base::OnceCallback<void(mojom::PointerLockResult)>;
   virtual bool RequestPointerLock(WebLocalFrame* requester_frame,
+                                  PointerLockCallback callback,
                                   bool request_unadjusted_movement) {
     return false;
   }
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context.cc b/third_party/blink/renderer/core/display_lock/display_lock_context.cc
index 6016f844..b270bc84 100644
--- a/third_party/blink/renderer/core/display_lock/display_lock_context.cc
+++ b/third_party/blink/renderer/core/display_lock/display_lock_context.cc
@@ -209,7 +209,7 @@
   // don't need to do anything as we should have already added containment.
   // Moreover, dirtying self style from within style recalc is not allowed,
   // since either it has no effect and is cleaned before any work is done, or it
-  // causes DHCECKs in AssertLayoutTreeUpdated().
+  // causes DCHECKs in AssertLayoutTreeUpdated().
   if (!document_->InStyleRecalc()) {
     element_->SetNeedsStyleRecalc(
         kLocalStyleChange,
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
index de004b8..c3cb3f9 100644
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
@@ -5593,11 +5593,40 @@
     SetForceReattachLayoutTree();
 }
 
-void Element::requestPointerLock(const PointerLockOptions* options) {
+ScriptValue Element::requestPointerLock(ScriptState* script_state,
+                                        const PointerLockOptions* options,
+                                        ExceptionState& exception_state) {
+  auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state);
+  ScriptPromise promise;
   if (GetDocument().GetPage()) {
-    GetDocument().GetPage()->GetPointerLockController().RequestPointerLock(
-        this, options);
+    promise =
+        GetDocument().GetPage()->GetPointerLockController().RequestPointerLock(
+            resolver, this, exception_state, options);
+  } else {
+    promise = resolver->Promise();
+    exception_state.ThrowDOMException(
+        DOMExceptionCode::kWrongDocumentError,
+        "PointerLock cannot be request when there "
+        "is no frame or that frame has no page.");
   }
+
+  if (RuntimeEnabledFeatures::PointerLockOptionsEnabled(
+          GetExecutionContext())) {
+    if (exception_state.HadException())
+      resolver->Reject(exception_state);
+    return promise.GetScriptValue();
+  }
+
+  // The current spec for PointerLock does not have any language about throwing
+  // exceptions. Therefore to be spec compliant we must clear all exceptions.
+  // When behind our experimental flag however, we will throw exceptions which
+  // should be caught as a promise rejection.
+  exception_state.ClearException();
+
+  // Detach the resolver, since we are not using it, to prepare it for garbage
+  // collection.
+  resolver->Detach();
+  return ScriptValue();
 }
 
 SpellcheckAttributeState Element::GetSpellcheckAttributeState() const {
diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h
index 3db1102..2bc022d 100644
--- a/third_party/blink/renderer/core/dom/element.h
+++ b/third_party/blink/renderer/core/dom/element.h
@@ -848,7 +848,9 @@
   }
   void SetIsInTopLayer(bool);
 
-  void requestPointerLock(const PointerLockOptions*);
+  ScriptValue requestPointerLock(ScriptState* script_state,
+                                 const PointerLockOptions* options,
+                                 ExceptionState& exception_state);
 
   bool IsSpellCheckingEnabled() const;
 
diff --git a/third_party/blink/renderer/core/dom/element.idl b/third_party/blink/renderer/core/dom/element.idl
index 1f7e3af7..5ed1c03 100644
--- a/third_party/blink/renderer/core/dom/element.idl
+++ b/third_party/blink/renderer/core/dom/element.idl
@@ -101,7 +101,8 @@
 
     // Pointer Lock
     // https://w3c.github.io/pointerlock/#extensions-to-the-element-interface
-    [MeasureAs=ElementRequestPointerLock] void requestPointerLock(optional PointerLockOptions options = {});
+    // This function returns void unless the Runtime Enabled Feature |PointerLockOptions| is enabled then it returns Promise<void>.
+    [MeasureAs=ElementRequestPointerLock, CallWith=ScriptState, RaisesException] any requestPointerLock(optional PointerLockOptions options = {});
 
     // CSSOM View Module
     // https://drafts.csswg.org/cssom-view/#extension-to-the-element-interface
diff --git a/third_party/blink/renderer/core/editing/position.h b/third_party/blink/renderer/core/editing/position.h
index 7584f3e..c9cde1a 100644
--- a/third_party/blink/renderer/core/editing/position.h
+++ b/third_party/blink/renderer/core/editing/position.h
@@ -184,7 +184,7 @@
   // Note: Comparison of positions require both parameters are non-null. You
   // should check null-position before comparing them.
   // TODO(yosin): We should use |Position::operator<()| instead of
-  // |Position::comapreTo()| to utilize |DHCECK_XX()|.
+  // |Position::compareTo()| to utilize |DCHECK_XX()|.
   int16_t CompareTo(const PositionTemplate<Strategy>&) const;
   bool operator<(const PositionTemplate<Strategy>&) const;
   bool operator<=(const PositionTemplate<Strategy>&) const;
diff --git a/third_party/blink/renderer/core/events/wheel_event.h b/third_party/blink/renderer/core/events/wheel_event.h
index e44072a..357825d 100644
--- a/third_party/blink/renderer/core/events/wheel_event.h
+++ b/third_party/blink/renderer/core/events/wheel_event.h
@@ -40,7 +40,7 @@
   DEFINE_WRAPPERTYPEINFO();
 
  public:
-  enum { kTickMultiplier = 120 };
+  constexpr static int kTickMultiplier = 120;
 
   enum DeltaMode { kDomDeltaPixel = 0, kDomDeltaLine, kDomDeltaPage };
 
diff --git a/third_party/blink/renderer/core/html/BUILD.gn b/third_party/blink/renderer/core/html/BUILD.gn
index f158b94..3f2a21ab 100644
--- a/third_party/blink/renderer/core/html/BUILD.gn
+++ b/third_party/blink/renderer/core/html/BUILD.gn
@@ -683,6 +683,7 @@
     "parser/html_document_parser_test.cc",
     "parser/html_entity_parser_test.cc",
     "parser/html_parser_idioms_test.cc",
+    "parser/html_parser_metrics_test.cc",
     "parser/html_preload_scanner_document_test.cc",
     "parser/html_preload_scanner_test.cc",
     "parser/html_resource_preloader_test.cc",
diff --git a/third_party/blink/renderer/core/html/parser/BUILD.gn b/third_party/blink/renderer/core/html/parser/BUILD.gn
index f791662..010c864 100644
--- a/third_party/blink/renderer/core/html/parser/BUILD.gn
+++ b/third_party/blink/renderer/core/html/parser/BUILD.gn
@@ -35,6 +35,8 @@
     "html_meta_charset_parser.h",
     "html_parser_idioms.cc",
     "html_parser_idioms.h",
+    "html_parser_metrics.cc",
+    "html_parser_metrics.h",
     "html_parser_options.cc",
     "html_parser_options.h",
     "html_parser_reentry_permit.cc",
diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser.cc b/third_party/blink/renderer/core/html/parser/html_document_parser.cc
index 93159b0..a3bfa2f 100644
--- a/third_party/blink/renderer/core/html/parser/html_document_parser.cc
+++ b/third_party/blink/renderer/core/html/parser/html_document_parser.cc
@@ -43,6 +43,7 @@
 #include "third_party/blink/renderer/core/html/html_document.h"
 #include "third_party/blink/renderer/core/html/parser/atomic_html_token.h"
 #include "third_party/blink/renderer/core/html/parser/background_html_parser.h"
+#include "third_party/blink/renderer/core/html/parser/html_parser_metrics.h"
 #include "third_party/blink/renderer/core/html/parser/html_parser_scheduler.h"
 #include "third_party/blink/renderer/core/html/parser/html_resource_preloader.h"
 #include "third_party/blink/renderer/core/html/parser/html_tree_builder.h"
@@ -110,6 +111,32 @@
   return HTMLTokenizer::kDataState;
 }
 
+class ScopedYieldTimer {
+ public:
+  // This object is created at the start of a block of parsing, and will
+  // report the time since the last block yielded if known.
+  ScopedYieldTimer(std::unique_ptr<base::ElapsedTimer>* timer,
+                   HTMLParserMetrics* metrics_reporter)
+      : timer_(timer), reporting_metrics_(metrics_reporter) {
+    if (!reporting_metrics_ || !(*timer_))
+      return;
+
+    metrics_reporter->AddYieldInterval((*timer_)->Elapsed());
+    timer_->reset();
+  }
+
+  // The destructor creates a new timer, which will keep track of time until
+  // the next block starts.
+  ~ScopedYieldTimer() {
+    if (reporting_metrics_)
+      *timer_ = std::make_unique<base::ElapsedTimer>();
+  }
+
+ private:
+  std::unique_ptr<base::ElapsedTimer>* timer_;
+  bool reporting_metrics_;
+};
+
 HTMLDocumentParser::HTMLDocumentParser(HTMLDocument& document,
                                        ParserSynchronizationPolicy sync_policy)
     : HTMLDocumentParser(document, kAllowScriptingContent, sync_policy) {
@@ -168,6 +195,16 @@
   // Threading is not allowed in prefetch mode.
   DCHECK(!document.IsPrefetchOnly() || !ShouldUseThreading());
 
+  // Report metrics for async document parsing only. The document
+  // must be main frame to meet UKM requirements, and must have a high
+  // resolution clock for high quality data.
+  if (sync_policy == kAllowAsynchronousParsing && document.GetFrame() &&
+      document.GetFrame()->IsMainFrame() &&
+      base::TimeTicks::IsHighResolution()) {
+    metrics_reporter_ = std::make_unique<HTMLParserMetrics>(
+        document.UkmSourceID(), document.UkmRecorder());
+  }
+
   // Don't create preloader for parsing clipboard content.
   if (content_policy == kDisallowScriptingAndPluginContent)
     return;
@@ -290,6 +327,8 @@
   DCHECK(ShouldUseThreading());
   DCHECK(have_background_parser_);
 
+  ScopedYieldTimer(&yield_timer_, metrics_reporter_.get());
+
   CheckIfBlockingStylesheetAdded();
   if (IsStopped() || IsPaused())
     return;
@@ -489,7 +528,8 @@
 }
 
 size_t HTMLDocumentParser::ProcessTokenizedChunkFromBackgroundParser(
-    std::unique_ptr<TokenizedChunk> pop_chunk) {
+    std::unique_ptr<TokenizedChunk> pop_chunk,
+    bool* reached_end_of_file) {
   TRACE_EVENT_WITH_FLOW0(
       "blink,loading",
       "HTMLDocumentParser::processTokenizedChunkFromBackgroundParser",
@@ -550,6 +590,7 @@
       // There should never be any chunks after the EOF.
       DCHECK(speculations_.IsEmpty());
       PrepareToStopParsing();
+      *reached_end_of_file = true;
       break;
     }
 
@@ -594,10 +635,11 @@
   probe::ParseHTML probe(GetDocument(), this);
 
   SpeculationsPumpSession session(pump_speculations_session_nesting_level_);
+  bool reached_end_of_file = false;
   while (!speculations_.IsEmpty()) {
     DCHECK(!IsScheduledForUnpause());
-    size_t element_token_count =
-        ProcessTokenizedChunkFromBackgroundParser(speculations_.TakeFirst());
+    size_t element_token_count = ProcessTokenizedChunkFromBackgroundParser(
+        speculations_.TakeFirst(), &reached_end_of_file);
     session.AddedElementTokens(element_token_count);
 
     // Always check IsParsing first as document_ may be null. Surprisingly,
@@ -613,6 +655,13 @@
             session, speculations_.front()->starting_script))
       break;
   }
+
+  if (metrics_reporter_) {
+    metrics_reporter_->AddChunk(session.ElapsedTime(),
+                                session.ProcessedElementTokens());
+    if (reached_end_of_file)
+      metrics_reporter_->ReportMetricsAtParseEnd();
+  }
 }
 
 void HTMLDocumentParser::ForcePlaintextForTextDocument() {
diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser.h b/third_party/blink/renderer/core/html/parser/html_document_parser.h
index 7f29b41b..e7170dc7 100644
--- a/third_party/blink/renderer/core/html/parser/html_document_parser.h
+++ b/third_party/blink/renderer/core/html/parser/html_document_parser.h
@@ -58,6 +58,7 @@
 class DocumentFragment;
 class Element;
 class HTMLDocument;
+class HTMLParserMetrics;
 class HTMLParserScheduler;
 class HTMLParserScriptRunner;
 class HTMLPreloadScanner;
@@ -180,7 +181,8 @@
       std::unique_ptr<HTMLToken>,
       std::unique_ptr<HTMLTokenizer>);
   size_t ProcessTokenizedChunkFromBackgroundParser(
-      std::unique_ptr<TokenizedChunk>);
+      std::unique_ptr<TokenizedChunk>,
+      bool*);
   void PumpPendingSpeculations();
 
   bool CanTakeNextToken();
@@ -247,6 +249,11 @@
   Member<HTMLResourcePreloader> preloader_;
   PreloadRequestStream queued_preloads_;
 
+  // Metrics gathering and reporting
+  std::unique_ptr<HTMLParserMetrics> metrics_reporter_;
+  // A timer for how long we are inactive after yielding
+  std::unique_ptr<base::ElapsedTimer> yield_timer_;
+
   // If this is non-null, then there is a meta CSP token somewhere in the
   // speculation buffer. Preloads will be deferred until a token matching this
   // pointer is parsed and the CSP policy is applied. Note that this pointer
diff --git a/third_party/blink/renderer/core/html/parser/html_parser_metrics.cc b/third_party/blink/renderer/core/html/parser/html_parser_metrics.cc
new file mode 100644
index 0000000..ba858bb
--- /dev/null
+++ b/third_party/blink/renderer/core/html/parser/html_parser_metrics.cc
@@ -0,0 +1,104 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/core/html/parser/html_parser_metrics.h"
+
+#include "base/metrics/histogram_macros.h"
+#include "services/metrics/public/cpp/ukm_builders.h"
+
+namespace blink {
+
+HTMLParserMetrics::HTMLParserMetrics(int64_t source_id,
+                                     ukm::UkmRecorder* recorder)
+    : source_id_(source_id), recorder_(recorder) {}
+
+void HTMLParserMetrics::AddChunk(base::TimeDelta elapsed_time,
+                                 unsigned tokens_parsed) {
+  DCHECK(base::TimeTicks::IsHighResolution());
+
+  ++chunk_count_;
+
+  accumulated_parsing_time_ += elapsed_time;
+  if (elapsed_time < min_parsing_time_)
+    min_parsing_time_ = elapsed_time;
+  if (elapsed_time > max_parsing_time_)
+    max_parsing_time_ = elapsed_time;
+
+  total_tokens_parsed_ += tokens_parsed;
+  if (tokens_parsed < min_tokens_parsed_)
+    min_tokens_parsed_ = tokens_parsed;
+  if (tokens_parsed > max_tokens_parsed_)
+    max_tokens_parsed_ = tokens_parsed;
+}
+
+void HTMLParserMetrics::AddYieldInterval(base::TimeDelta elapsed_time) {
+  DCHECK(base::TimeTicks::IsHighResolution());
+
+  yield_count_++;
+
+  accumulated_yield_intervals_ += elapsed_time;
+  if (elapsed_time < min_yield_interval_)
+    min_yield_interval_ = elapsed_time;
+  if (elapsed_time > max_yield_interval_)
+    max_yield_interval_ = elapsed_time;
+}
+
+void HTMLParserMetrics::ReportMetricsAtParseEnd() {
+  // Report the histograms
+  UMA_HISTOGRAM_COUNTS_1000("Blink.HTMLParsing.ChunkCount", chunk_count_);
+  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
+      "Blink.HTMLParsing.ParsingTimeMax", max_parsing_time_,
+      base::TimeDelta::FromMicroseconds(1),
+      base::TimeDelta::FromMilliseconds(100), 100);
+  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
+      "Blink.HTMLParsing.ParsingTimeMin", min_parsing_time_,
+      base::TimeDelta::FromMicroseconds(1),
+      base::TimeDelta::FromMilliseconds(100), 100);
+  UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
+      "Blink.HTMLParsing.ParsingTimeTotal", accumulated_parsing_time_,
+      base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10),
+      1000);
+  UMA_HISTOGRAM_COUNTS_1M("Blink.HTMLParsing.TokensParsedMax",
+                          max_tokens_parsed_);
+  UMA_HISTOGRAM_COUNTS_10000("Blink.HTMLParsing.TokensParsedMin",
+                             min_tokens_parsed_);
+  UMA_HISTOGRAM_COUNTS_1M("Blink.HTMLParsing.TokensParsedAverage",
+                          total_tokens_parsed_ / chunk_count_);
+
+  // Only report yield data if we actually yielded.
+  if (max_yield_interval_ != base::TimeDelta()) {
+    UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
+        "Blink.HTMLParsing.YieldedTimeMax", max_yield_interval_,
+        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(1),
+        100);
+    UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
+        "Blink.HTMLParsing.YieldedTimeMin", min_yield_interval_,
+        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(1),
+        100);
+    UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
+        "Blink.HTMLParsing.YieldedTimeAverage",
+        accumulated_yield_intervals_ / yield_count_,
+        base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(1),
+        100);
+  }
+
+  // Build and report UKM
+  ukm::builders::Blink_HTMLParsing builder(source_id_);
+  builder.SetChunkCount(chunk_count_);
+  builder.SetParsingTimeMax(max_parsing_time_.InMicroseconds());
+  builder.SetParsingTimeMin(min_parsing_time_.InMicroseconds());
+  builder.SetParsingTimeTotal(accumulated_parsing_time_.InMicroseconds());
+  builder.SetTokensParsedMax(max_tokens_parsed_);
+  builder.SetTokensParsedMin(min_tokens_parsed_);
+  builder.SetTokensParsedAverage(total_tokens_parsed_ / chunk_count_);
+  if (accumulated_yield_intervals_ != base::TimeDelta()) {
+    builder.SetYieldedTimeMax(max_yield_interval_.InMicroseconds());
+    builder.SetYieldedTimeMin(min_yield_interval_.InMicroseconds());
+    builder.SetYieldedTimeAverage(
+        accumulated_yield_intervals_.InMicroseconds() / yield_count_);
+  }
+  builder.Record(recorder_);
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/core/html/parser/html_parser_metrics.h b/third_party/blink/renderer/core/html/parser/html_parser_metrics.h
new file mode 100644
index 0000000..e6c84aa7
--- /dev/null
+++ b/third_party/blink/renderer/core/html/parser/html_parser_metrics.h
@@ -0,0 +1,56 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_HTML_PARSER_METRICS_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_HTML_PARSER_METRICS_H_
+
+#include "base/time/time.h"
+#include "third_party/blink/renderer/core/core_export.h"
+#include "third_party/blink/renderer/platform/instrumentation/histogram.h"
+
+namespace ukm {
+class UkmRecorder;
+}
+
+namespace blink {
+
+// Store and report metrics data for the HTMLDocumentParser.
+class CORE_EXPORT HTMLParserMetrics {
+ public:
+  HTMLParserMetrics(int64_t source_id, ukm::UkmRecorder*);
+  ~HTMLParserMetrics() = default;
+
+  void AddChunk(base::TimeDelta elapsed_time, unsigned tokens_parsed);
+
+  void AddYieldInterval(base::TimeDelta elapsed_time);
+
+  void ReportMetricsAtParseEnd();
+
+ private:
+  // UKM System data.
+  const int64_t source_id_;
+  ukm::UkmRecorder* const recorder_;
+
+  // Metrics data.
+  unsigned chunk_count_ = 0;                  // For computing averages.
+  base::TimeDelta accumulated_parsing_time_;  // Constructed with 0 value
+  base::TimeDelta min_parsing_time_ = base::TimeDelta::Max();
+  base::TimeDelta max_parsing_time_;  // Constructed with 0 value
+  unsigned total_tokens_parsed_ = 0;
+  unsigned min_tokens_parsed_ = UINT_MAX;
+  unsigned max_tokens_parsed_ = 0;
+
+  // Yield count may not equal chunk count - 1. That is, there is not
+  // always one yield between every pair of chunks.
+  unsigned yield_count_ = 0;
+  base::TimeDelta accumulated_yield_intervals_;  // Constructed with 0 value
+  base::TimeDelta min_yield_interval_ = base::TimeDelta::Max();
+  base::TimeDelta max_yield_interval_;  // Constructed with 0 value
+
+  DISALLOW_COPY_AND_ASSIGN(HTMLParserMetrics);
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_HTML_PARSER_METRICS_H_
diff --git a/third_party/blink/renderer/core/html/parser/html_parser_metrics_test.cc b/third_party/blink/renderer/core/html/parser/html_parser_metrics_test.cc
new file mode 100644
index 0000000..0e234d4
--- /dev/null
+++ b/third_party/blink/renderer/core/html/parser/html_parser_metrics_test.cc
@@ -0,0 +1,257 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/core/html/parser/html_parser_metrics.h"
+
+#include "base/test/metrics/histogram_tester.h"
+#include "base/test/test_mock_time_task_runner.h"
+#include "components/ukm/test_ukm_recorder.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/renderer/core/frame/frame_test_helpers.h"
+#include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
+#include "third_party/blink/renderer/platform/testing/url_test_helpers.h"
+
+namespace blink {
+
+class HTMLParserMetricsTest : public testing::Test {
+ public:
+  HTMLParserMetricsTest() {
+    helper_.Initialize(nullptr, nullptr, nullptr, nullptr);
+  }
+
+  ~HTMLParserMetricsTest() override = default;
+
+  void SetUp() override {}
+
+  void TearDown() override {}
+
+  void LoadHTML(const std::string& html) {
+    frame_test_helpers::LoadHTMLString(helper_.GetWebView()->MainFrameImpl(),
+                                       html,
+                                       url_test_helpers::ToKURL("about:blank"));
+  }
+
+ protected:
+  frame_test_helpers::WebViewHelper helper_;
+};
+
+TEST_F(HTMLParserMetricsTest, ReportSingleChunk) {
+  // Although the tests use a mock clock, the metrics recorder checks if the
+  // system has a high resolution clock before recording results. As a result,
+  // the tests will fail if the system does not have a high resolution clock.
+  if (!base::TimeTicks::IsHighResolution())
+    return;
+
+  base::HistogramTester histogram_tester;
+  LoadHTML(R"HTML(
+    <div></div>
+  )HTML");
+
+  // Should have one of each metric, except the yield times because with
+  // a single chunk they should not report.
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.ChunkCount", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.ParsingTimeMax", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.ParsingTimeMin", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.ParsingTimeTotal", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.TokensParsedMax", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.TokensParsedMin", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.TokensParsedAverage", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.YieldedTimeMax", 0);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.YieldedTimeMin", 0);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.YieldedTimeAverage", 0);
+
+  // Expect specific values for the chunks and tokens counts
+  histogram_tester.ExpectUniqueSample("Blink.HTMLParsing.ChunkCount", 1, 1);
+  histogram_tester.ExpectUniqueSample("Blink.HTMLParsing.TokensParsedMax", 2,
+                                      1);
+  histogram_tester.ExpectUniqueSample("Blink.HTMLParsing.TokensParsedMin", 2,
+                                      1);
+  histogram_tester.ExpectUniqueSample("Blink.HTMLParsing.TokensParsedAverage",
+                                      2, 1);
+
+  // Expect that the times have moved from the default and the max and min
+  // and total are all the same (within the same bucket)
+  std::vector<base::Bucket> parsing_time_max_buckets =
+      histogram_tester.GetAllSamples("Blink.HTMLParsing.ParsingTimeMax");
+  std::vector<base::Bucket> parsing_time_min_buckets =
+      histogram_tester.GetAllSamples("Blink.HTMLParsing.ParsingTimeMin");
+  std::vector<base::Bucket> parsing_time_total_buckets =
+      histogram_tester.GetAllSamples("Blink.HTMLParsing.ParsingTimeTotal");
+  EXPECT_EQ(parsing_time_max_buckets.size(), 1u);
+  EXPECT_EQ(parsing_time_min_buckets.size(), 1u);
+  EXPECT_EQ(parsing_time_total_buckets.size(), 1u);
+  EXPECT_GT(parsing_time_max_buckets[0].min, 0);
+  EXPECT_EQ(parsing_time_max_buckets[0], parsing_time_min_buckets[0]);
+  // Can't compare total buckets with max/min because different histogram
+  // max values mean different bucket widths.
+}
+
+TEST_F(HTMLParserMetricsTest, HistogramReportsTwoChunks) {
+  // Although the tests use a mock clock, the metrics recorder checks if the
+  // system has a high resolution clock before recording results. As a result,
+  // the tests will fail if the system does not have a high resolution clock.
+  if (!base::TimeTicks::IsHighResolution())
+    return;
+
+  base::HistogramTester histogram_tester;
+
+  // This content exceeds the number of tokens before a script tag used as
+  // the yield threshold. If the yield threshold changes, this test will fail
+  // and/or need changing. See the HTMLParserScheduler::ShouldYield method for
+  // the current value of the constant.
+  LoadHTML(R"HTML(
+    <head></head>
+    <div></div><div></div><div></div><div></div><div></div><div></div>
+    <div></div><div></div><div></div><div></div><div></div><div></div>
+    <div></div><div></div><div></div><div></div><div></div><div></div>
+    <div></div><div></div><div></div><div></div><div></div><div></div>
+    <div></div><div></div><div></div><div></div><div></div><div></div>
+    <div></div><div></div><div></div><div></div><div></div><div></div>
+    <div></div><div></div><div></div><div></div><div></div><div></div>
+    <div></div><div></div><div></div><div></div><div></div><div></div>
+    <div></div><div></div><div></div><div></div><div></div><div></div>
+    <script>document.offsetTop</script>
+  )HTML");
+
+  // Should have one of each metric.
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.ChunkCount", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.ParsingTimeMax", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.ParsingTimeMin", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.ParsingTimeTotal", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.TokensParsedMax", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.TokensParsedMin", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.TokensParsedAverage", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.YieldedTimeMax", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.YieldedTimeMin", 1);
+  histogram_tester.ExpectTotalCount("Blink.HTMLParsing.YieldedTimeAverage", 1);
+
+  // Expect specific values for the chunks and tokens counts
+  histogram_tester.ExpectUniqueSample("Blink.HTMLParsing.ChunkCount", 2, 1);
+  histogram_tester.ExpectUniqueSample("Blink.HTMLParsing.TokensParsedMax", 110,
+                                      1);
+  histogram_tester.ExpectUniqueSample("Blink.HTMLParsing.TokensParsedMin", 0,
+                                      1);
+  histogram_tester.ExpectUniqueSample("Blink.HTMLParsing.TokensParsedAverage",
+                                      55, 1);
+
+  // For parse times, expect that the times have moved from the default and
+  // the max is greater than the min for parse times.
+  std::vector<base::Bucket> parsing_time_max_buckets =
+      histogram_tester.GetAllSamples("Blink.HTMLParsing.ParsingTimeMax");
+  std::vector<base::Bucket> parsing_time_min_buckets =
+      histogram_tester.GetAllSamples("Blink.HTMLParsing.ParsingTimeMin");
+  std::vector<base::Bucket> parsing_time_total_buckets =
+      histogram_tester.GetAllSamples("Blink.HTMLParsing.ParsingTimeTotal");
+  EXPECT_EQ(parsing_time_max_buckets.size(), 1u);
+  EXPECT_EQ(parsing_time_min_buckets.size(), 1u);
+  EXPECT_EQ(parsing_time_total_buckets.size(), 1u);
+  EXPECT_GT(parsing_time_max_buckets[0].min, 0);
+  EXPECT_GT(parsing_time_max_buckets[0].min, parsing_time_min_buckets[0].min);
+  EXPECT_LE(parsing_time_max_buckets[0].min, parsing_time_total_buckets[0].min);
+
+  // For yields, the values should be the same because there was only one yield.
+  std::vector<base::Bucket> yield_time_max_buckets =
+      histogram_tester.GetAllSamples("Blink.HTMLParsing.YieldedTimeMax");
+  std::vector<base::Bucket> yield_time_min_buckets =
+      histogram_tester.GetAllSamples("Blink.HTMLParsing.YieldedTimeMin");
+  std::vector<base::Bucket> yield_time_average_buckets =
+      histogram_tester.GetAllSamples("Blink.HTMLParsing.YieldedTimeAverage");
+  EXPECT_EQ(yield_time_max_buckets.size(), 1u);
+  EXPECT_EQ(yield_time_min_buckets.size(), 1u);
+  EXPECT_EQ(yield_time_average_buckets.size(), 1u);
+  EXPECT_GT(yield_time_max_buckets[0].min, 0);
+  EXPECT_EQ(yield_time_max_buckets[0], yield_time_min_buckets[0]);
+  EXPECT_EQ(yield_time_max_buckets[0], yield_time_average_buckets[0]);
+}
+
+TEST_F(HTMLParserMetricsTest, UkmStoresValuesCorrectly) {
+  // Although the tests use a mock clock, the metrics recorder checks if the
+  // system has a high resolution clock before recording results. As a result,
+  // the tests will fail if the system does not have a high resolution clock.
+  if (!base::TimeTicks::IsHighResolution())
+    return;
+
+  ukm::TestUkmRecorder recorder;
+  HTMLParserMetrics reporter(ukm::UkmRecorder::GetNewSourceID(), &recorder);
+
+  // Start with empty metrics
+  auto entries = recorder.GetEntriesByName("Blink.HTMLParsing");
+  EXPECT_EQ(entries.size(), 0u);
+
+  // Run a fictional sequence of calls
+  base::TimeDelta first_parse_time = base::TimeDelta::FromMicroseconds(20);
+  base::TimeDelta second_parse_time = base::TimeDelta::FromMicroseconds(10);
+  base::TimeDelta third_parse_time = base::TimeDelta::FromMicroseconds(30);
+  unsigned first_tokens_parsed = 50u;
+  unsigned second_tokens_parsed = 40u;
+  unsigned third_tokens_parsed = 60u;
+  base::TimeDelta first_yield_time = base::TimeDelta::FromMicroseconds(80);
+  base::TimeDelta second_yield_time = base::TimeDelta::FromMicroseconds(70);
+
+  reporter.AddChunk(first_parse_time, first_tokens_parsed);
+  reporter.AddYieldInterval(first_yield_time);
+  reporter.AddChunk(second_parse_time, second_tokens_parsed);
+  reporter.AddYieldInterval(second_yield_time);
+  reporter.AddChunk(third_parse_time, third_tokens_parsed);
+  reporter.ReportMetricsAtParseEnd();
+
+  // Check we have a single entry
+  entries = recorder.GetEntriesByName("Blink.HTMLParsing");
+  EXPECT_EQ(entries.size(), 1u);
+  auto* entry = entries[0];
+
+  // Verify all the values
+  EXPECT_TRUE(ukm::TestUkmRecorder::EntryHasMetric(entry, "ChunkCount"));
+  const int64_t* metric_value =
+      ukm::TestUkmRecorder::GetEntryMetric(entry, "ChunkCount");
+  EXPECT_EQ(*metric_value, 3);
+
+  EXPECT_TRUE(ukm::TestUkmRecorder::EntryHasMetric(entry, "ParsingTimeMax"));
+  metric_value = ukm::TestUkmRecorder::GetEntryMetric(entry, "ParsingTimeMax");
+  EXPECT_EQ(*metric_value, third_parse_time.InMicroseconds());
+
+  EXPECT_TRUE(ukm::TestUkmRecorder::EntryHasMetric(entry, "ParsingTimeMin"));
+  metric_value = ukm::TestUkmRecorder::GetEntryMetric(entry, "ParsingTimeMin");
+  EXPECT_EQ(*metric_value, second_parse_time.InMicroseconds());
+
+  EXPECT_TRUE(ukm::TestUkmRecorder::EntryHasMetric(entry, "ParsingTimeTotal"));
+  metric_value =
+      ukm::TestUkmRecorder::GetEntryMetric(entry, "ParsingTimeTotal");
+  EXPECT_EQ(*metric_value,
+            (first_parse_time + second_parse_time + third_parse_time)
+                .InMicroseconds());
+
+  EXPECT_TRUE(ukm::TestUkmRecorder::EntryHasMetric(entry, "TokensParsedMax"));
+  metric_value = ukm::TestUkmRecorder::GetEntryMetric(entry, "TokensParsedMax");
+  EXPECT_EQ(*metric_value, third_tokens_parsed);
+
+  EXPECT_TRUE(ukm::TestUkmRecorder::EntryHasMetric(entry, "TokensParsedMin"));
+  metric_value = ukm::TestUkmRecorder::GetEntryMetric(entry, "TokensParsedMin");
+  EXPECT_EQ(*metric_value, second_tokens_parsed);
+
+  EXPECT_TRUE(
+      ukm::TestUkmRecorder::EntryHasMetric(entry, "TokensParsedAverage"));
+  metric_value =
+      ukm::TestUkmRecorder::GetEntryMetric(entry, "TokensParsedAverage");
+  EXPECT_EQ(
+      *metric_value,
+      (first_tokens_parsed + second_tokens_parsed + third_tokens_parsed) / 3);
+
+  EXPECT_TRUE(ukm::TestUkmRecorder::EntryHasMetric(entry, "YieldedTimeMax"));
+  metric_value = ukm::TestUkmRecorder::GetEntryMetric(entry, "YieldedTimeMax");
+  EXPECT_EQ(*metric_value, first_yield_time.InMicroseconds());
+
+  EXPECT_TRUE(ukm::TestUkmRecorder::EntryHasMetric(entry, "YieldedTimeMin"));
+  metric_value = ukm::TestUkmRecorder::GetEntryMetric(entry, "YieldedTimeMin");
+  EXPECT_EQ(*metric_value, second_yield_time.InMicroseconds());
+
+  EXPECT_TRUE(
+      ukm::TestUkmRecorder::EntryHasMetric(entry, "YieldedTimeAverage"));
+  metric_value =
+      ukm::TestUkmRecorder::GetEntryMetric(entry, "YieldedTimeAverage");
+  EXPECT_EQ(*metric_value,
+            ((first_yield_time + second_yield_time) / 2).InMicroseconds());
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/core/html/parser/html_parser_scheduler.cc b/third_party/blink/renderer/core/html/parser/html_parser_scheduler.cc
index f0ffdbd..1559a162 100644
--- a/third_party/blink/renderer/core/html/parser/html_parser_scheduler.cc
+++ b/third_party/blink/renderer/core/html/parser/html_parser_scheduler.cc
@@ -40,10 +40,6 @@
 
 SpeculationsPumpSession::~SpeculationsPumpSession() = default;
 
-inline base::TimeDelta SpeculationsPumpSession::ElapsedTime() const {
-  return start_time_.Elapsed();
-}
-
 void SpeculationsPumpSession::AddedElementTokens(size_t count) {
   processed_element_tokens_ += count;
 }
diff --git a/third_party/blink/renderer/core/html/parser/html_parser_scheduler.h b/third_party/blink/renderer/core/html/parser/html_parser_scheduler.h
index aaead79..87d35d4 100644
--- a/third_party/blink/renderer/core/html/parser/html_parser_scheduler.h
+++ b/third_party/blink/renderer/core/html/parser/html_parser_scheduler.h
@@ -42,10 +42,10 @@
   STACK_ALLOCATED();
 
  public:
-  SpeculationsPumpSession(unsigned& nesting_level);
+  explicit SpeculationsPumpSession(unsigned& nesting_level);
   ~SpeculationsPumpSession();
 
-  base::TimeDelta ElapsedTime() const;
+  base::TimeDelta ElapsedTime() const { return start_time_.Elapsed(); }
   void AddedElementTokens(size_t count);
   size_t ProcessedElementTokens() const { return processed_element_tokens_; }
 
diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.h b/third_party/blink/renderer/core/html/parser/html_srcset_parser.h
index 1270664..9af2754 100644
--- a/third_party/blink/renderer/core/html/parser/html_srcset_parser.h
+++ b/third_party/blink/renderer/core/html/parser/html_srcset_parser.h
@@ -41,7 +41,7 @@
 
 class Document;
 
-enum { kUninitializedDescriptor = -1 };
+constexpr int kUninitializedDescriptor = -1;
 
 class DescriptorParsingResult {
   STACK_ALLOCATED();
diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_party/blink/renderer/core/input/event_handler.cc
index 162e0a9..6ff2cad1 100644
--- a/third_party/blink/renderer/core/input/event_handler.cc
+++ b/third_party/blink/renderer/core/input/event_handler.cc
@@ -69,6 +69,7 @@
 #include "third_party/blink/renderer/core/html/html_dialog_element.h"
 #include "third_party/blink/renderer/core/html/html_frame_element_base.h"
 #include "third_party/blink/renderer/core/html/html_frame_set_element.h"
+#include "third_party/blink/renderer/core/html/portal/html_portal_element.h"
 #include "third_party/blink/renderer/core/input/event_handling_util.h"
 #include "third_party/blink/renderer/core/input/input_device_capabilities.h"
 #include "third_party/blink/renderer/core/input/touch_action_util.h"
@@ -1021,6 +1022,8 @@
   }
 
   WebInputEventResult event_result = WebInputEventResult::kNotHandled;
+  bool is_portal =
+      mev.InnerElement() && IsA<HTMLPortalElement>(*mev.InnerElement());
   bool is_remote_frame = false;
   LocalFrame* new_subframe = event_handling_util::GetTargetSubframe(
       mev, capturing_mouse_events_element_, &is_remote_frame);
@@ -1057,7 +1060,7 @@
       scrollbar->MouseMoved(mev.Event());
     }
     LocalFrameView* view = frame_->View();
-    if (!is_remote_frame && view) {
+    if ((!is_remote_frame || is_portal) && view) {
       EventHandler::OptionalCursor optional_cursor =
           SelectCursor(mev.GetHitTestLocation(), mev.GetHitTestResult());
       if (optional_cursor.IsCursorChange()) {
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.cc
index 75a42df..09784e4 100644
--- a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.cc
+++ b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.cc
@@ -23,24 +23,10 @@
 
 #include "third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.h"
 
-#include "third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h"
 #include "third_party/blink/renderer/core/svg/svg_filter_element.h"
-#include "third_party/blink/renderer/platform/graphics/filters/filter_effect.h"
 
 namespace blink {
 
-void FilterData::Trace(Visitor* visitor) {
-  visitor->Trace(last_effect);
-  visitor->Trace(node_map);
-}
-
-void FilterData::Dispose() {
-  node_map = nullptr;
-  if (last_effect)
-    last_effect->DisposeImageFiltersRecursive();
-  last_effect = nullptr;
-}
-
 LayoutSVGResourceFilter::LayoutSVGResourceFilter(SVGFilterElement* node)
     : LayoutSVGResourceContainer(node) {}
 
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.h b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.h
index 9a71773a..e1584b2 100644
--- a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.h
+++ b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.h
@@ -29,38 +29,7 @@
 
 namespace blink {
 
-class FilterEffect;
 class SVGFilterElement;
-class SVGFilterGraphNodeMap;
-
-class FilterData final : public GarbageCollected<FilterData> {
- public:
-  /*
-   * The state transitions should follow the following:
-   * Initial->RecordingContent->ReadyToPaint->PaintingFilter->ReadyToPaint
-   *              |     ^                       |     ^
-   *              v     |                       v     |
-   *     RecordingContentCycleDetected     PaintingFilterCycle
-   */
-  enum FilterDataState {
-    kInitial,
-    kRecordingContent,
-    kRecordingContentCycleDetected,
-    kReadyToPaint,
-    kPaintingFilter,
-    kPaintingFilterCycleDetected
-  };
-
-  FilterData() : state_(kInitial) {}
-
-  void Dispose();
-
-  void Trace(Visitor*);
-
-  Member<FilterEffect> last_effect;
-  Member<SVGFilterGraphNodeMap> node_map;
-  FilterDataState state_;
-};
 
 class LayoutSVGResourceFilter final : public LayoutSVGResourceContainer {
  public:
diff --git a/third_party/blink/renderer/core/layout/svg/svg_resources.cc b/third_party/blink/renderer/core/layout/svg/svg_resources.cc
index 1613b92a..c5f55b4 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_resources.cc
+++ b/third_party/blink/renderer/core/layout/svg/svg_resources.cc
@@ -39,6 +39,7 @@
 #include "third_party/blink/renderer/core/svg/svg_tree_scope_resources.h"
 #include "third_party/blink/renderer/core/svg/svg_uri_reference.h"
 #include "third_party/blink/renderer/core/svg_names.h"
+#include "third_party/blink/renderer/platform/graphics/filters/filter_effect.h"
 
 #if DCHECK_IS_ON()
 #include <stdio.h>
@@ -670,6 +671,18 @@
     marker_resource->RemoveClient(*client);
 }
 
+void FilterData::Trace(Visitor* visitor) {
+  visitor->Trace(last_effect);
+  visitor->Trace(node_map);
+}
+
+void FilterData::Dispose() {
+  node_map = nullptr;
+  if (last_effect)
+    last_effect->DisposeImageFiltersRecursive();
+  last_effect = nullptr;
+}
+
 SVGElementResourceClient::SVGElementResourceClient(SVGElement* element)
     : element_(element) {}
 
diff --git a/third_party/blink/renderer/core/layout/svg/svg_resources.h b/third_party/blink/renderer/core/layout/svg/svg_resources.h
index a408479d..75323885 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_resources.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_resources.h
@@ -32,7 +32,7 @@
 namespace blink {
 
 class ComputedStyle;
-class FilterData;
+class FilterEffect;
 class LayoutObject;
 class LayoutSVGResourceClipper;
 class LayoutSVGResourceFilter;
@@ -41,6 +41,7 @@
 class LayoutSVGResourcePaintServer;
 class SVGElement;
 class SVGElementResourceClient;
+class SVGFilterGraphNodeMap;
 
 // Holds a set of resources associated with a LayoutObject
 class SVGResources {
@@ -192,6 +193,35 @@
   DISALLOW_COPY_AND_ASSIGN(SVGResources);
 };
 
+class FilterData final : public GarbageCollected<FilterData> {
+ public:
+  /*
+   * The state transitions should follow the following:
+   * Initial->RecordingContent->ReadyToPaint->PaintingFilter->ReadyToPaint
+   *              |     ^                       |     ^
+   *              v     |                       v     |
+   *     RecordingContentCycleDetected     PaintingFilterCycle
+   */
+  enum FilterDataState {
+    kInitial,
+    kRecordingContent,
+    kRecordingContentCycleDetected,
+    kReadyToPaint,
+    kPaintingFilter,
+    kPaintingFilterCycleDetected
+  };
+
+  FilterData() : state_(kInitial) {}
+
+  void Dispose();
+
+  void Trace(Visitor*);
+
+  Member<FilterEffect> last_effect;
+  Member<SVGFilterGraphNodeMap> node_map;
+  FilterDataState state_;
+};
+
 class SVGElementResourceClient final
     : public GarbageCollected<SVGElementResourceClient>,
       public SVGResourceClient {
diff --git a/third_party/blink/renderer/core/page/chrome_client.h b/third_party/blink/renderer/core/page/chrome_client.h
index 393b7ad..fcaae0c3 100644
--- a/third_party/blink/renderer/core/page/chrome_client.h
+++ b/third_party/blink/renderer/core/page/chrome_client.h
@@ -40,6 +40,7 @@
 #include "third_party/blink/public/platform/web_drag_operation.h"
 #include "third_party/blink/public/platform/web_float_rect.h"
 #include "third_party/blink/public/web/web_swap_result.h"
+#include "third_party/blink/public/web/web_widget_client.h"
 #include "third_party/blink/renderer/core/accessibility/ax_object_cache.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/frame/sandbox_flags.h"
@@ -419,6 +420,7 @@
   virtual bool IsSVGImageChromeClient() const { return false; }
 
   virtual bool RequestPointerLock(LocalFrame*,
+                                  WebWidgetClient::PointerLockCallback callback,
                                   bool request_unadjusted_movement) {
     return false;
   }
diff --git a/third_party/blink/renderer/core/page/chrome_client_impl.cc b/third_party/blink/renderer/core/page/chrome_client_impl.cc
index 2d25cdf..8285be4 100644
--- a/third_party/blink/renderer/core/page/chrome_client_impl.cc
+++ b/third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -1148,13 +1148,15 @@
     client->SetTouchAction(static_cast<TouchAction>(touch_action));
 }
 
-bool ChromeClientImpl::RequestPointerLock(LocalFrame* frame,
-                                          bool request_unadjusted_movement) {
+bool ChromeClientImpl::RequestPointerLock(
+    LocalFrame* frame,
+    WebWidgetClient::PointerLockCallback callback,
+    bool request_unadjusted_movement) {
   return WebLocalFrameImpl::FromFrame(frame)
       ->LocalRootFrameWidget()
       ->Client()
       ->RequestPointerLock(WebLocalFrameImpl::FromFrame(frame),
-                           request_unadjusted_movement);
+                           std::move(callback), request_unadjusted_movement);
 }
 
 void ChromeClientImpl::RequestPointerUnlock(LocalFrame* frame) {
diff --git a/third_party/blink/renderer/core/page/chrome_client_impl.h b/third_party/blink/renderer/core/page/chrome_client_impl.h
index 76735878b..e4e8747 100644
--- a/third_party/blink/renderer/core/page/chrome_client_impl.h
+++ b/third_party/blink/renderer/core/page/chrome_client_impl.h
@@ -37,6 +37,7 @@
 #include "cc/input/overscroll_behavior.h"
 #include "third_party/blink/public/mojom/input/focus_type.mojom-blink-forward.h"
 #include "third_party/blink/public/web/web_navigation_policy.h"
+#include "third_party/blink/public/web/web_widget_client.h"
 #include "third_party/blink/public/web/web_window_features.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/page/chrome_client.h"
@@ -228,7 +229,9 @@
       const String& dialog_message,
       Document::PageDismissalType) const override;
 
-  bool RequestPointerLock(LocalFrame*, bool) override;
+  bool RequestPointerLock(LocalFrame*,
+                          WebWidgetClient::PointerLockCallback,
+                          bool) override;
   void RequestPointerUnlock(LocalFrame*) override;
 
   // AutofillClient pass throughs:
diff --git a/third_party/blink/renderer/core/page/pointer_lock_controller.cc b/third_party/blink/renderer/core/page/pointer_lock_controller.cc
index db70758..40df59d1 100644
--- a/third_party/blink/renderer/core/page/pointer_lock_controller.cc
+++ b/third_party/blink/renderer/core/page/pointer_lock_controller.cc
@@ -26,7 +26,10 @@
 #include "third_party/blink/renderer/core/page/pointer_lock_controller.h"
 
 #include "third_party/blink/public/common/input/web_mouse_event.h"
+#include "third_party/blink/public/mojom/input/pointer_lock_result.mojom-blink.h"
+#include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_pointer_lock_options.h"
+#include "third_party/blink/renderer/core/dom/dom_exception.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
@@ -41,13 +44,19 @@
 PointerLockController::PointerLockController(Page* page)
     : page_(page), lock_pending_(false) {}
 
-void PointerLockController::RequestPointerLock(
+ScriptPromise PointerLockController::RequestPointerLock(
+    ScriptPromiseResolver* resolver,
     Element* target,
+    ExceptionState& exception_state,
     const PointerLockOptions* options) {
+  ScriptPromise promise = resolver->Promise();
+
   if (!target || !target->isConnected() ||
       document_of_removed_element_while_waiting_for_unlock_) {
     EnqueueEvent(event_type_names::kPointerlockerror, target);
-    return;
+    exception_state.ThrowDOMException(DOMExceptionCode::kWrongDocumentError,
+                                      "Target Element removed from DOM");
+    return promise;
   }
 
   target->GetDocument().CountUseOnlyInCrossOriginIframe(
@@ -72,23 +81,95 @@
             "Blocked pointer lock on an element because the element's frame is "
             "sandboxed and the 'allow-pointer-lock' permission is not set."));
     EnqueueEvent(event_type_names::kPointerlockerror, target);
-    return;
+    exception_state.ThrowSecurityError(
+        "Blocked pointer lock on an element because the element's frame is "
+        "sandboxed and the 'allow-pointer-lock' permission is not set.",
+        "");
+    return promise;
   }
 
   if (element_) {
     if (element_->GetDocument() != target->GetDocument()) {
       EnqueueEvent(event_type_names::kPointerlockerror, target);
-      return;
+      exception_state.ThrowDOMException(
+          DOMExceptionCode::kWrongDocumentError,
+          "The new element is not in the same shadow-root document as the "
+          "element that currently holds the lock.");
+      return promise;
     }
     EnqueueEvent(event_type_names::kPointerlockchange, target);
     element_ = target;
+    resolver->Resolve();
+
+    // Subsequent steps are handled in the browser process.
   } else if (page_->GetChromeClient().RequestPointerLock(
                  target->GetDocument().GetFrame(),
+                 WTF::Bind(&PointerLockController::LockRequestCallback,
+                           WrapWeakPersistent(this), WrapPersistent(resolver)),
                  (options ? options->unadjustedMovement() : false))) {
     lock_pending_ = true;
     element_ = target;
   } else {
     EnqueueEvent(event_type_names::kPointerlockerror, target);
+    exception_state.ThrowDOMException(DOMExceptionCode::kInUseAttributeError,
+                                      "Pointer lock pending.");
+  }
+
+  return promise;
+}
+
+void PointerLockController::LockRequestCallback(
+    ScriptPromiseResolver* resolver,
+    mojom::blink::PointerLockResult result) {
+  if (result == mojom::blink::PointerLockResult::kSuccess) {
+    resolver->Resolve();
+    return;
+  }
+  DOMException* exception = ConvertResultToException(result);
+  RejectIfPromiseEnabled(resolver, exception);
+}
+
+DOMException* PointerLockController::ConvertResultToException(
+    mojom::blink::PointerLockResult result) {
+  switch (result) {
+    case mojom::blink::PointerLockResult::kUnsupportedOptions:
+      return MakeGarbageCollected<DOMException>(
+          DOMExceptionCode::kNotSupportedError,
+          "The options asked for in this request are not supported on this "
+          "platform.");
+    case mojom::blink::PointerLockResult::kRequiresUserGesture:
+      return MakeGarbageCollected<DOMException>(
+          DOMExceptionCode::kNotAllowedError,
+          "A user gesture is required to request Pointer Lock.");
+    case mojom::blink::PointerLockResult::kAlreadyLocked:
+      return MakeGarbageCollected<DOMException>(
+          DOMExceptionCode::kInUseAttributeError, "Pointer is already locked.");
+    case mojom::blink::PointerLockResult::kWrongDocument:
+      return MakeGarbageCollected<DOMException>(
+          DOMExceptionCode::kWrongDocumentError,
+          "The root document of this element is not valid for pointer lock.");
+    case mojom::blink::PointerLockResult::kPermissionDenied:
+      return MakeGarbageCollected<DOMException>(
+          DOMExceptionCode::kSecurityError,
+          "The root document of this element is not valid for pointer lock.");
+    case mojom::blink::PointerLockResult::kElementDestroyed:
+      return MakeGarbageCollected<DOMException>(
+          DOMExceptionCode::kWrongDocumentError,
+          "The element has been destroyed while making this request.");
+    default:
+      return MakeGarbageCollected<DOMException>(
+          DOMExceptionCode::kUnknownError,
+          "If you see this error we have a bug. Please report this bug to "
+          "chromium.");
+  }
+}
+
+void PointerLockController::RejectIfPromiseEnabled(
+    ScriptPromiseResolver* resolver,
+    DOMException* exception) {
+  if (RuntimeEnabledFeatures::PointerLockOptionsEnabled(
+          resolver->GetExecutionContext())) {
+    resolver->Reject(exception);
   }
 }
 
diff --git a/third_party/blink/renderer/core/page/pointer_lock_controller.h b/third_party/blink/renderer/core/page/pointer_lock_controller.h
index 92b900b..68455ef 100644
--- a/third_party/blink/renderer/core/page/pointer_lock_controller.h
+++ b/third_party/blink/renderer/core/page/pointer_lock_controller.h
@@ -28,7 +28,11 @@
 
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
+#include "third_party/blink/public/mojom/input/pointer_lock_result.mojom-blink-forward.h"
+#include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
+#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
 #include "third_party/blink/renderer/core/core_export.h"
+#include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
@@ -48,8 +52,10 @@
  public:
   explicit PointerLockController(Page*);
 
-  void RequestPointerLock(Element* target,
-                          const PointerLockOptions* options = nullptr);
+  ScriptPromise RequestPointerLock(ScriptPromiseResolver* resolver,
+                                   Element* target,
+                                   ExceptionState& exception_state,
+                                   const PointerLockOptions* options = nullptr);
   void RequestPointerUnlock();
   void ElementRemoved(Element*);
   void DocumentDetached(Document*);
@@ -74,6 +80,12 @@
   void ClearElement();
   void EnqueueEvent(const AtomicString& type, Element*);
   void EnqueueEvent(const AtomicString& type, Document*);
+  void LockRequestCallback(ScriptPromiseResolver* resolver,
+                           mojom::blink::PointerLockResult result);
+  DOMException* ConvertResultToException(
+      mojom::blink::PointerLockResult result);
+  void RejectIfPromiseEnabled(ScriptPromiseResolver* resolver,
+                              DOMException* exception);
 
   Member<Page> page_;
   bool lock_pending_;
diff --git a/third_party/blink/renderer/core/paint/box_painter_test.cc b/third_party/blink/renderer/core/paint/box_painter_test.cc
index 519ef66..da56ad2 100644
--- a/third_party/blink/renderer/core/paint/box_painter_test.cc
+++ b/third_party/blink/renderer/core/paint/box_painter_test.cc
@@ -53,14 +53,11 @@
                                       kDocumentBackgroundType),
                        GetLayoutView().FirstFragment().ContentsProperties(),
                        nullptr, IntRect(0, 0, 800, 600)),
-          IsPaintChunk(
-              1, 3, PaintChunk::Id(*body->Layer(), DisplayItem::kLayerChunk),
-              body->FirstFragment().LocalBorderBoxProperties(), nullptr,
-              // In CompositeAfterPaint, empty backgrounds contribute
-              // to bounds of paint chunks.
-              RuntimeEnabledFeatures::CompositeAfterPaintEnabled()
-                  ? IntRect(-2, 0, 202, 350)
-                  : IntRect(-2, 0, 104, 202))));
+          // Empty backgrounds contribute to bounds of paint chunks.
+          IsPaintChunk(1, 3,
+                       PaintChunk::Id(*body->Layer(), DisplayItem::kLayerChunk),
+                       body->FirstFragment().LocalBorderBoxProperties(),
+                       nullptr, IntRect(-2, 0, 202, 350))));
 }
 
 TEST_P(BoxPainterTest, ScrollHitTestOrderWithScrollBackgroundAttachment) {
diff --git a/third_party/blink/renderer/core/paint/paint_layer_painter.cc b/third_party/blink/renderer/core/paint/paint_layer_painter.cc
index 3b6c654..79a1a8d 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_painter.cc
+++ b/third_party/blink/renderer/core/paint/paint_layer_painter.cc
@@ -442,9 +442,6 @@
       local_painting_info.GetGlobalPaintFlags() & kGlobalPaintSelectionOnly;
 
   {  // Begin block for the lifetime of any filter.
-    size_t display_item_list_size_before_painting =
-        context.GetPaintController().NewDisplayItemList().size();
-
     bool is_painting_root_layer = (&paint_layer_) == painting_info.root_layer;
     bool should_paint_background =
         should_paint_content && !selection_only &&
@@ -521,19 +518,6 @@
       PaintSelfOutlineForFragments(layer_fragments, context,
                                    local_painting_info, paint_flags);
     }
-
-    if (!is_painting_overlay_overflow_controls) {
-      // For filters, if the layer painted nothing, we need to issue a no-op
-      // display item to ensure the filters won't be ignored. For backdrop
-      // filters, we issue the display item regardless of other paintings to
-      // ensure correct bounds of the composited layer for the backdrop filter.
-      if ((paint_layer_.PaintsWithFilters() &&
-           display_item_list_size_before_painting ==
-               context.GetPaintController().NewDisplayItemList().size()) ||
-          paint_layer_.GetLayoutObject().HasBackdropFilter()) {
-        PaintEmptyContentForFilters(context);
-      }
-    }
   }  // FilterPainter block
 
   bool should_paint_mask = is_painting_mask && should_paint_content &&
@@ -853,21 +837,4 @@
   context.FillRect(snapped_clip_rect, Color::kBlack);
 }
 
-// Generate a no-op DrawingDisplayItem to ensure a non-empty chunk for the
-// filter without content.
-void PaintLayerPainter::PaintEmptyContentForFilters(GraphicsContext& context) {
-  DCHECK(paint_layer_.PaintsWithFilters() ||
-         paint_layer_.GetLayoutObject().HasBackdropFilter());
-
-  ScopedPaintChunkProperties paint_chunk_properties(
-      context.GetPaintController(),
-      paint_layer_.GetLayoutObject().FirstFragment().LocalBorderBoxProperties(),
-      paint_layer_, DisplayItem::kEmptyContentForFilters);
-  if (DrawingRecorder::UseCachedDrawingIfPossible(
-          context, paint_layer_, DisplayItem::kEmptyContentForFilters))
-    return;
-  DrawingRecorder recorder(context, paint_layer_,
-                           DisplayItem::kEmptyContentForFilters);
-}
-
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/paint_layer_painter.h b/third_party/blink/renderer/core/paint/paint_layer_painter.h
index 98382b06..68eceb8 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_painter.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_painter.h
@@ -106,8 +106,6 @@
                            const ClipRect&,
                            const DisplayItemClient&);
 
-  void PaintEmptyContentForFilters(GraphicsContext&);
-
   void AdjustForPaintProperties(const GraphicsContext&,
                                 PaintLayerPaintingInfo&,
                                 PaintLayerFlags&);
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth.cc b/third_party/blink/renderer/modules/bluetooth/bluetooth.cc
index 770dcdc..6f7a4dd 100644
--- a/third_party/blink/renderer/modules/bluetooth/bluetooth.cc
+++ b/third_party/blink/renderer/modules/bluetooth/bluetooth.cc
@@ -6,6 +6,7 @@
 
 #include <utility>
 
+#include "build/build_config.h"
 #include "mojo/public/cpp/bindings/associated_receiver_set.h"
 #include "mojo/public/cpp/bindings/pending_associated_remote.h"
 #include "mojo/public/cpp/bindings/receiver_set.h"
@@ -50,6 +51,21 @@
     "Must be handling a user gesture to show a permission request.";
 }  // namespace
 
+// Remind developers when they are using Web Bluetooth on unsupported platforms.
+// TODO(https://crbug.com/570344): Remove this method when all platforms are
+// supported.
+void AddUnsupportedPlatformConsoleMessage(ExecutionContext* context) {
+#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && \
+    !defined(OS_WIN)
+  context->AddConsoleMessage(MakeGarbageCollected<ConsoleMessage>(
+      mojom::blink::ConsoleMessageSource::kJavaScript,
+      mojom::blink::ConsoleMessageLevel::kInfo,
+      "Web Bluetooth is experimental on this platform. See "
+      "https://github.com/WebBluetoothCG/web-bluetooth/blob/gh-pages/"
+      "implementation-status.md"));
+#endif
+}
+
 static void CanonicalizeFilter(
     const BluetoothLEScanFilterInit* filter,
     mojom::blink::WebBluetoothLeScanFilterPtr& canonicalized_filter,
@@ -168,6 +184,23 @@
   return promise;
 }
 
+void Bluetooth::GetDevicesCallback(
+    ScriptPromiseResolver* resolver,
+    Vector<mojom::blink::WebBluetoothDevicePtr> devices) {
+  if (!resolver->GetExecutionContext() ||
+      resolver->GetExecutionContext()->IsContextDestroyed()) {
+    return;
+  }
+
+  HeapVector<Member<BluetoothDevice>> bluetooth_devices;
+  for (auto& device : devices) {
+    BluetoothDevice* bluetooth_device = GetBluetoothDeviceRepresentingDevice(
+        std::move(device), resolver->GetExecutionContext());
+    bluetooth_devices.push_back(*bluetooth_device);
+  }
+  resolver->Resolve(bluetooth_devices);
+}
+
 void Bluetooth::RequestDeviceCallback(
     ScriptPromiseResolver* resolver,
     mojom::blink::WebBluetoothResult result,
@@ -186,6 +219,27 @@
   }
 }
 
+ScriptPromise Bluetooth::getDevices(ScriptState* script_state,
+                                    ExceptionState& exception_state) {
+  ExecutionContext* context = GetExecutionContext();
+  if (!context) {
+    exception_state.ThrowTypeError(kInactiveDocumentError);
+    return ScriptPromise();
+  }
+
+  AddUnsupportedPlatformConsoleMessage(context);
+  CHECK(context->IsSecureContext());
+
+  EnsureServiceConnection(context);
+  auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state);
+  ScriptPromise promise = resolver->Promise();
+
+  service_->GetDevices(WTF::Bind(&Bluetooth::GetDevicesCallback,
+                                 WrapPersistent(this),
+                                 WrapPersistent(resolver)));
+  return promise;
+}
+
 // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetooth-requestdevice
 ScriptPromise Bluetooth::requestDevice(ScriptState* script_state,
                                        const RequestDeviceOptions* options,
@@ -196,17 +250,7 @@
     return ScriptPromise();
   }
 
-// Remind developers when they are using Web Bluetooth on unsupported platforms.
-#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && \
-    !defined(OS_WIN)
-  context->AddConsoleMessage(MakeGarbageCollected<ConsoleMessage>(
-      mojom::ConsoleMessageSource::kJavaScript,
-      mojom::ConsoleMessageLevel::kInfo,
-      "Web Bluetooth is experimental on this platform. See "
-      "https://github.com/WebBluetoothCG/web-bluetooth/blob/gh-pages/"
-      "implementation-status.md"));
-#endif
-
+  AddUnsupportedPlatformConsoleMessage(context);
   CHECK(context->IsSecureContext());
 
   // If the algorithm is not allowed to show a popup, reject promise with a
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth.h b/third_party/blink/renderer/modules/bluetooth/bluetooth.h
index f110c41..9c578d52 100644
--- a/third_party/blink/renderer/modules/bluetooth/bluetooth.h
+++ b/third_party/blink/renderer/modules/bluetooth/bluetooth.h
@@ -36,6 +36,7 @@
 
   // IDL exposed interface:
   ScriptPromise getAvailability(ScriptState*, ExceptionState&);
+  ScriptPromise getDevices(ScriptState*, ExceptionState&);
   ScriptPromise requestDevice(ScriptState*,
                               const RequestDeviceOptions*,
                               ExceptionState&);
@@ -72,6 +73,9 @@
       mojom::blink::WebBluetoothDevicePtr,
       ExecutionContext*);
 
+  void GetDevicesCallback(ScriptPromiseResolver*,
+                          Vector<mojom::blink::WebBluetoothDevicePtr>);
+
   void RequestDeviceCallback(ScriptPromiseResolver*,
                              mojom::blink::WebBluetoothResult,
                              mojom::blink::WebBluetoothDevicePtr);
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth.idl b/third_party/blink/renderer/modules/bluetooth/bluetooth.idl
index f669af3..21b29c9 100644
--- a/third_party/blink/renderer/modules/bluetooth/bluetooth.idl
+++ b/third_party/blink/renderer/modules/bluetooth/bluetooth.idl
@@ -10,6 +10,7 @@
     SecureContext
 ] interface Bluetooth : EventTarget {
     [CallWith=ScriptState, RaisesException] Promise<boolean> getAvailability();
+    [RuntimeEnabled=WebBluetoothGetDevices, CallWith=ScriptState, RaisesException] Promise<sequence<BluetoothDevice>> getDevices();
     [CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothRequestDevice] Promise<BluetoothDevice> requestDevice (optional RequestDeviceOptions options = {});
 
     // https://webbluetoothcg.github.io/web-bluetooth/scanning.html#scanning
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h
index 2d9a25a..dbd5ac7 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h
@@ -380,7 +380,7 @@
   virtual void DisableAcceleration() {}
 
   virtual bool IsPaint2D() const { return false; }
-  virtual void WillOverwriteCanvas() {}
+  virtual void WillOverwriteCanvas() = 0;
 
  private:
   void RealizeSaves();
diff --git a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.cc
index 7a531f6b..9593fb7 100644
--- a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.cc
@@ -350,6 +350,10 @@
   return IsPaintable() && GetCanvasResourceProvider()->IsAccelerated();
 }
 
+void OffscreenCanvasRenderingContext2D::WillOverwriteCanvas() {
+  GetCanvasResourceProvider()->SkipQueuedDrawCommands();
+}
+
 String OffscreenCanvasRenderingContext2D::font() const {
   if (!GetState().HasRealizedFont())
     return kDefaultFont;
diff --git a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.h b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.h
index b99acfd..9e76f227 100644
--- a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.h
+++ b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.h
@@ -136,6 +136,7 @@
                    size_t row_bytes,
                    int x,
                    int y) override;
+  void WillOverwriteCanvas() override;
 
  private:
   bool have_recorded_draw_commands_;
diff --git a/third_party/blink/renderer/modules/scheduler/dom_scheduler.cc b/third_party/blink/renderer/modules/scheduler/dom_scheduler.cc
index b6ea347..83704c6 100644
--- a/third_party/blink/renderer/modules/scheduler/dom_scheduler.cc
+++ b/third_party/blink/renderer/modules/scheduler/dom_scheduler.cc
@@ -6,6 +6,7 @@
 
 #include "base/memory/weak_ptr.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_scheduler_post_task_options.h"
+#include "third_party/blink/renderer/bindings/modules/v8/v8_task_signal.h"
 #include "third_party/blink/renderer/core/dom/dom_exception.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/modules/scheduler/dom_task.h"
@@ -40,7 +41,8 @@
 }
 
 DOMScheduler::DOMScheduler(Document* document)
-    : ExecutionContextLifecycleObserver(document) {
+    : ExecutionContextLifecycleObserver(document),
+      Supplement<Document>(*document) {
   if (document->IsContextDestroyed())
     return;
   DCHECK(document->GetScheduler());
@@ -70,32 +72,37 @@
                                      ExceptionState& exception_state) {
   if (!GetExecutionContext() || GetExecutionContext()->IsContextDestroyed())
     return RejectPromiseImmediately(exception_state);
+  if (options->signal() && options->signal()->aborted())
+    return RejectPromiseImmediately(exception_state);
 
-  // Always honor the priority and the task signal if given. Therefore:
-  // * If both priority and signal are set, use the signal but choose the
-  //   default task runner for the given priority, so that it is scheduled at
-  //   the given priority.
-  // * If only the signal is set, use the signal and its associated priority.
-  // * If only a priority is set, use the default task runner for that priority,
-  //   and no signal.
-  // * If neither is set, use the default priority task runner and no signal.
-  //
-  // Note that |options->signal()| may be a generic AbortSignal, rather than a
-  // TaskSignal. In that case, use it for abort signalling, but use a default
-  // task runner for priority purposes.
-  base::SingleThreadTaskRunner* task_runner = nullptr;
-  if (options->hasPriority()) {
-    WebSchedulingPriority priority =
-        WebSchedulingPriorityFromString(AtomicString(options->priority()));
-    task_runner = GetTaskRunnerFor(priority);
-  } else if (auto* task_signal = DynamicTo<DOMTaskSignal>(options->signal())) {
-    task_runner = task_signal->GetTaskRunner();
-    if (!task_runner)
-      return RejectPromiseImmediately(exception_state);
+  // Always honor the priority and the task signal if given.
+  DOMTaskSignal* task_signal = nullptr;
+  if (!options->hasPriority() && IsA<DOMTaskSignal>(options->signal())) {
+    // If only a signal is given, and it is a TaskSignal rather than an
+    // basic AbortSignal, use it.
+    task_signal = To<DOMTaskSignal>(options->signal());
   } else {
-    task_runner = GetTaskRunnerFor(WebSchedulingPriority::kUserVisiblePriority);
+    // Otherwise, construct an implicit TaskSignal. Have it follow the signal
+    // if it was given, so that it can still honor any aborts, but have it
+    // at the fixed given priority (or default if none was specified).
+    //
+    // An implicit TaskSignal, in addition to being read-only, won't own its
+    // own task queue. Instead, it will use the appropriate task queue from
+    // |global_task_queues_|.
+    WebSchedulingPriority priority =
+        options->hasPriority()
+            ? WebSchedulingPriorityFromString(AtomicString(options->priority()))
+            : WebSchedulingPriority::kUserVisiblePriority;
+    task_signal = MakeGarbageCollected<DOMTaskSignal>(
+        GetSupplementable(), priority, DOMTaskSignal::Type::kImplicit);
+    if (options->signal())
+      task_signal->Follow(options->signal());
   }
 
+  DCHECK(task_signal);
+  if (!task_signal->GetTaskRunner())
+    return RejectPromiseImmediately(exception_state);
+
   // TODO(shaseley): We need to figure out the behavior we want for delay. For
   // now, we use behavior that is very similar to setTimeout: negative delays
   // are treated as 0, and we use the Blink scheduler's delayed task behavior.
@@ -106,10 +113,22 @@
 
   auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state);
   MakeGarbageCollected<DOMTask>(this, resolver, callback_function, args,
-                                task_runner, options->signal(), delay);
+                                task_signal, delay);
   return resolver->Promise();
 }
 
+DOMTaskSignal* DOMScheduler::currentTaskSignal(
+    ScriptState* script_state) const {
+  v8::Local<v8::Value> embedder_data =
+      script_state->GetContext()->GetContinuationPreservedEmbedderData();
+  if (V8TaskSignal::HasInstance(embedder_data, script_state->GetIsolate()))
+    return V8TaskSignal::ToImpl(v8::Local<v8::Object>::Cast(embedder_data));
+
+  return MakeGarbageCollected<DOMTaskSignal>(
+      GetSupplementable(), WebSchedulingPriority::kUserVisiblePriority,
+      DOMTaskSignal::Type::kImplicit);
+}
+
 base::SingleThreadTaskRunner* DOMScheduler::GetTaskRunnerFor(
     WebSchedulingPriority priority) {
   DCHECK(!global_task_queues_.IsEmpty());
diff --git a/third_party/blink/renderer/modules/scheduler/dom_scheduler.h b/third_party/blink/renderer/modules/scheduler/dom_scheduler.h
index 4e69609..7bb7826 100644
--- a/third_party/blink/renderer/modules/scheduler/dom_scheduler.h
+++ b/third_party/blink/renderer/modules/scheduler/dom_scheduler.h
@@ -18,6 +18,7 @@
 namespace blink {
 
 class DOMTask;
+class DOMTaskSignal;
 class ExceptionState;
 class SchedulerPostTaskOptions;
 class ScriptValue;
@@ -49,6 +50,21 @@
                          const HeapVector<ScriptValue>& args,
                          ExceptionState&);
 
+  // Returns a TaskSignal representing the state when the current task was
+  // scheduled. If postTask is given a signal but no priority, it will return
+  // that signal. If postTask is given both a signal and a priority, it will
+  // return a signal with the given priority that follows the given signal.
+  // If a priority only was given, it will return a signal with the given
+  // priority that neither follows another signal nor is known to a controller,
+  // and is therefore unmodifiable. If called outside of a postTask task, it
+  // will return a task signal at the default priority (user-visible).
+  // NOTE: This uses V8's ContinuationPreservedEmbedderData to propagate the
+  // currentTaskSignal across microtask boundaries, so it will remain usable
+  // even in then() blocks or after an await in an async function.
+  DOMTaskSignal* currentTaskSignal(ScriptState*) const;
+
+  base::SingleThreadTaskRunner* GetTaskRunnerFor(WebSchedulingPriority);
+
   // Callbacks invoked by DOMTasks when they run.
   void OnTaskStarted(DOMTask*);
   void OnTaskCompleted(DOMTask*);
@@ -62,7 +78,6 @@
       static_cast<size_t>(WebSchedulingPriority::kLastPriority) + 1;
 
   void CreateGlobalTaskQueues(Document*);
-  base::SingleThreadTaskRunner* GetTaskRunnerFor(WebSchedulingPriority);
 
   // |global_task_queues_| is initialized with one entry per priority, indexed
   // by priority. This will be empty when the document is detached.
diff --git a/third_party/blink/renderer/modules/scheduler/dom_task.cc b/third_party/blink/renderer/modules/scheduler/dom_task.cc
index a0fc63c..848c674 100644
--- a/third_party/blink/renderer/modules/scheduler/dom_task.cc
+++ b/third_party/blink/renderer/modules/scheduler/dom_task.cc
@@ -21,26 +21,20 @@
                  ScriptPromiseResolver* resolver,
                  V8Function* callback,
                  const HeapVector<ScriptValue>& args,
-                 base::SingleThreadTaskRunner* task_runner,
-                 AbortSignal* signal,
+                 DOMTaskSignal* signal,
                  base::TimeDelta delay)
     : scheduler_(scheduler),
       callback_(callback),
       arguments_(args),
-      resolver_(resolver) {
+      resolver_(resolver),
+      signal_(signal) {
+  DCHECK(signal_);
+  DCHECK(signal_->GetTaskRunner());
   DCHECK(callback_);
-  DCHECK(task_runner);
-  if (signal) {
-    if (signal->aborted()) {
-      Abort();
-      return;
-    }
-
-    signal->AddAlgorithm(WTF::Bind(&DOMTask::Abort, WrapWeakPersistent(this)));
-  }
+  signal_->AddAlgorithm(WTF::Bind(&DOMTask::Abort, WrapWeakPersistent(this)));
 
   task_handle_ = PostDelayedCancellableTask(
-      *task_runner, FROM_HERE,
+      *signal_->GetTaskRunner(), FROM_HERE,
       WTF::Bind(&DOMTask::Invoke, WrapPersistent(this)), delay);
 
   ScriptState* script_state =
@@ -55,6 +49,7 @@
   visitor->Trace(callback_);
   visitor->Trace(arguments_);
   visitor->Trace(resolver_);
+  visitor->Trace(signal_);
 }
 
 void DOMTask::Invoke() {
@@ -72,8 +67,9 @@
 }
 
 void DOMTask::InvokeInternal(ScriptState* script_state) {
+  v8::Isolate* isolate = script_state->GetIsolate();
   ScriptState::Scope scope(script_state);
-  v8::TryCatch try_catch(script_state->GetIsolate());
+  v8::TryCatch try_catch(isolate);
   try_catch.SetVerbose(true);
 
   ExecutionContext* context = ExecutionContext::From(script_state);
@@ -81,11 +77,15 @@
   probe::AsyncTask async_task(context, &async_task_id_);
   probe::UserCallback probe(context, "postTask", AtomicString(), true);
 
+  v8::Local<v8::Context> v8_context = script_state->GetContext();
+  v8_context->SetContinuationPreservedEmbedderData(
+      ToV8(signal_.Get(), v8_context->Global(), isolate));
   ScriptValue result;
   if (callback_->Invoke(nullptr, arguments_).To(&result))
     resolver_->Resolve(result.V8Value());
   else if (try_catch.HasCaught())
     resolver_->Reject(try_catch.Exception());
+  v8_context->SetContinuationPreservedEmbedderData(v8::Local<v8::Object>());
 }
 
 void DOMTask::Abort() {
diff --git a/third_party/blink/renderer/modules/scheduler/dom_task.h b/third_party/blink/renderer/modules/scheduler/dom_task.h
index 0347640..1afaccf 100644
--- a/third_party/blink/renderer/modules/scheduler/dom_task.h
+++ b/third_party/blink/renderer/modules/scheduler/dom_task.h
@@ -12,8 +12,8 @@
 #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
 
 namespace blink {
-class AbortSignal;
 class DOMScheduler;
+class DOMTaskSignal;
 class ScriptState;
 class ScriptValue;
 class V8Function;
@@ -27,8 +27,7 @@
           ScriptPromiseResolver*,
           V8Function*,
           const HeapVector<ScriptValue>& args,
-          base::SingleThreadTaskRunner*,
-          AbortSignal*,
+          DOMTaskSignal*,
           base::TimeDelta delay);
 
   virtual void Trace(Visitor*);
@@ -47,6 +46,7 @@
   HeapVector<ScriptValue> arguments_;
   Member<ScriptPromiseResolver> resolver_;
   probe::AsyncTaskId async_task_id_;
+  Member<DOMTaskSignal> signal_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/scheduler/dom_task_controller.cc b/third_party/blink/renderer/modules/scheduler/dom_task_controller.cc
index 71af9a9..30ae3d8f 100644
--- a/third_party/blink/renderer/modules/scheduler/dom_task_controller.cc
+++ b/third_party/blink/renderer/modules/scheduler/dom_task_controller.cc
@@ -18,8 +18,10 @@
 
 DOMTaskController::DOMTaskController(Document& document,
                                      WebSchedulingPriority priority)
-    : AbortController(
-          MakeGarbageCollected<DOMTaskSignal>(&document, priority)) {
+    : AbortController(MakeGarbageCollected<DOMTaskSignal>(
+          &document,
+          priority,
+          DOMTaskSignal::Type::kCreatedByController)) {
   DCHECK(!document.IsContextDestroyed());
 }
 
diff --git a/third_party/blink/renderer/modules/scheduler/dom_task_signal.cc b/third_party/blink/renderer/modules/scheduler/dom_task_signal.cc
index 86855be..b2c8bb7 100644
--- a/third_party/blink/renderer/modules/scheduler/dom_task_signal.cc
+++ b/third_party/blink/renderer/modules/scheduler/dom_task_signal.cc
@@ -19,13 +19,17 @@
 
 namespace blink {
 
-DOMTaskSignal::DOMTaskSignal(Document* document, WebSchedulingPriority priority)
+DOMTaskSignal::DOMTaskSignal(Document* document,
+                             WebSchedulingPriority priority,
+                             Type type)
     : AbortSignal(document->ToExecutionContext()),
       ExecutionContextLifecycleObserver(document),
-      priority_(priority),
-      web_scheduling_task_queue_(document->GetScheduler()
+      priority_(priority) {
+  if (type == Type::kCreatedByController) {
+    web_scheduling_task_queue_ = document->GetScheduler()
                                      ->ToFrameScheduler()
-                                     ->CreateWebSchedulingTaskQueue(priority)) {
+                                     ->CreateWebSchedulingTaskQueue(priority_);
+  }
 }
 
 DOMTaskSignal::~DOMTaskSignal() = default;
@@ -48,9 +52,13 @@
 }
 
 base::SingleThreadTaskRunner* DOMTaskSignal::GetTaskRunner() {
-  return web_scheduling_task_queue_
-             ? web_scheduling_task_queue_->GetTaskRunner().get()
-             : nullptr;
+  auto* document =
+      Document::From(ExecutionContextLifecycleObserver::GetExecutionContext());
+  if (!document)
+    return nullptr;
+  if (web_scheduling_task_queue_)
+    return web_scheduling_task_queue_->GetTaskRunner().get();
+  return DOMScheduler::From(*document)->GetTaskRunnerFor(priority_);
 }
 
 void DOMTaskSignal::Trace(Visitor* visitor) {
diff --git a/third_party/blink/renderer/modules/scheduler/dom_task_signal.h b/third_party/blink/renderer/modules/scheduler/dom_task_signal.h
index 228e27c..be79f841 100644
--- a/third_party/blink/renderer/modules/scheduler/dom_task_signal.h
+++ b/third_party/blink/renderer/modules/scheduler/dom_task_signal.h
@@ -26,7 +26,9 @@
   USING_GARBAGE_COLLECTED_MIXIN(DOMTaskSignal);
 
  public:
-  explicit DOMTaskSignal(Document*, WebSchedulingPriority);
+  enum class Type { kCreatedByController, kImplicit };
+
+  DOMTaskSignal(Document*, WebSchedulingPriority, Type);
   ~DOMTaskSignal() override;
 
   // task_signal.idl
diff --git a/third_party/blink/renderer/modules/scheduler/scheduler.idl b/third_party/blink/renderer/modules/scheduler/scheduler.idl
index e7a6209..9a32de4 100644
--- a/third_party/blink/renderer/modules/scheduler/scheduler.idl
+++ b/third_party/blink/renderer/modules/scheduler/scheduler.idl
@@ -9,4 +9,5 @@
     RuntimeEnabled=WebScheduler
 ] interface Scheduler {
     [CallWith=ScriptState, MeasureAs=SchedulerPostTask, RaisesException] Promise<any> postTask(Function callback, optional SchedulerPostTaskOptions options = {}, any... arguments);
+    [CallWith=ScriptState] readonly attribute TaskSignal currentTaskSignal;
 };
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc b/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc
index 3e8c690..154b0ac 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc
@@ -277,6 +277,7 @@
 }
 
 void ConversionContext::SwitchToChunkState(const PaintChunk& chunk) {
+  TranslateForLayerOffsetOnce();
   chunk_to_layer_mapper_.SwitchToChunk(chunk);
 
   const auto& chunk_state = chunk.properties;
@@ -591,6 +592,19 @@
       EffectBoundsInfo{save_layer_id, current_transform_});
   current_clip_ = input_clip;
   current_effect_ = &effect;
+
+  if (effect.Filter().HasReferenceFilter()) {
+    auto reference_box = effect.Filter().ReferenceBox();
+    reference_box.MoveBy(effect.FiltersOrigin());
+    effect_bounds_stack_.back().bounds = reference_box;
+    if (current_effect_->Filter().HasReferenceFilter()) {
+      // Emit an empty paint operation to add the filter's source bounds (mapped
+      // to layer space) to the visual rect of the filter's SaveLayerOp.
+      cc_list_.StartPaint();
+      cc_list_.EndPaintOfUnpaired(chunk_to_layer_mapper_.MapVisualRect(
+          EnclosingIntRect(reference_box)));
+    }
+  }
 }
 
 void ConversionContext::UpdateEffectBounds(
@@ -727,17 +741,16 @@
       else
         continue;
 
-      // If we have an empty paint record, then we would prefer not to draw it.
-      // However, if we also have a non-root effect, it means that the filter
-      // applied might draw something even if the record is empty. We need to
-      // "draw" this record in order to ensure that the effect has correct
-      // visual rects.
+      // If we have an empty paint record, then we would prefer ignoring it.
+      // However, if we also have a non-root effect, the empty paint record
+      // might be for a mask with empty content which should make the masked
+      // content fully invisible. We need to "draw" this record to ensure that
+      // the effect has correct visual rect.
       if ((!record || record->size() == 0) &&
           &chunk_state.Effect() == &EffectPaintPropertyNode::Root()) {
         continue;
       }
 
-      TranslateForLayerOffsetOnce();
       if (!switched_to_chunk_state) {
         SwitchToChunkState(chunk);
         switched_to_chunk_state = true;
@@ -749,7 +762,18 @@
       cc_list_.EndPaintOfUnpaired(
           chunk_to_layer_mapper_.MapVisualRect(item.VisualRect()));
     }
-    UpdateEffectBounds(FloatRect(chunk.bounds), chunk_state.Transform());
+
+    // If we have an empty paint chunk, then we would prefer ignoring it.
+    // However, a reference filter can generate visible effect from invisible
+    // source, and we need to emit paint operations for it.
+    if (!switched_to_chunk_state && &chunk_state.Effect() != current_effect_)
+      SwitchToChunkState(chunk);
+
+    // Most effects apply to drawable contents only. Reference filters are
+    // exceptions, for which we have already added the reference box to the
+    // bounds of the effect in StartEffect().
+    UpdateEffectBounds(FloatRect(chunk.drawable_bounds),
+                       chunk_state.Transform());
   }
 }
 
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer_test.cc b/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer_test.cc
index d1a5257..1291b765 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer_test.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer_test.cc
@@ -7,6 +7,7 @@
 #include <initializer_list>
 
 #include "cc/paint/display_item_list.h"
+#include "cc/paint/paint_filter.h"
 #include "cc/paint/paint_flags.h"
 #include "cc/paint/paint_op_buffer.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -160,26 +161,43 @@
   DisplayItemList items = DisplayItemList(0);
 
   // Add a paint chunk with a non-empty paint record and given property nodes.
-  void AddChunk(const TransformPaintPropertyNode& t,
-                const ClipPaintPropertyNode& c,
-                const EffectPaintPropertyNode& e,
-                const IntRect& bounds = IntRect(0, 0, 100, 100)) {
+  void AddChunk(
+      const TransformPaintPropertyNode& t,
+      const ClipPaintPropertyNode& c,
+      const EffectPaintPropertyNode& e,
+      const IntRect& bounds = IntRect(0, 0, 100, 100),
+      const base::Optional<IntRect>& drawable_bounds = base::nullopt) {
     auto record = sk_make_sp<PaintRecord>();
-    record->push<cc::DrawRectOp>(bounds, cc::PaintFlags());
-    AddChunk(std::move(record), t, c, e, bounds);
+    record->push<cc::DrawRectOp>(drawable_bounds ? *drawable_bounds : bounds,
+                                 cc::PaintFlags());
+    AddChunk(std::move(record), t, c, e, bounds, drawable_bounds);
   }
 
   // Add a paint chunk with a given paint record and property nodes.
-  void AddChunk(sk_sp<PaintRecord> record,
-                const TransformPaintPropertyNode& t,
-                const ClipPaintPropertyNode& c,
-                const EffectPaintPropertyNode& e,
-                const IntRect& bounds = IntRect(0, 0, 100, 100)) {
+  void AddChunk(
+      sk_sp<PaintRecord> record,
+      const TransformPaintPropertyNode& t,
+      const ClipPaintPropertyNode& c,
+      const EffectPaintPropertyNode& e,
+      const IntRect& bounds = IntRect(0, 0, 100, 100),
+      const base::Optional<IntRect>& drawable_bounds = base::nullopt) {
     auto i = items.size();
     items.AllocateAndConstruct<DrawingDisplayItem>(
         DefaultId().client, DefaultId().type, std::move(record));
+    if (drawable_bounds)
+      items.Last().SetVisualRectForTesting(*drawable_bounds);
     chunks.emplace_back(i, i + 1, DefaultId(), PropertyTreeState(t, c, e));
     chunks.back().bounds = bounds;
+    chunks.back().drawable_bounds = drawable_bounds ? *drawable_bounds : bounds;
+  }
+
+  void AddEmptyChunk(const TransformPaintPropertyNode& t,
+                     const ClipPaintPropertyNode& c,
+                     const EffectPaintPropertyNode& e,
+                     const IntRect& bounds = IntRect(0, 0, 100, 100)) {
+    auto i = items.size();
+    chunks.emplace_back(i, i, DefaultId(), PropertyTreeState(t, c, e));
+    chunks.back().bounds = bounds;
   }
 };
 
@@ -1330,5 +1348,88 @@
   EXPECT_EFFECT_BOUNDS(0, 0, 0, 0, *output, 0);
 }
 
+TEST_P(PaintChunksToCcLayerTest, ReferenceFilterOnEmptyChunk) {
+  CompositorFilterOperations filter;
+  filter.AppendReferenceFilter(sk_make_sp<cc::RecordPaintFilter>(
+      sk_make_sp<cc::PaintOpBuffer>(), SkRect::MakeIWH(100, 100)));
+  filter.SetReferenceBox(FloatRect(11, 22, 33, 44));
+  ASSERT_TRUE(filter.HasReferenceFilter());
+  auto e1 = CreateFilterEffect(e0(), t0(), &c0(), filter, FloatPoint(10, 20));
+  TestChunks chunks;
+  chunks.AddEmptyChunk(t0(), c0(), *e1, IntRect(0, 0, 200, 300));
+
+  auto cc_list = base::MakeRefCounted<cc::DisplayItemList>(
+      cc::DisplayItemList::kTopLevelDisplayItemList);
+  PaintChunksToCcLayer::ConvertInto(chunks.chunks, PropertyTreeState::Root(),
+                                    gfx::Vector2dF(5, 10), FloatSize(),
+                                    chunks.items, *cc_list);
+  ASSERT_EQ(9u, cc_list->TotalOpCount());
+  // (16 32) is (11, 22) + filter_offset - layer_offset.
+  gfx::Rect expected_visual_rect(16, 32, 33, 44);
+  for (size_t i = 0; i < cc_list->TotalOpCount(); i++) {
+    SCOPED_TRACE(testing::Message() << "Visual rect of op " << i);
+    EXPECT_EQ(expected_visual_rect, cc_list->VisualRectForTesting(i));
+  }
+
+  auto output = cc_list->ReleaseAsRecord();
+  EXPECT_THAT(*output,
+              PaintRecordMatcher::Make(
+                  {cc::PaintOpType::Save,
+                   cc::PaintOpType::Translate,  // layer offset
+                   cc::PaintOpType::Save,       // <e1>
+                   cc::PaintOpType::Translate, cc::PaintOpType::SaveLayer,
+                   cc::PaintOpType::Translate, cc::PaintOpType::Restore,
+                   cc::PaintOpType::Restore,  // </e1>
+                   cc::PaintOpType::Restore}));
+  EXPECT_EFFECT_BOUNDS(11, 22, 33, 44, *output, 4);
+}
+
+TEST_P(PaintChunksToCcLayerTest, ReferenceFilterOnChunkWithDrawingDisplayItem) {
+  CompositorFilterOperations filter;
+  filter.AppendReferenceFilter(sk_make_sp<cc::RecordPaintFilter>(
+      sk_make_sp<cc::PaintOpBuffer>(), SkRect::MakeIWH(100, 100)));
+  filter.SetReferenceBox(FloatRect(11, 22, 33, 44));
+  ASSERT_TRUE(filter.HasReferenceFilter());
+  auto e1 = CreateFilterEffect(e0(), t0(), &c0(), filter, FloatPoint(10, 20));
+  TestChunks chunks;
+  chunks.AddChunk(t0(), c0(), *e1, IntRect(5, 10, 200, 300),
+                  IntRect(10, 15, 20, 30));
+
+  auto cc_list = base::MakeRefCounted<cc::DisplayItemList>(
+      cc::DisplayItemList::kTopLevelDisplayItemList);
+  PaintChunksToCcLayer::ConvertInto(chunks.chunks, PropertyTreeState::Root(),
+                                    gfx::Vector2dF(5, 10), FloatSize(),
+                                    chunks.items, *cc_list);
+  ASSERT_EQ(11u, cc_list->TotalOpCount());
+  // This is the visual rect for all filter related paint operations, which is
+  // the union of the draw record and reference box of the filter in the layer's
+  // space.
+  gfx::Rect expected_filter_visual_rect(5, 5, 44, 71);
+  // This is the visual rect of the DrawingDisplayItem in the layer's space.
+  gfx::Rect expected_draw_visual_rect(5, 5, 20, 30);
+  // TotalOpCount() - 1 because the DrawRecord op has a sub operation.
+  for (size_t i = 0; i < cc_list->TotalOpCount() - 1; i++) {
+    SCOPED_TRACE(testing::Message() << "Visual rect of op " << i);
+    EXPECT_EQ(i == 6 ? expected_draw_visual_rect : expected_filter_visual_rect,
+              cc_list->VisualRectForTesting(i));
+  }
+
+  auto output = cc_list->ReleaseAsRecord();
+  EXPECT_THAT(*output,
+              PaintRecordMatcher::Make(
+                  {cc::PaintOpType::Save,
+                   cc::PaintOpType::Translate,   // layer offset
+                   cc::PaintOpType::Save,        //
+                   cc::PaintOpType::Translate,   // e1->FilterOrigin()
+                   cc::PaintOpType::SaveLayer,   // <e1>
+                   cc::PaintOpType::Translate,   // -e1->FilterOrigin()
+                   cc::PaintOpType::DrawRecord,  // the DrawingDisplayItem
+                   cc::PaintOpType::Restore,     // </e1>
+                   cc::PaintOpType::Restore, cc::PaintOpType::Restore}));
+  // The effect bounds are the union of the chunk's drawable_bounds and the
+  // reference box in the filter's space.
+  EXPECT_EFFECT_BOUNDS(0, -5, 44, 71, *output, 4);
+}
+
 }  // namespace
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/graphics/compositor_filter_operations.cc b/third_party/blink/renderer/platform/graphics/compositor_filter_operations.cc
index 243b9a1..9eec397 100644
--- a/third_party/blink/renderer/platform/graphics/compositor_filter_operations.cc
+++ b/third_party/blink/renderer/platform/graphics/compositor_filter_operations.cc
@@ -110,6 +110,10 @@
   return filter_operations_.HasFilterThatMovesPixels();
 }
 
+bool CompositorFilterOperations::HasReferenceFilter() const {
+  return filter_operations_.HasReferenceFilter();
+}
+
 bool CompositorFilterOperations::operator==(
     const CompositorFilterOperations& o) const {
   return reference_box_ == o.reference_box_ &&
diff --git a/third_party/blink/renderer/platform/graphics/compositor_filter_operations.h b/third_party/blink/renderer/platform/graphics/compositor_filter_operations.h
index c943a26..4c3a334f 100644
--- a/third_party/blink/renderer/platform/graphics/compositor_filter_operations.h
+++ b/third_party/blink/renderer/platform/graphics/compositor_filter_operations.h
@@ -49,9 +49,10 @@
   FloatRect MapRect(const FloatRect& input_rect) const;
 
   bool HasFilterThatMovesPixels() const;
+  bool HasReferenceFilter() const;
 
   void SetReferenceBox(const FloatRect& r) { reference_box_ = r; }
-  FloatRect ReferenceBox() const { return reference_box_; }
+  const FloatRect& ReferenceBox() const { return reference_box_; }
 
   // For reference filters, this equality operator compares pointers of the
   // image_filter fields instead of their values.
diff --git a/third_party/blink/renderer/platform/graphics/paint/display_item.cc b/third_party/blink/renderer/platform/graphics/paint/display_item.cc
index 014361e..64db3de 100644
--- a/third_party/blink/renderer/platform/graphics/paint/display_item.cc
+++ b/third_party/blink/renderer/platform/graphics/paint/display_item.cc
@@ -82,7 +82,6 @@
     DEBUG_STRING_CASE(DocumentBackground);
     DEBUG_STRING_CASE(DragImage);
     DEBUG_STRING_CASE(DragCaret);
-    DEBUG_STRING_CASE(EmptyContentForFilters);
     DEBUG_STRING_CASE(ForcedColorsModeBackplate);
     DEBUG_STRING_CASE(SVGImage);
     DEBUG_STRING_CASE(LinkHighlight);
diff --git a/third_party/blink/renderer/platform/graphics/paint/display_item.h b/third_party/blink/renderer/platform/graphics/paint/display_item.h
index fc99b40..22c84d3 100644
--- a/third_party/blink/renderer/platform/graphics/paint/display_item.h
+++ b/third_party/blink/renderer/platform/graphics/paint/display_item.h
@@ -65,7 +65,6 @@
     kDocumentBackground,
     kDragImage,
     kDragCaret,
-    kEmptyContentForFilters,
     kForcedColorsModeBackplate,
     kSVGImage,
     kLinkHighlight,
@@ -226,6 +225,8 @@
     fragment_ = fragment;
   }
 
+  void SetVisualRectForTesting(const IntRect& r) { visual_rect_ = r; }
+
 // See comments of enum Type for usage of the following macros.
 #define DEFINE_CATEGORY_METHODS(Category)                           \
   static constexpr bool Is##Category##Type(Type type) {             \
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_chunker.cc b/third_party/blink/renderer/platform/graphics/paint/paint_chunker.cc
index f2cfe43..4584aa80 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_chunker.cc
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_chunker.cc
@@ -117,8 +117,13 @@
 void PaintChunker::AddHitTestDataToCurrentChunk(const PaintChunk::Id& id,
                                                 const IntRect& rect,
                                                 TouchAction touch_action) {
+  // In CompositeAfterPaint, we ensure a paint chunk for correct composited
+  // hit testing. In pre-CompositeAfterPaint, this is unnecessary, except that
+  // there is special touch action, and that we have a non-root effect so that
+  // PaintChunksToCcLayer will emit paint operations for filters.
   if (!RuntimeEnabledFeatures::CompositeAfterPaintEnabled() &&
-      touch_action == TouchAction::kAuto)
+      touch_action == TouchAction::kAuto &&
+      &current_properties_.Effect() == &EffectPaintPropertyNode::Root())
     return;
 
   auto& chunk = EnsureCurrentChunk(id);
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 9198817..7e5fb5d 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1816,6 +1816,10 @@
       },
     },
     {
+      name: "WebBluetoothGetDevices",
+      status: "experimental",
+    },
+    {
       name: "WebBluetoothScanning",
       status: "experimental",
     },
diff --git a/third_party/blink/tools/blinkpy/common/system/filesystem.py b/third_party/blink/tools/blinkpy/common/system/filesystem.py
index 445f9e77..9ceba39 100644
--- a/third_party/blink/tools/blinkpy/common/system/filesystem.py
+++ b/third_party/blink/tools/blinkpy/common/system/filesystem.py
@@ -41,6 +41,7 @@
 import os
 import shutil
 import stat
+import subprocess
 import sys
 import tempfile
 import time
@@ -74,6 +75,7 @@
         (https://msdn.microsoft.com/en-us/library/aa365247.aspx#maxpath)
         """
         if sys.platform == 'win32' and len(path) >= self.WINDOWS_MAX_PATH:
+            assert not path.startswith(r'\\'), "must not already be UNC"
             return ur'\\?\%s' % (self.abspath(path),)
         return path
 
@@ -327,8 +329,34 @@
 
     def rmtree(self, path, ignore_errors=True, onerror=None):
         """Deletes the directory rooted at path, whether empty or not."""
-        # shutil.rmtree() uses os.path.join() which doesn't support UNC paths.
-        shutil.rmtree(path, ignore_errors=ignore_errors, onerror=onerror)
+        if sys.platform == 'win32':
+            assert not path.startswith(r'\\'), 'root path cannot be UNC-style'
+            path_abs = self.abspath(path)
+
+            # Ensure the root of the tree being rmtree'd is not a long path.
+            # We can't convert it to a long path (using _path_for_access),
+            # because long paths are not supported in 'rmdir' on Windows 7.
+            assert len(path_abs) < self.WINDOWS_MAX_PATH, 'root path is too long'
+
+            # Ensure (hopefully) that the quoting done on the next line is safe.
+            assert '"' not in path_abs, 'path contains a quotation mark (")'
+
+            # Create a shell command to call rmdir. (Note rmdir is a shell
+            # built-in, so it cannot be called as an executable.)
+            cmd = 'rmdir /s /q "{}"'.format(path_abs)
+            try:
+                subprocess.check_call(cmd, shell=True)
+            except subprocess.CalledProcessError as e:
+                if not ignore_errors:
+                    if onerror:
+                        # Unfortunately we can't know the exact file that failed,
+                        # so we conjure up error info from the top level.
+                        onerror('FileSystem.rmtree', path, sys.exc_info())
+                    else:
+                        raise e
+        else:
+            # shutil.rmtree() uses os.path.join() which doesn't support UNC paths.
+            shutil.rmtree(path, ignore_errors=ignore_errors, onerror=onerror)
 
     def remove_contents(self, dirname):
         """Attempts to remove the contents of a directory tree.
diff --git a/third_party/blink/tools/blinkpy/common/system/filesystem_unittest.py b/third_party/blink/tools/blinkpy/common/system/filesystem_unittest.py
index faa17c2..9415b94 100644
--- a/third_party/blink/tools/blinkpy/common/system/filesystem_unittest.py
+++ b/third_party/blink/tools/blinkpy/common/system/filesystem_unittest.py
@@ -56,9 +56,10 @@
         fs.chdir(self.orig_cwd)
 
     def teardown_generic_test_dir(self):
-        self.fs.rmtree(self.generic_test_dir)
+        success = self.fs.remove_contents(self.generic_test_dir)
         self.fs.chdir(self.orig_cwd)
         self.generic_test_dir = None
+        self.assertTrue(success)
 
     def test_glob__trailing_asterisk(self):
         self.fs.chdir(self.generic_test_dir)
@@ -112,10 +113,10 @@
 
     def test_rmtree(self):
         self.fs.chdir(self.generic_test_dir)
-        self.fs.rmtree('foo')
+        self.fs.rmtree('doesntexist')
         self.assertTrue(self.fs.exists('foodir'))
         self.assertTrue(self.fs.exists(self.fs.join('foodir', 'baz')))
-        self.fs.rmtree('foodir')
+        self.fs.rmtree('foodir', ignore_errors=False)
         self.assertFalse(self.fs.exists('foodir'))
         self.assertFalse(self.fs.exists(self.fs.join('foodir', 'baz')))
 
@@ -361,3 +362,18 @@
         content = self.fs.read_text_file(file2)
         self.fs.remove(file2)  # No exception should be raised.
         self.assertEqual(content, 'hello')
+        # (long_path is left in the filesystem and its removal is tested during cleanup.)
+
+        # On Windows, rmtree can handle trees containing long paths as long as
+        # the root is not a long path.
+        long_path1 = self.fs.join(self.generic_test_dir, 'a' * 100, 'b' * 100 + " 'b")
+        long_path2 = self.fs.join(long_path1, 'c' * 100)
+        self.fs.maybe_make_directory(long_path2)
+        file1 = self.fs.join(long_path2, 'foo')
+        self.fs.write_text_file(file1, 'hello')
+        if sys.platform == 'win32':
+            with self.assertRaises(AssertionError):
+                self.fs.rmtree(long_path2, ignore_errors=False)
+        else:
+            self.fs.rmtree(long_path2, ignore_errors=False)
+        self.fs.rmtree(long_path1, ignore_errors=False)
diff --git a/third_party/blink/tools/blinkpy/w3c/wpt_metadata_builder.py b/third_party/blink/tools/blinkpy/w3c/wpt_metadata_builder.py
index bac7327..30d2469 100644
--- a/third_party/blink/tools/blinkpy/w3c/wpt_metadata_builder.py
+++ b/third_party/blink/tools/blinkpy/w3c/wpt_metadata_builder.py
@@ -209,6 +209,46 @@
             # baseline is all PASS which should just be deleted.
             _log.error("Test %s has a non-FAIL baseline" % test_name)
 
+    def _metadata_filename_from_test_file(self, wpt_test_file):
+        """Returns the filename of the metadata (.ini) file for the test.
+
+        Args:
+            wpt_test_file: The file on disk that the specified test lives in.
+                For multi-global tests this is usually a ".js" file.
+
+        Returns:
+            The fully-qualified string path of the metadata file for this test.
+        """
+        assert "?" not in wpt_test_file
+        test_file_parts = wpt_test_file.split("/")
+        return os.path.join(self.metadata_output_dir, *test_file_parts) + ".ini"
+
+    def _metadata_inline_test_name_from_test_name(self, wpt_test_name):
+        """Returns the test name to use *inside* of a metadata file.
+
+        The inline name inside the metadata file is the logical name of the
+        test without any subdirectories.
+        For multi-global tests this means that it must have the specific scope
+        of the test (eg: worker, window, etc). This name must also include any
+        variants that are set.
+
+        Args:
+            wpt_test_name: The fully-qualified test name which contains all
+                subdirectories as well as scope (for multi-globals), and
+                variants.
+
+        Returns:
+            The string test name inside of the metadata file.
+        """
+        # To generate the inline test name we basically want to strip away the
+        # subdirectories from the test name, being careful not to accidentally
+        # clobber the variant.
+        variant_split = wpt_test_name.split("?")
+        test_path = variant_split[0]
+        test_name_part = test_path.split("/")[-1]
+        variant = "?" + variant_split[1] if len(variant_split) == 2 else ""
+        return test_name_part + variant
+
     def get_metadata_filename_and_contents(self, chromium_test_name, test_status_bitmap=0):
         """Determines the metadata filename and contents for the specified test.
 
@@ -255,27 +295,16 @@
             metadata_file_contents = self._get_dir_disabled_string()
         else:
             # For individual tests, we create one file per test, with the name
-            # of the test in the file as well. This name can contain variants.
+            # of the test in the file as well.
             test_file_path = self.wpt_manifest.file_path_for_test_url(wpt_test_name)
             if not test_file_path:
                 _log.info("Could not find file for test %s, skipping" % wpt_test_name)
                 return None, None
-            test_file_parts = test_file_path.split("/")
 
-            # Append `.ini` to the test filename to indicate it's the metadata
-            # file. The `test_filename` can differ from the `wpt_test_name` for
-            # multi-global tests.
-            test_file_parts[-1] += ".ini"
-            metadata_filename = os.path.join(self.metadata_output_dir,
-                                             *test_file_parts)
+            metadata_filename = self._metadata_filename_from_test_file(test_file_path)
             _log.debug("Creating a test ini file %s with status_bitmap %s", metadata_filename, test_status_bitmap)
-
-            # The contents of the metadata file is two lines:
-            # 1. the last part of the WPT test path (ie the filename) inside
-            #    square brackets - this could differ from the metadata filename.
-            # 2. an indented line with the test status and reason
-            wpt_test_file_name_part = wpt_test_name_parts[-1]
-            metadata_file_contents = self._get_test_failed_string(wpt_test_file_name_part, test_status_bitmap)
+            inline_test_name = self._metadata_inline_test_name_from_test_name(wpt_test_name)
+            metadata_file_contents = self._get_test_failed_string(inline_test_name, test_status_bitmap)
 
         return metadata_filename, metadata_file_contents
 
@@ -285,8 +314,12 @@
     def _get_test_disabled_string(self, test_name):
         return "[%s]\n  disabled: wpt_metadata_builder.py\n" % test_name
 
-    def _get_test_failed_string(self, test_name, test_status_bitmap):
-        result = "[%s]\n" % test_name
+    def _get_test_failed_string(self, inline_test_name, test_status_bitmap):
+        # The contents of the metadata file is two lines:
+        # 1. the inline name of the WPT test pathinside square brackets. This
+        #    name contains the test scope (for multi-globals) and variants.
+        # 2. an indented line with the test status and reason
+        result = "[%s]\n" % inline_test_name
 
         # A skipped test is a little special in that it doesn't happen along with
         # any other status. So we compare directly against SKIP_TEST and also
diff --git a/third_party/blink/tools/blinkpy/w3c/wpt_metadata_builder_unittest.py b/third_party/blink/tools/blinkpy/w3c/wpt_metadata_builder_unittest.py
index 5491bf5..64832b3 100644
--- a/third_party/blink/tools/blinkpy/w3c/wpt_metadata_builder_unittest.py
+++ b/third_party/blink/tools/blinkpy/w3c/wpt_metadata_builder_unittest.py
@@ -64,13 +64,15 @@
                 'items': {
                     'reftest': {
                         'reftest.html': [
-                            ['reftest.html', [['reftest-ref.html', '==']], {}]
+                            ['reftest.html', [['reftest-ref.html', '==']], {}],
                         ]
                     },
                     'testharness': {
                         'test.html': [['test.html', {}]],
-                        'variant.html': [['variant.html?foo=bar', {}],
-                                         ['variant.html?foo=baz', {}]],
+                        'variant.html': [
+                            ['variant.html?foo=bar/abc', {}],
+                            ['variant.html?foo=baz', {}],
+                        ],
                         'dir/zzzz.html': [['dir/zzzz.html', {}]],
                         'dir/multiglob.https.any.js': [
                             ['dir/multiglob.https.any.window.html', {}],
@@ -231,14 +233,14 @@
 
     def test_metadata_for_skipped_test_with_variants(self):
         """A skipped WPT tests with variants should get a test-specific metadata file."""
-        test_name = "external/wpt/variant.html?foo=bar"
+        test_name = "external/wpt/variant.html?foo=bar/abc"
         expectations = _make_expectation(self.port, test_name, "SKIP")
         metadata_builder = WPTMetadataBuilder(expectations, self.port)
         filename, contents = metadata_builder.get_metadata_filename_and_contents(test_name, SKIP_TEST)
         # The metadata file name should not include variants
         self.assertEqual("variant.html.ini", filename)
         # ..but the contents of the file should include variants in the test name
-        self.assertEqual("[variant.html?foo=bar]\n  disabled: wpt_metadata_builder.py\n", contents)
+        self.assertEqual("[variant.html?foo=bar/abc]\n  disabled: wpt_metadata_builder.py\n", contents)
 
     def test_metadata_for_skipped_directory(self):
         """A skipped WPT directory should get a dir-wide metadata file."""
@@ -324,3 +326,25 @@
         self.assertEqual(1, len(test_and_status_dict))
         self.assertTrue(test_name in test_and_status_dict)
         self.assertEqual(TEST_PASS | TEST_PRECONDITION_FAILED, test_and_status_dict[test_name])
+
+    def test_metadata_filename_from_test_file(self):
+        """Check that we get the correct metadata filename in various cases."""
+        expectations = TestExpectations(self.port)
+        mb = WPTMetadataBuilder(expectations, self.port)
+        self.assertEqual("test.html.ini", mb._metadata_filename_from_test_file("test.html"))
+        test_file = os.path.join("dir", "multiglob.https.any.js")
+        self.assertEqual(test_file + ".ini", mb._metadata_filename_from_test_file(test_file))
+        with self.assertRaises(AssertionError):
+            mb._metadata_filename_from_test_file("test.html?variant=abc")
+
+    def test_inline_test_name_from_test_name(self):
+        """Check that we get the correct inline test name in various cases."""
+        expectations = TestExpectations(self.port)
+        mb = WPTMetadataBuilder(expectations, self.port)
+        self.assertEqual("test.html", mb._metadata_inline_test_name_from_test_name("test.html"))
+        self.assertEqual("test.html", mb._metadata_inline_test_name_from_test_name("dir/test.html"))
+        self.assertEqual("test.html?variant=abc", mb._metadata_inline_test_name_from_test_name("dir/test.html?variant=abc"))
+        self.assertEqual("test.html?variant=abc/def", mb._metadata_inline_test_name_from_test_name("dir/test.html?variant=abc/def"))
+        self.assertEqual("test.worker.html", mb._metadata_inline_test_name_from_test_name("test.worker.html"))
+        self.assertEqual("test.worker.html?variant=abc",
+                         mb._metadata_inline_test_name_from_test_name("dir/test.worker.html?variant=abc"))
diff --git a/third_party/blink/web_tests/FlagExpectations/layout-ng-fragment-item b/third_party/blink/web_tests/FlagExpectations/layout-ng-fragment-item
index 62c33f4..3e1ac10 100644
--- a/third_party/blink/web_tests/FlagExpectations/layout-ng-fragment-item
+++ b/third_party/blink/web_tests/FlagExpectations/layout-ng-fragment-item
@@ -220,15 +220,9 @@
 crbug.com/982194 media/picture-in-picture/v2/request-picture-in-picture-twice.html [ Failure ]
 crbug.com/982194 media/picture-in-picture/v2/request-picture-in-picture.html [ Failure ]
 crbug.com/874695 media/remoteplayback/prompt-twice-throws.html [ Pass ]
-crbug.com/982194 paint/invalidation/background/background-misaligned.html [ Failure ]
-crbug.com/982194 paint/invalidation/block-layout-inline-children-replaced.html [ Failure ]
-crbug.com/982194 paint/invalidation/float-new-in-block.html [ Failure ]
 crbug.com/982194 paint/invalidation/outline/focus-ring-on-child-move.html [ Failure ]
 crbug.com/835484 paint/invalidation/outline/inline-focus.html [ Failure ]
-crbug.com/982194 paint/invalidation/position/block-layout-inline-children-float-positioned.html [ Failure ]
-crbug.com/982194 paint/invalidation/svg/svg-background-partial-redraw.html [ Failure ]
 crbug.com/982194 paint/invalidation/svg/transform-focus-ring-repaint.html [ Failure ]
-crbug.com/982194 paint/invalidation/table/cached-change-cell-sl-border-color.html [ Failure ]
 crbug.com/676229 plugins/mouse-click-plugin-clears-selection.html [ Failure ]
 crbug.com/718155 virtual/android/fullscreen/full-screen-iframe-not-allowed.html [ Failure ]
 crbug.com/982194 virtual/audio-service/http/tests/media/video-frame-size-change.html [ Failure Pass ]
@@ -1013,7 +1007,6 @@
 crbug.com/982194 jquery/offset.html [ Pass ]
 crbug.com/982194 jquery/traversing.html [ Pass ]
 crbug.com/982194 media/video-canvas-draw.html [ Failure Pass ]
-crbug.com/982194 paint/invalidation/position/absolute-position-moved.html [ Failure ]
 crbug.com/982194 paint/invalidation/svg/scroll-hit-test.xhtml [ Failure Pass ]
 crbug.com/982194 virtual/android/url-bar/bottom-and-top-fixed-sticks-to-top.html [ Failure ]
 crbug.com/908347 virtual/audio-service/media/autoplay/webaudio-audio-context-resume.html [ Pass ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 835c3c9..bcc97b2 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -3239,7 +3239,6 @@
 crbug.com/626703 [ Retina ] external/wpt/preload/download-resources.html [ Failure Timeout ]
 crbug.com/626703 [ Mac10.10 ] external/wpt/preload/download-resources.html [ Failure Timeout ]
 crbug.com/626703 external/wpt/css/css-writing-modes/text-combine-upright-digits-001-manual.html [ Skip ]
-crbug.com/626703 external/wpt/web-animations/timing-model/timelines/update-and-send-events-replacement.html [ Timeout ]
 crbug.com/626703 external/wpt/webrtc/RTCRtpTransceiver.https.html [ Crash Timeout ]
 crbug.com/626703 external/wpt/css/css-writing-modes/text-combine-upright-all-001-manual.html [ Skip ]
 crbug.com/626703 external/wpt/css/css-writing-modes/text-combine-upright-digits-002-manual.html [ Skip ]
@@ -7039,3 +7038,10 @@
 crbug.com/1060175 [ Win ] wpt_internal/storage/estimate-usage-details-filesystem.https.tentative.any.worker.html [ Pass Failure ]
 crbug.com/1060175 [ Win ] wpt_internal/virtual-scroller/large-child-comment.html [ Pass Failure ]
 crbug.com/1060175 [ Win ] wpt_internal/webxr/xr_view_projection_detached.https.html [ Pass Failure ]
+
+# Note: This is disabled on other platforms already.
+crbug.com/1060270 [ Mac ] http/tests/devtools/elements/styles-2/force-pseudo-state.js [ Failure ]
+
+# Temporarily disable to land https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2090785
+crbug.com/1011811 third_party/blink/web_tests/http/tests/devtools/changes/changes-sidebar.js [ Pass Failure ]
+crbug.com/1011811 third_party/blink/web_tests/http/tests/devtools/search/search-in-static.js [ Pass Failure ]
diff --git a/third_party/blink/web_tests/css3/masking/mask-composite-missing-image-expected.html b/third_party/blink/web_tests/css3/masking/mask-composite-missing-image-expected.html
index 5a5275d..c6f3960 100644
--- a/third_party/blink/web_tests/css3/masking/mask-composite-missing-image-expected.html
+++ b/third_party/blink/web_tests/css3/masking/mask-composite-missing-image-expected.html
@@ -8,8 +8,7 @@
 </style>
 </head>
 <body>
-  <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=26084">WebKit Bug 26084: Bug 26084: Multiple missing images in webkit-mask-image prevent rendering</a></p>
   <div class="test"></div>
-  <p>If the test passes, you should be able to see a lime square with a black border. Inside the border, you should see the text: This text should be visible. This test is currently failing.</p>
+  <p>If the test passes, you should see nothing above, because we should not render masked content if the mask image fails to load.</p>
 </body>
 </html>
diff --git a/third_party/blink/web_tests/css3/masking/mask-composite-missing-image.html b/third_party/blink/web_tests/css3/masking/mask-composite-missing-image.html
index 4c40c89c..bf3b41a 100644
--- a/third_party/blink/web_tests/css3/masking/mask-composite-missing-image.html
+++ b/third_party/blink/web_tests/css3/masking/mask-composite-missing-image.html
@@ -15,8 +15,7 @@
 </style>
 </head>
 <body>
-  <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=26084">WebKit Bug 26084: Bug 26084: Multiple missing images in webkit-mask-image prevent rendering</a></p>
   <div class="test">This text should be visible.</div>
-  <p>If the test passes, you should be able to see a lime square with a black border. Inside the border, you should see the text: This text should be visible. This test is currently failing.</p>
+  <p>If the test passes, you should see nothing above, because we should not render masked content if the mask image fails to load.</p>
 </body>
 </html>
diff --git a/third_party/blink/web_tests/external/wpt/IndexedDB/idbfactory_deleteDatabase4.htm b/third_party/blink/web_tests/external/wpt/IndexedDB/idbfactory_deleteDatabase4.htm
index 73adb1a4..2f680853 100644
--- a/third_party/blink/web_tests/external/wpt/IndexedDB/idbfactory_deleteDatabase4.htm
+++ b/third_party/blink/web_tests/external/wpt/IndexedDB/idbfactory_deleteDatabase4.htm
@@ -9,11 +9,14 @@
 
 <script>
 
-    var t = async_test("Delete an existing database");
+    var t = async_test("Delete an existing database"),
+        dbname = location + '-' + t.name;
 
     t.step(function() {
+        indexedDB.deleteDatabase(dbname);
+
         var db;
-        var openrq = indexedDB.open('db', 3);
+        var openrq = indexedDB.open(dbname, 3);
 
         openrq.onupgradeneeded = function(e) {
             e.target.result.createObjectStore('store');
@@ -36,7 +39,7 @@
     });
 
     function Second(e) {
-        var deleterq = indexedDB.deleteDatabase('db');
+        var deleterq = indexedDB.deleteDatabase(dbname);
 
         deleterq.onsuccess = function(e) { t.done(); }
 
diff --git a/third_party/blink/web_tests/external/wpt/IndexedDB/idbtransaction.htm b/third_party/blink/web_tests/external/wpt/IndexedDB/idbtransaction.htm
index 5baa3db5..d5bafda 100644
--- a/third_party/blink/web_tests/external/wpt/IndexedDB/idbtransaction.htm
+++ b/third_party/blink/web_tests/external/wpt/IndexedDB/idbtransaction.htm
@@ -7,7 +7,9 @@
 
 <script>
 async_test(function(t) {
-  var open_rq = indexedDB.open("idbtransaction-" + document.location + t.name);
+  var dbname = "idbtransaction-" + document.location + t.name;
+  indexedDB.deleteDatabase(dbname);
+  var open_rq = indexedDB.open(dbname);
 
   open_rq.onblocked = t.unreached_func('open_rq.onblocked');
   open_rq.onerror = t.unreached_func('open_rq.onerror');
@@ -31,7 +33,9 @@
 }, document.title + " - request gotten by the handler");
 
 async_test(function(t) {
-  var open_rq = indexedDB.open("idbtransaction-" + document.location + t.name);
+  var dbname = "idbtransaction-" + document.location + t.name;
+  indexedDB.deleteDatabase(dbname);
+  var open_rq = indexedDB.open(dbname);
 
   assert_equals(open_rq.transaction, null, "IDBOpenDBRequest.transaction");
   assert_equals(open_rq.source, null, "IDBOpenDBRequest.source");
diff --git a/third_party/blink/web_tests/external/wpt/IndexedDB/idbversionchangeevent.htm b/third_party/blink/web_tests/external/wpt/IndexedDB/idbversionchangeevent.htm
index e7ffecab..fc4cd9a2 100644
--- a/third_party/blink/web_tests/external/wpt/IndexedDB/idbversionchangeevent.htm
+++ b/third_party/blink/web_tests/external/wpt/IndexedDB/idbversionchangeevent.htm
@@ -13,10 +13,13 @@
 <script>
 
     var db,
-        t = async_test();
+        t = async_test(),
+        dbname = location + '-' + t.name;
 
     t.step(function() {
-        var openrq = indexedDB.open('db', 3);
+        indexedDB.deleteDatabase(dbname);
+
+        var openrq = indexedDB.open(dbname, 3);
 
         openrq.onupgradeneeded = t.step_func(function(e) {
             assert_equals(e.oldVersion, 0, "old version (upgradeneeded)");
@@ -48,7 +51,7 @@
     });
 
     function deleteDB (e) {
-        var deleterq = indexedDB.deleteDatabase('db');
+        var deleterq = indexedDB.deleteDatabase(dbname);
 
         deleterq.onsuccess = t.step_func(function(e) {
             assert_equals(e.result, undefined, "result (delete.success for nonexistent db)");
diff --git a/third_party/blink/web_tests/external/wpt/IndexedDB/transaction-lifetime-blocked.htm b/third_party/blink/web_tests/external/wpt/IndexedDB/transaction-lifetime-blocked.htm
index 79ba82f9..82c3ae0 100644
--- a/third_party/blink/web_tests/external/wpt/IndexedDB/transaction-lifetime-blocked.htm
+++ b/third_party/blink/web_tests/external/wpt/IndexedDB/transaction-lifetime-blocked.htm
@@ -11,10 +11,13 @@
 
     var db, db_got_versionchange, db2,
         events = [],
-        t = async_test();
+        t = async_test(),
+        dbname = location + '-' + t.name;
 
     t.step(function() {
-        var openrq = indexedDB.open('db', 3);
+        indexedDB.deleteDatabase(dbname);
+
+        var openrq = indexedDB.open(dbname, 3);
 
         // 1
         openrq.onupgradeneeded = t.step_func(function(e) {
@@ -55,7 +58,7 @@
         assert_equals(db + "", "[object IDBDatabase]");
         assert_array_equals(db.objectStoreNames, [ "store" ]);
 
-        var openrq2 = indexedDB.open('db', 4);
+        var openrq2 = indexedDB.open(dbname, 4);
 
         // 4
         openrq2.onblocked = t.step_func(function(e) {
@@ -102,7 +105,7 @@
     // Cleanup
     add_completion_callback(function(tests) {
         if (db2) db2.close();
-        indexedDB.deleteDatabase('db');
+        indexedDB.deleteDatabase(dbname);
     })
 
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/IndexedDB/transaction-lifetime.htm b/third_party/blink/web_tests/external/wpt/IndexedDB/transaction-lifetime.htm
index 2883644..2c8fd2f5 100644
--- a/third_party/blink/web_tests/external/wpt/IndexedDB/transaction-lifetime.htm
+++ b/third_party/blink/web_tests/external/wpt/IndexedDB/transaction-lifetime.htm
@@ -11,10 +11,13 @@
 
     var db, db_got_versionchange, db2,
         events = [],
-        t = async_test();
+        t = async_test(),
+        dbname = location + '-' + t.name;
 
     t.step(function() {
-        var openrq = indexedDB.open('db', 3);
+        indexedDB.deleteDatabase(dbname);
+
+        var openrq = indexedDB.open(dbname, 3);
 
         // 1
         openrq.onupgradeneeded = t.step_func(function(e) {
@@ -55,7 +58,7 @@
         assert_equals(db + "", "[object IDBDatabase]");
         assert_array_equals(db.objectStoreNames, [ "store" ]);
 
-        var openrq2 = indexedDB.open('db', 4);
+        var openrq2 = indexedDB.open(dbname, 4);
 
         // 4
         openrq2.onupgradeneeded = t.step_func(function(e) {
@@ -95,7 +98,7 @@
     // Cleanup
     add_completion_callback(function(tests) {
         if (db2) db2.close();
-        indexedDB.deleteDatabase('db');
+        indexedDB.deleteDatabase(dbname);
     })
 
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/granted-devices-with-services.https.window.js b/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/granted-devices-with-services.https.window.js
new file mode 100644
index 0000000..34b5912
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/granted-devices-with-services.https.window.js
@@ -0,0 +1,71 @@
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/bluetooth/resources/bluetooth-helpers.js
+'use strict';
+const test_desc = 'getDevices() resolves with permitted devices that can be ' +
+    'GATT connected to.';
+
+bluetooth_test(async () => {
+  // Set up two connectable Bluetooth devices with their services discovered.
+  // One device is a Health Thermometer device with the 'health_thermometer'
+  // service while the other is a Heart Rate device with the 'heart_rate'
+  // service. Both devices contain the 'generic_access' service.
+  let fake_peripherals = await setUpHealthThermometerAndHeartRateDevices();
+  for (let fake_peripheral of fake_peripherals) {
+    await fake_peripheral.setNextGATTConnectionResponse({code: HCI_SUCCESS});
+    await fake_peripheral.addFakeService({uuid: 'generic_access'});
+    if (fake_peripheral.address === '09:09:09:09:09:09')
+      await fake_peripheral.addFakeService({uuid: 'health_thermometer'});
+    else
+      await fake_peripheral.addFakeService({uuid: 'heart_rate'});
+    await fake_peripheral.setNextGATTDiscoveryResponse({code: HCI_SUCCESS});
+  }
+
+  // Request the Health Thermometer device with access to its 'generic_access'
+  // service.
+  await requestDeviceWithTrustedClick(
+      {filters: [{name: 'Health Thermometer', services: ['generic_access']}]});
+  let devices = await navigator.bluetooth.getDevices();
+  assert_equals(
+      devices.length, 1,
+      `getDevices() should return the 'Health Thermometer' device.`);
+
+  // Only the 'generic_access' service can be accessed.
+  try {
+    await devices[0].gatt.connect();
+    await devices[0].gatt.getPrimaryService('generic_access');
+    assert_promise_rejects_with_message(
+        devices[0].gatt.getPrimaryService('health_thermometer'),
+        {name: 'SecurityError'});
+  } catch (err) {
+    assert_unreached(`${err.name}: ${err.message}`);
+  }
+
+  // Request the Heart Rate device with access to both of its services.
+  await requestDeviceWithTrustedClick({
+    filters: [{name: 'Heart Rate', services: ['generic_access', 'heart_rate']}]
+  });
+  devices = await navigator.bluetooth.getDevices();
+  assert_equals(
+      devices.length, 2,
+      `getDevices() should return the 'Health Thermometer' and 'Health ` +
+          `Monitor' devices`);
+
+  // All of Heart Rate device's services can be accessed, while only the
+  // 'generic_access' service can be accessed on Health Thermometer.
+  try {
+    for (let device of devices) {
+      await device.gatt.connect();
+      await device.gatt.getPrimaryService('generic_access');
+      if (device.name === 'Heart Rate') {
+        await device.gatt.getPrimaryService('heart_rate');
+      } else {
+        assert_promise_rejects_with_message(
+            devices[0].gatt.getPrimaryService('health_thermometer'),
+            {name: 'SecurityError'});
+      }
+    }
+  } catch (err) {
+    assert_unreached(`${err.name}: ${err.message}`);
+  }
+}, test_desc);
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/no-granted-devices.https.window.js b/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/no-granted-devices.https.window.js
new file mode 100644
index 0000000..d945c3f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/no-granted-devices.https.window.js
@@ -0,0 +1,14 @@
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/bluetooth/resources/bluetooth-helpers.js
+'use strict';
+const test_desc = 'getDevices() resolves with empty array if no device ' +
+    'permissions have been granted.';
+
+bluetooth_test(async () => {
+  await navigator.bluetooth.test.simulateCentral({state: 'powered-on'});
+  let devices = await navigator.bluetooth.getDevices();
+
+  assert_equals(
+      0, devices.length, 'getDevices() should resolve with an empty array');
+}, test_desc);
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/returns-same-bluetooth-device-object.https.window.js b/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/returns-same-bluetooth-device-object.https.window.js
new file mode 100644
index 0000000..7c80703
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/bluetooth/getDevices/returns-same-bluetooth-device-object.https.window.js
@@ -0,0 +1,22 @@
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/bluetooth/resources/bluetooth-helpers.js
+'use strict';
+const test_desc = 'multiple calls to getDevices() resolves with the same' +
+    'BluetoothDevice objects for each granted Bluetooth device.';
+
+bluetooth_test(async () => {
+  await getConnectedHealthThermometerDevice();
+  let firstDevices = await navigator.bluetooth.getDevices();
+  assert_equals(
+      firstDevices.length, 1, 'getDevices() should return the granted device.');
+
+  let secondDevices = await navigator.bluetooth.getDevices();
+  assert_equals(
+      secondDevices.length, 1,
+      'getDevices() should return the granted device.');
+  assert_equals(
+      firstDevices[0], secondDevices[0],
+      'getDevices() should produce the same BluetoothDevice objects for a ' +
+          'given Bluetooth device.');
+}, test_desc);
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/idl/idl-Bluetooth.https.html b/third_party/blink/web_tests/external/wpt/bluetooth/idl/idl-Bluetooth.https.html
index 7322df53..60ec9aac 100644
--- a/third_party/blink/web_tests/external/wpt/bluetooth/idl/idl-Bluetooth.https.html
+++ b/third_party/blink/web_tests/external/wpt/bluetooth/idl/idl-Bluetooth.https.html
@@ -16,6 +16,7 @@
 
   // Bluetooth implements BluetoothDiscovery;
   assert_true('requestDevice' in navigator.bluetooth);
+  assert_true('getDevices' in navigator.bluetooth);
   assert_equals(navigator.bluetooth.requestDevice.length, 0);
 }, test_desc);
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/bluetooth/idl/idlharness.tentative.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/bluetooth/idl/idlharness.tentative.https.window-expected.txt
index 3472f97..779ed8f 100644
--- a/third_party/blink/web_tests/external/wpt/bluetooth/idl/idlharness.tentative.https.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/bluetooth/idl/idlharness.tentative.https.window-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 206 tests; 147 PASS, 59 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 206 tests; 149 PASS, 57 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Navigator: original interface defined
@@ -30,7 +30,7 @@
 PASS Bluetooth interface: operation getAvailability()
 FAIL Bluetooth interface: attribute onavailabilitychanged assert_true: The prototype object must have a property "onavailabilitychanged" expected true got false
 FAIL Bluetooth interface: attribute referringDevice assert_true: The prototype object must have a property "referringDevice" expected true got false
-FAIL Bluetooth interface: operation getDevices() assert_own_property: interface prototype object missing non-static operation expected property "getDevices" missing
+PASS Bluetooth interface: operation getDevices()
 PASS Bluetooth interface: operation requestDevice(optional RequestDeviceOptions)
 PASS Bluetooth interface: attribute onadvertisementreceived
 FAIL Bluetooth interface: attribute ongattserverdisconnected assert_true: The prototype object must have a property "ongattserverdisconnected" expected true got false
@@ -43,7 +43,7 @@
 PASS Bluetooth interface: navigator.bluetooth must inherit property "getAvailability()" with the proper type
 FAIL Bluetooth interface: navigator.bluetooth must inherit property "onavailabilitychanged" with the proper type assert_inherits: property "onavailabilitychanged" not found in prototype chain
 FAIL Bluetooth interface: navigator.bluetooth must inherit property "referringDevice" with the proper type assert_inherits: property "referringDevice" not found in prototype chain
-FAIL Bluetooth interface: navigator.bluetooth must inherit property "getDevices()" with the proper type assert_inherits: property "getDevices" not found in prototype chain
+PASS Bluetooth interface: navigator.bluetooth must inherit property "getDevices()" with the proper type
 PASS Bluetooth interface: navigator.bluetooth must inherit property "requestDevice(optional RequestDeviceOptions)" with the proper type
 PASS Bluetooth interface: calling requestDevice(optional RequestDeviceOptions) on navigator.bluetooth with too few arguments must throw TypeError
 PASS Bluetooth interface: navigator.bluetooth must inherit property "onadvertisementreceived" with the proper type
diff --git a/third_party/blink/web_tests/external/wpt/paint-timing/border-image.html b/third_party/blink/web_tests/external/wpt/paint-timing/border-image.html
new file mode 100644
index 0000000..63687481
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/paint-timing/border-image.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/utils.js"></script>
+<style>
+  #bordered {
+    width: 100px;
+    height: 100px;
+    border: 30px solid transparent;
+    border-image-source: url(resources/circle.svg);
+    border-image-width: 0px;
+  }
+</style>
+<div id='bordered'></div>
+<script>
+promise_test(async t => {
+  const onload = new Promise(r => window.addEventListener('load', r));
+  await onload;
+  return assertNoFirstContentfulPaint(t).then(() => {
+    document.getElementById('bordered').style.borderImageWidth = '30px';
+  }).then(() => {
+    return assertFirstContentfulPaint(t);
+  });
+}, 'Border image triggers First Contentful Paint.');
+</script>
+</body>
diff --git a/third_party/blink/web_tests/external/wpt/paint-timing/input-text.html b/third_party/blink/web_tests/external/wpt/paint-timing/input-text.html
index 38527a4c..e55c8d2 100644
--- a/third_party/blink/web_tests/external/wpt/paint-timing/input-text.html
+++ b/third_party/blink/web_tests/external/wpt/paint-timing/input-text.html
@@ -7,13 +7,13 @@
   <input type="text" id='myInput'>
 </form>
 <script>
-promise_test(async () => {
+promise_test(async t => {
   const onload = new Promise(r => window.addEventListener('load', r));
   await onload;
-  return assertNoFirstContentfulPaint().then(() => {
+  return assertNoFirstContentfulPaint(t).then(() => {
     document.getElementById('myInput').value = 'default text';
-    return assertFirstContentfulPaint();
-  })
-});
+    return assertFirstContentfulPaint(t);
+  });
+}, 'Text from a form control triggers First Contentful Paint.');
 </script>
 </body>
diff --git a/third_party/blink/web_tests/external/wpt/paint-timing/mask-image.html b/third_party/blink/web_tests/external/wpt/paint-timing/mask-image.html
new file mode 100644
index 0000000..35a6213f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/paint-timing/mask-image.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/utils.js"></script>
+<style>
+  #masked {
+    width: 0px;
+    height: 100px;
+    -webkit-mask-image: url(resources/circle.svg);
+    mask-image: url(resources/circle.svg);
+  }
+</style>
+<div id='masked'></div>
+<script>
+promise_test(async t => {
+  const onload = new Promise(r => window.addEventListener('load', r));
+  await onload;
+  return assertNoFirstContentfulPaint(t).then(() => {
+    document.getElementById('masked').style.width = '100px';
+  }).then(() => {
+    return assertFirstContentfulPaint(t);
+  });
+}, 'Mask image triggers First Contentful Paint.');
+</script>
+</body>
diff --git a/third_party/blink/web_tests/external/wpt/paint-timing/replaced-content-image.html b/third_party/blink/web_tests/external/wpt/paint-timing/replaced-content-image.html
new file mode 100644
index 0000000..244833ff
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/paint-timing/replaced-content-image.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/utils.js"></script>
+<style>
+  img {
+    content: url(resources/circle.svg);
+  }
+</style>
+<img></img>
+<script>
+promise_test(async t => {
+  const onload = new Promise(r => window.addEventListener('load', r));
+  await onload;
+  return assertFirstContentfulPaint(t);
+}, 'Replaced content image triggers First Contentful Paint.');
+</script>
+</body>
diff --git a/third_party/blink/web_tests/external/wpt/paint-timing/resources/utils.js b/third_party/blink/web_tests/external/wpt/paint-timing/resources/utils.js
index 6ccb5f6..9375b17 100644
--- a/third_party/blink/web_tests/external/wpt/paint-timing/resources/utils.js
+++ b/third_party/blink/web_tests/external/wpt/paint-timing/resources/utils.js
@@ -1,8 +1,15 @@
-// We use requestAnimationFrame() calls to force the user agent to paint. Hence, set
-// |numFramesWaiting| to 3 and use that constant whenever the test needs to wait for
-// the next paint to occur.
+// Number milliseconds to wait for CSS resources to load.
+const numMillisecondsWait = 50;
+
+// We use requestAnimationFrame() calls to force the user agent to paint and give enough
+// time for FCP to show up in the performance timeline. Hence, set |numFramesWaiting| to
+// 3 and use that constant whenever the test needs to wait for the next paint to occur.
 const numFramesWaiting = 3;
 
+function waitTime(t) {
+  return new Promise(resolve => t.step_timeout(resolve, numMillisecondsWait));
+}
+
 function waitForAnimationFrames(count) {
   return new Promise(resolve => {
     if (count-- <= 0) {
@@ -15,8 +22,11 @@
   });
 }
 
-function assertNoFirstContentfulPaint() {
-  return waitForAnimationFrames(numFramesWaiting).then(() => {
+// Asserts that there is currently no FCP reported, even after some wait.
+function assertNoFirstContentfulPaint(t) {
+  return waitTime(t).then(() => {
+    return waitForAnimationFrames(numFramesWaiting);
+  }).then(() => {
     return new Promise((resolve, reject) => {
       const observer = new PerformanceObserver(entryList =>{
         const entries = entryList.getEntriesByName('first-contentful-paint');
@@ -33,8 +43,12 @@
   });
 }
 
-function assertFirstContentfulPaint() {
-  return waitForAnimationFrames(numFramesWaiting).then(() => {
+// Asserts that FCP is reported, possibly after some wait. The wait is needed
+// because sometimes the FCP relies on some CSS resources to finish loading.
+function assertFirstContentfulPaint(t) {
+  return waitTime(t).then(() => {
+    return waitForAnimationFrames(numFramesWaiting);
+  }).then(() => {
     return new Promise((resolve, reject) => {
       const observer = new PerformanceObserver(entryList =>{
         const entries = entryList.getEntriesByName('first-contentful-paint');
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html
index f88ad43..5d6952b 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html
+++ b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html
@@ -13,16 +13,6 @@
 
 const gKeyFrames = { 'marginLeft': ['100px', '200px'] };
 
-async function insert_frame_and_await_load(test, iframe, document) {
-  const eventWatcher = new EventWatcher(test, iframe, ['load']);
-  const event_promise = eventWatcher.wait_for('load');
-
-  document.body.appendChild(iframe);
-  test.add_cleanup(() => { document.body.removeChild(iframe); });
-
-  await event_promise;
-}
-
 test(t => {
   assert_equals(document.getAnimations().length, 0,
                 'getAnimations returns an empty sequence for a document ' +
@@ -78,7 +68,7 @@
 
 promise_test(async t => {
   const iframe = document.createElement('iframe');
-  insert_frame_and_await_load(t, iframe, document)
+  insertFrameAndAwaitLoad(t, iframe, document)
 
   const div = createDiv(t, iframe.contentDocument)
   const effect = new KeyframeEffect(div, null, 100 * MS_PER_SEC);
@@ -98,8 +88,8 @@
   const iframe1 = document.createElement('iframe');
   const iframe2 = document.createElement('iframe');
 
-  insert_frame_and_await_load(t, iframe1, document);
-  insert_frame_and_await_load(t, iframe2, document);
+  insertFrameAndAwaitLoad(t, iframe1, document);
+  insertFrameAndAwaitLoad(t, iframe2, document);
 
   const div_frame1 = createDiv(t, iframe1.contentDocument)
   const div_main_frame = createDiv(t)
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/testcommon.js b/third_party/blink/web_tests/external/wpt/web-animations/testcommon.js
index f89cbbaf..811fe784 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/testcommon.js
+++ b/third_party/blink/web_tests/external/wpt/web-animations/testcommon.js
@@ -180,6 +180,16 @@
   });
 }
 
+async function insertFrameAndAwaitLoad(test, iframe, document) {
+  const eventWatcher = new EventWatcher(test, iframe, ['load']);
+  const event_promise = eventWatcher.wait_for('load');
+
+  document.body.appendChild(iframe);
+  test.add_cleanup(() => { document.body.removeChild(iframe); });
+
+  await event_promise;
+}
+
 // Returns 'matrix()' or 'matrix3d()' function string generated from an array.
 function createMatrixFromArray(array) {
   return (array.length == 16 ? 'matrix3d' : 'matrix') + `(${array.join()})`;
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt
new file mode 100644
index 0000000..3650954
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt
@@ -0,0 +1,45 @@
+This is a testharness.js-based test.
+PASS Removes an animation when another covers the same properties
+PASS Removes an animation after another animation finishes
+PASS Removes an animation after multiple other animations finish
+PASS Removes an animation after it finishes
+PASS Removes an animation after seeking another animation
+PASS Removes an animation after seeking it
+PASS Removes an animation after updating the fill mode of another animation
+PASS Removes an animation after updating its fill mode
+PASS Removes an animation after updating another animation's effect to one with different timing
+PASS Removes an animation after updating its effect to one with different timing
+FAIL Removes an animation after updating another animation's timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
+FAIL Removes an animation after updating its timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
+PASS Removes an animation after updating another animation's effect's properties
+PASS Removes an animation after updating its effect's properties
+PASS Removes an animation after updating another animation's effect to one with different properties
+PASS Removes an animation after updating its effect to one with different properties
+PASS Removes an animation when another animation uses a shorthand
+PASS Removes an animation that uses a shorthand
+FAIL Removes an animation by another animation using logical properties assert_equals: expected "removed" but got "active"
+FAIL Removes an animation using logical properties assert_equals: expected "removed" but got "active"
+FAIL Removes an animation by another animation using logical properties after updating the context assert_equals: expected "removed" but got "active"
+PASS Removes an animation after updating another animation's effect's target
+PASS Removes an animation after updating its effect's target
+PASS Removes an animation after updating another animation's effect to one with a different target
+PASS Removes an animation after updating its effect to one with a different target
+PASS Does NOT remove a CSS animation tied to markup
+FAIL Removes a CSS animation no longer tied to markup assert_equals: expected "removed" but got "active"
+PASS Does NOT remove a CSS transition tied to markup
+FAIL Removes a CSS transition no longer tied to markup assert_equals: expected "removed" but got "active"
+PASS Dispatches an event when removing
+PASS Does NOT dispatch a remove event twice
+PASS Does NOT remove an animation after making a redundant change to another animation's current time
+PASS Does NOT remove an animation after making a redundant change to its current time
+FAIL Does NOT remove an animation after making a redundant change to another animation's timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
+FAIL Does NOT remove an animation after making a redundant change to its timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
+PASS Does NOT remove an animation after making a redundant change to another animation's effect's properties
+PASS Does NOT remove an animation after making a redundant change to its effect's properties
+FAIL Updates ALL timelines before checking for replacement promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
+FAIL Dispatches remove events after finish events assert_array_equals: lengths differ, expected array ["animA:finish", "animB:finish", "animA:remove"] length 3, got ["animA:finish", "animB:finish", "animA:remove", "animA:finish"] length 4
+FAIL Fires remove event before requestAnimationFrame assert_true: Not expecting event, but got remove event expected true got false
+PASS Queues all remove events before running them
+PASS Performs removal in deeply nested iframes
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/update-and-send-events-replacement.html b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/update-and-send-events-replacement.html
index 1391b97..fced6ead 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/update-and-send-events-replacement.html
+++ b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/update-and-send-events-replacement.html
@@ -988,18 +988,16 @@
 }, 'Queues all remove events before running them');
 
 promise_test(async t => {
-  const outerIframe = createElement(t, 'iframe');
+  const outerIframe = document.createElement('iframe');
+  insertFrameAndAwaitLoad(t, outerIframe, document);
   outerIframe.width = 10;
   outerIframe.height = 10;
 
-  await new Promise(resolve => outerIframe.addEventListener('load', resolve));
-
-  const innerIframe = createElement(t, 'iframe', outerIframe.contentDocument);
+  const innerIframe = document.createElement('iframe');
+  insertFrameAndAwaitLoad(t, innerIframe, outerIframe.contentDocument);
   innerIframe.width = 10;
   innerIframe.height = 10;
 
-  await new Promise(resolve => innerIframe.addEventListener('load', resolve));
-
   const div = createDiv(t, innerIframe.contentDocument);
 
   const animA = div.animate({ opacity: 1 }, { duration: 1, fill: 'forwards' });
diff --git a/third_party/blink/web_tests/fast/canvas/canvas-clearRect-first-expected.html b/third_party/blink/web_tests/fast/canvas/canvas-clearRect-first-expected.html
index 516aa427..ea80c56 100644
--- a/third_party/blink/web_tests/fast/canvas/canvas-clearRect-first-expected.html
+++ b/third_party/blink/web_tests/fast/canvas/canvas-clearRect-first-expected.html
@@ -1,11 +1,16 @@
+<!doctype html>
 <html>
+<head>
+</head>
 <body>
-<canvas id="c" width=800 height=1000></canvas>
+    <canvas id="can" width="100" height="100"></canvas>
 <script>
-var canvas = document.getElementById('c');
-var ctx = canvas.getContext("2d");
-ctx.fillRect(50, 50, 50, 50);
-ctx.fillRect(5, 5, 50, 50);
+
+var outputCanvas = document.getElementById("can");
+var outputContext = outputCanvas.getContext("2d");
+outputContext.fillRect(0, 0, 15, 15);
+outputContext.fillRect(50, 90, 50, 10);
+
 </script>
 </body>
-</html>
+</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/canvas/canvas-clearRect-first.html b/third_party/blink/web_tests/fast/canvas/canvas-clearRect-first.html
index 278834de..cb5c19b 100644
--- a/third_party/blink/web_tests/fast/canvas/canvas-clearRect-first.html
+++ b/third_party/blink/web_tests/fast/canvas/canvas-clearRect-first.html
@@ -1,19 +1,24 @@
 <html>
 <body>
-<canvas id="c" width=800 height=1000></canvas>
+<canvas id="c" width=100 height=100></canvas>
 <script>
 
 // Test Canvas content shows up correctly after a full repaint.
-var canvas = document.getElementById('c');
-let ctx = canvas.getContext("2d");
+var c2 = document.getElementById("c");
+var ctx = c2.getContext('2d');
 
-function step() {
-  ctx.fillRect(50, 50, 50, 50);
-}
-
-ctx.clearRect(0, 0, 800, 1000);
+// Since it checks if content retaining |mode_| changes from frame to frame,
+// multiple calls to rAF are used to assure the craetion of new frame.
 ctx.fillRect(5, 5, 50, 50);
-window.requestAnimationFrame(step);
+ctx.clearRect(0, 0, 800, 1000);
+window.requestAnimationFrame( dt=> {
+  ctx.fillRect(50, 50, 50, 50);
+  ctx.clearRect(50, 50, 50, 40);
+  window.requestAnimationFrame(dt => {
+    ctx.fillRect(0, 0, 15, 15);
+  });
+});
+
 </script>
 </body>
 </html>
diff --git a/third_party/blink/web_tests/fast/canvas/canvas-partial-clearRect.html b/third_party/blink/web_tests/fast/canvas/canvas-partial-clearRect.html
index fbba7453..b9d2fce 100644
--- a/third_party/blink/web_tests/fast/canvas/canvas-partial-clearRect.html
+++ b/third_party/blink/web_tests/fast/canvas/canvas-partial-clearRect.html
@@ -7,6 +7,8 @@
 var canvas = document.getElementById('c');
 let ctx = canvas.getContext("2d");
 
+// Since it checks if content retaining |mode_| changes from frame to frame,
+// multiple calls to rAF are used to assure the craetion of new frame.
 ctx.fillRect(0, 0, 50, 50);
 window.requestAnimationFrame(dt => {
   ctx.clearRect(0, 0, 40, 50);
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated-expected.txt
index 511c541..a189324 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated-expected.txt
@@ -92,6 +92,10 @@
 PASS window.cached_performance_timing.unloadEventEnd is 0
 PASS window.cached_performance_timing.unloadEventStart is 0
 PASS window.cached_personalbar.visible is false
+PASS window.cached_scheduler_currentTaskSignal.aborted is false
+PASS window.cached_scheduler_currentTaskSignal.onabort is null
+PASS window.cached_scheduler_currentTaskSignal.onprioritychange is null
+PASS window.cached_scheduler_currentTaskSignal.priority is 'user-visible'
 PASS window.cached_screen.availHeight is 0
 PASS window.cached_screen.availLeft is 0
 PASS window.cached_screen.availTop is 0
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced-expected.txt
index 8812e3a..c655c9d 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced-expected.txt
@@ -92,6 +92,10 @@
 PASS window.cached_performance_timing.unloadEventEnd is 0
 PASS window.cached_performance_timing.unloadEventStart is 0
 PASS window.cached_personalbar.visible is false
+PASS window.cached_scheduler_currentTaskSignal.aborted is false
+PASS window.cached_scheduler_currentTaskSignal.onabort is null
+PASS window.cached_scheduler_currentTaskSignal.onprioritychange is null
+PASS window.cached_scheduler_currentTaskSignal.priority is 'user-visible'
 PASS window.cached_screen.availHeight is 0
 PASS window.cached_screen.availLeft is 0
 PASS window.cached_screen.availTop is 0
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-expected.txt
index 5d0b1b54..9d6f73d3 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-expected.txt
@@ -92,6 +92,10 @@
 PASS window.cached_performance_timing.unloadEventEnd is 0
 PASS window.cached_performance_timing.unloadEventStart is 0
 PASS window.cached_personalbar.visible is false
+PASS window.cached_scheduler_currentTaskSignal.aborted is false
+PASS window.cached_scheduler_currentTaskSignal.onabort is null
+PASS window.cached_scheduler_currentTaskSignal.onprioritychange is null
+PASS window.cached_scheduler_currentTaskSignal.priority is 'user-visible'
 PASS window.cached_screen.availHeight is 0
 PASS window.cached_screen.availLeft is 0
 PASS window.cached_screen.availTop is 0
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
index af52739..fd4a8a843 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
@@ -222,6 +222,10 @@
 PASS oldChildWindow.performance.timing.unloadEventStart is newChildWindow.performance.timing.unloadEventStart
 PASS oldChildWindow.personalbar.visible is newChildWindow.personalbar.visible
 PASS oldChildWindow.portalHost is newChildWindow.portalHost
+PASS oldChildWindow.scheduler.currentTaskSignal.aborted is newChildWindow.scheduler.currentTaskSignal.aborted
+PASS oldChildWindow.scheduler.currentTaskSignal.onabort is newChildWindow.scheduler.currentTaskSignal.onabort
+PASS oldChildWindow.scheduler.currentTaskSignal.onprioritychange is newChildWindow.scheduler.currentTaskSignal.onprioritychange
+PASS oldChildWindow.scheduler.currentTaskSignal.priority is newChildWindow.scheduler.currentTaskSignal.priority
 PASS oldChildWindow.screen.availHeight is newChildWindow.screen.availHeight
 PASS oldChildWindow.screen.availLeft is newChildWindow.screen.availLeft
 PASS oldChildWindow.screen.availTop is newChildWindow.screen.availTop
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
index bbe1847..bed1c75 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
@@ -157,6 +157,10 @@
 PASS childWindow.performance.onresourcetimingbufferfull is null
 PASS childWindow.personalbar.visible is false
 PASS childWindow.portalHost is null
+PASS childWindow.scheduler.currentTaskSignal.aborted is false
+PASS childWindow.scheduler.currentTaskSignal.onabort is null
+PASS childWindow.scheduler.currentTaskSignal.onprioritychange is null
+PASS childWindow.scheduler.currentTaskSignal.priority is 'user-visible'
 PASS childWindow.screen.availHeight is 0
 PASS childWindow.screen.availLeft is 0
 PASS childWindow.screen.availTop is 0
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
index 7a31772..315002c 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
@@ -157,6 +157,10 @@
 PASS childWindow.performance.onresourcetimingbufferfull is null
 PASS childWindow.personalbar.visible is false
 PASS childWindow.portalHost is null
+PASS childWindow.scheduler.currentTaskSignal.aborted is false
+PASS childWindow.scheduler.currentTaskSignal.onabort is null
+PASS childWindow.scheduler.currentTaskSignal.onprioritychange is null
+PASS childWindow.scheduler.currentTaskSignal.priority is 'user-visible'
 PASS childWindow.screen.availHeight is 0
 PASS childWindow.screen.availLeft is 0
 PASS childWindow.screen.availTop is 0
diff --git a/third_party/blink/web_tests/fast/dom/Window/resources/window-property-collector.js b/third_party/blink/web_tests/fast/dom/Window/resources/window-property-collector.js
index 0a860726..7f6e1d8 100644
--- a/third_party/blink/web_tests/fast/dom/Window/resources/window-property-collector.js
+++ b/third_party/blink/web_tests/fast/dom/Window/resources/window-property-collector.js
@@ -117,8 +117,8 @@
     case "history.scrollRestoration":
         expected = "'auto'";
         break;
-    case "scheduler.currentTaskQueue.priority":
-        expected = "'default'";
+    case "scheduler.currentTaskSignal.priority":
+        expected = "'user-visible'";
         break;
     }
 
diff --git a/third_party/blink/web_tests/flag-specific/composite-after-paint/paint/invalidation/filters/effect-reference-repaint-lighting-expected.txt b/third_party/blink/web_tests/flag-specific/composite-after-paint/paint/invalidation/filters/effect-reference-repaint-lighting-expected.txt
index 08c46e9..99effb5c 100644
--- a/third_party/blink/web_tests/flag-specific/composite-after-paint/paint/invalidation/filters/effect-reference-repaint-lighting-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/composite-after-paint/paint/invalidation/filters/effect-reference-repaint-lighting-expected.txt
@@ -9,7 +9,7 @@
         {
           "object": "LayoutNGBlockFlow DIV class='box'",
           "rect": [78, 70, 100, 100],
-          "reason": "chunk appeared"
+          "reason": "appeared"
         }
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/filters/effect-reference-repaint-lighting-expected.txt b/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/filters/effect-reference-repaint-lighting-expected.txt
index cdd05a4..cbbe001 100644
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/filters/effect-reference-repaint-lighting-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/filters/effect-reference-repaint-lighting-expected.txt
@@ -9,7 +9,7 @@
         {
           "object": "LayoutBlockFlow DIV class='box'",
           "rect": [78, 70, 100, 100],
-          "reason": "chunk appeared"
+          "reason": "appeared"
         }
       ]
     }
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries-expected.txt b/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries-expected.txt
index 0a85666..ac191927 100644
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries-expected.txt
@@ -7,9 +7,9 @@
       "backgroundColor": "#FFFFFF",
       "paintInvalidations": [
         {
-          "object": "LayoutBlockFlow HTML",
+          "object": "InlineTextBox 'abc'",
           "rect": [18, 18, 22, 19],
-          "reason": "chunk disappeared"
+          "reason": "disappeared"
         },
         {
           "object": "InlineTextBox 'abc'",
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt b/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
index dd5b010..bbaa459 100644
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
@@ -14,7 +14,7 @@
         {
           "object": "LayoutBlockFlow HTML",
           "rect": [3, 65, 55, 17],
-          "reason": "chunk appeared"
+          "reason": "paint property change"
         },
         {
           "object": "VerticalScrollbar",
diff --git a/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/background/background-misaligned-expected.txt b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/background/background-misaligned-expected.txt
new file mode 100644
index 0000000..1c00065
--- /dev/null
+++ b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/background/background-misaligned-expected.txt
@@ -0,0 +1,18 @@
+{
+  "layers": [
+    {
+      "name": "Scrolling Contents Layer",
+      "bounds": [800, 600],
+      "contentsOpaque": true,
+      "backgroundColor": "#FFFFFF",
+      "paintInvalidations": [
+        {
+          "object": "LayoutNGBlockFlow (positioned) DIV id='target'",
+          "rect": [238, 241, 40, 40],
+          "reason": "disappeared"
+        }
+      ]
+    }
+  ]
+}
+
diff --git a/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/block-layout-inline-children-replaced-expected.txt b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/block-layout-inline-children-replaced-expected.txt
new file mode 100644
index 0000000..6110c31
--- /dev/null
+++ b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/block-layout-inline-children-replaced-expected.txt
@@ -0,0 +1,18 @@
+{
+  "layers": [
+    {
+      "name": "Scrolling Contents Layer",
+      "bounds": [800, 600],
+      "contentsOpaque": true,
+      "backgroundColor": "#FFFFFF",
+      "paintInvalidations": [
+        {
+          "object": "LayoutImage IMG",
+          "rect": [151, 117, 100, 100],
+          "reason": "appeared"
+        }
+      ]
+    }
+  ]
+}
+
diff --git a/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/float-new-in-block-expected.txt b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/float-new-in-block-expected.txt
new file mode 100644
index 0000000..2796879
--- /dev/null
+++ b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/float-new-in-block-expected.txt
@@ -0,0 +1,18 @@
+{
+  "layers": [
+    {
+      "name": "Scrolling Contents Layer",
+      "bounds": [800, 600],
+      "contentsOpaque": true,
+      "backgroundColor": "#FFFFFF",
+      "paintInvalidations": [
+        {
+          "object": "LayoutNGBlockFlow (floating) DIV id='target'",
+          "rect": [8, 8, 100, 100],
+          "reason": "appeared"
+        }
+      ]
+    }
+  ]
+}
+
diff --git a/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/position/absolute-position-moved-expected.txt b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/position/absolute-position-moved-expected.txt
new file mode 100644
index 0000000..f58c9a0
--- /dev/null
+++ b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/position/absolute-position-moved-expected.txt
@@ -0,0 +1,49 @@
+{
+  "layers": [
+    {
+      "name": "Scrolling Contents Layer",
+      "bounds": [785, 2016],
+      "contentsOpaque": true,
+      "backgroundColor": "#FFFFFF",
+      "paintInvalidations": [
+        {
+          "object": "LayoutNGBlockFlow (positioned) DIV id='absoluteDiv' class='absolute green'",
+          "rect": [100, 100, 100, 100],
+          "reason": "appeared"
+        }
+      ]
+    },
+    {
+      "name": "LayoutNGBlockFlow (positioned) DIV class='fixed red'",
+      "bounds": [100, 100],
+      "contentsOpaque": true,
+      "backgroundColor": "#FF0000",
+      "paintInvalidations": [
+        {
+          "object": "LayoutNGBlockFlow (positioned) DIV id='absoluteDiv' class='absolute green'",
+          "rect": [100, 100, 100, 100],
+          "reason": "chunk disappeared"
+        }
+      ],
+      "transform": 1
+    },
+    {
+      "name": "ContentsLayer for Vertical Scrollbar Layer",
+      "position": [785, 0],
+      "bounds": [15, 600],
+      "contentsOpaque": true
+    }
+  ],
+  "transforms": [
+    {
+      "id": 1,
+      "transform": [
+        [1, 0, 0, 0],
+        [0, 1, 0, 0],
+        [0, 0, 1, 0],
+        [8, 1000, 0, 1]
+      ]
+    }
+  ]
+}
+
diff --git a/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/position/block-layout-inline-children-float-positioned-expected.txt b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/position/block-layout-inline-children-float-positioned-expected.txt
new file mode 100644
index 0000000..c5414b9
--- /dev/null
+++ b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/position/block-layout-inline-children-float-positioned-expected.txt
@@ -0,0 +1,23 @@
+{
+  "layers": [
+    {
+      "name": "Scrolling Contents Layer",
+      "bounds": [800, 600],
+      "contentsOpaque": true,
+      "backgroundColor": "#FFFFFF",
+      "paintInvalidations": [
+        {
+          "object": "NGPhysicalTextFragment 'the quick brown fox jumped over the lazy dog'",
+          "rect": [309, 37, 292, 19],
+          "reason": "appeared"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'the quick brown fox jumped over the lazy dog'",
+          "rect": [155, 37, 292, 19],
+          "reason": "appeared"
+        }
+      ]
+    }
+  ]
+}
+
diff --git a/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/svg/svg-background-partial-redraw-expected.txt b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/svg/svg-background-partial-redraw-expected.txt
new file mode 100644
index 0000000..390e8ad
--- /dev/null
+++ b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/svg/svg-background-partial-redraw-expected.txt
@@ -0,0 +1,18 @@
+{
+  "layers": [
+    {
+      "name": "Scrolling Contents Layer",
+      "bounds": [800, 600],
+      "contentsOpaque": true,
+      "backgroundColor": "#FFFFFF",
+      "paintInvalidations": [
+        {
+          "object": "LayoutNGBlockFlow (positioned) DIV id='revealer'",
+          "rect": [9, 153, 200, 100],
+          "reason": "disappeared"
+        }
+      ]
+    }
+  ]
+}
+
diff --git a/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
new file mode 100644
index 0000000..6b17fe03
--- /dev/null
+++ b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
@@ -0,0 +1,23 @@
+{
+  "layers": [
+    {
+      "name": "Scrolling Contents Layer",
+      "bounds": [800, 600],
+      "contentsOpaque": true,
+      "backgroundColor": "#FFFFFF",
+      "paintInvalidations": [
+        {
+          "object": "LayoutTableRow TR",
+          "rect": [8, 8, 114, 54],
+          "reason": "style change"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'A'",
+          "rect": [90, 30, 12, 19],
+          "reason": "disappeared"
+        }
+      ]
+    }
+  ]
+}
+
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-about-blank.js b/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-about-blank.js
index d5fc1ab..31042b7 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-about-blank.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-about-blank.js
@@ -1,5 +1,5 @@
 (async function(testRunner) {
-  var {page, session, dp} = await testRunner.startBlank(
+  await testRunner.startBlank(
       `Tests that browser.Target.setAutoAttach() attaches to new about:blank page.`);
 
   const target = testRunner.browserP().Target;
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-flatten-only-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-flatten-only-expected.txt
index 3040ac1..859b8f4 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-flatten-only-expected.txt
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-flatten-only-expected.txt
@@ -1,5 +1,5 @@
 Tests that browser.Target.setAutoAttach() supports only flatten protocol.
-Tried to auto-attach with not fatten protocol{
+Tried to auto-attach with not flatten protocol{
     error : {
         code : -32602
         message : Only flatten protocol is supported with browser level auto-attach
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-flatten-only.js b/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-flatten-only.js
index cb48f883..02eb7e7 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-flatten-only.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-flatten-only.js
@@ -1,11 +1,11 @@
 (async function(testRunner) {
-  var {page, session, dp} = await testRunner.startBlank(
+  await testRunner.startBlank(
       `Tests that browser.Target.setAutoAttach() supports only flatten protocol.`);
 
   const target = testRunner.browserP().Target;
   const response = await target.setAutoAttach(
       {autoAttach: true, waitForDebuggerOnStart: true, flatten: false});
-  testRunner.log(response, 'Tried to auto-attach with not fatten protocol');
+  testRunner.log(response, 'Tried to auto-attach with not flatten protocol');
 
   testRunner.completeTest();
 })
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-new-page.js b/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-new-page.js
index e2f2bc4..31b437c 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-new-page.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-new-page.js
@@ -1,5 +1,5 @@
 (async function(testRunner) {
-  var {page, session, dp} = await testRunner.startBlank(
+  await testRunner.startBlank(
       `Tests that browser.Target.setAutoAttach() attaches to new page targets.`);
 
   const target = testRunner.browserP().Target;
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-windowOpen.js b/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-windowOpen.js
index 3b934e6..5564acf 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-windowOpen.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/target/target-setAutoAttach-windowOpen.js
@@ -1,5 +1,5 @@
 (async function(testRunner) {
-  var {page, session, dp} = await testRunner.startBlank(
+  const {page, session, dp} = await testRunner.startBlank(
       `Tests that browser.Target.setAutoAttach() attaches to window.open targets.`);
 
   const target = testRunner.browserP().Target;
diff --git a/third_party/blink/web_tests/paint/invalidation/filters/effect-reference-repaint-lighting-expected.txt b/third_party/blink/web_tests/paint/invalidation/filters/effect-reference-repaint-lighting-expected.txt
index 691355a..4eccd8f 100644
--- a/third_party/blink/web_tests/paint/invalidation/filters/effect-reference-repaint-lighting-expected.txt
+++ b/third_party/blink/web_tests/paint/invalidation/filters/effect-reference-repaint-lighting-expected.txt
@@ -9,7 +9,7 @@
         {
           "object": "LayoutNGBlockFlow DIV class='box'",
           "rect": [78, 70, 100, 100],
-          "reason": "chunk appeared"
+          "reason": "appeared"
         }
       ]
     }
diff --git a/third_party/blink/web_tests/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt b/third_party/blink/web_tests/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt
index 8605370..05a8a4f 100644
--- a/third_party/blink/web_tests/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt
+++ b/third_party/blink/web_tests/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt
@@ -7,9 +7,9 @@
       "backgroundColor": "#FFFFFF",
       "paintInvalidations": [
         {
-          "object": "LayoutNGBlockFlow HTML",
+          "object": "LayoutEmbeddedObject OBJECT",
           "rect": [1, 1, 402, 202],
-          "reason": "chunk appeared"
+          "reason": "appeared"
         },
         {
           "object": "HorizontalScrollbar",
diff --git a/third_party/blink/web_tests/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt b/third_party/blink/web_tests/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt
index 8605370..05a8a4f 100644
--- a/third_party/blink/web_tests/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt
+++ b/third_party/blink/web_tests/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt
@@ -7,9 +7,9 @@
       "backgroundColor": "#FFFFFF",
       "paintInvalidations": [
         {
-          "object": "LayoutNGBlockFlow HTML",
+          "object": "LayoutEmbeddedObject OBJECT",
           "rect": [1, 1, 402, 202],
-          "reason": "chunk appeared"
+          "reason": "appeared"
         },
         {
           "object": "HorizontalScrollbar",
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/resize-iframe-text-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/resize-iframe-text-expected.txt
index 08ae6124d..32d3ee5 100644
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/resize-iframe-text-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/resize-iframe-text-expected.txt
@@ -14,7 +14,12 @@
         {
           "object": "LayoutNGBlockFlow HTML",
           "rect": [8, 300, 60, 22],
-          "reason": "chunk appeared"
+          "reason": "incremental"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'Success'",
+          "rect": [8, 300, 60, 22],
+          "reason": "appeared"
         },
         {
           "object": "VerticalScrollbar",
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
index 4ad1c38..9823dce 100644
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
@@ -14,7 +14,7 @@
         {
           "object": "LayoutNGBlockFlow HTML",
           "rect": [3, 65, 55, 17],
-          "reason": "chunk appeared"
+          "reason": "paint property change"
         },
         {
           "object": "VerticalScrollbar",
diff --git a/third_party/blink/web_tests/platform/mac/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries-expected.txt b/third_party/blink/web_tests/platform/mac/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries-expected.txt
index 1ac12092..70c22a9 100644
--- a/third_party/blink/web_tests/platform/mac/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries-expected.txt
@@ -7,9 +7,9 @@
       "backgroundColor": "#FFFFFF",
       "paintInvalidations": [
         {
-          "object": "LayoutNGBlockFlow HTML",
+          "object": "NGPhysicalTextFragment 'abc'",
           "rect": [18, 18, 23, 18],
-          "reason": "chunk disappeared"
+          "reason": "disappeared"
         },
         {
           "object": "NGPhysicalTextFragment 'abc'",
diff --git a/third_party/blink/web_tests/platform/mac/paint/invalidation/resize-iframe-text-expected.txt b/third_party/blink/web_tests/platform/mac/paint/invalidation/resize-iframe-text-expected.txt
index 01de703..4f68837 100644
--- a/third_party/blink/web_tests/platform/mac/paint/invalidation/resize-iframe-text-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/paint/invalidation/resize-iframe-text-expected.txt
@@ -14,7 +14,12 @@
         {
           "object": "LayoutNGBlockFlow HTML",
           "rect": [8, 300, 61, 22],
-          "reason": "chunk appeared"
+          "reason": "incremental"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'Success'",
+          "rect": [8, 300, 61, 22],
+          "reason": "appeared"
         },
         {
           "object": "VerticalScrollbar",
diff --git a/third_party/blink/web_tests/platform/mac/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt b/third_party/blink/web_tests/platform/mac/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
index 4f01320..3b5ab25 100644
--- a/third_party/blink/web_tests/platform/mac/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
@@ -14,7 +14,7 @@
         {
           "object": "LayoutNGBlockFlow HTML",
           "rect": [3, 65, 58, 16],
-          "reason": "chunk appeared"
+          "reason": "paint property change"
         },
         {
           "object": "VerticalScrollbar",
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries-expected.txt
index 49cc4ae..b4c8a23c 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries-expected.txt
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries-expected.txt
@@ -7,9 +7,9 @@
       "backgroundColor": "#FFFFFF",
       "paintInvalidations": [
         {
-          "object": "LayoutNGBlockFlow HTML",
+          "object": "NGPhysicalTextFragment 'abc'",
           "rect": [18, 18, 22, 19],
-          "reason": "chunk disappeared"
+          "reason": "disappeared"
         },
         {
           "object": "NGPhysicalTextFragment 'abc'",
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/resize-iframe-text-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/resize-iframe-text-expected.txt
index b00e75d7..2314d68 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/resize-iframe-text-expected.txt
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/resize-iframe-text-expected.txt
@@ -14,7 +14,12 @@
         {
           "object": "LayoutNGBlockFlow HTML",
           "rect": [8, 300, 64, 22],
-          "reason": "chunk appeared"
+          "reason": "incremental"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'Success'",
+          "rect": [8, 300, 64, 22],
+          "reason": "appeared"
         },
         {
           "object": "VerticalScrollbar",
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
index 953ce3c..95f9a6a 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt
@@ -14,7 +14,7 @@
         {
           "object": "LayoutNGBlockFlow HTML",
           "rect": [3, 65, 52, 17],
-          "reason": "chunk appeared"
+          "reason": "paint property change"
         },
         {
           "object": "VerticalScrollbar",
diff --git a/third_party/blink/web_tests/resources/testharnessreport.js b/third_party/blink/web_tests/resources/testharnessreport.js
index a946cf6..69e9c5ee6 100644
--- a/third_party/blink/web_tests/resources/testharnessreport.js
+++ b/third_party/blink/web_tests/resources/testharnessreport.js
@@ -120,7 +120,6 @@
             pathAndBase.startsWith('/css/') ||
             pathAndBase.startsWith('/pointerevents/') ||
             pathAndBase.startsWith('/uievents/') ||
-            pathAndBase.startsWith('/pointerlock/') ||
             pathAndBase.startsWith('/html/') ||
             pathAndBase.startsWith('/input-events/') ||
             pathAndBase.startsWith('/css/selectors/') ||
diff --git a/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRect-expected.html b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRect-expected.html
new file mode 100644
index 0000000..ea80c56
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRect-expected.html
@@ -0,0 +1,16 @@
+<!doctype html>
+<html>
+<head>
+</head>
+<body>
+    <canvas id="can" width="100" height="100"></canvas>
+<script>
+
+var outputCanvas = document.getElementById("can");
+var outputContext = outputCanvas.getContext("2d");
+outputContext.fillRect(0, 0, 15, 15);
+outputContext.fillRect(50, 90, 50, 10);
+
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRect.html b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRect.html
new file mode 100644
index 0000000..6f60c78
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRect.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html>
+  <head>
+    <title>Test ClearRect works properly if called during the first frame.</title>
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <canvas id="c" width=100 height=100></canvas>
+  <script>
+
+var c2 = document.getElementById("c");
+var offscreen_canvas = c2.transferControlToOffscreen();
+var ctx_o = offscreen_canvas.getContext('2d');
+
+// Since it checks if content retaining |mode_| changes from frame to frame,
+// multiple calls to rAF are used to assure the craetion of new frame.
+ctx_o.fillRect(5, 5, 50, 50);
+ctx_o.clearRect(0, 0, 800, 1000);
+window.requestAnimationFrame( dt=> {
+  ctx_o.fillRect(50, 50, 50, 50);
+  ctx_o.clearRect(50, 50, 50, 40);
+  window.requestAnimationFrame(dt => {
+    ctx_o.fillRect(0, 0, 15, 15);
+    window.requestAnimationFrame(dt => {
+      testRunner.notifyDone();
+    });
+  });
+});
+
+if (window.testRunner) {
+  testRunner.waitUntilDone();
+}
+
+</script>
+</body>
+</html>
diff --git a/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRectPartial-expected.html b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRectPartial-expected.html
new file mode 100644
index 0000000..ea80c56
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRectPartial-expected.html
@@ -0,0 +1,16 @@
+<!doctype html>
+<html>
+<head>
+</head>
+<body>
+    <canvas id="can" width="100" height="100"></canvas>
+<script>
+
+var outputCanvas = document.getElementById("can");
+var outputContext = outputCanvas.getContext("2d");
+outputContext.fillRect(0, 0, 15, 15);
+outputContext.fillRect(50, 90, 50, 10);
+
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRectPartial.html b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRectPartial.html
new file mode 100644
index 0000000..f8f61a8
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRectPartial.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<html>
+  <head>
+    <title>Test ClearRect works properly if it doesn't clear the full canvas.</title>
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <canvas id="c" width=100 height=100></canvas>
+  <script>
+
+var c2 = document.getElementById("c");
+var offscreen_canvas = c2.transferControlToOffscreen();
+var ctx_o = offscreen_canvas.getContext('2d');
+
+// Since it checks if content retaining |mode_| changes from frame to frame,
+// multiple calls to rAF are used to assure the craetion of new frame.
+ctx_o.fillRect(50, 50, 50, 50);
+ctx_o.clearRect(0, 0, 100, 90);
+window.requestAnimationFrame(dt => {
+  ctx_o.fillRect(0, 0, 15, 15);
+  window.requestAnimationFrame(dt => {
+    testRunner.notifyDone();
+  });
+});
+
+if (window.testRunner) {
+  testRunner.waitUntilDone();
+}
+
+</script>
+</body>
+</html>
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
index c3b221a..cf0eb14 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -7835,6 +7835,7 @@
     setter zoomAndPan
 interface Scheduler
     attribute @@toStringTag
+    getter currentTaskSignal
     method constructor
     method postTask
 interface Scheduling
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-platform-specific-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-platform-specific-expected.txt
index ca9b867..8ea3f86 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-platform-specific-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-platform-specific-expected.txt
@@ -8,6 +8,7 @@
     getter onadvertisementreceived
     method constructor
     method getAvailability
+    method getDevices
     method requestDevice
     method requestLEScan
     setter onadvertisementreceived
diff --git a/third_party/blink/web_tests/wpt_internal/portals/portals-cursor.html b/third_party/blink/web_tests/wpt_internal/portals/portals-cursor.html
new file mode 100644
index 0000000..27bc173f
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/portals/portals-cursor.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/resources/testdriver-actions.js"></script>
+<body>
+  <portal src="resources/simple-portal.html" style="cursor:pointer;"></portal>
+  <script>
+    promise_test(async () => {
+      await new Promise(r => window.onload = r);
+      let portal = document.querySelector('portal');
+      let actions = new test_driver.Actions()
+          .pointerMove(20, 20, {origin: portal});
+      actions.send();
+      await new Promise(r => portal.onpointermove = r);
+      assert_equals('type=Hand hotSpot=0,0', internals.getCurrentCursorInfo());
+    }, 'test that cursor is updated over portal');
+  </script>
+</body>
diff --git a/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal.html b/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal.html
new file mode 100644
index 0000000..92451ece
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal.html
@@ -0,0 +1,28 @@
+<!doctype html>
+<title>Scheduling API: Signal inheritance</title>
+<link rel="author" title="Nate Chapin" href="mailto:japhet@chromium.org">
+<link rel="help" href="https://github.com/WICG/main-thread-scheduling">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<script>
+'use strict';
+
+async_test(t => {
+  var result = "fail";
+  let tc = new TaskController("user-blocking");
+  scheduler.postTask(() => {
+    scheduler.postTask(() => {
+      assert_equals(scheduler.currentTaskSignal.priority, "user-blocking"); 
+      result = "pass";
+    }, { signal: scheduler.currentTaskSignal });
+  }, { signal: tc.signal });
+
+  // Since the above tasks should be run at high priority, it should execute
+  // before this default priority task.
+  scheduler.postTask(t.step_func_done(() => {
+    assert_equals(result, "pass");
+  }));
+}, 'Test that currentTaskSignal uses the incumbent priority');
+
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_abort_signal.html b/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_abort_signal.html
new file mode 100644
index 0000000..1e9ddbd8
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_abort_signal.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<title>Scheduling API: Signal inheritance</title>
+<link rel="author" title="Nate Chapin" href="mailto:japhet@chromium.org">
+<link rel="help" href="https://github.com/WICG/main-thread-scheduling">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<script>
+'use strict';
+
+async_test(t => {
+  let ac = new AbortController()
+  scheduler.postTask(() => {
+    scheduler.postTask(() => {}, { signal : scheduler.currentTaskSignal }).then(
+        () => { assert_unreached('This task should have been aborted'); },
+        t.step_func_done());
+    ac.abort();
+  }, { signal: ac.signal });
+}, 'Test that currentTaskSignal wraps and follows an AbortSignal');
+
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_async_abort.html b/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_async_abort.html
new file mode 100644
index 0000000..70c26156
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_async_abort.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<title>Scheduling API: Signal inheritance</title>
+<link rel="author" title="Nate Chapin" href="mailto:japhet@chromium.org">
+<link rel="help" href="https://github.com/WICG/main-thread-scheduling">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<script>
+'use strict';
+
+async_test(t => {
+  let tc = new TaskController("user-blocking");
+  scheduler.postTask(async () => {
+    await new Promise(resolve => setTimeout(resolve, 0));
+    scheduler.postTask(() => {}, { signal: scheduler.currentTaskSignal }).then(
+      () => { assert_unreached('This task should have been aborted'); },
+      t.step_func_done());
+    tc.abort();
+  }, { signal: tc.signal });
+}, 'Test that currentTaskSignal works through promise resolution');
+
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_async_priority.html b/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_async_priority.html
new file mode 100644
index 0000000..94cbdcd
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_async_priority.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<title>Scheduling API: Signal inheritance</title>
+<link rel="author" title="Nate Chapin" href="mailto:japhet@chromium.org">
+<link rel="help" href="https://github.com/WICG/main-thread-scheduling">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<script>
+'use strict';
+
+async_test(t => {
+  let tc = new TaskController("user-blocking");
+  scheduler.postTask(async () => {
+    await new Promise(resolve => setTimeout(resolve, 0));
+    assert_equals(scheduler.currentTaskSignal.priority, "user-blocking");
+    t.done();
+  }, { signal: tc.signal });
+}, 'Test that currentTaskSignal works through promise resolution');
+
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_inherit_priority.html b/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_inherit_priority.html
new file mode 100644
index 0000000..427af77
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_inherit_priority.html
@@ -0,0 +1,17 @@
+<!doctype html>
+<title>Scheduling API: Signal inheritance</title>
+<link rel="author" title="Nate Chapin" href="mailto:japhet@chromium.org">
+<link rel="help" href="https://github.com/WICG/main-thread-scheduling">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<script>
+'use strict';
+
+async_test(t => {
+  scheduler.postTask(t.step_func_done(() => {
+    assert_equals('user-blocking', scheduler.currentTaskSignal.priority);
+  }), { priority: "user-blocking" });
+}, 'Test that currentTaskSignal propagates priority even if an explicit signal was not given');
+
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_thru_fetch.html b/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_thru_fetch.html
new file mode 100644
index 0000000..df430fe
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/scheduler/current_task_signal_thru_fetch.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<title>Scheduling API: Signal inheritance</title>
+<link rel="author" title="Nate Chapin" href="mailto:japhet@chromium.org">
+<link rel="help" href="https://github.com/WICG/main-thread-scheduling">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<script>
+'use strict';
+
+async_test(t => {
+  let tc = new TaskController("user-blocking");
+  scheduler.postTask(async () => {
+    await fetch("support/dummy.txt");
+    scheduler.postTask(() => {}, { signal: scheduler.currentTaskSignal }).then(
+      () => { assert_unreached('This task should have been aborted'); },
+      t.step_func_done());
+    tc.abort();
+  }, { signal: tc.signal });
+}, 'Test that currentTaskSignal works through promise resolution');
+
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/scheduler/support/dummy.txt b/third_party/blink/web_tests/wpt_internal/scheduler/support/dummy.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/scheduler/support/dummy.txt
diff --git a/third_party/opus/README.chromium b/third_party/opus/README.chromium
index 2fc6a033..ba64082 100644
--- a/third_party/opus/README.chromium
+++ b/third_party/opus/README.chromium
@@ -15,6 +15,7 @@
 * copy .gitignore from https://git.xiph.org/?p=opus.git;a=tree
 * set 'x' flags: "chmod 750 win32/genversion.bat"
 * remove assertion messages in release builds (see crbug/1053572)
+* apply patch to fix int-overflow in silk (https://gitlab.xiph.org/xiph/opus/-/commit/923bebde)
 
 Opus' own unit tests are located in ./src/tests
 Additional chromium tests are located in ./tests
diff --git a/third_party/opus/src/silk/NSQ_del_dec.c b/third_party/opus/src/silk/NSQ_del_dec.c
index 3fd9fa0d5..baf17f4 100644
--- a/third_party/opus/src/silk/NSQ_del_dec.c
+++ b/third_party/opus/src/silk/NSQ_del_dec.c
@@ -394,8 +394,8 @@
         /* Long-term shaping */
         if( lag > 0 ) {
             /* Symmetric, packed FIR coefficients */
-            n_LTP_Q14 = silk_SMULWB( silk_ADD32( shp_lag_ptr[ 0 ], shp_lag_ptr[ -2 ] ), HarmShapeFIRPacked_Q14 );
-            n_LTP_Q14 = silk_SMLAWT( n_LTP_Q14, shp_lag_ptr[ -1 ],                      HarmShapeFIRPacked_Q14 );
+            n_LTP_Q14 = silk_SMULWB( silk_ADD_SAT32( shp_lag_ptr[ 0 ], shp_lag_ptr[ -2 ] ), HarmShapeFIRPacked_Q14 );
+            n_LTP_Q14 = silk_SMLAWT( n_LTP_Q14, shp_lag_ptr[ -1 ], HarmShapeFIRPacked_Q14 );
             n_LTP_Q14 = silk_SUB_LSHIFT32( LTP_pred_Q14, n_LTP_Q14, 2 );            /* Q12 -> Q14 */
             shp_lag_ptr++;
         } else {
@@ -453,7 +453,7 @@
             /* r = x[ i ] - LTP_pred - LPC_pred + n_AR + n_Tilt + n_LF + n_LTP  */
             tmp1 = silk_ADD32( n_AR_Q14, n_LF_Q14 );                                    /* Q14 */
             tmp2 = silk_ADD32( n_LTP_Q14, LPC_pred_Q14 );                               /* Q13 */
-            tmp1 = silk_SUB32( tmp2, tmp1 );                                            /* Q13 */
+            tmp1 = silk_SUB_SAT32( tmp2, tmp1 );                                        /* Q13 */
             tmp1 = silk_RSHIFT_ROUND( tmp1, 4 );                                        /* Q10 */
 
             r_Q10 = silk_SUB32( x_Q10[ i ], tmp1 );                                     /* residual error Q10 */
@@ -535,7 +535,7 @@
             /* Update states */
             psSS[ 0 ].Diff_Q14     = silk_SUB_LSHIFT32( xq_Q14, x_Q10[ i ], 4 );
             sLF_AR_shp_Q14         = silk_SUB32( psSS[ 0 ].Diff_Q14, n_AR_Q14 );
-            psSS[ 0 ].sLTP_shp_Q14 = silk_SUB32( sLF_AR_shp_Q14, n_LF_Q14 );
+            psSS[ 0 ].sLTP_shp_Q14 = silk_SUB_SAT32( sLF_AR_shp_Q14, n_LF_Q14 );
             psSS[ 0 ].LF_AR_Q14    = sLF_AR_shp_Q14;
             psSS[ 0 ].LPC_exc_Q14  = LPC_exc_Q14;
             psSS[ 0 ].xq_Q14       = xq_Q14;
@@ -555,7 +555,7 @@
             /* Update states */
             psSS[ 1 ].Diff_Q14     = silk_SUB_LSHIFT32( xq_Q14, x_Q10[ i ], 4 );
             sLF_AR_shp_Q14         = silk_SUB32( psSS[ 1 ].Diff_Q14, n_AR_Q14 );
-            psSS[ 1 ].sLTP_shp_Q14 = silk_SUB32( sLF_AR_shp_Q14, n_LF_Q14 );
+            psSS[ 1 ].sLTP_shp_Q14 = silk_SUB_SAT32( sLF_AR_shp_Q14, n_LF_Q14 );
             psSS[ 1 ].LF_AR_Q14    = sLF_AR_shp_Q14;
             psSS[ 1 ].LPC_exc_Q14  = LPC_exc_Q14;
             psSS[ 1 ].xq_Q14       = xq_Q14;
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml
index 8bde79d..a3d30b2 100644
--- a/tools/metrics/actions/actions.xml
+++ b/tools/metrics/actions/actions.xml
@@ -19100,6 +19100,26 @@
   </description>
 </action>
 
+<action name="Settings.Homepage.LocationChanged">
+  <owner>wenyufu@chromium.org</owner>
+  <owner>twellington@chromium.org</owner>
+  <description>
+    Recorded when the user changes their homepage location in settings. Note
+    that this metric is only recorded on user action and does not capture
+    changes caused by enterprise policy. Recorded for Android only.
+  </description>
+</action>
+
+<action name="Settings.Homepage.Opened">
+  <owner>wenyufu@chromium.org</owner>
+  <owner>twellington@chromium.org</owner>
+  <description>
+    Recorded when the user opens homepage settings. Recored when the user
+    launches homepage settings either from the main settings screen or the
+    homepage button long-press menu. Recorded for Android only.
+  </description>
+</action>
+
 <action name="Settings.Searching">
   <owner>dschuyler@chromium.org</owner>
   <description>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 39a9cf74..c667159 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -32384,6 +32384,16 @@
   <int value="2" label="Ext4 Dir Encryption"/>
 </enum>
 
+<enum name="HomepageLocationType">
+  <int value="0" label="POLICY_NTP"/>
+  <int value="1" label="POLICY_OTHER"/>
+  <int value="2" label="PARTNER_PROVIDED_NTP"/>
+  <int value="3" label="PARTNER_PROVIDED_OTHER"/>
+  <int value="4" label="USER_CUSTOMIZED_NTP"/>
+  <int value="5" label="USER_CUSTOMIZED_OTHER"/>
+  <int value="6" label="DEFAULT_NTP"/>
+</enum>
+
 <enum name="HotseatInAppGesture">
   <int value="0" label="Swipe up the hotseat"/>
   <int value="1" label="Swipe down the hotseat"/>
@@ -36890,6 +36900,13 @@
   <int value="3" label="Last item"/>
 </enum>
 
+<enum name="LoadingPredictorOptimizationHintsReceiveStatus">
+  <int value="0" label="Unknown"/>
+  <int value="1" label="Before navigation finish"/>
+  <int value="2" label="After navigation finish"/>
+  <int value="3" label="After redirect or next navigation started"/>
+</enum>
+
 <enum name="LoadLibraryResultCategory">
   <int value="0" label="LoadLibraryExW Succeeded"/>
   <int value="1" label="LoadLibraryExW Fail, LoadLibraryW Succeeded"/>
@@ -37009,6 +37026,13 @@
   <int value="2" label="Area with references loaded"/>
 </enum>
 
+<enum name="LocalSyncTransportDataStartupState">
+  <int value="0" label="All data is valid"/>
+  <int value="1" label="Empty cache guid"/>
+  <int value="2" label="Empty birthday"/>
+  <int value="3" label="Gaia ID mismatch"/>
+</enum>
+
 <enum name="LockedFullscreenState">
   <int value="0" label="Exited"/>
   <int value="1" label="Entered"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 86cd96c0..7a79c1b 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -8799,13 +8799,16 @@
 <!-- Name completed by histogram suffixes
      name="HotseatTransitionType" -->
 
+<!-- Name completed by histogram suffixes
+     name="HotseatWidgetElement" -->
+
   <owner>anasalazar@chromium.org</owner>
   <owner>newcomer@chromium.org</owner>
   <summary>
     Tracks the animation smoothness for the bounds animation of the hotseat
-    widget during transitions of the hotseat to shown, extended, and hidden
-    hotseat states. Check Ash.HotseatTransition.AnimationSmoothness for
-    smoothness of the animating background.
+    widget's elements during transitions of the hotseat to shown, extended, and
+    hidden hotseat states. Check Ash.HotseatTransition.AnimationSmoothness for
+    smoothness of the shelf's animating background.
   </summary>
 </histogram>
 
@@ -17674,6 +17677,124 @@
   </summary>
 </histogram>
 
+<histogram name="Blink.HTMLParsing.ChunkCount" units="chunks"
+    expires_after="2021-03-31">
+  <owner>schenney@chromium.org</owner>
+  <owner>dom-dev@chromium.org</owner>
+  <summary>
+    The number of chunks parsed while loading a page. Each chunk represents a
+    piece of the HTML content that can be loaded without blocking or yielding.
+
+    This histogram does not record metrics on machines with low-resolution
+    clocks.
+  </summary>
+</histogram>
+
+<histogram name="Blink.HTMLParsing.ParsingTimeMax" units="microseconds"
+    expires_after="2021-03-31">
+  <owner>schenney@chromium.org</owner>
+  <owner>dom-dev@chromium.org</owner>
+  <summary>
+    While parsing a page, the maximum time used to parse a single chunk before
+    being blocked, yielding or completing, in microseconds.
+
+    This histogram does not record metrics on machines with low-resolution
+    clocks.
+  </summary>
+</histogram>
+
+<histogram name="Blink.HTMLParsing.ParsingTimeMin" units="microseconds"
+    expires_after="2021-03-31">
+  <owner>schenney@chromium.org</owner>
+  <owner>dom-dev@chromium.org</owner>
+  <summary>
+    While parsing a page, the minimum time used to parse a single chunk before
+    being blocked, yielding or completing, in microseconds.
+
+    This histogram does not record metrics on machines with low-resolution
+    clocks.
+  </summary>
+</histogram>
+
+<histogram name="Blink.HTMLParsing.ParsingTimeTotal" units="microseconds"
+    expires_after="2021-03-31">
+  <owner>schenney@chromium.org</owner>
+  <owner>dom-dev@chromium.org</owner>
+  <summary>
+    While parsing a page, the total amount of time spent in the
+    HTMLDocumentParser performing parsing, in microseconds.
+
+    This histogram does not record metrics on machines with low-resolution
+    clocks.
+  </summary>
+</histogram>
+
+<histogram name="Blink.HTMLParsing.TokensParsedAverage" units="tokens"
+    expires_after="2021-03-31">
+  <owner>schenney@chromium.org</owner>
+  <owner>dom-dev@chromium.org</owner>
+  <summary>
+    While parsing a page, the average number of tokens parsed across all chunks.
+  </summary>
+</histogram>
+
+<histogram name="Blink.HTMLParsing.TokensParsedMax" units="tokens"
+    expires_after="2021-03-31">
+  <owner>schenney@chromium.org</owner>
+  <owner>dom-dev@chromium.org</owner>
+  <summary>
+    While parsing a page, the maximum number of tokens parsed as a chunk.
+  </summary>
+</histogram>
+
+<histogram name="Blink.HTMLParsing.TokensParsedMin" units="tokens"
+    expires_after="2021-03-31">
+  <owner>schenney@chromium.org</owner>
+  <owner>dom-dev@chromium.org</owner>
+  <summary>
+    While parsing a page, the minimum number of tokens parsed as a chunk.
+  </summary>
+</histogram>
+
+<histogram name="Blink.HTMLParsing.YieldedTimeAverage" units="microseconds"
+    expires_after="2021-03-31">
+  <owner>schenney@chromium.org</owner>
+  <owner>dom-dev@chromium.org</owner>
+  <summary>
+    While parsing a page, the average time between parsing of two chunks, in
+    microseconds. Will not be recorded if only one chunk was parsed.
+
+    This histogram does not record metrics on machines with low-resolution
+    clocks.
+  </summary>
+</histogram>
+
+<histogram name="Blink.HTMLParsing.YieldedTimeMax" units="microseconds"
+    expires_after="2021-03-31">
+  <owner>schenney@chromium.org</owner>
+  <owner>dom-dev@chromium.org</owner>
+  <summary>
+    While parsing a page, the maximum time between parsing of two chunks, in
+    microseconds. Will not be recorded if only one chunk was parsed.
+
+    This histogram does not record metrics on machines with low-resolution
+    clocks.
+  </summary>
+</histogram>
+
+<histogram name="Blink.HTMLParsing.YieldedTimeMin" units="microseconds"
+    expires_after="2021-03-31">
+  <owner>schenney@chromium.org</owner>
+  <owner>dom-dev@chromium.org</owner>
+  <summary>
+    While parsing a page, the minimum time between parsing of two chunks, in
+    microseconds. Will not be recorded if only one chunk was parsed.
+
+    This histogram does not record metrics on machines with low-resolution
+    clocks.
+  </summary>
+</histogram>
+
 <histogram name="Blink.ImageDecoders.IncrementalDecodeNeeded"
     enum="IncrementalDecodeNeeded" expires_after="2020-08-09">
   <owner>mbarowsky@chromium.org</owner>
@@ -67949,6 +68070,18 @@
   </summary>
 </histogram>
 
+<histogram name="LoadingPredictor.OptimizationHintsReceiveStatus"
+    enum="LoadingPredictorOptimizationHintsReceiveStatus"
+    expires_after="2020-08-02">
+  <owner>sophiechang@chromium.org</owner>
+  <owner>tbansal@chromium.org</owner>
+  <summary>
+    The status of when the optimization hints were received by the Loading
+    Predictor. This will be recorded on navigations for which predictions from
+    the Optimization Guide were received.
+  </summary>
+</histogram>
+
 <histogram name="LoadingPredictor.PreconnectCount" units="origins"
     expires_after="2020-08-02">
   <owner>alexilin@chromium.org</owner>
@@ -75609,42 +75742,29 @@
 
 <histogram name="MediaRouter.Provider.CreateRoute.Result"
     enum="MediaRouteProviderResult" expires_after="2021-02-01">
+<!-- Name completed by histogram_suffixes name="MediaRouteProvider" -->
+
   <owner>takumif@chromium.org</owner>
   <owner>mfoltz@chromium.org</owner>
   <owner>openscreen-eng@google.com</owner>
   <summary>
-    Result of a request to the extension (or an unknown) MediaRouteProvider to
-    create a route.
-  </summary>
-</histogram>
-
-<histogram name="MediaRouter.Provider.CreateRoute.Result.WiredDisplay"
-    enum="MediaRouteProviderResult" expires_after="2021-02-01">
-  <owner>takumif@chromium.org</owner>
-  <owner>openscreen-eng@google.com</owner>
-  <summary>
-    Result of a request to the wired display MediaRouteProvider to create a
-    route.
+    Result of a request to a MediaRouteProvider to create a route.
+    CreateRoute.Result (without a suffix) is recorded for the extension or an
+    unknown MRP.
   </summary>
 </histogram>
 
 <histogram name="MediaRouter.Provider.JoinRoute.Result"
     enum="MediaRouteProviderResult" expires_after="2021-02-01">
+<!-- Name completed by histogram_suffixes name="MediaRouteProvider" -->
+
   <owner>takumif@chromium.org</owner>
   <owner>mfoltz@chromium.org</owner>
   <owner>openscreen-eng@google.com</owner>
   <summary>
-    Result of a request to the extension (or an unknown) MediaRouteProvider to
-    join a route.
-  </summary>
-</histogram>
-
-<histogram name="MediaRouter.Provider.JoinRoute.Result.WiredDisplay"
-    enum="MediaRouteProviderResult" expires_after="2021-02-01">
-  <owner>takumif@chromium.org</owner>
-  <owner>openscreen-eng@google.com</owner>
-  <summary>
-    Result of a request to the wired display MediaRouteProvider to join a route.
+    Result of a request to a MediaRouteProvider to join a route.
+    JoinRoute.Result (without a suffix) is recorded for the extension or an
+    unknown MRP.
   </summary>
 </histogram>
 
@@ -75664,21 +75784,15 @@
 
 <histogram name="MediaRouter.Provider.TerminateRoute.Result"
     enum="MediaRouteProviderResult" expires_after="2021-02-01">
+<!-- Name completed by histogram_suffixes name="MediaRouteProvider" -->
+
+  <owner>takumif@chromium.org</owner>
   <owner>mfoltz@chromium.org</owner>
   <owner>openscreen-eng@google.com</owner>
   <summary>
-    Result of a request to the extension (or an unknown) MediaRouteProvider to
-    terminate a route.
-  </summary>
-</histogram>
-
-<histogram name="MediaRouter.Provider.TerminateRoute.Result.WiredDisplay"
-    enum="MediaRouteProviderResult" expires_after="2021-02-01">
-  <owner>takumif@chromium.org</owner>
-  <owner>openscreen-eng@google.com</owner>
-  <summary>
-    Result of a request to the wired display MediaRouteProvider to terminate a
-    route.
+    Result of a request to a MediaRouteProvider to terminate a route.
+    TerminateRoute.Result (without a suffix) is recorded for the extension or an
+    unknown MRP.
   </summary>
 </histogram>
 
@@ -96961,11 +97075,16 @@
 
 <histogram name="Network.Shill.SuspendActionsTimeTaken" units="ms"
     expires_after="2020-12-01">
-  <owner>benchan@chromium.org</owner>
+  <obsolete>
+    Removed 03/2020. Migrated to Network.Shill.SuspendActionTimeTaken.
+  </obsolete>
+  <owner>briannorris@chromium.org</owner>
   <owner>cros-network-metrics@google.com</owner>
   <summary>
     Chrome OS network diagnostic metric sampling the time in milliseconds it
-    takes suspend actions to complete when shill suspends.
+    takes suspend actions to complete when shill suspends. Note that this was a
+    misspelling of the metric that is really in use by Shill. No histogram
+    should ever have included this entry.
   </summary>
 </histogram>
 
@@ -96974,7 +97093,18 @@
   <obsolete>
     Removed 01/2015. Migrated to Network.Shill.SuspendActionsTimeTaken.
   </obsolete>
-  <owner>benchan@chromium.org</owner>
+  <owner>briannorris@chromium.org</owner>
+  <owner>cros-network-metrics@google.com</owner>
+  <summary>
+    Chrome OS network diagnostic metric sampling the time in milliseconds it
+    takes suspend actions to complete when shill suspends.
+  </summary>
+</histogram>
+
+<histogram name="Network.Shill.SuspendActionTimeTaken" units="ms"
+    expires_after="2020-12-01">
+  <owner>briannorris@chromium.org</owner>
+  <owner>cros-network-metrics@google.com</owner>
   <summary>
     Chrome OS network diagnostic metric sampling the time in milliseconds it
     takes suspend actions to complete when shill suspends.
@@ -146244,6 +146374,16 @@
   </summary>
 </histogram>
 
+<histogram name="Settings.Homepage.LocationType" enum="HomepageLocationType"
+    expires_after="2020-08-28">
+  <owner>wenyufu@chromium.org</owner>
+  <owner>twellington@chromium.org</owner>
+  <summary>
+    The location type for the homepage if the homepage is enabled. Recorded on
+    deferred startup iff the homepage is enabled. Android only.
+  </summary>
+</histogram>
+
 <histogram name="Settings.HomePageDomain" enum="OmniboxSearchEngine"
     expires_after="2013-08-20">
   <obsolete>
@@ -159048,6 +159188,17 @@
   </summary>
 </histogram>
 
+<histogram name="Sync.LocalSyncTransportDataStartupState"
+    enum="LocalSyncTransportDataStartupState" expires_after="2020-09-05">
+  <owner>rushans@google.com</owner>
+  <owner>mastiz@chromium.org</owner>
+  <summary>
+    Counts cases when data in sync preferences is invalid. Recorded during sync
+    startup of the Sync transport layer. It happens soon after a signed-in
+    profile is opened.
+  </summary>
+</histogram>
+
 <histogram name="Sync.LostNavigationCount" units="navigations"
     expires_after="M85">
   <owner>pnoland@chromium.org</owner>
@@ -179670,7 +179821,8 @@
 </histogram>
 
 <histogram name="Windows.HasHighResolutionTimeTicks" enum="Boolean"
-    expires_after="M81">
+    expires_after="2021-03-30">
+  <owner>brucedawson@chromium.org</owner>
   <owner>gab@chromium.org</owner>
   <summary>
     The value of TimeTicks::IsHighResolution(). Reported once per browser
@@ -186822,6 +186974,14 @@
   <affected-histogram name="Ash.NavigationWidget.AnimationSmoothness"/>
 </histogram_suffixes>
 
+<histogram_suffixes name="HotseatWidgetElement" separator="."
+    ordering="prefix,2">
+  <suffix name="TranslucentBackground"
+      label="Hotseat widget's translucent background"/>
+  <suffix name="Widget" label="Hotseat widget"/>
+  <affected-histogram name="Ash.HotseatWidgetAnimation.AnimationSmoothness"/>
+</histogram_suffixes>
+
 <histogram_suffixes name="HstsState" separator=".">
   <suffix name="HSTSNotEnabled" label="The HSTS is not enabled."/>
   <suffix name="WithHSTSEnabled" label="The HSTS is enabled."/>
@@ -188247,6 +188407,15 @@
   <affected-histogram name="Media.RebuffersCount"/>
 </histogram_suffixes>
 
+<histogram_suffixes name="MediaRouteProvider" separator=".">
+  <suffix name="Cast" label="Native Cast MRP"/>
+  <suffix name="DIAL" label="Native DIAL MRP"/>
+  <suffix name="WiredDisplay" label="Wired Display MRP"/>
+  <affected-histogram name="MediaRouter.Provider.CreateRoute.Result"/>
+  <affected-histogram name="MediaRouter.Provider.JoinRoute.Result"/>
+  <affected-histogram name="MediaRouter.Provider.TerminateRoute.Result"/>
+</histogram_suffixes>
+
 <histogram_suffixes name="MediaRouterSuccess" separator=".">
   <suffix name="Failure" label="Failure"/>
   <suffix name="Success" label="Success"/>
diff --git a/tools/metrics/histograms/update_bad_message_reasons.py b/tools/metrics/histograms/update_bad_message_reasons.py
index 3b2acce..825d014ee 100644
--- a/tools/metrics/histograms/update_bad_message_reasons.py
+++ b/tools/metrics/histograms/update_bad_message_reasons.py
@@ -31,7 +31,9 @@
   }
 
   for header_file, histogram_name in histograms.items():
-    UpdateHistogramEnum(histogram_enum_name=histogram_name,
-                        source_enum_path=header_file,
-                        start_marker='^enum (class )?BadMessageReason {',
-                        end_marker='^BAD_MESSAGE_MAX')
+    UpdateHistogramEnum(
+        histogram_enum_name=histogram_name,
+        source_enum_path=header_file,
+        start_marker='^enum (class )?BadMessageReason {',
+        end_marker='^BAD_MESSAGE_MAX',
+        calling_script=os.path.basename(__file__))
diff --git a/tools/metrics/histograms/update_extension_histograms.py b/tools/metrics/histograms/update_extension_histograms.py
index 05261f5..c36950d 100644
--- a/tools/metrics/histograms/update_extension_histograms.py
+++ b/tools/metrics/histograms/update_extension_histograms.py
@@ -28,7 +28,9 @@
     ('ExtensionFunctions',
      'extensions/browser/extension_function_histogram_value.h'))
   for enum_name, source_header in histograms:
-    UpdateHistogramEnum(histogram_enum_name=enum_name,
-                        source_enum_path=source_header,
-                        start_marker='^enum HistogramValue {',
-                        end_marker='^ENUM_BOUNDARY')
+    UpdateHistogramEnum(
+        histogram_enum_name=enum_name,
+        source_enum_path=source_header,
+        start_marker='^enum HistogramValue {',
+        end_marker='^ENUM_BOUNDARY',
+        calling_script=os.path.basename(__file__))
diff --git a/tools/metrics/histograms/update_extension_permission.py b/tools/metrics/histograms/update_extension_permission.py
index 751c3c9..ec6986e 100644
--- a/tools/metrics/histograms/update_extension_permission.py
+++ b/tools/metrics/histograms/update_extension_permission.py
@@ -22,7 +22,9 @@
     sys.exit(1)
 
   header_file = 'extensions/common/permissions/api_permission.h'
-  UpdateHistogramEnum(histogram_enum_name='ExtensionPermission3',
-                      source_enum_path=header_file,
-                      start_marker='^enum ID {',
-                      end_marker='^kEnumBoundary')
+  UpdateHistogramEnum(
+      histogram_enum_name='ExtensionPermission3',
+      source_enum_path=header_file,
+      start_marker='^enum ID {',
+      end_marker='^kEnumBoundary',
+      calling_script=os.path.basename(__file__))
diff --git a/tools/metrics/histograms/update_feature_policy_enum.py b/tools/metrics/histograms/update_feature_policy_enum.py
index 4bc4f8b..daec0c71 100755
--- a/tools/metrics/histograms/update_feature_policy_enum.py
+++ b/tools/metrics/histograms/update_feature_policy_enum.py
@@ -24,8 +24,10 @@
 
   source_file = 'third_party/blink/public/mojom/feature_policy/' \
                 'feature_policy_feature.mojom'
-  UpdateHistogramEnum(histogram_enum_name='FeaturePolicyFeature',
-                      source_enum_path=source_file,
-                      start_marker='^enum FeaturePolicyFeature {',
-                      end_marker='^};',
-                      strip_k_prefix=True)
+  UpdateHistogramEnum(
+      histogram_enum_name='FeaturePolicyFeature',
+      source_enum_path=source_file,
+      start_marker='^enum FeaturePolicyFeature {',
+      end_marker='^};',
+      strip_k_prefix=True,
+      calling_script=os.path.basename(__file__))
diff --git a/tools/metrics/histograms/update_histogram_enum.py b/tools/metrics/histograms/update_histogram_enum.py
index 80487a24..72f7fc9 100644
--- a/tools/metrics/histograms/update_histogram_enum.py
+++ b/tools/metrics/histograms/update_histogram_enum.py
@@ -309,8 +309,12 @@
   Log('Done.')
 
 
-def UpdateHistogramEnum(histogram_enum_name, source_enum_path,
-                        start_marker, end_marker, strip_k_prefix = False):
+def UpdateHistogramEnum(histogram_enum_name,
+                        source_enum_path,
+                        start_marker,
+                        end_marker,
+                        strip_k_prefix=False,
+                        calling_script=None):
   """Reads a C++ enum from a .h file and updates histograms.xml to match.
 
   Args:
@@ -328,7 +332,7 @@
       start_marker, end_marker, strip_k_prefix)
 
   UpdateHistogramFromDict(histogram_enum_name, source_enum_values,
-      source_enum_path, None)
+                          source_enum_path, calling_script)
 
 
 def UpdateHistogramEnumFromXML(histogram_enum_name, source_enum_path,
diff --git a/tools/metrics/histograms/update_scheduler_enums.py b/tools/metrics/histograms/update_scheduler_enums.py
index 753c454..890f21ce 100755
--- a/tools/metrics/histograms/update_scheduler_enums.py
+++ b/tools/metrics/histograms/update_scheduler_enums.py
@@ -28,4 +28,5 @@
       source_enum_path=source_file,
       start_marker='^enum class WebSchedulerTrackedFeature {',
       end_marker='^kMaxValue',
-      strip_k_prefix=True)
+      strip_k_prefix=True,
+      calling_script=os.path.basename(__file__))
diff --git a/tools/metrics/histograms/update_use_counter_feature_enum.py b/tools/metrics/histograms/update_use_counter_feature_enum.py
index ba24d2ec..eadcab82 100755
--- a/tools/metrics/histograms/update_use_counter_feature_enum.py
+++ b/tools/metrics/histograms/update_use_counter_feature_enum.py
@@ -49,4 +49,5 @@
         source_enum_path=source_path,
         start_marker=START_MARKER,
         end_marker=END_MARKER,
-        strip_k_prefix=True)
+        strip_k_prefix=True,
+        calling_script=os.path.basename(__file__))
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml
index c81c7ded..01023658 100644
--- a/tools/metrics/ukm/ukm.xml
+++ b/tools/metrics/ukm/ukm.xml
@@ -1614,6 +1614,77 @@
   </metric>
 </event>
 
+<event name="Blink.HTMLParsing">
+  <owner>schenney@chromium.org</owner>
+  <owner>dom-dev@chromium.org</owner>
+  <summary>
+    Logged once per page load, to capture information about invocation of the
+    HTMLDocumentParser for the initial document load. Does not include other
+    aspects of document parsing, such as style sheet parsing or script execution
+    during parsing. Also does not include innerText parsing.
+
+    This event is not recorded on machines with low-resolution clocks.
+  </summary>
+  <metric name="ChunkCount">
+    <summary>
+      The number of chunks parsed while loading the page. Each chunk represents
+      a piece of the HTML content that can be loaded without blocking or
+      yielding.
+    </summary>
+  </metric>
+  <metric name="ParsingTimeMax">
+    <summary>
+      The maximum time used to parse a single chunk before being blocked,
+      yielding or completing, in microseconds.
+    </summary>
+  </metric>
+  <metric name="ParsingTimeMin">
+    <summary>
+      The minimum time used to parse a single chunk before being blocked,
+      yielding or completing, in microseconds.
+    </summary>
+  </metric>
+  <metric name="ParsingTimeTotal">
+    <summary>
+      The total amount of time spent in the HTMLDocumentParser parsing the page,
+      in microseconds.
+    </summary>
+  </metric>
+  <metric name="TokensParsedAverage">
+    <summary>
+      The average number of tokens parsed across all chunks.
+    </summary>
+  </metric>
+  <metric name="TokensParsedMax">
+    <summary>
+      The maximum number of tokens parsed as a chunk.
+    </summary>
+  </metric>
+  <metric name="TokensParsedMin">
+    <summary>
+      The minimum number of tokens parsed as a chunk.
+    </summary>
+  </metric>
+  <metric name="YieldedTimeAverage">
+    <summary>
+      The average time between parsing of two chunks, in microseconds. Will be
+      zero if only one chunk was parsed.
+    </summary>
+  </metric>
+  <metric name="YieldedTimeMax">
+    <summary>
+      The minimum time between parsing of two chunks, in microseconds. Will be
+      zero if only one chunk was parsed.
+    </summary>
+  </metric>
+  <metric name="YieldedTimeMin">
+    <summary>
+      The maximum time between parsing of two chunks, in microseconds. Will be
+      zero if only one chunk was parsed.
+    </summary>
+  </metric>
+</event>
+
 <event name="Blink.PageLoad">
   <owner>schenney@chromium.org</owner>
   <owner>paint-dev@chromium.org</owner>
@@ -1621,6 +1692,8 @@
     The aggregated time spent in each metric's component from creation of the
     local frame view to the First Contentful Paint signal. The event is reported
     once per page load when First Contentful Paint is signaled.
+
+    This event is not recorded on machines with low-resolution clocks.
   </summary>
   <metric name="Animate">
     <summary>
@@ -1746,6 +1819,8 @@
     Metrics that measure various update times in Blink. This includes paint,
     compositing, and layout update times. The metrics are recorded at first
     lifecycle update and then a random frame with mean interval of 2000 frames.
+
+    This event is not recorded on machines with low-resolution clocks.
   </summary>
   <metric name="Animate">
     <summary>
@@ -3750,6 +3825,13 @@
     <summary>
       Marks a resource request from a website.
     </summary>
+    <aggregation>
+      <history>
+        <statistics>
+          <enumeration/>
+        </statistics>
+      </history>
+    </aggregation>
   </metric>
 </event>
 
@@ -8786,6 +8868,36 @@
   </metric>
 </event>
 
+<event name="ReaderModeActivated" singular="True">
+  <owner>gilmanmh@google.com</owner>
+  <owner>kjbooker@google.com</owner>
+  <owner>dmazzoni@chromium.org</owner>
+  <summary>
+    Recorded after a user activates Reader Mode for a given page.
+  </summary>
+  <metric name="ActivatedViaOmnibox" enum="Boolean">
+    <summary>
+      Whether the user activated Reader Mode via the omnibox badge.
+    </summary>
+  </metric>
+</event>
+
+<event name="ReaderModeReceivedDistillability">
+  <owner>gilmanmh@google.com</owner>
+  <owner>kjbooker@google.com</owner>
+  <owner>dmazzoni@chromium.org</owner>
+  <summary>
+    Recorded when the Reader Mode badge receives a result from the
+    distillability service.
+  </summary>
+  <metric name="IsPageDistillable" enum="Boolean">
+    <summary>
+      Whether the distillability service determined the page to be distillable,
+      i.e. likely to render well in Reader Mode.
+    </summary>
+  </metric>
+</event>
+
 <event name="RendererSchedulerTask">
   <owner>altimin@chromium.org</owner>
   <summary>
diff --git a/tools/perf/benchmarks/system_health_smoke_test.py b/tools/perf/benchmarks/system_health_smoke_test.py
index 3abb6ea..b640625 100644
--- a/tools/perf/benchmarks/system_health_smoke_test.py
+++ b/tools/perf/benchmarks/system_health_smoke_test.py
@@ -88,6 +88,8 @@
     'system_health.memory_desktop/browse:news:hackernews:2018',
     # crbug.com/992436
     'system_health.memory_desktop/browse:social:twitter:2018'
+    # crbug.com/1060068
+    'system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018',
     # ]
 })
 
diff --git a/ui/accessibility/BUILD.gn b/ui/accessibility/BUILD.gn
index 1ed792d..bdbc118a3 100644
--- a/ui/accessibility/BUILD.gn
+++ b/ui/accessibility/BUILD.gn
@@ -135,6 +135,12 @@
       "platform/ax_platform_text_boundary.h",
     ]
 
+    if (use_atk) {
+      # ax_platform_text_boundary.h includes atk.h, so ATK is needed as a public
+      # config to ensure anything that includes this is able to find atk.h.
+      public_configs = [ "//build/config/linux/atk" ]
+    }
+
     if (is_mac) {
       sources += [
         "platform/ax_platform_node_mac.h",
diff --git a/ui/aura/test/aura_test_base.cc b/ui/aura/test/aura_test_base.cc
index a649f32..d3d6862b 100644
--- a/ui/aura/test/aura_test_base.cc
+++ b/ui/aura/test/aura_test_base.cc
@@ -11,10 +11,8 @@
 #include "ui/aura/test/test_windows.h"
 #include "ui/aura/window.h"
 #include "ui/base/ime/init/input_method_initializer.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/ui_base_features.h"
 #include "ui/base/ui_base_switches.h"
-#include "ui/base/ui_base_switches_util.h"
 #include "ui/compositor/test/test_context_factories.h"
 #include "ui/events/event_dispatcher.h"
 #include "ui/events/event_sink.h"
@@ -36,7 +34,6 @@
 void AuraTestBase::SetUp() {
   setup_called_ = true;
   testing::Test::SetUp();
-  ui::MaterialDesignController::Initialize();
   ui::GestureConfiguration* gesture_config =
       ui::GestureConfiguration::GetInstance();
   // Changing the parameters for gesture recognition shouldn't cause
diff --git a/ui/aura/window_unittest.cc b/ui/aura/window_unittest.cc
index e6fb4ee7..71f2f0e 100644
--- a/ui/aura/window_unittest.cc
+++ b/ui/aura/window_unittest.cc
@@ -37,7 +37,6 @@
 #include "ui/aura/window_tree_host.h"
 #include "ui/base/class_property.h"
 #include "ui/base/hit_test.h"
-#include "ui/base/ui_base_switches_util.h"
 #include "ui/compositor/layer.h"
 #include "ui/compositor/layer_animation_observer.h"
 #include "ui/compositor/layer_animator.h"
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
index a2ccaa0..d93480c 100644
--- a/ui/base/BUILD.gn
+++ b/ui/base/BUILD.gn
@@ -689,8 +689,6 @@
   sources = [
     "resource/mock_resource_bundle_delegate.cc",
     "resource/mock_resource_bundle_delegate.h",
-    "test/material_design_controller_test_api.cc",
-    "test/material_design_controller_test_api.h",
   ]
 
   if (is_mac) {
diff --git a/ui/base/material_design/material_design_controller.cc b/ui/base/material_design/material_design_controller.cc
index 66d19aca..c83bfcf 100644
--- a/ui/base/material_design/material_design_controller.cc
+++ b/ui/base/material_design/material_design_controller.cc
@@ -8,18 +8,14 @@
 
 #include "base/bind.h"
 #include "base/command_line.h"
-#include "base/feature_list.h"
 #include "base/logging.h"
 #include "base/message_loop/message_loop_current.h"
 #include "base/no_destructor.h"
 #include "base/observer_list.h"
-#include "base/strings/string_number_conversions.h"
 #include "build/buildflag.h"
 #include "ui/base/buildflags.h"
 #include "ui/base/material_design/material_design_controller_observer.h"
-#include "ui/base/ui_base_features.h"
 #include "ui/base/ui_base_switches.h"
-#include "ui/gfx/animation/linear_animation.h"
 
 #if defined(OS_WIN)
 #include "base/win/win_util.h"
@@ -39,74 +35,59 @@
       gfx::SingletonHwnd::GetInstance()->hwnd());
 }
 
-void TabletModeWatcherWinProc(HWND hwnd,
-                              UINT message,
-                              WPARAM wparam,
-                              LPARAM lparam) {
-  if (message == WM_SETTINGCHANGE)
-    MaterialDesignController::OnTabletModeToggled(IsTabletMode());
-}
-
 }  // namespace
 #endif  // defined(OS_WIN)
 
-bool MaterialDesignController::touch_ui_ = false;
-bool MaterialDesignController::automatic_touch_ui_ = false;
+MaterialDesignController::TouchUiScoperForTesting::TouchUiScoperForTesting(
+    bool enabled,
+    MaterialDesignController* controller)
+    : controller_(controller),
+      old_state_(controller_->SetTouchUiState(
+          enabled ? TouchUiState::kEnabled : TouchUiState::kDisabled)) {}
 
-// static
-void MaterialDesignController::Initialize() {
-  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
-  const std::string switch_value =
-      command_line->GetSwitchValueASCII(switches::kTopChromeTouchUi);
-  bool touch = switch_value == switches::kTopChromeTouchUiEnabled;
-  automatic_touch_ui_ = switch_value == switches::kTopChromeTouchUiAuto;
-
-  // When the mode is not explicitly forced, platforms vary as to the default
-  // behavior.
-  if (!touch && (switch_value != switches::kTopChromeTouchUiDisabled) &&
-      features::IsAutomaticUiAdjustmentsForTouchEnabled()) {
-#if defined(OS_CHROMEOS)
-    // TabletModePageBehavior's default state is in non-tablet mode.
-    automatic_touch_ui_ = true;
-#elif defined(OS_WIN)
-    if (base::win::GetVersion() >= base::win::Version::WIN10) {
-      // Win 10+ uses dynamic mode by default and checks the current tablet mode
-      // state to determine whether to start in touch mode.
-      automatic_touch_ui_ = true;
-      if (base::MessageLoopCurrentForUI::IsSet() &&
-          !GetInstance()->singleton_hwnd_observer_) {
-        GetInstance()->singleton_hwnd_observer_ =
-            std::make_unique<gfx::SingletonHwndObserver>(
-                base::BindRepeating(TabletModeWatcherWinProc));
-        touch = IsTabletMode();
-      }
-    }
-#endif
-  }
-  SetTouchUi(touch);
-
-  // TODO(crbug.com/864544): Ideally, there would be a more general, "initialize
-  // random stuff here" function into which this sort of thing can be placed.
-  double animation_duration_scale;
-  if (base::StringToDouble(
-          command_line->GetSwitchValueASCII(switches::kAnimationDurationScale),
-          &animation_duration_scale)) {
-    gfx::LinearAnimation::SetDurationScale(animation_duration_scale);
-  }
-}
-
-// static
-void MaterialDesignController::OnTabletModeToggled(bool enabled) {
-  if (automatic_touch_ui_)
-    SetTouchUi(enabled);
+MaterialDesignController::TouchUiScoperForTesting::~TouchUiScoperForTesting() {
+  controller_->SetTouchUiState(old_state_);
 }
 
 // static
 MaterialDesignController* MaterialDesignController::GetInstance() {
-  static base::NoDestructor<MaterialDesignController> instance;
+  static base::NoDestructor<MaterialDesignController> instance([] {
+    const std::string switch_value =
+        base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+            switches::kTopChromeTouchUi);
+    if (switch_value == switches::kTopChromeTouchUiDisabled)
+      return TouchUiState::kDisabled;
+    const bool enabled = switch_value == switches::kTopChromeTouchUiEnabled;
+    return enabled ? TouchUiState::kEnabled : TouchUiState::kAuto;
+  }());
   return instance.get();
 }
 
+MaterialDesignController::MaterialDesignController(TouchUiState touch_ui_state)
+    : touch_ui_state_(touch_ui_state) {
+#if defined(OS_WIN)
+  if (base::MessageLoopCurrentForUI::IsSet() &&
+      (base::win::GetVersion() >= base::win::Version::WIN10)) {
+    singleton_hwnd_observer_ =
+        std::make_unique<gfx::SingletonHwndObserver>(base::BindRepeating(
+            [](HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) {
+              if (message == WM_SETTINGCHANGE)
+                GetInstance()->OnTabletModeToggled(IsTabletMode());
+            }));
+    tablet_mode_ = IsTabletMode();
+  }
+#endif
+}
+
+MaterialDesignController::~MaterialDesignController() = default;
+
+void MaterialDesignController::OnTabletModeToggled(bool enabled) {
+  const bool was_touch_ui = touch_ui();
+  tablet_mode_ = enabled;
+  if (touch_ui() != was_touch_ui)
+    NotifyObservers();
+}
+
 void MaterialDesignController::AddObserver(
     MaterialDesignControllerObserver* observer) {
   observers_.AddObserver(observer);
@@ -117,15 +98,18 @@
   observers_.RemoveObserver(observer);
 }
 
-MaterialDesignController::MaterialDesignController() = default;
+MaterialDesignController::TouchUiState
+MaterialDesignController::SetTouchUiState(TouchUiState touch_ui_state) {
+  const bool was_touch_ui = touch_ui();
+  const TouchUiState old_state = std::exchange(touch_ui_state_, touch_ui_state);
+  if (touch_ui() != was_touch_ui)
+    NotifyObservers();
+  return old_state;
+}
 
-// static
-void MaterialDesignController::SetTouchUi(bool touch_ui) {
-  if (touch_ui_ != touch_ui) {
-    touch_ui_ = touch_ui;
-    for (auto& observer : GetInstance()->observers_)
-      observer.OnTouchUiChanged();
-  }
+void MaterialDesignController::NotifyObservers() const {
+  for (auto& observer : observers_)
+    observer.OnTouchUiChanged();
 }
 
 }  // namespace ui
diff --git a/ui/base/material_design/material_design_controller.h b/ui/base/material_design/material_design_controller.h
index 2ec2d5f..262ef3c 100644
--- a/ui/base/material_design/material_design_controller.h
+++ b/ui/base/material_design/material_design_controller.h
@@ -5,67 +5,76 @@
 #ifndef UI_BASE_MATERIAL_DESIGN_MATERIAL_DESIGN_CONTROLLER_H_
 #define UI_BASE_MATERIAL_DESIGN_MATERIAL_DESIGN_CONTROLLER_H_
 
-#include "base/macros.h"
+#include <string>
+
 #include "base/observer_list.h"
+#include "base/optional.h"
 #include "build/build_config.h"
 #include "ui/base/ui_base_export.h"
 
-namespace base {
-template <typename T>
-class NoDestructor;
-}
-
+#if defined(OS_WIN)
 namespace gfx {
 class SingletonHwndObserver;
 }
+#endif
 
 namespace ui {
 
 class MaterialDesignControllerObserver;
 
-namespace test {
-class MaterialDesignControllerTestAPI;
-}  // namespace test
-
 // Central controller to handle material design modes.
 class UI_BASE_EXPORT MaterialDesignController {
  public:
-  // Initializes touch UI state based on command-line flags.
-  static void Initialize();
+  enum class TouchUiState {
+    kDisabled,
+    kAuto,
+    kEnabled,
+  };
 
-  static bool touch_ui() { return touch_ui_; }
+  class UI_BASE_EXPORT TouchUiScoperForTesting {
+   public:
+    explicit TouchUiScoperForTesting(
+        bool enabled,
+        MaterialDesignController* controller = GetInstance());
+    TouchUiScoperForTesting(const TouchUiScoperForTesting&) = delete;
+    TouchUiScoperForTesting& operator=(const TouchUiScoperForTesting&) = delete;
+    ~TouchUiScoperForTesting();
 
-  // Exposed for TabletModePageBehavior on ChromeOS + ash.
-  static void OnTabletModeToggled(bool enabled);
+   private:
+    MaterialDesignController* const controller_;
+    const TouchUiState old_state_;
+  };
 
   static MaterialDesignController* GetInstance();
 
+  explicit MaterialDesignController(
+      TouchUiState touch_ui_state = TouchUiState::kAuto);
+  MaterialDesignController(const MaterialDesignController&) = delete;
+  MaterialDesignController& operator=(const MaterialDesignController&) = delete;
+  ~MaterialDesignController();
+
+  bool touch_ui() const {
+    return (touch_ui_state_ == TouchUiState::kEnabled) ||
+           ((touch_ui_state_ == TouchUiState::kAuto) && tablet_mode_);
+  }
+
+  void OnTabletModeToggled(bool enabled);
+
   void AddObserver(MaterialDesignControllerObserver* observer);
   void RemoveObserver(MaterialDesignControllerObserver* observer);
 
  private:
-  friend class base::NoDestructor<MaterialDesignController>;
-  friend class test::MaterialDesignControllerTestAPI;
+  TouchUiState SetTouchUiState(TouchUiState touch_ui_state);
+  void NotifyObservers() const;
 
-  MaterialDesignController();
-  ~MaterialDesignController() = delete;
-
-  // Sets the touch UI state and notifies observers of the state change.
-  static void SetTouchUi(bool touch_ui);
-
-  // Whether the UI layout should be touch-optimized.
-  static bool touch_ui_;
-
-  // Whether |touch_ui_| should toggle on and off depending on the tablet state.
-  static bool automatic_touch_ui_;
+  bool tablet_mode_ = false;
+  TouchUiState touch_ui_state_;
 
 #if defined(OS_WIN)
   std::unique_ptr<gfx::SingletonHwndObserver> singleton_hwnd_observer_;
 #endif
 
   base::ObserverList<MaterialDesignControllerObserver> observers_;
-
-  DISALLOW_COPY_AND_ASSIGN(MaterialDesignController);
 };
 
 }  // namespace ui
diff --git a/ui/base/material_design/material_design_controller_unittest.cc b/ui/base/material_design/material_design_controller_unittest.cc
index 41abb82..7c876ff2 100644
--- a/ui/base/material_design/material_design_controller_unittest.cc
+++ b/ui/base/material_design/material_design_controller_unittest.cc
@@ -4,155 +4,92 @@
 
 #include <string>
 
-#include "base/command_line.h"
 #include "base/macros.h"
 #include "base/scoped_observer.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/material_design/material_design_controller_observer.h"
-#include "ui/base/ui_base_switches.h"
 
 namespace ui {
 
-using MD = MaterialDesignController;
-using MDObserver = MaterialDesignControllerObserver;
-
 namespace {
 
-class TestObserver : public MDObserver {
+class TestObserver : public MaterialDesignControllerObserver {
  public:
-  TestObserver() = default;
+  explicit TestObserver(MaterialDesignController* controller) {
+    observer_.Add(controller);
+  }
   ~TestObserver() override = default;
 
   int touch_ui_changes() const { return touch_ui_changes_; }
 
  private:
-  // MDObserver:
+  // MaterialDesignControllerObserver:
   void OnTouchUiChanged() override { ++touch_ui_changes_; }
 
   int touch_ui_changes_ = 0;
-
-  DISALLOW_COPY_AND_ASSIGN(TestObserver);
-};
-
-// Test fixture for the MaterialDesignController class.
-class MaterialDesignControllerTest : public testing::Test {
- public:
-  MaterialDesignControllerTest() = default;
-  ~MaterialDesignControllerTest() override = default;
-
- protected:
-  // testing::Test:
-  void SetUp() override {
-    testing::Test::SetUp();
-    MD::Initialize();
-  }
-
-  void TearDown() override {
-    testing::Test::TearDown();
-  }
-
-  void SetCommandLineSwitch(const std::string& value_string) {
-    base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
-        switches::kTopChromeTouchUi, value_string);
-  }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MaterialDesignControllerTest);
-};
-
-class MaterialDesignControllerTestCommandLineTouchUiDisabled
-    : public MaterialDesignControllerTest {
- public:
-  MaterialDesignControllerTestCommandLineTouchUiDisabled() {
-    SetCommandLineSwitch(switches::kTopChromeTouchUiDisabled);
-  }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(
-      MaterialDesignControllerTestCommandLineTouchUiDisabled);
-};
-
-class MaterialDesignControllerTestCommandLineTouchUiEnabled
-    : public MaterialDesignControllerTest {
- public:
-  MaterialDesignControllerTestCommandLineTouchUiEnabled() {
-    SetCommandLineSwitch(switches::kTopChromeTouchUiEnabled);
-  }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(
-      MaterialDesignControllerTestCommandLineTouchUiEnabled);
-};
-
-class MaterialDesignControllerTestCommandLineTouchUiAuto
-    : public MaterialDesignControllerTest {
- public:
-  MaterialDesignControllerTestCommandLineTouchUiAuto() {
-    SetCommandLineSwitch(switches::kTopChromeTouchUiAuto);
-  }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MaterialDesignControllerTestCommandLineTouchUiAuto);
+  ScopedObserver<MaterialDesignController, MaterialDesignControllerObserver>
+      observer_{this};
 };
 
 }  // namespace
 
 // Verifies that non-touch is the default.
-TEST_F(MaterialDesignControllerTest, NoCommandLineFlagIsNonTouch) {
-  ASSERT_FALSE(base::CommandLine::ForCurrentProcess()->HasSwitch(
-      switches::kTopChromeTouchUi));
-  EXPECT_FALSE(MD::touch_ui());
+TEST(MaterialDesignControllerTest, DefaultIsNonTouch) {
+  MaterialDesignController controller;
+  EXPECT_FALSE(controller.touch_ui());
 }
 
-// Verifies that switches::kTopChromeTouchUiDisabled maps to non-touch (the
-// default).
-TEST_F(MaterialDesignControllerTestCommandLineTouchUiDisabled,
-       CheckApiReturns) {
-  EXPECT_FALSE(MD::touch_ui());
+// Verifies that kDisabled maps to non-touch.
+TEST(MaterialDesignControllerTest, DisabledIsNonTouch) {
+  MaterialDesignController controller(
+      MaterialDesignController::TouchUiState::kDisabled);
+  EXPECT_FALSE(controller.touch_ui());
 }
 
-// Verifies that switches::kTopChromeTouchUiEnabled maps to touch.
-TEST_F(MaterialDesignControllerTestCommandLineTouchUiEnabled, CheckApiReturns) {
-  EXPECT_TRUE(MD::touch_ui());
+// Verifies that kAuto maps to non-touch (the default).
+TEST(MaterialDesignControllerTest, AutoIsNonTouch) {
+  MaterialDesignController controller(
+      MaterialDesignController::TouchUiState::kAuto);
+  EXPECT_FALSE(controller.touch_ui());
 }
 
-// Verifies that switches::kTopChromeTouchUiAuto maps to non-touch.
-TEST_F(MaterialDesignControllerTestCommandLineTouchUiAuto, CheckApiReturns) {
-  EXPECT_FALSE(MD::touch_ui());
+// Verifies that kEnabled maps to touch.
+TEST(MaterialDesignControllerTest, EnabledIsNonTouch) {
+  MaterialDesignController controller(
+      MaterialDesignController::TouchUiState::kEnabled);
+  EXPECT_TRUE(controller.touch_ui());
 }
 
 // Verifies that when the mode is set to non-touch and the tablet mode toggles,
 // the touch UI state does not change.
-TEST_F(MaterialDesignControllerTestCommandLineTouchUiDisabled,
-       TabletOnTouchUiChanged) {
-  TestObserver observer;
-  ScopedObserver<MD, MDObserver> scoped_observer(&observer);
-  scoped_observer.Add(MD::GetInstance());
+TEST(MaterialDesignControllerTest, TabletToggledOnTouchUiDisabled) {
+  MaterialDesignController controller(
+      MaterialDesignController::TouchUiState::kDisabled);
+  TestObserver observer(&controller);
 
-  MD::OnTabletModeToggled(true);
-  EXPECT_FALSE(MD::touch_ui());
+  controller.OnTabletModeToggled(true);
+  EXPECT_FALSE(controller.touch_ui());
   EXPECT_EQ(0, observer.touch_ui_changes());
 
-  MD::OnTabletModeToggled(false);
-  EXPECT_FALSE(MD::touch_ui());
+  controller.OnTabletModeToggled(false);
+  EXPECT_FALSE(controller.touch_ui());
   EXPECT_EQ(0, observer.touch_ui_changes());
 }
 
 // Verifies that when the mode is set to auto and the tablet mode toggles, the
 // touch UI state changes and the observer gets called back.
-TEST_F(MaterialDesignControllerTestCommandLineTouchUiAuto,
-       TabletOnTouchUiChanged) {
-  TestObserver observer;
-  ScopedObserver<MD, MDObserver> scoped_observer(&observer);
-  scoped_observer.Add(MD::GetInstance());
+TEST(MaterialDesignControllerTest, TabletToggledOnTouchUiAuto) {
+  MaterialDesignController controller(
+      MaterialDesignController::TouchUiState::kAuto);
+  TestObserver observer(&controller);
 
-  MD::OnTabletModeToggled(true);
-  EXPECT_TRUE(MD::touch_ui());
+  controller.OnTabletModeToggled(true);
+  EXPECT_TRUE(controller.touch_ui());
   EXPECT_EQ(1, observer.touch_ui_changes());
 
-  MD::OnTabletModeToggled(false);
-  EXPECT_FALSE(MD::touch_ui());
+  controller.OnTabletModeToggled(false);
+  EXPECT_FALSE(controller.touch_ui());
   EXPECT_EQ(2, observer.touch_ui_changes());
 }
 
diff --git a/ui/base/test/material_design_controller_test_api.cc b/ui/base/test/material_design_controller_test_api.cc
deleted file mode 100644
index f3122448..0000000
--- a/ui/base/test/material_design_controller_test_api.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/base/test/material_design_controller_test_api.h"
-
-namespace ui {
-namespace test {
-
-MaterialDesignControllerTestAPI::MaterialDesignControllerTestAPI(bool touch_ui)
-    : previous_touch_ui_(MaterialDesignController::touch_ui_) {
-  MaterialDesignController::SetTouchUi(touch_ui);
-}
-
-MaterialDesignControllerTestAPI::~MaterialDesignControllerTestAPI() {
-  MaterialDesignController::touch_ui_ = previous_touch_ui_;
-}
-
-}  // namespace test
-}  // namespace ui
diff --git a/ui/base/test/material_design_controller_test_api.h b/ui/base/test/material_design_controller_test_api.h
deleted file mode 100644
index 9e560a8..0000000
--- a/ui/base/test/material_design_controller_test_api.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef UI_BASE_TEST_MATERIAL_DESIGN_CONTROLLER_TEST_API_H_
-#define UI_BASE_TEST_MATERIAL_DESIGN_CONTROLLER_TEST_API_H_
-
-#include "base/macros.h"
-#include "ui/base/material_design/material_design_controller.h"
-
-namespace ui {
-namespace test {
-
-// Test API to access the internal state of the MaterialDesignController class.
-// Creating an instance of this class and then destroying it preserves global
-// state in MaterialDesignController class.
-class MaterialDesignControllerTestAPI {
- public:
-  explicit MaterialDesignControllerTestAPI(bool touch_ui);
-  ~MaterialDesignControllerTestAPI();
-
- private:
-  const bool previous_touch_ui_;
-
-  DISALLOW_COPY_AND_ASSIGN(MaterialDesignControllerTestAPI);
-};
-
-}  // namespace test
-}  // namespace ui
-
-#endif  // UI_BASE_TEST_MATERIAL_DESIGN_CONTROLLER_TEST_API_H_
diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc
index 444a5ff..70f19c7 100644
--- a/ui/base/ui_base_features.cc
+++ b/ui/base/ui_base_features.cc
@@ -112,11 +112,6 @@
     "PrecisionTouchpadLogging", base::FEATURE_DISABLED_BY_DEFAULT};
 #endif  // defined(OS_WIN)
 
-#if defined(OS_WIN) || defined(OS_CHROMEOS)
-const base::Feature kEnableAutomaticUiAdjustmentsForTouch{
-    "EnableAutomaticUiAdjustmentsForTouch", base::FEATURE_ENABLED_BY_DEFAULT};
-#endif  // defined(OS_WIN) || defined(OS_CHROMEOS)
-
 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
 // Enables stylus appearing as touch when in contact with digitizer.
 const base::Feature kDirectManipulationStylus = {
@@ -152,15 +147,6 @@
   return form_controls_refresh_enabled;
 }
 
-bool IsAutomaticUiAdjustmentsForTouchEnabled() {
-#if defined(OS_WIN) || defined(OS_CHROMEOS)
-  return base::FeatureList::IsEnabled(
-      features::kEnableAutomaticUiAdjustmentsForTouch);
-#else
-  return false;
-#endif
-}
-
 const base::Feature kEnableOzoneDrmMojo = {"OzoneDrmMojo",
                                            base::FEATURE_ENABLED_BY_DEFAULT};
 
diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h
index 87dae9d3..077269a 100644
--- a/ui/base/ui_base_features.h
+++ b/ui/base/ui_base_features.h
@@ -58,11 +58,6 @@
 COMPONENT_EXPORT(UI_BASE_FEATURES) bool IsUsingWMPointerForTouch();
 #endif  // defined(OS_WIN)
 
-#if defined(OS_WIN) || defined(OS_CHROMEOS)
-COMPONENT_EXPORT(UI_BASE_FEATURES)
-extern const base::Feature kEnableAutomaticUiAdjustmentsForTouch;
-#endif  // defined(OS_WIN) || defined(OS_CHROMEOS)
-
 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
 COMPONENT_EXPORT(UI_BASE_FEATURES)
 extern const base::Feature kDirectManipulationStylus;
@@ -73,10 +68,6 @@
 extern const base::Feature kFormControlsRefresh;
 COMPONENT_EXPORT(UI_BASE_FEATURES) bool IsFormControlsRefreshEnabled();
 
-// Whether the UI may accommodate touch input in response to hardware changes.
-COMPONENT_EXPORT(UI_BASE_FEATURES)
-bool IsAutomaticUiAdjustmentsForTouchEnabled();
-
 // Use mojo communication in the drm platform instead of paramtraits. Remove
 // this switch (and associated code) when the drm platform always uses mojo
 // communication.
diff --git a/ui/base/ui_base_switches.cc b/ui/base/ui_base_switches.cc
index e74239e..712aa67 100644
--- a/ui/base/ui_base_switches.cc
+++ b/ui/base/ui_base_switches.cc
@@ -25,10 +25,6 @@
 const char kShowMacOverlayBorders[] = "show-mac-overlay-borders";
 #endif
 
-// Scale factor to apply to every animation duration. Must be >= 0.0. This will
-// only apply to LinearAnimation and its subclasses.
-const char kAnimationDurationScale[] = "animation-duration-scale";
-
 // Disables layer-edge anti-aliasing in the compositor.
 const char kDisableCompositedAntialiasing[] = "disable-composited-antialiasing";
 
diff --git a/ui/base/ui_base_switches.h b/ui/base/ui_base_switches.h
index 9a0c356d..26b8dbf1 100644
--- a/ui/base/ui_base_switches.h
+++ b/ui/base/ui_base_switches.h
@@ -20,7 +20,6 @@
 UI_BASE_EXPORT extern const char kShowMacOverlayBorders[];
 #endif
 
-UI_BASE_EXPORT extern const char kAnimationDurationScale[];
 UI_BASE_EXPORT extern const char kDisableCompositedAntialiasing[];
 UI_BASE_EXPORT extern const char kDisableDwmComposition[];
 UI_BASE_EXPORT extern const char kDisableTouchAdjustment[];
diff --git a/ui/base/ui_base_switches_util.cc b/ui/base/ui_base_switches_util.cc
index e153ec9..353f533 100644
--- a/ui/base/ui_base_switches_util.cc
+++ b/ui/base/ui_base_switches_util.cc
@@ -11,12 +11,11 @@
 namespace switches {
 
 bool IsTouchDragDropEnabled() {
+  const auto* const command_line = base::CommandLine::ForCurrentProcess();
 #if defined(OS_CHROMEOS) || defined(OS_ANDROID)
-  return !base::CommandLine::ForCurrentProcess()->HasSwitch(
-      kDisableTouchDragDrop);
+  return !command_line->HasSwitch(kDisableTouchDragDrop);
 #else
-  return base::CommandLine::ForCurrentProcess()->HasSwitch(
-      kEnableTouchDragDrop);
+  return command_line->HasSwitch(kEnableTouchDragDrop);
 #endif
 }
 
diff --git a/ui/chromeos/resources/ui_chromeos_resources.grd b/ui/chromeos/resources/ui_chromeos_resources.grd
index 5095a7787..e128a4f 100644
--- a/ui/chromeos/resources/ui_chromeos_resources.grd
+++ b/ui/chromeos/resources/ui_chromeos_resources.grd
@@ -108,11 +108,6 @@
       <structure type="chrome_html" name="IDR_ASSISTANT_VOICE_MATCH_ANIMATION" file="vector/voice_laptop.json" compress="gzip" />
       <structure type="chrome_html" name="IDR_ASSISTANT_VOICE_MATCH_ALREADY_SETUP_ANIMATION" file="vector/connecting_loop.json" compress="gzip" />
 
-      <!-- Gesture Navigation animations. -->
-      <structure type="chrome_html" name="IDR_GESTURE_NAVIGATION_GO_HOME_ANIMATION" file="vector/gesture_go_home.json" compress="gzip" />
-      <structure type="chrome_html" name="IDR_GESTURE_NAVIGATION_GO_BACK_ANIMATION" file="vector/gesture_go_back.json" compress="gzip" />
-      <structure type="chrome_html" name="IDR_GESTURE_NAVIGATION_HOTSEAT_OVERVIEW_ANIMATION" file="vector/gesture_hotseat_overview.json" compress="gzip" />
-
       <!-- Launcher chip icons. See
         /ui/file_manager/file_manager/foreground/images/launcher_filetypes/2x/
       for the majority of launcher icon chips. This file contains only the
diff --git a/ui/gfx/animation/linear_animation.cc b/ui/gfx/animation/linear_animation.cc
index 2791194a..77fa3f1f 100644
--- a/ui/gfx/animation/linear_animation.cc
+++ b/ui/gfx/animation/linear_animation.cc
@@ -9,15 +9,12 @@
 
 #include <algorithm>
 
+#include "base/command_line.h"
 #include "base/numerics/ranges.h"
+#include "base/strings/string_number_conversions.h"
 #include "ui/gfx/animation/animation_container.h"
 #include "ui/gfx/animation/animation_delegate.h"
-
-namespace {
-
-double g_duration_scale_factor = 1.0;
-
-}  // namespace
+#include "ui/gfx/switches.h"
 
 namespace gfx {
 
@@ -65,19 +62,23 @@
 }
 
 void LinearAnimation::SetDuration(base::TimeDelta duration) {
-  duration_ = duration * g_duration_scale_factor;
+  static const double duration_scale_factor = []() {
+    base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+    double animation_duration_scale;
+    return (base::StringToDouble(command_line->GetSwitchValueASCII(
+                                     switches::kAnimationDurationScale),
+                                 &animation_duration_scale) &&
+            (animation_duration_scale >= 0.0))
+               ? animation_duration_scale
+               : 1.0;
+  }();
+  duration_ = duration * duration_scale_factor;
   if (duration_ < timer_interval())
     duration_ = timer_interval();
   if (is_animating())
     SetStartTime(container()->last_tick_time());
 }
 
-// static
-void LinearAnimation::SetDurationScale(const double scale_factor) {
-  if (scale_factor >= 0.0)
-    g_duration_scale_factor = scale_factor;
-}
-
 void LinearAnimation::Step(base::TimeTicks time_now) {
   base::TimeDelta elapsed_time = time_now - start_time();
   state_ = static_cast<double>(elapsed_time.InMicroseconds()) /
diff --git a/ui/gfx/animation/linear_animation.h b/ui/gfx/animation/linear_animation.h
index 0d38b12..82af66f 100644
--- a/ui/gfx/animation/linear_animation.h
+++ b/ui/gfx/animation/linear_animation.h
@@ -50,11 +50,6 @@
   // the currently set scale factor.
   void SetDuration(base::TimeDelta duration);
 
-  // Sets the duration scale factor. This scale factor will be applied to all
-  // animation durations globally. This value must be >= 0. The default value
-  // is 1.0.
-  static void SetDurationScale(double scale_factor);
-
  protected:
   // Called when the animation progresses. Subclasses override this to
   // efficiently update their state.
diff --git a/ui/gfx/switches.cc b/ui/gfx/switches.cc
index ba3dbf23..0f746ea 100644
--- a/ui/gfx/switches.cc
+++ b/ui/gfx/switches.cc
@@ -7,11 +7,18 @@
 
 namespace switches {
 
+// Scale factor to apply to every animation duration. Must be >= 0.0. This will
+// only apply to LinearAnimation and its subclasses.
+const char kAnimationDurationScale[] = "animation-duration-scale";
+
 // Force disables font subpixel positioning. This affects the character glyph
 // sharpness, kerning, hinting and layout.
 const char kDisableFontSubpixelPositioning[] =
     "disable-font-subpixel-positioning";
 
+// Enable native CPU-mappable GPU memory buffer support on Linux.
+const char kEnableNativeGpuMemoryBuffers[] = "enable-native-gpu-memory-buffers";
+
 // Forces whether the user desires reduced motion, regardless of system
 // settings.
 const char kForcePrefersReducedMotion[] = "force-prefers-reduced-motion";
@@ -19,7 +26,4 @@
 // Run in headless mode, i.e., without a UI or display server dependencies.
 const char kHeadless[] = "headless";
 
-// Enable native CPU-mappable GPU memory buffer support on Linux.
-const char kEnableNativeGpuMemoryBuffers[] = "enable-native-gpu-memory-buffers";
-
 }  // namespace switches
diff --git a/ui/gfx/switches.h b/ui/gfx/switches.h
index 1f0e6338..abe0a58 100644
--- a/ui/gfx/switches.h
+++ b/ui/gfx/switches.h
@@ -10,13 +10,11 @@
 
 namespace switches {
 
+GFX_SWITCHES_EXPORT extern const char kAnimationDurationScale[];
 GFX_SWITCHES_EXPORT extern const char kDisableFontSubpixelPositioning[];
-
-GFX_SWITCHES_EXPORT extern const char kForcePrefersReducedMotion[];
-
-GFX_SWITCHES_EXPORT extern const char kHeadless[];
-
 GFX_SWITCHES_EXPORT extern const char kEnableNativeGpuMemoryBuffers[];
+GFX_SWITCHES_EXPORT extern const char kForcePrefersReducedMotion[];
+GFX_SWITCHES_EXPORT extern const char kHeadless[];
 
 }  // namespace switches
 
diff --git a/ui/shell_dialogs/run_all_unittests.cc b/ui/shell_dialogs/run_all_unittests.cc
index c390b5cf..bb522a2d 100644
--- a/ui/shell_dialogs/run_all_unittests.cc
+++ b/ui/shell_dialogs/run_all_unittests.cc
@@ -9,7 +9,6 @@
 #include "base/test/test_suite.h"
 #include "build/build_config.h"
 #include "mojo/core/embedder/embedder.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/base/ui_base_paths.h"
 
@@ -43,7 +42,6 @@
 #endif
 
   // Setup resource bundle.
-  ui::MaterialDesignController::Initialize();
   ui::RegisterPathProvider();
 
   base::FilePath ui_test_pak_path;
diff --git a/ui/strings/translations/ui_strings_ta.xtb b/ui/strings/translations/ui_strings_ta.xtb
index 66abedd..e90edbec 100644
--- a/ui/strings/translations/ui_strings_ta.xtb
+++ b/ui/strings/translations/ui_strings_ta.xtb
@@ -85,6 +85,7 @@
 <translation id="3234408098842461169">கீழ்நோக்கிய அம்பு</translation>
 <translation id="3291688615589870984">{DAYS,plural, =1{1 நாள்}other{# நாட்கள்}}</translation>
 <translation id="3295886253693811851">இந்த ஆப்ஸ் மூலம் அழை:</translation>
+<translation id="3306688585798492231">உள்ளமைந்த டிஸ்பிளே</translation>
 <translation id="335581015389089642">பேச்சு</translation>
 <translation id="3389286852084373014">உரையின் அளவு மிகப் பெரியதாக உள்ளது</translation>
 <translation id="3479552764303398839">இப்பொழுது இல்லை</translation>
diff --git a/ui/views/animation/ink_drop_unittest.cc b/ui/views/animation/ink_drop_unittest.cc
index aace0ae..d9cd80c 100644
--- a/ui/views/animation/ink_drop_unittest.cc
+++ b/ui/views/animation/ink_drop_unittest.cc
@@ -9,7 +9,6 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/timer/timer.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "ui/base/test/material_design_controller_test_api.h"
 #include "ui/compositor/scoped_animation_duration_scale_mode.h"
 #include "ui/views/animation/ink_drop.h"
 #include "ui/views/animation/ink_drop_host_view.h"
diff --git a/ui/views/cocoa/bridged_native_widget_unittest.mm b/ui/views/cocoa/bridged_native_widget_unittest.mm
index a3b37a08..6df4eec 100644
--- a/ui/views/cocoa/bridged_native_widget_unittest.mm
+++ b/ui/views/cocoa/bridged_native_widget_unittest.mm
@@ -24,7 +24,6 @@
 #import "testing/gtest_mac.h"
 #import "ui/base/cocoa/window_size_constants.h"
 #include "ui/base/ime/input_method.h"
-#include "ui/base/material_design/material_design_controller.h"
 #import "ui/base/test/cocoa_helper.h"
 #include "ui/events/test/cocoa_test_event_utils.h"
 #import "ui/gfx/mac/coordinate_conversion.h"
@@ -375,8 +374,6 @@
   void SetUp() override {
     ui::CocoaTest::SetUp();
 
-    ui::MaterialDesignController::Initialize();
-
     Widget::InitParams init_params;
     init_params.native_widget = native_widget_mac_;
     init_params.type = type_;
diff --git a/ui/views/controls/button/label_button_unittest.cc b/ui/views/controls/button/label_button_unittest.cc
index 635de1e..8e331ea 100644
--- a/ui/views/controls/button/label_button_unittest.cc
+++ b/ui/views/controls/button/label_button_unittest.cc
@@ -11,8 +11,6 @@
 #include "build/build_config.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/accessibility/ax_node_data.h"
-#include "ui/base/material_design/material_design_controller.h"
-#include "ui/base/test/material_design_controller_test_api.h"
 #include "ui/base/ui_base_switches.h"
 #include "ui/events/test/event_generator.h"
 #include "ui/gfx/canvas.h"
diff --git a/ui/views/controls/scroll_view.cc b/ui/views/controls/scroll_view.cc
index d7f125c3..1c477e2 100644
--- a/ui/views/controls/scroll_view.cc
+++ b/ui/views/controls/scroll_view.cc
@@ -188,7 +188,7 @@
   more_content_bottom_->SetVisible(false);
 
   if (scroll_with_layers_enabled_)
-    EnableViewPortLayer();
+    EnableViewportLayer();
 
   // If we're scrolling with layers, paint the overflow indicators to the layer.
   if (ScrollsWithLayers()) {
@@ -237,10 +237,12 @@
       // play it safe here to avoid graphical glitches
       // (https://crbug.com/826472). If there's no solid background, mark the
       // view as not filling its bounds opaquely.
-      if (GetBackgroundColor() != SK_ColorTRANSPARENT)
-        a_view->SetBackground(CreateSolidBackground(GetBackgroundColor()));
-      else
+      if (GetBackgroundColor()) {
+        a_view->SetBackground(
+            CreateSolidBackground(GetBackgroundColor().value()));
+      } else {
         fills_opaquely = false;
+      }
     }
     a_view->SetPaintToLayer();
     a_view->layer()->SetDidScrollCallback(base::BindRepeating(
@@ -263,19 +265,23 @@
   SetHeaderImpl(nullptr);
 }
 
-void ScrollView::SetBackgroundColor(SkColor color) {
-  if (background_color_data_.color == color)
+void ScrollView::SetBackgroundColor(const base::Optional<SkColor>& color) {
+  if (background_color_ == color && !background_color_id_)
     return;
-  background_color_data_.color = color;
-  use_color_id_ = false;
+  background_color_ = color;
+  background_color_id_ = base::nullopt;
   UpdateBackground();
-  OnPropertyChanged(&background_color_data_, kPropertyEffectsPaint);
+  OnPropertyChanged(&background_color_, kPropertyEffectsPaint);
 }
 
-void ScrollView::SetBackgroundThemeColorId(ui::NativeTheme::ColorId color_id) {
-  background_color_data_.color_id = color_id;
-  use_color_id_ = true;
+void ScrollView::SetBackgroundThemeColorId(
+    const base::Optional<ui::NativeTheme::ColorId>& color_id) {
+  if (background_color_id_ == color_id && !background_color_)
+    return;
+  background_color_id_ = color_id;
+  background_color_ = base::nullopt;
   UpdateBackground();
+  OnPropertyChanged(&background_color_id_, kPropertyEffectsPaint);
 }
 
 gfx::Rect ScrollView::GetVisibleRect() const {
@@ -628,7 +634,7 @@
 
 void ScrollView::OnThemeChanged() {
   UpdateBorder();
-  if (use_color_id_)
+  if (background_color_id_)
     UpdateBackground();
 }
 
@@ -681,7 +687,7 @@
   if (has_layer == needs_layer)
     return;
   if (needs_layer)
-    EnableViewPortLayer();
+    EnableViewportLayer();
   else
     contents_viewport_->DestroyLayer();
 }
@@ -837,7 +843,7 @@
   return contents_viewport_->layer() != nullptr;
 }
 
-void ScrollView::EnableViewPortLayer() {
+void ScrollView::EnableViewportLayer() {
   if (DoesViewportOrScrollViewHaveLayer())
     return;
 
@@ -884,26 +890,35 @@
 }
 
 void ScrollView::UpdateBackground() {
-  const SkColor background_color = GetBackgroundColor();
+  const base::Optional<SkColor> background_color = GetBackgroundColor();
 
-  SetBackground(CreateSolidBackground(background_color));
+  auto create_background = [background_color]() {
+    return background_color ? CreateSolidBackground(background_color.value())
+                            : nullptr;
+  };
+
+  SetBackground(create_background());
   // In addition to setting the background of |this|, set the background on
   // the viewport as well. This way if the viewport has a layer
   // SetFillsBoundsOpaquely() is honored.
-  contents_viewport_->SetBackground(CreateSolidBackground(background_color));
+  contents_viewport_->SetBackground(create_background());
   if (contents_ && ScrollsWithLayers())
-    contents_->SetBackground(CreateSolidBackground(background_color));
+    contents_->SetBackground(create_background());
   if (contents_viewport_->layer()) {
-    contents_viewport_->layer()->SetFillsBoundsOpaquely(background_color !=
-                                                        SK_ColorTRANSPARENT);
+    contents_viewport_->layer()->SetFillsBoundsOpaquely(!!background_color);
   }
   SchedulePaint();
 }
 
-SkColor ScrollView::GetBackgroundColor() const {
-  return use_color_id_
-             ? GetNativeTheme()->GetSystemColor(background_color_data_.color_id)
-             : background_color_data_.color;
+base::Optional<SkColor> ScrollView::GetBackgroundColor() const {
+  return background_color_id_
+             ? GetNativeTheme()->GetSystemColor(background_color_id_.value())
+             : background_color_;
+}
+
+base::Optional<ui::NativeTheme::ColorId> ScrollView::GetBackgroundThemeColorId()
+    const {
+  return background_color_id_;
 }
 
 void ScrollView::PositionOverflowIndicators() {
@@ -943,7 +958,10 @@
 METADATA_PARENT_CLASS(View)
 ADD_READONLY_PROPERTY_METADATA(ScrollView, int, MinHeight)
 ADD_READONLY_PROPERTY_METADATA(ScrollView, int, MaxHeight)
-ADD_PROPERTY_METADATA(ScrollView, SkColor, BackgroundColor)
+ADD_PROPERTY_METADATA(ScrollView, base::Optional<SkColor>, BackgroundColor)
+ADD_PROPERTY_METADATA(ScrollView,
+                      base::Optional<ui::NativeTheme::ColorId>,
+                      BackgroundThemeColorId)
 ADD_PROPERTY_METADATA(ScrollView, bool, DrawOverflowIndicator)
 ADD_PROPERTY_METADATA(ScrollView, bool, HasFocusIndicator)
 ADD_PROPERTY_METADATA(ScrollView, bool, HideHorizontalScrollBar)
diff --git a/ui/views/controls/scroll_view.h b/ui/views/controls/scroll_view.h
index ddc8bde4..6df7bca 100644
--- a/ui/views/controls/scroll_view.h
+++ b/ui/views/controls/scroll_view.h
@@ -12,6 +12,7 @@
 #include "base/compiler_specific.h"
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
+#include "base/optional.h"
 #include "ui/native_theme/native_theme.h"
 #include "ui/views/controls/focus_ring.h"
 #include "ui/views/controls/scrollbar/scroll_bar.h"
@@ -87,17 +88,19 @@
   //   called the background color comes from the theme (and changes if the
   //   theme changes).
   // . By way of setting an explicit color, i.e. SetBackgroundColor(). Use
-  //   SK_ColorTRANSPARENT if you don't want any color, but be warned this
+  //   base::nullopt if you don't want any color, but be warned this
   //   produces awful results when layers are used with subpixel rendering.
-  SkColor GetBackgroundColor() const;
-  void SetBackgroundColor(SkColor color);
+  base::Optional<SkColor> GetBackgroundColor() const;
+  void SetBackgroundColor(const base::Optional<SkColor>& color);
 
-  void SetBackgroundThemeColorId(ui::NativeTheme::ColorId color_id);
+  base::Optional<ui::NativeTheme::ColorId> GetBackgroundThemeColorId() const;
+  void SetBackgroundThemeColorId(
+      const base::Optional<ui::NativeTheme::ColorId>& color_id);
 
   // Returns the visible region of the content View.
   gfx::Rect GetVisibleRect() const;
 
-  bool GetUseColorId() const { return use_color_id_; }
+  bool GetUseColorId() const { return !!background_color_id_; }
 
   bool GetHideHorizontalScrollBar() const { return hide_horizontal_scrollbar_; }
   void SetHideHorizontalScrollBar(bool visible);
@@ -152,13 +155,8 @@
 
   class Viewport;
 
-  union BackgroundColorData {
-    SkColor color;
-    ui::NativeTheme::ColorId color_id;
-  };
-
   // Forces |contents_viewport_| to have a Layer (assuming it doesn't already).
-  void EnableViewPortLayer();
+  void EnableViewportLayer();
 
   // Returns true if this or the viewport has a layer.
   bool DoesViewportOrScrollViewHaveLayer() const;
@@ -257,9 +255,9 @@
   int max_height_ = -1;
 
   // See description of SetBackgroundColor() for details.
-  BackgroundColorData background_color_data_ = {
-      ui::NativeTheme::kColorId_DialogBackground};
-  bool use_color_id_ = true;
+  base::Optional<SkColor> background_color_;
+  base::Optional<ui::NativeTheme::ColorId> background_color_id_ =
+      ui::NativeTheme::kColorId_DialogBackground;
 
   // If true, never show the horizontal scrollbar (even if the contents is wider
   // than the viewport).
diff --git a/ui/views/controls/scroll_view_unittest.cc b/ui/views/controls/scroll_view_unittest.cc
index 032268ec..9112131 100644
--- a/ui/views/controls/scroll_view_unittest.cc
+++ b/ui/views/controls/scroll_view_unittest.cc
@@ -8,6 +8,7 @@
 #include <utility>
 
 #include "base/macros.h"
+#include "base/optional.h"
 #include "base/run_loop.h"
 #include "base/test/icu_test_util.h"
 #include "base/test/scoped_feature_list.h"
@@ -945,8 +946,8 @@
   // should be true.
   EXPECT_TRUE(test_api.contents_viewport()->layer()->fills_bounds_opaquely());
 
-  // Setting a transparent color should make fills opaquely false.
-  scroll_view_->SetBackgroundColor(SK_ColorTRANSPARENT);
+  // Setting a base::nullopt color should make fills opaquely false.
+  scroll_view_->SetBackgroundColor(base::nullopt);
   EXPECT_FALSE(test_api.contents_viewport()->layer()->fills_bounds_opaquely());
 
   child->DestroyLayer();
diff --git a/ui/views/examples/examples_main.cc b/ui/views/examples/examples_main.cc
index cb5c6812..9694bbf 100644
--- a/ui/views/examples/examples_main.cc
+++ b/ui/views/examples/examples_main.cc
@@ -23,7 +23,6 @@
 #include "components/viz/service/frame_sinks/frame_sink_manager_impl.h"
 #include "mojo/core/embedder/embedder.h"
 #include "ui/base/ime/init/input_method_initializer.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/base/ui_base_paths.h"
 #include "ui/compositor/test/in_process_context_factory.h"
@@ -130,7 +129,6 @@
   aura::Env::GetInstance()->set_context_factory(context_factory.get());
 #endif
   ui::InitializeInputMethodForTesting();
-  ui::MaterialDesignController::Initialize();
 
   {
     views::DesktopTestViewsDelegate views_delegate;
diff --git a/ui/views/linux_ui/nav_button_provider.h b/ui/views/linux_ui/nav_button_provider.h
index 225b7f0..1c07d4f 100644
--- a/ui/views/linux_ui/nav_button_provider.h
+++ b/ui/views/linux_ui/nav_button_provider.h
@@ -22,6 +22,18 @@
 
 class NavButtonProvider {
  public:
+  // This enum is similar to views::FrameButton, except it partitions
+  // kMaximize and kRestore.  This is useful for when we want to be
+  // explicit about which buttons we want drawn, without having to
+  // implicitly determine if we should use kMaximize or kRestore
+  // depending on the browser window's maximized/restored state.
+  enum class FrameButtonDisplayType {
+    kMinimize,
+    kMaximize,
+    kRestore,
+    kClose,
+  };
+
   virtual ~NavButtonProvider() {}
 
   // Redraws all images and updates all size state.  |top_area_height|
@@ -33,14 +45,15 @@
                             bool active) = 0;
 
   // Gets the cached button image corresponding to |type| and |state|.
-  virtual gfx::ImageSkia GetImage(chrome::FrameButtonDisplayType type,
-                                  views::Button::ButtonState state) const = 0;
+  virtual gfx::ImageSkia GetImage(
+      views::NavButtonProvider::FrameButtonDisplayType type,
+      views::Button::ButtonState state) const = 0;
 
   // Gets the external margin around each button.  The left inset
   // represents the leading margin, and the right inset represents the
   // trailing margin.
   virtual gfx::Insets GetNavButtonMargin(
-      chrome::FrameButtonDisplayType type) const = 0;
+      views::NavButtonProvider::FrameButtonDisplayType type) const = 0;
 
   // Gets the internal spacing (padding + border) of the top area.
   // The left inset represents the leading spacing, and the right
diff --git a/ui/views/metadata/type_conversion.cc b/ui/views/metadata/type_conversion.cc
index f1fbb6f..1ca8954d 100644
--- a/ui/views/metadata/type_conversion.cc
+++ b/ui/views/metadata/type_conversion.cc
@@ -13,6 +13,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "ui/base/ime/text_input_type.h"
 #include "ui/gfx/geometry/rect.h"
+#include "ui/native_theme/native_theme.h"
 
 namespace views {
 namespace metadata {
@@ -313,3 +314,8 @@
                         base::ASCIIToUTF16("TEXT_INPUT_TYPE_DATE_TIME_FIELD")},
                        {ui::TextInputType::TEXT_INPUT_TYPE_MAX,
                         base::ASCIIToUTF16("TEXT_INPUT_TYPE_MAX")})
+
+#define OP(enum_name) \
+  { ui::NativeTheme::enum_name, base::ASCIIToUTF16(#enum_name) }
+DEFINE_ENUM_CONVERTERS(ui::NativeTheme::ColorId, NATIVE_THEME_COLOR_IDS)
+#undef OP
diff --git a/ui/views/test/views_test_base.cc b/ui/views/test/views_test_base.cc
index 9a2a30d..2e32286 100644
--- a/ui/views/test/views_test_base.cc
+++ b/ui/views/test/views_test_base.cc
@@ -64,13 +64,7 @@
 }  // namespace
 
 ViewsTestBase::ViewsTestBase(
-    ViewsTestBase::SubclassManagesTaskEnvironment /* tag */)
-    : task_environment_(base::nullopt) {
-  // MaterialDesignController is initialized here instead of in SetUp because
-  // a subclass might construct a MaterialDesignControllerTestAPI as a member to
-  // override the value, and this must happen first.
-  ui::MaterialDesignController::Initialize();
-}
+    ViewsTestBase::SubclassManagesTaskEnvironment tag) {}
 
 ViewsTestBase::~ViewsTestBase() {
   CHECK(setup_called_)
diff --git a/ui/views/test/views_test_base.h b/ui/views/test/views_test_base.h
index 7f4de6b..3a7f789 100644
--- a/ui/views/test/views_test_base.h
+++ b/ui/views/test/views_test_base.h
@@ -14,7 +14,6 @@
 #include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "testing/platform_test.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/ui_base_features.h"
 #include "ui/views/test/scoped_views_test_helper.h"
 #include "ui/views/test/test_views_delegate.h"
@@ -50,10 +49,6 @@
       : task_environment_(base::in_place,
                           base::test::TaskEnvironment::MainThreadType::UI,
                           std::forward<TaskEnvironmentTraits>(traits)...) {
-    // MaterialDesignController is initialized here instead of in SetUp because
-    // a subclass might construct a MaterialDesignControllerTestAPI as a member
-    // to override the value, and this must happen first.
-    ui::MaterialDesignController::Initialize();
   }
 
   // Alternatively a subclass may pass this tag to ask this ViewsTestBase not to
diff --git a/ui/views/views_touch_selection_controller_factory_aura.cc b/ui/views/views_touch_selection_controller_factory_aura.cc
index f5a3d9b..41946b0 100644
--- a/ui/views/views_touch_selection_controller_factory_aura.cc
+++ b/ui/views/views_touch_selection_controller_factory_aura.cc
@@ -4,7 +4,6 @@
 
 #include "ui/views/views_touch_selection_controller_factory.h"
 
-#include "ui/base/ui_base_switches_util.h"
 #include "ui/views/touchui/touch_selection_controller_impl.h"
 
 namespace views {
diff --git a/ui/views/window/caption_button_layout_constants.cc b/ui/views/window/caption_button_layout_constants.cc
index ff8a96d..126dced 100644
--- a/ui/views/window/caption_button_layout_constants.cc
+++ b/ui/views/window/caption_button_layout_constants.cc
@@ -17,7 +17,8 @@
   // |kBrowserMaximizedCaptionButtonHeight| should be kept in sync with those
   // for TAB_HEIGHT in // chrome/browser/ui/layout_constants.cc.
   // TODO: Ideally these values should be obtained from a common location.
-  int height = ui::MaterialDesignController::touch_ui() ? 41 : 34;
+  int height =
+      ui::MaterialDesignController::GetInstance()->touch_ui() ? 41 : 34;
   if (size == CaptionButtonLayoutSize::kBrowserCaptionRestored)
     height += 8;  // Restored window titlebars are 8 DIP taller than maximized.
   return gfx::Size(kCaptionButtonWidth, height);
diff --git a/ui/views_content_client/views_content_client_main_parts.cc b/ui/views_content_client/views_content_client_main_parts.cc
index c6ace661..0a8055e5 100644
--- a/ui/views_content_client/views_content_client_main_parts.cc
+++ b/ui/views_content_client/views_content_client_main_parts.cc
@@ -11,7 +11,6 @@
 #include "content/public/browser/context_factory.h"
 #include "content/shell/browser/shell_browser_context.h"
 #include "ui/base/ime/init/input_method_initializer.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/views/test/desktop_test_views_delegate.h"
 #include "ui/views_content_client/views_content_client.h"
 
@@ -31,7 +30,6 @@
 #endif
 
 void ViewsContentClientMainParts::PreMainMessageLoopRun() {
-  ui::MaterialDesignController::Initialize();
   ui::InitializeInputMethodForTesting();
   browser_context_ = std::make_unique<content::ShellBrowserContext>(false);
 
diff --git a/ui/wm/core/DEPS b/ui/wm/core/DEPS
index 101e3b8..2e624fc 100644
--- a/ui/wm/core/DEPS
+++ b/ui/wm/core/DEPS
@@ -6,7 +6,6 @@
   "+ui/base/hit_test.h",
   "+ui/base/ime",
   "+ui/base/resource",
-  "+ui/base/ui_base_switches_util.h",
   "+ui/base/ui_base_paths.h",
   "+ui/base/ui_base_types.h",
   "+ui/compositor",
diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn
index 93f28563..f704e64 100644
--- a/weblayer/BUILD.gn
+++ b/weblayer/BUILD.gn
@@ -141,10 +141,10 @@
     "browser/system_network_context_manager.h",
     "browser/tab_impl.cc",
     "browser/tab_impl.h",
-    "browser/urlbar/autocomplete_scheme_classifier_impl.cc",
-    "browser/urlbar/autocomplete_scheme_classifier_impl.h",
-    "browser/urlbar/url_bar_controller_impl.cc",
-    "browser/urlbar/url_bar_controller_impl.h",
+    "browser/url_bar/autocomplete_scheme_classifier_impl.cc",
+    "browser/url_bar/autocomplete_scheme_classifier_impl.h",
+    "browser/url_bar/url_bar_controller_impl.cc",
+    "browser/url_bar/url_bar_controller_impl.h",
     "browser/web_contents_view_delegate_impl.cc",
     "browser/web_contents_view_delegate_impl.h",
     "browser/weblayer_browser_interface_binders.cc",
diff --git a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/TabCallbackTest.java b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/TabCallbackTest.java
index ec2db863..5718c79e 100644
--- a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/TabCallbackTest.java
+++ b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/TabCallbackTest.java
@@ -137,6 +137,36 @@
         Assert.assertEquals("anchor text", params[0].linkText);
     }
 
+    // Requires implementation M82.
+    @Test
+    @SmallTest
+    public void testShowContextMenuImg() throws TimeoutException {
+        String pageUrl = mActivityTestRule.getTestDataURL("img.html");
+        InstrumentationActivity activity = mActivityTestRule.launchShellWithUrl(pageUrl);
+
+        ContextMenuParams params[] = new ContextMenuParams[1];
+        CallbackHelper callbackHelper = new CallbackHelper();
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            Tab tab = activity.getTab();
+            TabCallback callback = new TabCallback() {
+                @Override
+                public void showContextMenu(ContextMenuParams param) {
+                    params[0] = param;
+                    callbackHelper.notifyCalled();
+                }
+            };
+            tab.registerTabCallback(callback);
+        });
+
+        TestTouchUtils.longClickView(
+                InstrumentationRegistry.getInstrumentation(), activity.getWindow().getDecorView());
+        callbackHelper.waitForFirst();
+        Assert.assertEquals(Uri.parse(pageUrl), params[0].pageUri);
+        Assert.assertEquals(
+                Uri.parse(mActivityTestRule.getTestDataURL("notfound.png")), params[0].srcUri);
+        Assert.assertEquals("alt_text", params[0].titleOrAltText);
+    }
+
     @Test
     @SmallTest
     public void testTabModalOverlay() throws TimeoutException {
diff --git a/weblayer/browser/browser_impl.cc b/weblayer/browser/browser_impl.cc
index 49f9dcdc..24e6d6e 100644
--- a/weblayer/browser/browser_impl.cc
+++ b/weblayer/browser/browser_impl.cc
@@ -6,6 +6,7 @@
 
 #include <algorithm>
 
+#include "base/callback_forward.h"
 #include "base/containers/unique_ptr_adapters.h"
 #include "base/memory/ptr_util.h"
 #include "base/path_service.h"
@@ -303,6 +304,9 @@
 }
 
 void BrowserImpl::VisibleSecurityStateOfActiveTabChanged() {
+  if (visible_security_state_changed_callback_for_tests_)
+    std::move(visible_security_state_changed_callback_for_tests_).Run();
+
 #if defined(OS_ANDROID)
   JNIEnv* env = base::android::AttachCurrentThread();
   Java_BrowserImpl_onVisibleSecurityStateOfActiveTabChanged(env, java_impl_);
diff --git a/weblayer/browser/browser_impl.h b/weblayer/browser/browser_impl.h
index f4a1df8..364a076c 100644
--- a/weblayer/browser/browser_impl.h
+++ b/weblayer/browser/browser_impl.h
@@ -8,6 +8,7 @@
 #include <memory>
 #include <vector>
 
+#include "base/callback.h"
 #include "base/observer_list.h"
 #include "build/build_config.h"
 #include "weblayer/public/browser.h"
@@ -88,6 +89,12 @@
   // Used in tests to specify a non-default max (0 means use the default).
   std::vector<uint8_t> GetMinimalPersistenceState(int max_size_in_bytes);
 
+  // Used by tests to specify a callback to listen to changes to visible
+  // security state.
+  void SetVisibleSecurityStateChangedCallback(base::OnceClosure closure) {
+    visible_security_state_changed_callback_for_tests_ = std::move(closure);
+  }
+
   // Browser:
   Tab* AddTab(std::unique_ptr<Tab> tab) override;
   std::unique_ptr<Tab> RemoveTab(Tab* tab) override;
@@ -104,6 +111,7 @@
  private:
   // For creation.
   friend class Browser;
+
 #if defined(OS_ANDROID)
   friend BrowserImpl* CreateBrowserForAndroid(
       ProfileImpl*,
@@ -126,6 +134,7 @@
   TabImpl* active_tab_ = nullptr;
   std::string persistence_id_;
   std::unique_ptr<BrowserPersister> browser_persister_;
+  base::OnceClosure visible_security_state_changed_callback_for_tests_;
 };
 
 }  // namespace weblayer
diff --git a/weblayer/browser/browser_main_parts_impl.cc b/weblayer/browser/browser_main_parts_impl.cc
index d5c782ab..83342e4 100644
--- a/weblayer/browser/browser_main_parts_impl.cc
+++ b/weblayer/browser/browser_main_parts_impl.cc
@@ -20,7 +20,6 @@
 #include "content/public/common/main_function_params.h"
 #include "content/public/common/url_constants.h"
 #include "services/service_manager/embedder/result_codes.h"
-#include "ui/base/material_design/material_design_controller.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "weblayer/browser/browser_process.h"
 #include "weblayer/browser/host_content_settings_map_factory.h"
@@ -129,7 +128,6 @@
 }
 
 void BrowserMainPartsImpl::PreMainMessageLoopRun() {
-  ui::MaterialDesignController::Initialize();
   // It's necessary to have a complete dependency graph of
   // BrowserContextKeyedServices before calling out to the delegate (which
   // will potentially create a profile), so that a profile creation message is
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java
index 7056afb..d4a490f 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java
+++ b/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java
@@ -562,7 +562,8 @@
         mClient.showContextMenu(ObjectWrapper.wrap(params.getPageUrl()),
                 ObjectWrapper.wrap(nonEmptyOrNull(params.getLinkUrl())),
                 ObjectWrapper.wrap(nonEmptyOrNull(params.getLinkText())),
-                ObjectWrapper.wrap(nonEmptyOrNull(params.getTitleText())));
+                ObjectWrapper.wrap(nonEmptyOrNull(params.getTitleText())),
+                ObjectWrapper.wrap(nonEmptyOrNull(params.getSrcUrl())));
     }
 
     private void onBrowserControlsStateUpdated(int state) {
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ITabClient.aidl b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ITabClient.aidl
index 4e253fcb..6c8a482 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ITabClient.aidl
+++ b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ITabClient.aidl
@@ -21,7 +21,8 @@
 
   // Added in M82.
   void showContextMenu(in IObjectWrapper pageUrl, in IObjectWrapper linkUrl,
-      in IObjectWrapper linkText, in IObjectWrapper titleOrAltText) = 4;
+      in IObjectWrapper linkText, in IObjectWrapper titleOrAltText,
+      in IObjectWrapper srcUrl) = 4;
 
   // Added in M82.
   void onTabModalStateChanged(in boolean isTabModalShowing) = 5;
diff --git a/weblayer/browser/tab_impl.cc b/weblayer/browser/tab_impl.cc
index 4944f9d..d0374ac 100644
--- a/weblayer/browser/tab_impl.cc
+++ b/weblayer/browser/tab_impl.cc
@@ -444,10 +444,13 @@
   return source;
 }
 
-void TabImpl::DidNavigateMainFramePostCommit(
-    content::WebContents* web_contents) {
-  for (auto& observer : observers_)
-    observer.DisplayedUrlChanged(web_contents->GetVisibleURL());
+void TabImpl::NavigationStateChanged(content::WebContents* source,
+                                     content::InvalidateTypes changed_flags) {
+  if (changed_flags & content::INVALIDATE_TYPE_URL) {
+    for (auto& observer : observers_)
+      observer.DisplayedUrlChanged(source->GetVisibleURL());
+    UpdateBrowserVisibleSecurityStateIfNecessary();
+  }
 }
 
 content::JavaScriptDialogManager* TabImpl::GetJavaScriptDialogManager(
@@ -640,6 +643,10 @@
 }
 
 void TabImpl::DidChangeVisibleSecurityState() {
+  UpdateBrowserVisibleSecurityStateIfNecessary();
+}
+
+void TabImpl::UpdateBrowserVisibleSecurityStateIfNecessary() {
   if (browser_) {
     if (browser_->GetActiveTab() == this)
       browser_->VisibleSecurityStateOfActiveTabChanged();
diff --git a/weblayer/browser/tab_impl.h b/weblayer/browser/tab_impl.h
index 4c80043..5ab828e 100644
--- a/weblayer/browser/tab_impl.h
+++ b/weblayer/browser/tab_impl.h
@@ -153,8 +153,8 @@
   content::WebContents* OpenURLFromTab(
       content::WebContents* source,
       const content::OpenURLParams& params) override;
-  void DidNavigateMainFramePostCommit(
-      content::WebContents* web_contents) override;
+  void NavigationStateChanged(content::WebContents* source,
+                              content::InvalidateTypes changed_flags) override;
   content::JavaScriptDialogManager* GetJavaScriptDialogManager(
       content::WebContents* web_contents) override;
   content::ColorChooser* OpenColorChooser(
@@ -225,6 +225,8 @@
                                     content::BrowserControlsState constraint);
 #endif
 
+  void UpdateBrowserVisibleSecurityStateIfNecessary();
+
   BrowserImpl* browser_ = nullptr;
   DownloadDelegate* download_delegate_ = nullptr;
   ErrorPageDelegate* error_page_delegate_ = nullptr;
diff --git a/weblayer/browser/urlbar/autocomplete_scheme_classifier_impl.cc b/weblayer/browser/url_bar/autocomplete_scheme_classifier_impl.cc
similarity index 93%
rename from weblayer/browser/urlbar/autocomplete_scheme_classifier_impl.cc
rename to weblayer/browser/url_bar/autocomplete_scheme_classifier_impl.cc
index c2cba05..f9bf44e 100644
--- a/weblayer/browser/urlbar/autocomplete_scheme_classifier_impl.cc
+++ b/weblayer/browser/url_bar/autocomplete_scheme_classifier_impl.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "weblayer/browser/urlbar/autocomplete_scheme_classifier_impl.h"
+#include "weblayer/browser/url_bar/autocomplete_scheme_classifier_impl.h"
 
 #include "base/strings/string_util.h"
 #include "content/public/common/url_constants.h"
diff --git a/weblayer/browser/urlbar/autocomplete_scheme_classifier_impl.h b/weblayer/browser/url_bar/autocomplete_scheme_classifier_impl.h
similarity index 78%
rename from weblayer/browser/urlbar/autocomplete_scheme_classifier_impl.h
rename to weblayer/browser/url_bar/autocomplete_scheme_classifier_impl.h
index aca0bad..012d387 100644
--- a/weblayer/browser/urlbar/autocomplete_scheme_classifier_impl.h
+++ b/weblayer/browser/url_bar/autocomplete_scheme_classifier_impl.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef WEBLAYER_BROWSER_URLBAR_AUTOCOMPLETE_SCHEME_CLASSIFIER_IMPL_H_
-#define WEBLAYER_BROWSER_URLBAR_AUTOCOMPLETE_SCHEME_CLASSIFIER_IMPL_H_
+#ifndef WEBLAYER_BROWSER_URL_BAR_AUTOCOMPLETE_SCHEME_CLASSIFIER_IMPL_H_
+#define WEBLAYER_BROWSER_URL_BAR_AUTOCOMPLETE_SCHEME_CLASSIFIER_IMPL_H_
 
 #include "components/omnibox/browser/autocomplete_scheme_classifier.h"
 
@@ -23,4 +23,4 @@
 
 }  // namespace weblayer
 
-#endif  // WEBLAYER_BROWSER_URLBAR_AUTOCOMPLETE_SCHEME_CLASSIFIER_IMPL_H_
+#endif  // WEBLAYER_BROWSER_URL_BAR_AUTOCOMPLETE_SCHEME_CLASSIFIER_IMPL_H_
diff --git a/weblayer/browser/url_bar/url_bar_browsertest.cc b/weblayer/browser/url_bar/url_bar_browsertest.cc
new file mode 100644
index 0000000..21d7610
--- /dev/null
+++ b/weblayer/browser/url_bar/url_bar_browsertest.cc
@@ -0,0 +1,71 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/callback_forward.h"
+#include "base/run_loop.h"
+#include "net/test/embedded_test_server/embedded_test_server.h"
+#include "weblayer/browser/browser_impl.h"
+#include "weblayer/browser/profile_impl.h"
+#include "weblayer/browser/tab_impl.h"
+#include "weblayer/test/weblayer_browser_test.h"
+#include "weblayer/test/weblayer_browser_test_utils.h"
+
+namespace weblayer {
+
+class UrlBarBrowserTest : public WebLayerBrowserTest {
+ public:
+  UrlBarBrowserTest() = default;
+  ~UrlBarBrowserTest() override = default;
+
+  // WebLayerBrowserTest
+  void SetUpOnMainThread() override {
+    WebLayerBrowserTest::SetUpOnMainThread();
+    ASSERT_TRUE(embedded_test_server()->Start());
+    browser_ = Browser::Create(GetProfile(), nullptr);
+    tab_ = static_cast<TabImpl*>(browser_->AddTab(Tab::Create(GetProfile())));
+    browser_->SetActiveTab(tab_);
+  }
+  void PostRunTestOnMainThread() override {
+    tab_ = nullptr;
+    browser_.reset();
+    WebLayerBrowserTest::PostRunTestOnMainThread();
+  }
+
+  GURL real_url() {
+    return embedded_test_server()->GetURL("/simple_page.html");
+  }
+  GURL abort_url() { return embedded_test_server()->GetURL("/nocontent"); }
+
+  void SetVisibleSecurityStateChangedCallback(base::OnceClosure closure) {
+    browser_impl()->SetVisibleSecurityStateChangedCallback(std::move(closure));
+  }
+
+ protected:
+  TabImpl* tab_ = nullptr;
+
+ private:
+  std::unique_ptr<Browser> browser_;
+  BrowserImpl* browser_impl() {
+    return static_cast<BrowserImpl*>(browser_.get());
+  }
+};
+
+IN_PROC_BROWSER_TEST_F(UrlBarBrowserTest, CanceledNavigationsUpdateUrl) {
+  NavigateAndWaitForCompletion(real_url(), tab_);
+
+  {
+    base::RunLoop run_loop;
+    SetVisibleSecurityStateChangedCallback(run_loop.QuitClosure());
+
+    // Navigating to the /nocontent url cancels the navigation with a 204 error.
+    NavigateAndWaitForStart(abort_url(), tab_);
+
+    // The test won't finish until WebLayer acts on the resulting
+    // WebContentsObserver::DidChangeVisibleSecurityState() notification, or the
+    // test times out.
+    run_loop.Run();
+  }
+}
+
+}  // namespace weblayer
diff --git a/weblayer/browser/urlbar/url_bar_controller_impl.cc b/weblayer/browser/url_bar/url_bar_controller_impl.cc
similarity index 96%
rename from weblayer/browser/urlbar/url_bar_controller_impl.cc
rename to weblayer/browser/url_bar/url_bar_controller_impl.cc
index f8eaf54..4a43cee4 100644
--- a/weblayer/browser/urlbar/url_bar_controller_impl.cc
+++ b/weblayer/browser/url_bar/url_bar_controller_impl.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "weblayer/browser/urlbar/url_bar_controller_impl.h"
+#include "weblayer/browser/url_bar/url_bar_controller_impl.h"
 
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
@@ -14,7 +14,7 @@
 #include "content/public/common/content_constants.h"
 #include "weblayer/browser/browser_impl.h"
 #include "weblayer/browser/tab_impl.h"
-#include "weblayer/browser/urlbar/autocomplete_scheme_classifier_impl.h"
+#include "weblayer/browser/url_bar/autocomplete_scheme_classifier_impl.h"
 #include "weblayer/public/browser.h"
 #include "weblayer/public/navigation_controller.h"
 
diff --git a/weblayer/browser/urlbar/url_bar_controller_impl.h b/weblayer/browser/url_bar/url_bar_controller_impl.h
similarity index 90%
rename from weblayer/browser/urlbar/url_bar_controller_impl.h
rename to weblayer/browser/url_bar/url_bar_controller_impl.h
index f2f9107..dacd807 100644
--- a/weblayer/browser/urlbar/url_bar_controller_impl.h
+++ b/weblayer/browser/url_bar/url_bar_controller_impl.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef WEBLAYER_BROWSER_URLBAR_URL_BAR_CONTROLLER_IMPL_H_
-#define WEBLAYER_BROWSER_URLBAR_URL_BAR_CONTROLLER_IMPL_H_
+#ifndef WEBLAYER_BROWSER_URL_BAR_URL_BAR_CONTROLLER_IMPL_H_
+#define WEBLAYER_BROWSER_URL_BAR_URL_BAR_CONTROLLER_IMPL_H_
 
 #include "base/strings/string16.h"
 #include "build/build_config.h"
@@ -56,4 +56,4 @@
 
 }  // namespace weblayer
 
-#endif  // WEBLAYER_BROWSER_URLBAR_URL_BAR_CONTROLLER_IMPL_H_
+#endif  // WEBLAYER_BROWSER_URL_BAR_URL_BAR_CONTROLLER_IMPL_H_
diff --git a/weblayer/public/java/org/chromium/weblayer/ContextMenuParams.java b/weblayer/public/java/org/chromium/weblayer/ContextMenuParams.java
index 8c772b1..6c907d8 100644
--- a/weblayer/public/java/org/chromium/weblayer/ContextMenuParams.java
+++ b/weblayer/public/java/org/chromium/weblayer/ContextMenuParams.java
@@ -37,10 +37,20 @@
     @Nullable
     public final String titleOrAltText;
 
-    public ContextMenuParams(Uri pageUri, Uri linkUri, String linkText, String titleOrAltText) {
+    /**
+     * This is the source Uri for the element that the context menu was
+     * invoked on.  Example of elements with source URLs are img, audio, and
+     * video.
+     */
+    @Nullable
+    public final Uri srcUri;
+
+    public ContextMenuParams(
+            Uri pageUri, Uri linkUri, String linkText, String titleOrAltText, Uri srcUri) {
         this.pageUri = pageUri;
         this.linkUri = linkUri;
         this.linkText = linkText;
         this.titleOrAltText = titleOrAltText;
+        this.srcUri = srcUri;
     }
 }
diff --git a/weblayer/public/java/org/chromium/weblayer/Tab.java b/weblayer/public/java/org/chromium/weblayer/Tab.java
index a4bbfdff..6921d346 100644
--- a/weblayer/public/java/org/chromium/weblayer/Tab.java
+++ b/weblayer/public/java/org/chromium/weblayer/Tab.java
@@ -368,14 +368,16 @@
 
         @Override
         public void showContextMenu(IObjectWrapper pageUrl, IObjectWrapper linkUrl,
-                IObjectWrapper linkText, IObjectWrapper titleOrAltText) {
+                IObjectWrapper linkText, IObjectWrapper titleOrAltText, IObjectWrapper srcUrl) {
             StrictModeWorkaround.apply();
             String pageUrlString = ObjectWrapper.unwrap(pageUrl, String.class);
             String linkUrlString = ObjectWrapper.unwrap(linkUrl, String.class);
+            String srcUrlString = ObjectWrapper.unwrap(srcUrl, String.class);
             ContextMenuParams params = new ContextMenuParams(Uri.parse(pageUrlString),
                     linkUrlString != null ? Uri.parse(linkUrlString) : null,
                     ObjectWrapper.unwrap(linkText, String.class),
-                    ObjectWrapper.unwrap(titleOrAltText, String.class));
+                    ObjectWrapper.unwrap(titleOrAltText, String.class),
+                    srcUrlString != null ? Uri.parse(srcUrlString) : null);
             for (TabCallback callback : mCallbacks) {
                 callback.showContextMenu(params);
             }
diff --git a/weblayer/test/BUILD.gn b/weblayer/test/BUILD.gn
index 4e499db..04ff499 100644
--- a/weblayer/test/BUILD.gn
+++ b/weblayer/test/BUILD.gn
@@ -177,6 +177,7 @@
       # integration tests.
       "../browser/persistence/browser_persister_browsertest.cc",
       "../browser/persistence/minimal_browser_persister_browsertest.cc",
+      "../browser/url_bar/url_bar_browsertest.cc",
     ]
   }
 }
diff --git a/weblayer/test/data/img.html b/weblayer/test/data/img.html
new file mode 100644
index 0000000..e9ff83f82
--- /dev/null
+++ b/weblayer/test/data/img.html
@@ -0,0 +1,19 @@
+<html>
+  <head>
+    <style>
+      body, html {
+        height: 100%;
+      }
+
+      img {
+        display: block;
+        height: 100%;
+        width: 100%;
+      }
+    </style>
+  </head>
+  <body>
+    <img src="notfound.png" alt="alt_text" />
+  </body>
+</html>
+
diff --git a/weblayer/test/weblayer_browser_test_utils.cc b/weblayer/test/weblayer_browser_test_utils.cc
index 265d3d7..d048ab9 100644
--- a/weblayer/test/weblayer_browser_test_utils.cc
+++ b/weblayer/test/weblayer_browser_test_utils.cc
@@ -44,6 +44,11 @@
                           TestNavigationObserver::NavigationEvent::kFailure);
 }
 
+void NavigateAndWaitForStart(const GURL& url, Tab* tab) {
+  NavigateAndWaitForEvent(url, tab,
+                          TestNavigationObserver::NavigationEvent::kStart);
+}
+
 base::Value ExecuteScript(Shell* shell,
                           const std::string& script,
                           bool use_separate_isolate) {
diff --git a/weblayer/test/weblayer_browser_test_utils.h b/weblayer/test/weblayer_browser_test_utils.h
index eda8e82a..a2040ce 100644
--- a/weblayer/test/weblayer_browser_test_utils.h
+++ b/weblayer/test/weblayer_browser_test_utils.h
@@ -28,6 +28,9 @@
 // Navigates |shell| to |url| and wait for failed navigation.
 void NavigateAndWaitForFailure(const GURL& url, Shell* shell);
 
+// Initiates navigation to |url| in |tab| and waits for it to start.
+void NavigateAndWaitForStart(const GURL& url, Tab* tab);
+
 // Executes |script| in |shell| and returns the result.
 base::Value ExecuteScript(Shell* shell,
                           const std::string& script,